WebHooks
Поддерживаемые в текущий момент webhooks, связанные со звонками:
· CHANNEL_CREATE (новый звонок)
· CHANNEL_ANSWER (абонент поднял трубку)
· CHANNEL_DESTROY (звонок завершен)
REST API
/v1/kazoos/accounts/{account_id}/webhooks
Операции
Тип запроса |
Входящие |
Исходящие |
Описание |
GET |
ALL |
Получить список текущих webhooks |
|
PUT |
ANY |
ALL |
Создать новый webhook |
Коды ответов
Успешные коды ответов: 200, 201
Коды ошибок: 400, 401, 404, 415, 500, 503, 504
Примеры
Получить список webhooks
curl -X GET -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks
Cоздать новый webhook
curl -X PUT -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks -d '{"data":{"name":"New Calls", "uri":"http://my.server.com/calls/new.php", "http_verb":"post", "hook":"channel_create", "retries":1}}'
/v1/kazoos/accounts /{account_id}/webhooks/{webhook_id}
Операции
Тип запроса |
Входящие |
Исходящие |
Описание |
GET |
ALL |
Получить webhook с указанным ID |
|
POST |
ANY |
ALL |
Изменить webhook с указанным ID |
DELETE |
ALL |
Удалить webhook с указанным ID |
Коды ответов
Успешные коды ответов: 200, 201
Коды ошибок: 400, 401, 404, 415, 500, 503, 504
Примеры
Получить нужный webhook
curl -X GET -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks/{webhook_id}
Изменить webhook с указанным ID
curl -X POST -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks{webhook_id} -d '{"data":{"name":"New Calls", "uri":"http://my.server.com/calls/new_call.php", "http_verb":"post", "hook":"channel_create", "retries":1}}'
Удалить webhook с указанным ID
curl -X DELETE -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks/{webhook_id}
/v1/kazoos/accounts/{account_id}/webhooks/attempts
Операции
Тип запроса |
Входящие |
Исходящие |
Описание |
GET |
ALL |
Получить список последних обращений к webhooks (может быть полезно при отладке) |
Коды ответов
Успешные коды ответов: 200
Коды ошибок: 400, 401, 404, 415, 500, 503, 504
Примеры
Получить список обращений к webhooks
curl -X GET -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks/attempts
/v1/kazoos/accounts/{account_id}/webhooks/{webhook_id}/attempts
Операции
Тип запроса |
Входящие |
Исходящие |
Описание |
GET |
ALL |
Получить список последних обращений к webhook c указанным ID |
Коды ответов
Успешные коды ответов: 200
Коды ошибок: 400, 401, 404, 415, 500, 503, 504
Примеры
Получить список обращений к webhooks
curl -X GET -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks/{webhook_id}/attempts
В случае необходимости помещения дополнительных (статических) данных в событие, вы должны будете добавить объект “custom_data” в webhook.
Схема работы Виртуальной АТС с плечами звонков:
Пример
сurl -X PUT -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks -d '{"data":{"name":"New Calls", "uri":"http://my.server.com/calls/new.php", "http_verb":"post", "hook":"channel_create", "retries":1, "custom_data": {"account_id": "my_crm_account_id", "screen_pop": true}}}'
После выполнения запроса на создание channel create
сurl -X PUT -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks -d '{"data":{"name":"New Calls", "uri":"http://my.server.com/calls/new.php", "http_verb":"post", "hook":"channel_create", "retries":1}}'
Вы создадите следующее события:
{ "name": "CHANNEL_CREATE", "args": { "Answer-State": "ringing", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "From-Tag": "2630308320-3859921251-67134891-83276323", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "74957410037@213.145.43.44", "Request": "74953699014@213.145.53.135", "From": "74957410037@213.145.43.44", "To": "74953699014@213.145.53.135", "From-Uri": "74957410037@213.145.43.44:5061", "To-Uri": "74953699014@213.145.53.135", "Disposition": "DELAYED NEGOTIATION", "Call-Direction": "inbound", "Timestamp": 63638575004, "Custom-Channel-Vars": { "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb" }, "Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Node": "ecallmgr@logic2.vpbx.local", "Msg-ID": "1471355804008200", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_CREATE", "Event-Category": "call_event" } }
{ "name": "CHANNEL_CREATE", "args": { "Answer-State": "ringing", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "From-Tag": "2630308320-3859921251-67134891-83276323", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "74957410037@213.145.43.44", "Request": "74953699014@213.145.53.135", "From": "74957410037@213.145.43.44", "To": "74953699014@213.145.53.135", "From-Uri": "74957410037@213.145.43.44:5061", "To-Uri": "74953699014@213.145.53.135", "Disposition": "DELAYED NEGOTIATION", "Call-Direction": "inbound", "Timestamp": 63638575004, "Custom-Channel-Vars": { "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb" }, "Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Node": "ecallmgr@logic1.vpbx.local", "Msg-ID": "1471355804008200", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_CREATE", "Event-Category": "call_event" } }
{ "name": "CHANNEL_CREATE", "args": { "Answer-State": "ringing", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "From-Tag": "2630308320-3859921251-67134891-83276323", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "74957410037@213.145.43.44", "Request": "74953699014@213.145.53.135", "From": "74957410037@213.145.43.44", "To": "74953699014@213.145.53.135", "From-Uri": "74957410037@213.145.43.44:5061", "To-Uri": "74953699014@213.145.53.135", "Disposition": "DELAYED NEGOTIATION", "Call-Direction": "inbound", "Timestamp": 63638575004, "Custom-Channel-Vars": { "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb" }, "Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Node": "ecallmgr@logic3.vpbx.local", "Msg-ID": "1471355804008200", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_CREATE", "Event-Category": "call_event" } }
{ "name": "CHANNEL_CREATE", "args": { "Answer-State": "ringing", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Callee-ID-Name": "ALEKSANDR", "Callee-ID-Number": "4953699014", "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "manager2@10222.ztpbx.ru", "Request": "manager2@10222.ztpbx.ru", "From": "74957410037@213.145.43.44:5061", "To": "manager2@10222.ztpbx.ru", "Other-Leg-Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Other-Leg-Destination-Number": "74953699014", "Other-Leg-Caller-ID-Number": "74957410037", "Other-Leg-Caller-ID-Name": "74957410037", "Other-Leg-Direction": "inbound", "Call-Direction": "outbound", "Timestamp": 63638575004, "Custom-Channel-Vars": { "Username": "manager2", "Realm": "10222.ztpbx.ru", "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Owner-ID": "a9b3d008bdeead4a7acc6eb1eef57629", "Authorizing-ID": "a927e4b8c00136011fd86fb72d2bab48", "Inception": "74953699014@213.145.53.135", "Ecallmgr-Node": "ecallmgr@logic3.vpbx.local", "Bridge-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44" }, "Call-ID": "b569f62a-c7c0-4e56-874d-566a311e7b3b", "Node": "ecallmgr@logic3.vpbx.local", "Msg-ID": "1471355804628201", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_CREATE", "Event-Category": "call_event" } }
После выполнения запроса на создание channel answer
сurl -X PUT -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks -d '{"data":{"name":"New Calls", "uri":"http://my.server.com/calls/new.php", "http_verb":"post", "hook":"channel_answer", "retries":1}}'
Вы создадите следующее события:
{ "name": "CHANNEL_ANSWER", "args": { "Answer-State": "answered", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "To-Tag": "354c4108", "From-Tag": "XZ1tcZ909tg1B", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Callee-ID-Name": "ALEKSANDR", "Callee-ID-Number": "4953699014", "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "manager2@10222.ztpbx.ru", "Request": "manager2@10222.ztpbx.ru", "From": "74957410037@213.145.43.44:5061", "To": "manager2@10222.ztpbx.ru", "From-Uri": "74957410037@213.145.53.135", "To-Uri": "manager2@213.145.43.66:30148", "Other-Leg-Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Other-Leg-Destination-Number": "74953699014", "Other-Leg-Caller-ID-Number": "74957410037", "Other-Leg-Caller-ID-Name": "74957410037", "Other-Leg-Direction": "inbound", "Call-Direction": "outbound", "Timestamp": 63638575007, "Custom-Channel-Vars": { "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Channel-Authorized": "true", "Username": "manager2", "Realm": "10222.ztpbx.ru", "Owner-ID": "a9b3d008bdeead4a7acc6eb1eef57629", "Authorizing-ID": "a927e4b8c00136011fd86fb72d2bab48", "Inception": "74953699014@213.145.53.135", "Ecallmgr-Node": "ecallmgr@logic3.vpbx.local", "Bridge-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44" }, "Call-ID": "b569f62a-c7c0-4e56-874d-566a311e7b3b", "Node": "ecallmgr@logic3.vpbx.local", "Msg-ID": "1471355807848204", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_ANSWER", "Event-Category": "call_event" } }
{ "name": "CHANNEL_ANSWER", "args": { "Answer-State": "answered", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "To-Tag": "SUvQ5j6jNQQpD", "From-Tag": "2630308320-3859921251-67134891-83276323", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Callee-ID-Name": "ALEKSANDR", "Callee-ID-Number": "4953699014", "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "74957410037@213.145.43.44", "Request": "74953699014@213.145.53.135", "From": "74957410037@213.145.43.44", "To": "74953699014@213.145.53.135", "From-Uri": "74957410037@213.145.43.44:5061", "To-Uri": "74953699014@213.145.53.135", "Disposition": "failure", "Call-Direction": "inbound", "Timestamp": 63638575007, "Custom-Channel-Vars": { "Inception": "74953699014@213.145.53.135", "Authorizing-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Originator-Type": "PSTN", "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Fetch-ID": "95eb5099-fa56-42f7-b051-8ad7117d41c4", "Channel-Authorized": "true", "Reseller-Billing": "limits_disabled", "Reseller-ID": "368a97f7ebc974687d6aa7364a0ecce3", "Account-Billing": "limits_disabled", "Global-Resource": "false", "Ecallmgr-Node": "ecallmgr@logic3.vpbx.local", "Bridge-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44" }, "Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Node": "ecallmgr@logic3.vpbx.local", "Msg-ID": "12471355807868203", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_ANSWER", "Event-Category": "call_event" } }
После выполнения запроса на создание channel destroy
сurl -X PUT -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/webhooks -d '{"data":{"name":"New Calls", "uri":"http://my.server.com/calls/new.php", "http_verb":"post", "hook":"channel_destroy", "retries":1}}'
Вы создадите следующее события:
{ "name": "CHANNEL_DESTROY", "args": { "Answer-State": "hangup", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "To-Tag": "354c4108", "From-Tag": "XZ1tcZ909tg1B", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Callee-ID-Name": "ALEKSANDR", "Callee-ID-Number": "4953699014", "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "manager2@10222.ztpbx.ru", "Request": "manager2@10222.ztpbx.ru", "From": "74957410037@213.145.43.44:5061", "To": "manager2@10222.ztpbx.ru", "From-Uri": "74957410037@213.145.53.135", "To-Uri": "manager2@213.145.43.66:30148", "Ringing-Seconds": "0", "Billing-Seconds": "4", "Duration-Seconds": "7", "Remote-SDP": "v=0\r\no=- 7 2 IN IP4 213.145.43.66\r\ns=CounterPath eyeBeam 1.5\r\nc=IN IP4 213.145.43.66\r\nt=0 0\r\nm=audio 57790 RTP/AVP 8 101\r\na=rtpmap:101 telephone-event/8000\r\na=fmtp:101 0-15\r\na=oldmediaip:10.100.0.64\r\na=oldmediaip:10.100.0.64\r\n", "User-Agent": "eyeBeam release 1102u stamp 52345", "Hangup-Code": "sip:200", "Hangup-Cause": "NORMAL_CLEARING", "Disposition": "ANSWER", "Other-Leg-Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Other-Leg-Destination-Number": "74953699014", "Other-Leg-Caller-ID-Number": "74957410037", "Other-Leg-Caller-ID-Name": "74957410037", "Other-Leg-Direction": "inbound", "Call-Direction": "outbound", "Timestamp": 63638575011, "Custom-Channel-Vars": { "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Channel-Authorized": "true", "Username": "manager2", "Realm": "10222.ztpbx.ru", "Owner-ID": "a9b3d008bdeead4a7acc6eb1eef57629", "Authorizing-ID": "a927e4b8c00136011fd86fb72d2bab48", "Inception": "74953699014@213.145.53.135", "Ecallmgr-Node": "ecallmgr@logic3.vpbx.local", "Bridge-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44" }, "Call-ID": "b569f62a-c7c0-4e56-874d-566a311e7b3b", "Node": "ecallmgr@logic3.vpbx.local", "Msg-ID": "1471355811908194", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_DESTROY", "Event-Category": "call_event" } }
{ "name": "CHANNEL_DESTROY", "args": { "Answer-State": "hangup", "Switch-URI": "sip:213.145.53.152:11000", "Switch-URL": "sip:mod_sofia@213.145.53.152:11000", "To-Tag": "SUvQ5j6jNQQpD", "From-Tag": "2630308320-3859921251-67134891-83276323", "Custom-SIP-Headers": { "X-AUTH-IP": "213.145.43.44" }, "Callee-ID-Name": "ALEKSANDR", "Callee-ID-Number": "4953699014", "Caller-ID-Name": "74957410037", "Caller-ID-Number": "74957410037", "Media-Server": "fs5.vpbx.ztel.ru", "Presence-ID": "74957410037@213.145.43.44", "Request": "74953699014@213.145.53.135", "From": "74957410037@213.145.43.44", "To": "74953699014@213.145.53.135", "From-Uri": "74957410037@213.145.43.44:5061", "To-Uri": "74953699014@213.145.53.135", "Ringing-Seconds": "0", "Billing-Seconds": "4", "Duration-Seconds": "7", "Remote-SDP": "v=0\r\no=- 1471355804 1471355804 IN IP4 213.145.43.44\r\ns=-\r\nc=IN IP4 213.145.43.44\r\nt=0 0\r\nm=audio 28146 RTP/AVP 8 101\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:101 telephone-event/8000\r\na=fmtp:101 0-15\r\na=silenceSupp:off - - - -\r\n", "User-Agent": "MERA MVTS3G v.4.4.0-20", "Hangup-Code": "sip:200", "Hangup-Cause": "NORMAL_CLEARING", "Disposition": "SUCCESS", "Other-Leg-Call-ID": "b569f62a-c7c0-4e56-874d-566a311e7b3b", "Other-Leg-Destination-Number": "manager2", "Other-Leg-Caller-ID-Number": "74957410037", "Other-Leg-Caller-ID-Name": "74957410037", "Other-Leg-Direction": "outbound", "Call-Direction": "inbound", "Timestamp": 63638575011, "Custom-Channel-Vars": { "Inception": "74953699014@213.145.53.135", "Authorizing-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Originator-Type": "PSTN", "Account-ID": "39260d3b2ee89bdfdc9d2e05a05159bb", "Fetch-ID": "95eb5099-fa56-42f7-b051-8ad7117d41c4", "Channel-Authorized": "true", "Reseller-Billing": "limits_disabled", "Reseller-ID": "368a97f7ebc974687d6aa7364a0ecce3", "Account-Billing": "limits_disabled", "Global-Resource": "false", "Ecallmgr-Node": "ecallmgr@logic3.vpbx.local", "Bridge-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44" }, "Call-ID": "e051c7f663b911e6ab65000423b2f604@213.145.43.44", "Node": "ecallmgr@logic3.vpbx.local", "Msg-ID": "1471355811908194", "App-Version": "0.8.0", "App-Name": "ecallmgr", "Event-Name": "CHANNEL_DESTROY", "Event-Category": "call_event" } }