Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Парковка и соединение с парковочным лотом выполняется с помощью ресурса

PUT /extension/{extension_id}/valet_park/{call_api_id}

По аналогии с ресурсом управления вызовом

В теле запроса должен быть указан параметр действия (action) и опционально номер слота

в виде:

{ “action”   : “действие” , 

   “slot”    :  “номер слота от 1 до 9 (опционально)”}

Действия по управлению вызовом

Действие

Тип

Описание

park

string

Припарковать вызов. При указании слота вызов будет припаркован в нужный слот. Без указания слота будет выбран случайный слот.

Всего слотов доступно от 1 до 9.

timeout ожидания на парковке- 3 минуты, по истечении этого времени вызов вернется к добавочному, от имени которого произошла парковка.

bridge

string

Соединить текущий вызов с случайным, если слот не указано, либо с указаным слотом, если он задан явно

slots

string

При указании слота- уточняет какой uuid (часть от call_api_id) там припаркован.

Без указания слота ресурс вернет свободные слоты в данный момент.

может быть от 1 до 9

Пример использования:

Входящий звонок(может быть и исходящий - не важно) на добавочный 341- c подпиской на событие answer:

213.170.66.152 - - [04/Jun/2020 13:33:10] "GET /?CalledExtension=022*341@siptest.ringme.ru&CalledExtensionID=34414&CallerExtension=022*200@siptest.ringme.ru&CallerExtensionID=32494&EventType=answer&CallID=c69226e0a64e11eaa0086fd86d94a0e0&CallerIDNum=000117443&CallerIDName=via200t&CalledDID=78123093582&CallStatus=ANSWER&CallFlow=in&CalledNumber=022*341&SubCallID=34414-c8874b88a64e11eaa0406fd86d94a0e0&CallAPIID=3232240860-37b98fb2-a66c-11ea-ae69-6fd86d94a0e0&EventTime=1591266790576760 HTTP/1.1" 200 -

Нам нужно запомнить CallAPIID, по нему будет запрощен ресурс
PUT /extension/{extension_id}/valet_park/{call_api_id}

также этот CallAPIID (3232240860-37b98fb2-a66c-11ea-ae69-6fd86d94a0e0) пригодится, 
если понадобится выяснить стоит ли в данный момент на паркове 
вызов с этим id- часть от call_api_id в виде UUID будет возвращать запрос на действие slots с указанием слота

Если отправить запрос на PUT /extension/{extension_id}/valet_park/{call_api_id}

с телом
{"action": "park", "slot" : "6"}
Если парковочный слот занят - будет ошибка : 'slot already have parked member, slot is full'
Без указания параметра slot- будет парковка в первый свободный слот.


Если вторая сторона разговора будет поставлена в слот ожидания, то на добавочном (где сработал event) 
произойдет окончание разговора.

По второму звоноку (также не важно входящий, исходящий)
Используя {call_api_id} звонка можно сразу узнать есть ли кто-нибудь в слоте (чтобы забриджить с ним, или не делать этого,
если ожидающий вышел), запросить свободные слоты (чтобы узнать какой слот свободный для парковки)

запрос с телом в рамах этого примера:
{"action": "slots", "slot" : "6"}
ответ:
{u'slot': u'6', u'UUID': u'37b98fb2-a66c-11ea-ae69-6fd86d94a0e0'}

Чтобы узнать какие слоты свободные - не нужно указывать слот:
запрос с телом
{"action": "slots"}


call_api_id вызова на парковке:
3232240860-37b98fb2-a66c-11ea-ae69-6fd86d94a0e0
UUID:
           37b98fb2-a66c-11ea-ae69-6fd86d94a0e0
           
Таким образом uuid в слоте и запаркованный вызов можно соотнести.

Чтобы забриджить с конкретным слотом:
{"action": "bridge", "slot" : "6"}

Можно забриджить также со случайным слотом не указывая слот:
 {"action": "bridge"}

  • No labels