Тип 4 - входящий вызов¶
Описание работы входящего вызова на примере OnCallEvent
¶
Входящий вызов может быть инициирован в случае входящего SIP-звонка. В этом случае на бэкенд сервере вызывается REST-метод OnCallEvent
, который несет информацию о входящем звонке.
Из этой диаграммы видно, что /OnCallEvent
сначала идет на бэкенд сервер на шаге 2, а затем соответствующее событие входящего звонка обрабатывает клиент на шаге 4.
Пример:
POST /rest/my_api/OnCallEvent HTTP/1.1
Accept: application/json
Content-Type: application/json;charset=UTF-8
User-Agent: Java/1.8.0_111
Host: 192.168.1.101
Connection: keep-alive
Content-Length: 3614
{
"nodeId" : "ah20GKYnbYKxjJmdh1zDs6cllWkn0Q0t@46.101.108.90",
"appKey" : "defaultApp",
"sessionId" : "/8.8.8.8:56046/46.101.108.90:8443",
"callId" : "pbx-8BD6EE910B71BE609010-3434@h79n40.etc.tario.ru",
"incoming" : true,
"status" : "PENDING",
"caller" : "PPP009",
"callee" : "PPP005",
"hasAudio" : true,
"hasVideo" : false,
"mediaProvider" : "WebRTC",
"isMsrp" : false,
"holdForTransfer" : false
}
HTTP/1.1 200 OK
Date: Tue, 28 Feb 2017 17:35:44 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-Length: 3656
Connection: close
Content-Type: application/json
{
"nodeId" : "ah20GKYnbYKxjJmdh1zDs6cllWkn0Q0t@46.101.108.90",
"appKey" : "defaultApp",
"sessionId" : "/8.8.8.8:56046/46.101.108.90:8443",
"callId" : "pbx-8BD6EE910B71BE609010-3434@h79n40.etc.tario.ru",
"incoming" : true,
"status" : "PENDING",
"caller" : "PPP009",
"callee" : "PPP005",
"hasAudio" : true,
"hasVideo" : false,
"mediaProvider" : "WebRTC",
"isMsrp" : false,
"holdForTransfer" : false
}
Обработка ошибок¶
Если бэкенд сервер возвращает ошибку, то на клиента транслируется событие SESSION_STATUS.WARN
, а инициатору вызова (в данном случае SIP-стороне) возвращается статус ошибки.
Пример:
POST /rest/my_api/OnCallEvent HTTP/1.1
Accept: application/json
Content-Type: application/json;charset=UTF-8
User-Agent: Java/1.8.0_111
Host: 192.168.1.101
Connection: keep-alive
Content-Length: 3639
{
"nodeId" : "ah20GKYnbYKxjJmdh1zDs6cllWkn0Q0t@46.101.108.90",
"appKey" : "defaultApp",
"sessionId" : "/8.8.8.8:56046/46.101.108.90:8443",
"callId" : "pbx-8BD6EE910B71BE609010-3434@h79n40.etc.tario.ru",
"incoming" : true,
"status" : "PENDING",
"caller" : "PPP009",
"callee" : "PPP005",
"hasAudio" : true,
"hasVideo" : false,
"mediaProvider" : "WebRTC",
"isMsrp" : false,
"holdForTransfer" : false
}