Çağrı Merkezi

sounds

13 uç · /api/callcenter/v1/sounds

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 13 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/callcenter/v1/sounds

List sounds

Oturum
İstek
curl -X GET "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/callcenter/v1/sounds

Create sound

Oturum
İstek
curl -X POST "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/callcenter/v1/sounds/{id}

Get sound

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/callcenter/v1/sounds/{id}

Update sound

OturumYol parametresi: id
İstek
curl -X PUT "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/callcenter/v1/sounds/{id}

Delete sound

OturumYol parametresi: id
İstek
curl -X DELETE "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/callcenter/v1/sounds/{id}/audio

`GET /sounds/{id}/audio` — panelde dinleme.

OturumYol parametresi: id

`storage_ref` bir İÇ uçtur (kenarda yalnız medya VM'inin IP'sine açık) → tarayıcı onu çekemez. Önizleme bu yüzden oturum yetkisiyle buradan akar. Kaynak, kaydın hangi yolla ses kazandığına göre iki yerden gelir: yüklenen/birleştirilen bayt kaydın kendisinde, sentezlenen TTS baytı `tts_audio_cache`'te.

İstek
curl -X GET "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>/audio" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/callcenter/v1/sounds/{id}/files

`GET /sounds/{id}/files` — çalma listesi parçaları (çalma sırasıyla).

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>/files" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/callcenter/v1/sounds/{id}/files

`POST /sounds/{id}/files` — ham audio gövdesi yükle.

OturumYol parametresi: id

**Multipart değil, ham bayt — bilinçli:** panel `fetch(body: File)` ile gönderir; multipart bir ayrıştırıcı bağımlılığı ve ikinci bir tavan yüzeyi (parça başına limit) getirirdi. Dosya adı sorgu dizesinde taşınır. Yüklenen bayt **telefon formatına normalize edilir** (8 kHz/16-bit/mono WAV) ve DB'ye o hâliyle girer; ham dosya SAKLANMAZ. Gerekçe: medya sunucusunda `mod_shout` yok (mp3 çalınmaz) ve süre hesabı bayt uzunluğundan çıkar (bkz. `audio` modülü).

İstek
curl -X POST "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>/files" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/callcenter/v1/sounds/{id}/files/{fid}

`DELETE /sounds/{id}/files/{fid}` — parça çıkar, kalanı yeniden birleştir.

OturumYol parametresi: idfid
İstek
curl -X DELETE "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>/files/<fid>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/callcenter/v1/sounds/{id}/files/order

`PUT /sounds/{id}/files/order` — çalma sırasını değiştir.

OturumYol parametresi: id

Sıra **tek UPDATE turunda** yazılır ve `position` kolonunda unique kısıt vardır: iki parçayı takas ederken ara adım çakışırdı. Bu yüzden önce hepsi negatife taşınır (çakışmayan geçici alan), sonra hedef sıraya yazılır — hepsi aynı transaction'da.

İstek
curl -X PUT "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>/files/order" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/callcenter/v1/sounds/{id}/synthesize

SF6.3 / SF13.3 / **P0.1** — TTS sentez hattı: tts sound'u sentezle, **audio baytını sakla**,

OturumYol parametresi: id

`storage_ref`'i FreeSWITCH'in çalabileceği gerçek adrese set et. **2026-08-15'te kapatılan boşluk:** bu uç eskiden sentezliyor, ücret düşüyor ve üretilen sesi ATIYORDU (`let _audio = …`); `storage_ref` yalnız *planlanan* bir yolu tutuyor, arkasında dosya olmuyordu. Artık `tts_cache::get_or_synthesize` baytı `callcenter.tts_audio_cache`'e yazar ve dönen URL doğrudan çalınabilir olur. **Cache artık içerik-adresli ve GLOBAL:** anahtar (sağlayıcı, çözülmüş-ses, format, metin) HMAC'idir. Bunun iki sonucu var: (1) sağlayıcı ya da varsayılan ses değişirse anahtar da değişir → eski ses servis edilmeye devam etmez (2026-07-13 FORWARD-NOTE'u); (2) aynı metni içeren FARKLI satırlar tek sentezi paylaşır — paneldeki karşılama ile akıştaki aynı cümle ikinci kez ücretlendirilmez (eski satır-başına dedup'ın aksine). **Ücretlendirme fail-CLOSED KALIR (çağrı yolundan farklı — bilinçli):** burada kullanıcı interaktif bir düğmeye basıyor, "yetersiz kredi" mesajını GÖREBİLİYOR ve tekrar deneyebiliyor. Çağrı yolunda böyle bir alıcı yok; orada reddetmek IVR'ı yeniden sessizleştirirdi, bu yüzden orası post-paid'dir (bkz. `tts_cache` modül başlığı).

İstek
curl -X POST "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/<id>/synthesize" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/callcenter/v1/sounds/moh-streams

BLE2-4674 — panelin bekletme müziği seçicisinin sistem seçenekleri. Sabit liste ama uçtan

Oturum

verilir: panel adres/akış adı SABİT YAZMAZ (modül adresleri kuralının aynısı).

İstek
curl -X GET "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/moh-streams" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/callcenter/v1/sounds/voices

SF13.3 — kullanılabilir TTS sesleri (canlı Azure → küratörlü tr-TR; Stub → mock). Ses-seçici kaynağı.

Oturum
İstek
curl -X GET "https://{slug}.call.blesyum.app/api/callcenter/v1/sounds/voices" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?