Инициация вызова (/callback/)

Протестировать методы API можно на странице интерактивного обозревателя API и без написания кода
Некоторые ресурсы, описанные на странице, по умолчанию могут быть не доступны из-за типа приложения (см. Создание и авторизация приложений)

Ресурс инициации вызова позволяет с помощью API инициировать вызов между номерами. После успешного API-запроса системой вызываются все номера-источники вызова, а после поднятия трубки одним из них начинает вызываться номер назначения.

В ресурсе можно использовать . Необходимо сначала задать их в ресурсе . Затем при запросе на callback их можно использовать вместо параметров запроса через:

  1. “@{VAR_NAME}” , если это extension_id в url запроса

  2. “$cv({VAR_NAME})” , если это параметр в теле запроса

Переменные может использовать только пользователь клиента. См. пример ниже

Описание структур данных

Имя

Тип

Обязательный

Значение по умолчанию

Описание

Имя

Тип

Обязательный

Значение по умолчанию

Описание

allow_public_transfer

boolean

нет

true

Разрешать перевод вызова при звонке на внешний номер

announce_sound_id

long

нет

 

Идентификатор звука, который проиграется при поднятии трубки номером-источником до того, как начнет вызываться номер назначения

call_duration

long

нет

Системное значение

Максимальная продолжительность разговора в секундах

caller_id_name

string

нет



Имя вызывающего абонента. Если значение не будет задано, будет использовано имя внутреннего номера, от имени которого инициируется вызов

caller_id_number

string

нет



Номер вызывающего абонента. Если значение не будет задано, будет использован внутренний номер, от имени которого инициируется вызов

src_ani

string

нет

 

Номер из списка внешних номеров клиента, который будет передан в качестве АОНа при вызове внешнего номера или номеров из массива src_num. Не передается на внутренние номера. В случае указания номера не из списка внешних номеров клиента (DID) src_ani будет проигнорирован

dst_ani

string

нет



Номер из списка внешних номеров клиента, который будет передан в качестве АОНа при вызове внешнего номера из dst_num. Не передается на внутренние номера. В случае указания номера не из списка внешних номеров клиента (DID) dst_ani будет проигнорирован

dst_announce_sound_id

long

нет



Идентификатор звука, который проиграется при поднятии трубки на вызываемой стороне, будет слышен всем участникам разговора. Проигрывается только для звонков по внешней сети.

dst_dtmf

string

нет



Последовательность DTMF-тонов, которые будут переданы номеру dst_num, как только вызов dst_num будет отвечен. Допустимы цифры 0123456789*#, а также символы W и w. W – пауза длиной в одну секунду, w – пауза длинной в полсекунды

dst_num

string

да



Номер назначения вызова. В отличии от src_num, тут отрабатывают все правила входящего вызова для номера и могут быть указаны очереди, голосовое меню (IVR)

src_caller_id_name

string

нет



Имя вызывающего абонента, которое будет передано на номера из src_num. Если значение не будет задано, будет использован параметр caller_id_name. Если caller_id_name не задан, будет использовано имя внутреннего номера, от имени которого инициируется вызов

src_caller_id_number

string

нет



Номер вызывающего абонента, который будет передан на номера из src_num. Если значение не будет задано, будет использован параметр caller_id_number. Если caller_id_number не задан, будет использован внутренний номер, от имени которого инициируется вызов

src_num

string

да



Массив номеров-источников вызова, например, список внутренних и/или мобильных номеров. Тут не могут быть указаны внутренние номера типа "IVR". Номера из массива вызываются без учета правил входящего вызова

transfer_after_dst_hangup

string

нет



Номер, на который система переведет вызов, если сторона инициации вызова src_num останется последней в разговоре

transfer_after_src_hangup

string

нет



Номер, на который система переведет вызов, если сторона назначения dst_num останется последней в разговоре

callback_rate_limit

int

нет

 

У каждого клиента существует ограничение на количество вызовов - calls limit. В случае, если необходимо, чтобы callback не занимал весь лимит звонков, а только % вызовов от calls limit - необходимо указать callback_rate_limit от 0% до 100%, чем больше %- тем выше вероятность, что callback не пройдет, а при 100% callback точно отобьется ошибкой callback_rate_limit_exceeded

variables

dict

нет

 

Динамические переменные, подробнее читать тут: (Динамические переменные, переданные в callback)

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

{   "dst_num": "000116644",   "src_num": [     "341"   ],   "variables": {"autoanswer": "4",    "testvar": "'testval"} }

 

wait_for_pickup

int

нет



Системное значение

Максимальное время ожидания снятия трубки в секундах. Сначала ожидается снятие трубки номерами-источниками вызова, затем ожидается снятие трубки на номере назначения dst-num. Если на dst-num проиграется early-media, то с момента проигрывания early-media возобновится таймер времени ожидания wait_for_pickup. Если за время wait_for_pickup трубка не будет снята, вызов не будет совершен (в случае передачи параметров transfer_after_* рекомендуется дожидаться истечения таймеров wait_for_pickup)

call_api_id

string

да



Возвращается в ответ на запрос callback. Используется для возможности последующего управления вызовом

call_id

string

да



Возвращается в ответ на запрос callback и является его идентификатором. По нему можно фильтровать события, относящиеся к данному callback, получать отчеты по его результатам. Является синонимом call_uuid для ресурса истории вызовов

Результат callback
После инициации вызова можно осуществить запрос на ресурс “История вызовов (/call_history/, /calls/)”:
GET /client/{client_id}/call_history/{call_uuid}
указав полученный в результате инициации вызова "call_id" в качестве "{call_uuid}"

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

Использовать уже заданные в ресурсе переменные :

  • ext_id = 34535

  • caller_id_name = Ivan

Ресурсы раздела "Внутренний номер"

POST /extension/{extension_id}/callback/

Инициировать вызов. Указанный в пути extension_id должен быть идентификатором внутреннего номера типа ‘phone

Параметры URL

Имя

Тип

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

Обязательный

Имя

Тип

Обязательный

см “Описание структур данных” выше

см “Описание структур данных” выше

см “Описание структур данных” выше

Поля ответа

Имя

Тип

Имя

Тип

call_api_id

string

call_id

string