Функция Call Interactive позволяет в качестве действия опции контекста IVR инициировать HTTP-запрос на заданный URL и обработать ответ на него. С запросом передается постоянный набор параметров, содержащий информацию о вызове в IVR, эти параметры располагаются в строке запроса (при методе GET) или в теле запроса (при методе POST). URL и метод запросы может быть задан при настройке действия опции контекста IVR.
Конфигурации Call Interactive
Для конфигурации функции Call Interactive требуется указать два параметра: URL, на который системой будет осуществляться запрос и метод (GET или POST).
При выбранном методе GET параметры запроса, содержащие информацию о вызове будут переданы в строке запроса, а при методе POST – в теле запроса.
Параметры запроса
Имя | Тип | Описание |
---|---|---|
EventType |
| Тип события, всегда имеет значение call_interactive |
CallID |
| Уникальный идентификатор вызова. |
CallerIDNum |
| Номер вызывающего абонента. |
CallerIDName |
| Имя вызывающего абонента. |
CalledDID |
| Внешний вызываемый номер. Присутствует, если доступен. |
CalledExtension |
| Номер IVR в расширенном формате (например: |
CalledExtensionID | integer | Идентификатор добавочного IVR в системе |
CallStatus |
| Статус вызова, всегда имеет значение ANSWER |
CallFlow |
| Поток вызовов, всегда имеет значение IN |
CallerExtension |
| Имя добавочного номера, осуществляющий вызов IVR. Присутствует только при внутреннем вызове. |
CallerExtensionID | integer | Идентификатор добавочного номера, осуществляющего вызов IVR. Присутствует только при внутреннем вызове. |
CalledNumber |
| Номер, который набирала вызывающая сторона (может быть внешним номером: |
CallAPIID |
| Идентификатор звонка. Автоматически генерируется и сохраняется на протяжении всего звонка вне зависимости от того, переводится ли он. |
Пример запроса
http://mysite.com/myscript?CalledExtensionID=145&CalledNumber=332&CallID=5205dc5cc5a411e5ab9eb3691b90ea15&CallerIDNum=000%2A306&CallerExtensionID=134&CallerExtension=000%2A306&CallFlow=IN&CalledExtension=000%2A332&CallAPIID=3584705175%3A5205dc5cc5a411e5ab9eb3691b90ea15&CallerIDName=000%2A306&CallStatus=ANSWER
Переменные в строке запроса
В строке запроса могут быть переданы дополнительные параметры, содержащиеся в URL. Эти могут принимать как статические значения, так и значения переменных, заданных в IVR ранее. Для того, чтобы использовать в URL значение переменной, необходимо использовать формат $varname, где varname – это имя требуемой переменной.
Если выбран метод запроса GET, параметры, содержащие информацию о вызове добавятся к уже существующим параметрам URL.
Пример URL со статическими параметрами
http://mysite.com/myscript?param1=value1¶m2=value2
Пример URL с параметрами-переменными
http://mysite.com/myscript?param1=$var¶m2=$var2
Структура ответа
Ответ на запрос Call Interactive не является обязательным и нужен, если требуется совершить какое-либо действие.
Ответ на запрос должен быть сформирован в формате XML и иметь следующую структуру:
<?xml version="1.0" encoding="UTF-8"?> <Response> Action </Response>
где Action может быть одним из перечисленных ниже действий. Допускается до 10 действий включительно в одном ответе.
Варианты действий
Hangup
Немедленно завершает звонок.
<?xml version="1.0" encoding="UTF-8"?> <Response> <Hangup/> </Response>
Pause
Приостанавливает звонок на заданное атрибутом length тега Pause число секунд. Если значение не задано, то по умолчанию принимается 10.
<?xml version="1.0" encoding="UTF-8"?> <Response> <Pause length="15" /> </Response>
SetVar
Задает значение переменной для IVR. Имя переменной должно содержатся в атрибуте name тега SetVar, а значение – содержимым это тега.
<?xml version="1.0" encoding="UTF-8"?> <Response> <SetVar name="transferDestination">09897987</SetVar> </Response>
Jump
Осуществляет переход к заданной опции заданного контекста IVR. Идентификатор контекста и опция задаются атрибутами context и option тега Jump.
<?xml version="1.0" encoding="UTF-8"?> <Response> <Jump context="3" option="start"/> </Response>
SetCallerId
Задает номер вызывающего абонента и имя вызывающего абонента в среде IVR. Номер и имя задаются атрибутами name и number тега SetCaller.
<?xml version="1.0" encoding="UTF-8"?> <Response> <SetCaller name="callerName" number="92992"/> </Response>
PlaySound
Проигрывает звук, имя файла которого задано содержимым тега PlaySound. Имя файла можно получить из API как параметр filename ресурса Sound. Атрибутом where тега PlaySound указывается тип проигрывания звука: foreground или background. При проигрывании типа background возможен ввод цифр в переменную, имя которой указывается в атрибуте digitvar тега PlaySound.
<?xml version="1.0" encoding="UTF-8"?> <Response> <PlaySound where="background" digitvar="transferDestination">ae3d969ccc49e1a7746e0b1ce36ee4176190040c.wav</PlaySound> </Response>
SimpleTransfer
Правило переадресации simple transfer.
Ответ, аналогичный заранее определенному правилу simple transfer.
Возможно указать как один, так и несколько номеров (NUM1,NUM2) разделенных запятой, пробелы не должны присутствовать.
Правило по умолчанию финальное final='yes', в том числе при отсутствии указания final, за исключением случаев, если не указано final="no"
Параметр timeout задает время ожидания ответа вызовов(в секундах). В случае некорректного указания timeout, либо отсутствия данного параметра будет использован системный timeout.
Также, при необходимости, можно добавить параметр early_media="True" (именно в таком формате) в таком случае early media не будет игнорироваться.
<?xml version="1.0" encoding="UTF-8"?> <Response> <SimpleTransfer final="no" timeout="20">NUM1,NUM2</SimpleTransfer> </Response>