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. Extension Status (Dahili Durumu)
Bir dahilinin anlık kayıt durumunu sorgular.
| Özellik | Değer |
|---|---|
| URL | GET /call/extensionStatus |
| Auth | Bearer Token |
Query Params:
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| pbxId | string | Evet | PBX kimlik numarası |
| extension | string | Evet | Sorgulanacak dahili numarası |
Response (Başarılı):
{
"success": true,
"message": "Dahili durumu başarıyla getirildi",
"data": {
"Status": "OK",
"Address-IP": "192.168.1.100",
"SIP-Useragent": "Obi/4.2.0"
}
}
Response (Hata):
{
"success": false,
"message": "Dahili durumu alınamadı",
"error": "Timeout"
}
2. 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.
| Özellik | Değer |
|---|---|
| URL | POST /call/dialFirst |
| Auth | Bearer Token |
Request Body:
{
"pbxId": 1,
"dialNumber": "05551234567",
"callerId": "02121234567",
"callerExtension": "1001-TESTPBX",
"destination": {
"type": "mobile",
"target": "05559876543"
}
}
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| pbxId | number | Evet | PBX kimlik numarası |
| dialNumber | string | Evet | Aranacak numara |
| callerId | string | Evet | Arayan numara olarak görünecek numara |
| callerExtension | string | Evet | Çağrıyı başlatan dahili numarası |
| destination | object | Evet | Hedef bilgisi |
| destination.type | string | Evet | Hedef tipi: mobile, pi |
| destination.target | string | Evet | Hedef numarası |
| destination.params | object | Hayır | Pi 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"
}
Ö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"
}
}
}
Genel Response Yapısı
Tüm endpointler aşağıdaki formatta JSON response döner:
{
"success": true,
"message": "İşlem açıklaması",
"data": {}
}
| Alan | Tip | Açıklama |
|---|---|---|
| success | boolean | İşlem başarılı ise true, hata durumunda false |
| message | string | İşlem sonucunu açıklayan mesaj |
| data | any | İşlem sonucu dönen veri (hata durumunda bulunmayabilir) |
Hata Kodları
| HTTP Kodu | Açıklama |
|---|---|
| 400 | Eksik veya geçersiz parametre |
| 401 | Geçersiz veya eksik API anahtarı |
| 403 | Bu kaynağa erişim yetkiniz bulunmamaktadır |
| 404 | İstenen kaynak bulunamadı |
| 500 | Sunucu hatası |