Ana içeriğe geç

Call API

Base URL: https://api.sanalsantral.com.tr Prefix: /call

Kimlik Doğrulama​

Tüm isteklerde Authorization header’ı ile API anahtarınızı göndermeniz gerekmektedir.

Authorization: Bearer <API_KEY>

API anahtarınızı hesap yöneticinizden temin edebilirsiniz.

Endpointler​

1. Dial First (Çağrı Başlatma)​

Yeni bir çağrı başlatır. Sistem önce belirtilen dahiliyi arar, dahili cevapladıktan sonra hedef numarayı çağırır.

ÖzellikDeğer
URLPOST /call/dialFirst
AuthBearer Token

Request Body:

{
"pbxId": 1,
"dialNumber": "05551234567",
"callerId": "02121234567",
"callerExtension": "1001-TESTPBX",
"destination": {
"type": "mobile",
"target": "05559876543"
}
}
AlanTipZorunluAçıklama
pbxIdnumberEvetPBX kimlik numarası
dialNumberstringEvetAranacak numara
callerIdstringEvetArayan numara olarak görünecek numara. Müşteriye ait ve aktif bir numara olmalıdır; değilse çağrı 403 ile reddedilir.
callerExtensionstringEvet (mask: Hayır)Çağrıyı başlatan dahili numarası. mask tipinde zorunlu değildir.
destinationobjectEvetHedef bilgisi
destination.typestringEvetHedef tipi: mobile, pi, mask
destination.targetstringEvetHedef numarası (mask tipinde ikinci cep telefonu)
destination.paramsobjectHayırPi uygulaması için gönderilecek parametreler.

Response (Başarılı):

{
"success": true,
"message": "Çağrı başarıyla başlatıldı",
"data": {
"ActionID": "1705312200123"
}
}

Response (Hata):

{
"success": false,
"message": "Çağrı başlatılamadı",
"error": "Originate failed"
}

Maskeli Çağrı (destination.type: mask):

İki cep telefonunu santral üzerinden birbirine bağlar. Önce dialNumber aranır; cevaplanınca destination.target aranır. İki taraf da arayan numarası olarak callerId'yi (dış hat numaranızı) görür, birbirinin gerçek numarasını görmez.

Request Body:

{
"pbxId": 1,
"dialNumber": "05321234567",
"callerId": "08501234567",
"destination": {
"type": "mask",
"target": "05339876543"
}
}

AlanTipZorunluAçıklama
dialNumberstringEvetİlk aranacak cep telefonu (A)
destination.targetstringEvetA cevaplayınca aranacak cep telefonu (B); A ile aynı olamaz
callerIdstringEvetİki tarafa görünecek dış hat numaranız. Müşteriye ait ve aktif olmalıdır.
callerExtensionstringHayırVerilirse çağrı bu dahili adına çıkar (yönlendirme profili, çağrı kaydı)
asyncbooleanHayırtrue ise hemen döner; aksi halde ilk aramanın sonucu (callResult.dialstatus) beklenir

Cep telefonu numaraları 5321234567, 05321234567, 905321234567 ya da +905321234567 biçiminde gönderilebilir. Sabit hat numaraları kabul edilmez.

Hata Durumları:

HTTPerrorAçıklama
400INVALID_GSMdialNumber ya da destination.target geçerli bir cep telefonu değil veya ikisi aynı
400CALLER_ID_REQUIREDcallerId gönderilmedi
403CALLER_ID_NOT_OWNEDcallerId size ait aktif bir numara değil
503CALLER_ID_UNVERIFIEDcallerId şu anda doğrulanamadı; çağrı başlatılmadı, tekrar deneyin

Örnek Kullanımlar:​

Önce dahiliyi arayıp sonra cep telefonuna bağlama isteği: (Örnek santral kodu TESTPBX)

{
"pbxId": 9091279,
"dialNumber": "1016",
"callerId": "902202221100",
"callerExtension": "1016-TESTPBX",
"destination": {
"type": "mobile",
"target": "05559876543"
}
}

Önce cep telefonunu sonra dahiliye bağlama isteği: (Örnek santral kodu TESTPBX)

{
"pbxId": 1,
"dialNumber": "05559876543",
"callerId": "02121234567",
"callerExtension": "1016-TESTPBX",
"destination": {
"type": "mobile",
"target": "1016-TESTPBX"
}
}

Önce cep telefonunu sonra Pi uygulamasına bağlama isteği: (Örnek santral kodu: TESTPBX)

{
"pbxId": 1,
"dialNumber": "05559876543",
"callerId": "02121234567",
"callerExtension": "1001-TESTPBX",
"destination": {
"type": "pi",
"target": "26",
"params": {
"orderId": "ORD-12345",
"customerId": "C-789"
}
}
}

İki cep telefonunu maskeli olarak birbirine bağlama isteği (iki taraf da 08501234567 numarasını görür):

{
"pbxId": 1,
"dialNumber": "05321234567",
"callerId": "08501234567",
"destination": {
"type": "mask",
"target": "05339876543"
}
}

Genel Response Yapısı​

Tüm endpointler aşağıdaki formatta JSON response döner:

{
"success": true,
"message": "İşlem açıklaması",
"data": {}
}
AlanTipAçıklama
successbooleanİşlem başarılı ise true, hata durumunda false
messagestringİşlem sonucunu açıklayan mesaj
dataanyİşlem sonucu dönen veri (hata durumunda bulunmayabilir)

Hata Kodları​

HTTP KoduAçıklama
400Eksik veya geçersiz parametre
401Geçersiz veya eksik API anahtarı
403Bu kaynağa erişim yetkiniz bulunmamaktadır
404İstenen kaynak bulunamadı
500Sunucu hatası