Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning

Мы обновили документацию, актуальная версия страницы доступна по ссылке: Голосовое меню (/ivr/)

Добавочные номера типа ivr служат для настройки маршрутизации звонков внутри АТС с использованием информации, вводимой клиентом на клавиатуре телефона с помощью тонального набора.

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

Звуковые файлы, которые необходимы для настройки голосового приветствия, загружаются в ресурс sound.

Важные понятия:

  • Контекст. Представляет собой заранее сформированный набор правил, на которые можно сослаться в настройках. Каждый контекст как минимум содержит  опции:
    1. start: описывает действия при вхождении в контекст 
    2. timeout: описывает действия при наступлении таймаута (клиент не сделал никакого выбора в течении заданного промежутка времени)
    3. invalid: действия, наступающие при выборе клиентом опции, которая не сконфигурирована 
    В дополнении к обязательным опциям контекста могут быть добавлены дополнительные: например, что делать при наборе клиентом последовательности "100".
    Все  опции по умолчанию выполняют действие hangup (повесить трубку) и это действие должно быть переопределено для задания необходимой логики.
    За IVR закреплен так называемый "entry_context" - в него попадает вызов после прихода в голосовое меню. Его еще можно назвать главным контекстом
  • 'background'/'foreground' тип звучания голосового приветствия. В случае "background" система готова принимать тональный набор в любой момент, а 'foreground' обязывает пользователя прослушать запись до конца и лишь после этого делать выбор(если возможность такого выбора сконфигурирована)

Table of Contents

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

Базовые параметры (ivr)

Имя

Тип

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

Значение По УмолчаниюОписание

entry_context

integer

нет

 

идентификатор главного контекста

lifetime

integer

нет

 


время (в секундах) по истечении которого происходит принудительный выход из IVR

lifetime_exp_action

string

нет

 


Действия при выходе из IVR по наступлению lifetime

  • 'transfer' - перевод звонка (параметр lifetime_exp_transfer_dst)
  • 'hangup' - повесить трубку

lifetime_exp_transfer_dst

string

нет

 

Переадресация на указанный номер при истечении lifetime и lifetime_exp_action='transfer'

sleep_time

integer

нет

 


время (в миллисекундах) до начала выполнения любых действий после попадания вызова в ivr (может быть полезно, чтобы избегать выпадания первых слов в голосовом приветствии после установления соединения)

Контекст (context)

Имя

Тип

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

Значение По УмолчаниюОписание

timeout

integer

нет

5000время (в миллисекундах) ожидания начала набора после выполнения последнего правила в опции контекста. По истечении уход в опцию timeout

allow_any_dial

boolean

нет

falseпозволен ли донабор любого добавочного клиента

inter_digit_timeout

integer

нет

2000время (в миллисекундах) ожидания следующей цифры. По истечении набор считается завершенным.  Например, при "digit_len": 3,  набор "30" будет принят по прошествии  inter_digit_timeout

name

string

да

 

имя контекста

digit_len

integer

нет


длина добавочного клиентапосле набора указанного количества цифр, ввод считается завершенным (без необходимости ожидания "inter_digit_timeout"). Также определяет максимальную длину возможного набора клиентом. Например, "digit_len": 3 позволяет набрать "7", "22", "300", но не дает возможности выбора "4000"

Опция контекста (context_option)

Имя

Тип

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

Значение По УмолчаниюОписание

digits

string

да

 


Добавляет к стандартным опциям конеткста (start,timout,invalid), пользовательскую опцию. Например, значение "2" задаст возможность обработки ввода цифры "2" после попадания в контекст

Правило опции контекста (context_option_rule)

Имя

Тип

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

Значение По УмолчаниюОписание
digits

action

string

нет

 Проговорить указанные цифры (методом play_digits_method), обязателен при action= 'play_digits'

sound

integer

нет

 Идентификатор звукового файла, который необходимо проиграть, обязателен при action= 'play_sound'

sound_type

string

нет

 

Обязателен при наличии идентификтора sound. Может принимать значения:

  • 'background' пользователь может сделать донабор, пока звучит приветствие
  • 'foreground' пользователь должен прослушать приветствие до конца

play_digits_method

string

нет

 

Обязателен при установленной опции digits. Может быть:

  • 'pronounced' проговорить цифры как одно число
  • iterated' - проговорить цифры последовательно одна за другой

interval

integer

нет

 правило выполняется только в этом временном интервале

caller_id_action

string

нет

 

определяет метод анализа источника вызова caller_id:

  • 'matches' должен совпадать (caller_id должен быть задан)
  • 'not_matches' должен не совпадать (caller_id должен быть задан)
  • 'anonymous' источник скрыт
  • 'any' любой источник

caller_id

string

нет

 Правило будет работать только для вызовов, источник которых определяется этим полем. Поле заполняется в виде регулярного выражения PCRE. Например: "^(\+|)7812" будет соответствовать всем источникам, начинающимся на "+7812" или "7812"

context_option

string

нет

 

Определяет опцию контекста, в которую нужно перейти, при action='jump_to_context'

silence_time

integer

нет

 Время (в миллисекундах) отсутствия каких-либо звуков со стороны АТС, обязателен при action= 'play_silence'

context

integer

нет

 Определяет идентификатор другого контекста, в который нужно перейти, обязателен при action='jump_to_context'

transfer_dst

string

нет

 Переадресация на указанный номер. Если нужна переадресация на несколько номеров одновременно (одновременный вызов), то эти номера перечисляются через пробел. Обязателен для action='transfer'

set_variable_name

string

нет

 

Имя переменной, которая должна быть установлена. Должно начинаться с латинской буквы, может содержать латинские буквы, цифры, а также символы подчеркивания. Обязателен для action='set_variable

set_variable_value

string

нет

 Значение переменной, которая должна быть установлена. Обязателен для action='set_variable'match_variable_namestringнет Имя переменной IVR, значение которой будет сравниваться со значением, заданным параметром match_variable_value. Если значения совпадут, то правило выполнится. Сравниваемая переменная может быть установлена системой, см. раздел "Предустановленные переменные в IVR", либо задана правилом опции контекста типа set_variable.match_variable_valuestringнет Значение, которое будет сравниваться со значением переменной, имя которой задано параметром match_variable_name. Если значения совпадут, то правило выполнится. Обязателен, если задан параметр match_variable_name.

transfer_variable

string

нет

 Имя переменной, значение которой будет использовано в качестве номера для переадресации. Если переменная не установлена, то действие не выполняется. Переменная может быть установлена с помощью действия set_variable, либо с помощью функции Call Interactive. Обязателен при action= 'transfer_from_variable'

call_interactive_url

string

нет

 URL, на который будет осуществляться HTTP-запрос функцией Call Interactive. Должен начинаться с http:// или c https://. Обязателен для action='call_interactive'

call_interactive_method

string

нет

 Метод, которым будет осуществляться HTTP-запрос функцией Call Interactive . Может принимать значение 'GET' или 'POST'. Обязателен для action='call_interactive'

call_interactive_timeout

integer

нет

 Время в секундах, в течение которого система будет ожидать ответ на HTTP-запрос функции Call Interactive. Если вызываемый URL не вернул ответ по истечении этого времени, то выполняется следующее правило.

action

string

да

 

Непосредственно определяет, что нужно сделать в этом правиле:

  • 'transfer' - перевод звонка (параметр transfer_dst)
  • 'hangup' - повесить трубку
  • 'play_sound' - проиграть приветствие (параметр sound и sound_type)
  • 'play_silence' - тишина в background формате (параметр silence_time).
  • 'jump_to_context' - перейти в другой контекст (параметр context и context_option)
  • 'play_digits' - проиграть число (параметр digits и play_digits_method)
  • 'set_variable' - установить переменную в канале (параметры set_variable_name и set_variable_value).
  • 'transfer_from_variable- перевод звонка на номер, содержащийся в переменной (параметр transfer_variable)
  • 'call_interactive' - функция Call Interactive – осуществить HTTP-запрос на определенный URL (параметры call_interactive_url и call_interactive_method)

...

Имя переменнойОписание
called_didПубличный номер (DID), на который пришел вызов в систему. Если вызов локальный, переменная содержит номер IVR без префикса клиента.

 

Пример

Для клиента с уникальным идентификатором 12, нужно создать IVR с номером "071" при попадании в который действуют правила:

  • Проиграть foreground музыкальный файл "advertising.wav" 1 раз
  • Проиграть background музыкальный файл "hello.wav"  и в случае отсутствия выбора клиента автоматически переводить на добавочный 050
  • При наборе "1" перевод на мобильный +7(987)6543210
  • При наборе "2" перевод на добавочный 002
  • Позволять прямой набор трехзначных добавочных номеров

Действия:

...

Используя ресурс  sound,  нужно загрузить файл  hello.wav и advertising.wav
 

 

user@host$ curl -i -X POST -F file=@hello.wav -F"title=мой файл приветствия" -H"Authorization: Bearer TSyAxXtAsbE9Kl0iAVGG6LmnfEte8X"https://host.domain/api/ver1.0/client/12/sound/
HTTP/1.1 100 Continue
HTTP/1.1 201 CREATED
Server: nginx/1.8.0
Date: Tue, 11 Aug 2015 09:50:41 GMT
Content-Type: application/json
Content-Length: 150
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
Access-Control-Allow-Headers: Content-Type, api_key, Authorization
{"id": 51, "client_id": 12, "title""мой файл приветствия"}
 
user@host$ curl -i -X POST -F file=@advertising.wav -F"title=мой файл рекламы" -H"Authorization: Bearer TSyAxXtAsbE9Kl0iAVGG6LmnfEte8X"https://host.domain/api/ver1.0/client/12/sound/
HTTP/1.1 100 Continue
HTTP/1.1 201 CREATED
Server: nginx/1.8.0
Date: Tue, 11 Aug 2015 09:50:41 GMT
Content-Type: application/json
Content-Length: 150
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
Access-Control-Allow-Headers: Content-Type, api_key, Authorization
{"id": 52, "client_id": 12, "title""мой файл рекламы"}

идентификаторы новых файлов: hello.wav "id": 51advertising.wav "id": 52

...

Используя ресурс  extension,  создать добавочный, типа "ivr"

метод
ресурс
данные
ответ
POST
client/@me/extension/

{
"status": "active",
"name": "071",
"label": "тестовый IVR",
"type": "ivr"
}

 

{
"status": "active",
"name": "000*071",
"extra_params": null,
"label": "тестовый IVR",
"client_id": 12,
"extension_group_id": null,
"type": "ivr",
"id": 204
}

Идентификатор нового добавочного "id": 204

...

Создаем контекст, который будет являться главным (entry_context):

метод
ресурс
данные
ответ
POST
/extension/204/ivr/context/

 {

"digit_len": 3,
"allow_any_dial": true,
"inter_digit_timeout": 2000,
"name": "Основной контекст",
"timeout": 5000
}

{
"name": "Основной контекст",
"inter_digit_timeout": 2000,
"timeout": 5000,
"allow_any_dial": true,
"id": 1,
"digit_len": 3
}

Идентификатор контекста "id": 1

Теперь можно привязать этот контекст ,как главный к нашему IVR, заодно   указываем "sleep-time", позволяющий задать паузу от прихода вызова в IVR до начала каких-либо действий контекста "entry_context"

метод
ресурс
данные
ответ
PUT
extension/204/ivr/

{

"sleep_time": 5000,
"entry_context": 1
}

{
"lifetime_exp_transfer_dst": null,
"lifetime_exp_action": "hangup",
"lifetime": 1800,
"sleep_time": 5000,
"entry_context": 1
}

Как отмечалось ранее, каждый контекст уже имеет опцию start.  Сконфигурирем его для проигравания foreground музыкального файла "advertising.wav"

...

метод

...

ресурс

...

данные

...

ответ

...

да


Непосредственно определяет, что нужно сделать в этом правиле:

  • 'transfer' - выполнить перевод вызова (сделать переадресацию) на номер(а) из transfer_dst. Максимально возможное количество номеров переаlресации – 10, для одновременной переадресации на большее количество номеров следует использовать действие simple_transfer.
  • 'simple_transfer' - перевод звонка (сделать переадресацию) на номер(а) из параметра transfer_dst. При данном типе переадресации правила входящего вызова для перечисленных в transfer_dst добавочных номеров не выполняются.
  • 'hangup' - повесить трубку
  • 'play_sound' - проиграть приветствие (параметр sound и sound_type)
  • 'play_silence' - тишина в background формате (параметр silence_time).
  • 'jump_to_context' - перейти в другой контекст (параметр context и context_option)
  • 'play_digits' - проиграть цифры (параметр digits и play_digits_method)
  • 'play_digits_from_variable' - проиграть цифры, содержащиеся в переменной (параметр play_digits_variable и play_digits_method)
  • 'record_digits' - записать набор цифр в переменную (параметры record_digits_variable, record_digits_max и record_digits_sound)
  • 'set_variable' - установить переменную в канале (параметры set_variable_name и set_variable_value).
  • 'transfer_from_variable- перевод звонка на номер, содержащийся в переменной (параметр transfer_variable)
  • 'call_interactive' - функция Call Interactive – осуществить HTTP-запрос на определенный URL (параметры call_interactive_url и call_interactive_method)
  • 'set_caller_id_number' -установить номер звонящего для дальнейших переадресаций из IVR (параметр caller_id_number)
  • 'set_caller_id_name' - установить имен звонящего для дальнейших переадресаций из IVR (параметр caller_id_name)
  • 'quality_rate' - установить правило оценки качества разговора,  основные параметры для работы этого действия: sound и max_rate
  • 'voice_helper' - установить правило голосовой навигации,  основные параметры для работы этого действия: soundvoice_helper_digits_maxvoice_helper_rules, voice_helper_timeout.  Описание правила и параметров доступны на отдельной странице speech to text, пример использования доступен на странице Голосовая навигация

digits

string

нет


Проговорить указанные цифры (методом play_digits_method), обязателен при action= 'play_digits'

sound

integer

нет


Идентификатор звукового файла, который необходимо проиграть, обязателен при action= 'play_sound'

sound_type

string

нет


Обязателен при наличии идентификтора sound. Может принимать значения:

  • 'background' пользователь может сделать донабор, пока звучит приветствие
  • 'foreground' пользователь должен прослушать приветствие до конца

play_digits_method

string

нет


Обязателен при установленной опции digits. Может быть:

  • 'pronounced' проговорить цифры как одно число
  • iterated' - проговорить цифры последовательно одна за другой

interval

integer

нет


правило выполняется только в этом временном интервале

caller_id_action

string

нет


определяет метод анализа источника вызова caller_id:

  • 'matches' должен совпадать (caller_id должен быть задан)
  • 'not_matches' должен не совпадать (caller_id должен быть задан)
  • 'anonymous' источник скрыт
  • 'any' любой источник

caller_id

string

нет


Правило будет работать только для вызовов, источник которых определяется этим полем. Поле заполняется в виде регулярного выражения PCRE. Например: "^(\+|)7812" будет соответствовать всем источникам, начинающимся на "+7812" или "7812"

context_option

string

нет


Определяет опцию контекста, в которую нужно перейти, при action='jump_to_context'

silence_time

integer

нет


Время (в миллисекундах) отсутствия каких-либо звуков со стороны АТС, обязателен при action= 'play_silence'

context

integer

нет


Определяет идентификатор другого контекста, в который нужно перейти, обязателен при action='jump_to_context'

transfer_dst

string

нет


Переадресация на указанный номер. Если нужна переадресация на несколько номеров одновременно (одновременный вызов), то эти номера перечисляются через пробел. Обязателен для action='transfer'

set_variable_name

string

нет


Имя переменной, которая должна быть установлена. Должно начинаться с латинской буквы, может содержать латинские буквы, цифры, а также символы подчеркивания. Обязателен для action='set_variable

set_variable_value

string

нет


Значение переменной, которая должна быть установлена. Обязателен для action='set_variable'
match_variable_namestringнет
Имя переменной IVR, значение которой будет сравниваться со значением, заданным параметром match_variable_value. Если значения совпадут, то правило выполнится. Сравниваемая переменная может быть установлена системой, см. раздел "Предустановленные переменные в IVR", либо задана правилом опции контекста типа set_variable.
match_variable_valuestringнет
Значение, которое будет сравниваться со значением переменной, имя которой задано параметром match_variable_name. Если значения совпадут, то правило выполнится. Обязателен, если задан параметр match_variable_name.

transfer_variable

string

нет


Имя переменной, значение которой будет использовано в качестве номера для переадресации. Если переменная не установлена, то действие не выполняется. Переменная может быть установлена с помощью действия set_variable, record_digits, либо с помощью функции Call Interactive. Обязателен при action= 'transfer_from_variable'

play_digits_variable

string

нет


Имя переменной, значение которой будет использовано для проигрывания цифр. Если переменная не установлена, то действие не выполняется. Переменная может быть установлена с помощью действия set_variable, record_digits, либо с помощью функции Call Interactive. Обязателен при action= 'play_digits_from_variable'

record_digits_variable

string

нет


Имя переменной, в которую будут записаны введённые цифры. Обязателен при action= 'record_digits'

record_digits_max

integer

нет


Максимальное количество введённый цифр, который будут записаны в переменную. Обязателен при action= 'record_digits'
max_rateintegerнет5Максимальная оценка разговора, параметр, только для действия quality_rate

record_digits_sound

integer

нет


Идентификатор звукового файла, который может быть проигран перед записью ввёденных цифр в переменную.

call_interactive_url

string

нет


URL, на который будет осуществляться HTTP-запрос функцией Call Interactive. Должен начинаться с http:// или c https://. Обязателен для action='call_interactive'

call_interactive_method

string

нет


Метод, которым будет осуществляться HTTP-запрос функцией Call Interactive . Может принимать значение 'GET' или 'POST'. Обязателен для action='call_interactive'

call_interactive_timeout

integer

нет

5Время в секундах, в течение которого система будет ожидать ответ на HTTP-запрос функции Call Interactive. Если вызываемый URL не вернул ответ по истечении этого времени, то выполняется следующее правило.

caller_id_number

string

нет


Номер звонящего для дальнейших переадресаций. Данный параметр может содержать в себе имена переменных, установленных в других действиях ранее, а также предустановленных переменных IVR. Имена переменных указываются в формате ${имя_переменной}. Обязателен при action= 'set_caller_id_number'

caller_id_name

string

нет


Имя звонящего для дальнейших переадресаций. Данный параметр может содержать в себе имена переменных, установленных в других действиях ранее, а также предустановленных переменных IVR. Имена переменных указываются в формате ${имя_переменной}.Обязателен при action= 'set_caller_id_name'
play_sound_from_variablebooleanнетfalse

Для правил play_sound, quality_rate, voice_helper доступен параметр play_sound_from_variable

В этой системной переменной может хранится приветствие, синтезированное с помощью действия text_to_speech в call interactive: Call Interactive#TTS

В случае, если синтезированного приветствия нет, а play_sound_from_variable активен-  будет проигран звуковой файл по-умолчанию, указанный в sound

Предустановленные переменные в IVR
Anchor
ivr_vars
ivr_vars

Имя переменнойОписание
called_didПубличный номер (DID), на который пришел вызов в систему. Если вызов локальный, переменная содержит номер IVR без префикса клиента.
caller_id_nameИмя звонящего
caller_id_numberНомер звонящего


Пример

Для клиента с уникальным идентификатором 12, нужно создать IVR с номером "071" при попадании в который действуют правила:

  • Проиграть foreground музыкальный файл "advertising.wav" 1 раз
  • Проиграть background музыкальный файл "hello.wav"  и в случае отсутствия выбора клиента автоматически переводить на добавочный 050
  • При наборе "1" перевод на мобильный +7(987)6543210
  • При наборе "2" перевод на добавочный 002
  • Позволять прямой набор трехзначных добавочных номеров

Действия:

  1. Используя ресурс  sound,  нужно загрузить файл  hello.wav и advertising.wav
     


    user@host$ curl -i -X POST -F file=@hello.wav -F"title=мой файл приветствия" -H"Authorization: Bearer TSyAxXtAsbE9Kl0iAVGG6LmnfEte8X"https://host.domain/api/ver1.0/client/12/sound/
    HTTP/1.1 100 Continue
    HTTP/1.1 201 CREATED
    Server: nginx/1.8.0
    Date: Tue, 11 Aug 2015 09:50:41 GMT
    Content-Type: application/json
    Content-Length: 150
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
    Access-Control-Allow-Headers: Content-Type, api_key, Authorization
    {"id": 51, "client_id": 12, "title""мой файл приветствия"}
     
    user@host$ curl -i -X POST -F file=@advertising.wav -F"title=мой файл рекламы" -H"Authorization: Bearer TSyAxXtAsbE9Kl0iAVGG6LmnfEte8X"https://host.domain/api/ver1.0/client/12/sound/
    HTTP/1.1 100 Continue
    HTTP/1.1 201 CREATED
    Server: nginx/1.8.0
    Date: Tue, 11 Aug 2015 09:50:41 GMT
    Content-Type: application/json
    Content-Length: 150
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
    Access-Control-Allow-Headers: Content-Type, api_key, Authorization
    {"id": 52, "client_id": 12, "title""мой файл рекламы"}

    идентификаторы новых файлов: hello.wav "id": 51advertising.wav "id": 52

  2. Используя ресурс  extension,  создать добавочный, типа "ivr"

    метод
    ресурс
    данные
    ответ
    POST
    client/@me/extension/

    {
    "status": "active",
    "name": "071",
    "label": "тестовый IVR",
    "type": "ivr"
    }


    {
    "status": "active",
    "name": "000*071",
    "extra_params": null,
    "label": "тестовый IVR",
    "client_id": 12,
    "extension_group_id": null,
    "type": "ivr",
    "id": 204
    }

    Идентификатор нового добавочного "id": 204

  3. Создаем контекст, который будет являться главным (entry_context):

    метод
    ресурс
    данные
    ответ
    POST
    /extension/204/ivr/context/

     {

    "digit_len": 3,
    "allow_any_dial": true,
    "inter_digit_timeout": 2000,
    "name": "Основной контекст",
    "timeout": 5000
    }

    {
    "name": "Основной контекст",
    "inter_digit_timeout": 2000,
    "timeout": 5000,
    "allow_any_dial": true,
    "id": 1,
    "digit_len": 3
    }

    Идентификатор контекста "id": 1

  4. Теперь можно привязать этот контекст ,как главный к нашему IVR, заодно   указываем "sleep-time", позволяющий задать паузу от прихода вызова в IVR до начала каких-либо действий контекста "entry_context"

    метод
    ресурс
    данные
    ответ
    PUT
    extension/204/ivr/

    {

    "sleep_time": 5000,
    "entry_context": 1
    }

    {
    "lifetime_exp_transfer_dst": null,
    "lifetime_exp_action": "hangup",
    "lifetime": 1800,
    "sleep_time": 5000,
    "entry_context": 1
    }


  5. Как отмечалось ранее, каждый контекст уже имеет опцию start.  Сконфигурирем его для проигравания foreground музыкального файла "advertising.wav"

    метод
    ресурс
    данные
    ответ
    POST
    extension/204/ivr/context/1/options/start/rules/

    {
    "sound": 52,
    "sound_type": "foreground",
    "action": "play_sound"
    }

    {
    "digits": null,
    "sound": 52,
    "sound_type": "foreground",
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "silence_time": null,
    "context": null,
    "transfer_dst": null,
    "action": "play_sound",
    "id": 1
    }


     

  6. Далее, по аналогии, укажем воспроизвести  файл  hello.wav в background 

    метод
    ресурс
    данные
    ответ
    POST
    extension/204/ivr/context/1/options/start/rules/

    {
    "sound": 51,
    "sound_type": "background",
    "action": "play_sound"
    }

    {
    "digits": null,
    "sound": 51,
    "sound_type": "background",
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "silence_time": null,
    "context": null,
    "transfer_dst": null,
    "action": "play_sound",
    "id": 2
    }


  7. Теперь в  контексте "Основной контекст", добавим возможность обработки выбора "1"

    метод
    ресурс
    данные
    ответ
    POST
    /extension/204/ivr/context/1/options/

    {
    "digits": "1"
    }

    {
    "digits": "1"
    }


  8. И укажем, что хотим делать для выбора "1" (перевод на мобильный +7(987)6543210)

    метод
    ресурс
    данные
    ответ
    POST
     /extension/204/ivr/context/1/options/1/rules/

    {
    "transfer_dst": "+7987654321",
    "action": "transfer"
    }

    {
    "digits": null,
    "sound": null,
    "sound_type": null,
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "silence_time": null,
    "context": null,
    "transfer_dst": "+7987654321",
    "action": "transfer",
    "id": 3
    }


  9. По аналогии добавим вызов добавочного "002" по набору "2" 

    метод
    ресурс
    данные
    ответ
    POST
    /extension/204/ivr/context/1/options/

    {
    "digits": "2"
    }

    {
    "digits": "2"
    }


    метод
    ресурс
    данные
    ответ
    POST
     /extension/204/ivr/context/1/options/
    start
    1/rules/

    {
    "

    sound": 52,
    "sound_type

    transfer_dst": "

    foreground

    002",
    "action": "

    play_sound

    transfer"
    }

    {
    "digits": null,
    "sound":

    52

    null,
    "sound_type":

    "foreground"

    null,
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "silence_time": null,
    "context": null,
    "transfer_dst":

    null

    "002",
    "action":

    "play_sound",
    "id": 1
    }

     

     

    Далее, по аналогии, укажем воспроизвести  файл  hello.wav в background 

    "transfer",
    "id": 4
    }


  10. Осталось в случае отсутствия выбора клиента автоматически переводить на добавочный 050. Как уже отмечалсь, в контектсте есть опция "timeout",  в которой можно задать это действие

    метод
    ресурс
    данные
    ответ
    POST
    extension
     /
    204
    ivr/
    ivr
    144/context/
    1
    2/options/
    start
    timeout/rules/

    {
    "

    sound": 51,
    "sound_type

    transfer_dst": "

    background

    050",
    "action": "

    play_sound

    transfer"
    }

    {
    "digits": null,
    "sound":

    51

    null,
    "sound_type":

    "background"

    null,
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id

    ": null,
    "context_option

    ": null,
    "

    silence

    context_

    time

    option": null,
    "context": null,
    "transfer_dst":

    null

    "050",
    "action": "

    play_sound

    transfer",
    "id":

    2

    5
    }


  11. Теперь в  контексте "Основной контекст", добавим возможность обработки выбора "1"В итоге можно посмотреть все доступные опции контекста:

    метод
    ресурс
    данные
    ответ
    POST
    GET
    /extension/204/ivr/context/1/options
    /
    /


    [
    {
    "digits": "start"
    },
    {
    "digits": "timeout"
    },
    {
    "digits": "invalid"
    },
    {
    "digits": "

    1

    2"
    },
    {
    "digits": "1"
    }

  12. И укажем, что хотим делать для выбора "1" (перевод на мобильный +7(987)6543210)

    метод
    ресурс
    данные
    ответ
    POST
     /extension/204/ivr/context/1/options/1/rules/
     

    {
    "transfer_dst": "+7987654321",
    "action": "transfer"
    }

    {
    "digits": null,
    "sound": null,
    "sound_type": null,
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "silence_time": null,
    "context": null,
    "transfer_dst": "+7987654321",
    "action": "transfer",
    "id": 3
    }

  13. По аналогии добавим вызов добавочного "002" по набору "2" 

    метод
    ресурс
    данные
    ответ
    POST
    /extension/204/ivr/context/1/options/

    {
    "digits": "2"
    }

    {
    "digits": "2"
    }

    метод
    ресурс
    данные
    ответ
    POST
     /extension/204/ivr/context/1/options/1/rules/

    {
    "transfer_dst": "002",
    "action": "transfer"
    }

    {
    "digits": null,
    "sound": null,
    "sound_type": null,
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "silence_time": null,
    "context": null,
    "transfer_dst": "002",
    "action": "transfer",
    "id": 4
    }

  14. Осталось в случае отсутствия выбора клиента автоматически переводить на добавочный 050. Как уже отмечалсь, в контектсте есть опция "timeout",  в которой можно задать это действие

    метод
    ресурс
    данные
    ответ
    POST
     /ivr/144/context/2/options/timeout/rules/

    {
    "transfer_dst": "050",
    "action": "transfer"
    }

    {
    "digits": null,
    "sound": null,
    "sound_type": null,
    "play_digits_method": null,
    "interval": null,
    "caller_id_action": "any",
    "caller_id": null,
    "context_option": null,
    "context": null,
    "transfer_dst": "050",
    "action": "transfer",
    "id": 5
    }

  15. В итоге можно посмотреть все доступные опции контекста:

    метод
    ресурс
    данные
    ответ
    GET
    /extension/204/ivr/context/1/options/

     

    [
    {
    "digits": "start"
    },
    {
    "digits": "timeout"
    },
    {
    "digits": "invalid"
    },
    {
    "digits": "2"
    },
    {
    "digits": "1"
    }
    ]

Ресурсы

Раздел "добавочный"

PUT /extension/{extension_id}/ivr/

Обновить ivr configuration

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

lifetime_exp_transfer_dst

string

нет

lifetime

integer

нет

sleep_time

integer

нет

entry_context

integer

нет

lifetime_exp_action

string

нет

Поля ответа

Имя

Тип

lifetime_exp_transfer_dst

string

lifetime

integer

sleep_time

integer

entry_context

integer

lifetime_exp_action

string

...


  1. ]



Ресурсы

Раздел "добавочный"

PUT /extension/{extension_id}/ivr/

Обновить ivr configuration

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

lifetime_exp_action

string

нет

entry_context

integer

нет

lifetime_exp_transfer_dst

string

нет

vm_enabled

boolean

нет

vm_greeting

integer

нет

lifetime

integer

нет

vm_attach_file

boolean

нет

sleep_time

integer

нет

vm_mailto

string

нет

Поля ответа

Имя

Тип

lifetime_exp_action

string

entry_context

integer

lifetime_exp_transfer_dst

string

vm_enabled

boolean

vm_greeting

integer

lifetime

integer

vm_attach_file

boolean

sleep_time

integer

vm_mailto

string

GET /extension/{extension_id}/ivr/

Получить ivr configuration

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

lifetime_exp_action

string

entry_context

integer

lifetime_exp_transfer_dst

string

vm_enabled

boolean

vm_greeting

integer

lifetime

integer

vm_attach_file

boolean

sleep_time

integer

vm_mailto

string

...

POST /extension/{extension_id}/ivr/context/

Добавить ivr context

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

timeout

integer

нет

allow_any_dial

boolean

нет

inter_digit_timeout

integer

нет

name

string

да

digit_len

integer

нет

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

timeout

integer

allow_any_dial

boolean

id

integer

digit_len

integer

GET /extension/{extension_id}/ivr/context/

Получить ivr context list

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

timeout

integer

allow_any_dial

boolean

id

integer

digit_len

integer

...

PUT /extension/{extension_id}/ivr/context/{context_id}

Обновить ivr context

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Параметры JSON

Имя

Тип

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

timeout

integer

нет

allow_any_dial

boolean

нет

inter_digit_timeout

integer

нет

name

string

нет

digit_len

integer

нет

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

timeout

integer

allow_any_dial

boolean

id

integer

digit_len

integer

GET /extension/{extension_id}/ivr/context/{context_id}

Получить ivr context

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

timeout

integer

allow_any_dial

boolean

id

integer

digit_len

integer

DELETE /extension/{extension_id}/ivr/context/{context_id}

Удалить ivr context

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

...

POST /extension/{extension_id}/ivr/

...

context/{context_id}/options/

Добавить context option

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

...

Параметры JSON

Имя

Тип

lifetime_exp_transfer_dst

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

digits

string

lifetime

да

integer

sleep_time

integer

entry_context

integer

lifetime_exp_action

string

...

Поля ответа

Имя

Тип

digits

object

GET /extension/{extension_id}/ivr/context/{context_id}/options/

Добавить ivr Получить context options list

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

...

Поля ответа

Имя

Тип

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

digits

timeout

integer

нет

allow_any_dial

boolean

нет

inter_digit_timeout

integer

нет

name

string

да

digit_len

integer

нет

...

object

...

DELETE /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}

Удалить context option

Параметры URL

Имя

Тип

name

string

inter_digit_timeout

integer

context_id

integer

timeout

integer

allow_any_dial

boolean

options

array [string]

digit_len

integer

...

extension_id

string

option_digits

string

...

POST /extension/{extension_id}/ivr/context/{context_id}/options/

...

Получить ivr context list

...

{option_digits}/rules/

Добавить context rule

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

Параметры JSON

Имя

Тип

extension

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

transfer_

id

variable

string

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

id

integer

timeout

integer

allow_any_dial

boolean

options

array [string]

digit_len

integer

PUT /extension/{extension_id}/ivr/context/{context_id}

Обновить ivr context

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Параметры JSON

Имя

Тип

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

timeout

integer

нет

allow_any_dial

boolean

нет

inter_digit_timeout

integer

нет

name

string

нет

digit_len

integer

нет

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

id

integer

timeout

integer

allow_any_dial

boolean

options

array [string]

digit_len

integer

GET /extension/{extension_id}/ivr/context/{context_id}

Получить ivr context

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Поля ответа

Имя

Тип

name

string

inter_digit_timeout

integer

id

integer

timeout

integer

allow_any_dial

boolean

options

array [string]

digit_len

integer

DELETE /extension/{extension_id}/ivr/context/{context_id}

Удалить ivr context

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

POST /extension/{extension_id}/ivr/context/{context_id}/options/

Добавить context option

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Параметры JSON

Имя

Тип

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

digits

string

да

Поля ответа

Имя

Тип

digits

object

GET /extension/{extension_id}/ivr/context/{context_id}/options/

Получить context options list

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Поля ответа

Имя

Тип

digits

object

DELETE /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}

Удалить context option

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

...

нет

call_status

string

нет

play_digits_method

string

нет

caller_id

string

нет

match_variable_value

string

нет

play_digits_variable

string

нет

call_interactive_method

string

нет

record_digits_max

integer

нет

max_rateintegerнет

match_variable_name

string

нет

caller_id_action

string

нет

context_option

string

нет

silence_time

integer

нет

set_variable_name

string

нет

caller_id_number

string

нет

final

boolean

нет

sound

integer

нет

sound_type

string

нет

call_interactive_url

string

нет

caller_id_name

string

нет

digits

string

нет

name

string

нет

record_digits_variable

string

нет

interval

integer

нет

transfer_dst

string

нет

context

integer

нет

action

string

да

set_variable_value

string

нет

call_interactive_timeout

integer

нет

record_digits_sound

integer

нет

Поля ответа

Имя

Тип

transfer_variable

string

call_status

string

play_digits_method

string

caller_id

string

match_variable_value

string

play_digits_variable

string

call_interactive_method

string

id

integer

record_digits_max

string

match_variable_name

string

caller_id_action

string

context_option

string

silence_time

integer

set_variable_name

string

caller_id_number

string

final

boolean

sound

integer

sound_type

string

call_interactive_url

string

caller_id_name

string

digits

string

name

string

record_digits_variable

string

interval

integer

transfer_dst

string

context

integer

action

string

set_variable_value

string

call_interactive_timeout

integer

record_digits_sound

integer

GET /extension/{extension_id}/ivr/context/{context_id}/options/{

...

Добавить context rule

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

Параметры JSON

...

Имя

...

Тип

...

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

...

digits

...

string

...

нет

...

sound

...

integer

...

нет

...

sound_type

...

string

...

нет

...

interval

...

integer

...

нет

...

transfer_dst

...

string

...

нет

...

match_variable_name

...

string

...

нет

...

context_option

...

string

...

нет

...

call_interactive_url

...

string

...

нет

...

caller_id_action

...

string

...

нет

...

caller_id

...

string

...

нет

...

play_digits_method

...

string

...

нет

...

call_interactive_timeout

...

integer

...

нет

...

call_interactive_method

...

string

...

нет

...

silence_time

...

integer

...

нет

option_digits}/rules/

Получить context rules list

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

Поля ответа

context

integer

нет

set

Имя

Тип

transfer_variable

string

call_status

string

play_digits_method

string

caller_id

string

match_variable_value

string

нет

play_digits_variable

_nameaction

string

нет

call_interactive_method

string

да

positionset

id

integer

нет

record_

variable

digits_

value

max

string

нет

transfer

match_variable

string

нет

_name

string

нет

Поля ответа

Имя

Тип

digits

string

sound

integer

sound_type

string

interval

integer

transfer_dst

string

match_variable_name

string

context_option

caller_id_action

string

context_option

string

silence_time

integer

set_variable_name

string

caller_id_number

string

final

boolean

sound

integer

sound_type

string

call_interactive_url

string

caller_id_

action

name

string

caller_id

digits

string

play_digits_method

name

string

call

record_

interactive

digits_

timeout

integer

call_interactive_method

string

silence_time

variable

string

interval

integer

match

transfer_

variable_value

dst

string

context

integer

set_variable_name

string

action

string

set_variable_value

string

transfer

call_interactive_

variable

timeout

string

id

integer

record_digits_sound

integer

name

string

...

PUT /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/order/

Получить Udpate context option rules listorder

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

Поля ответа

...

Имя

...

Тип

...

digits

...

string

...

sound

...

integer

...

sound_type

...

string

...

interval

...

integer

...

transfer_dst

...

string

...

match_variable_name

...

string

...

context_option

...

string

...

call_interactive_url

...

string

...

caller_id_action

...

string

...

caller_id

...

string

...

play_digits_method

...

string

...

call_interactive_timeout

...

integer

...

call_interactive_method

...

string

...

silence_time

...

integer

...

match_variable_value

...

string

...

context

...

integer

...

set_variable_name

...

string

...

action

...

string

...

set_variable_value

...

string

...

transfer_variable

...

string

...

id

...

integer

...

name

...

Параметры JSON

Имя

Тип

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

rules_ids

array [integer]

да

Поля ответа

Имя

Тип

rules_ids

array [integer]

GET /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/order/

Получить context option rules order

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

Поля ответа

Имя

Тип

rules_ids

array [integer]

...

PUT /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/{rule_id}

Обновить context rule

Параметры URL

Имя

Тип

context_id

integer

option_digits

string

rule_id

integer

extension_id

string

Параметры JSON

Имя

Тип

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

transfer_variable

string

нет

call_status

string

нет

play_digits_method

string

нет

caller_id

string

нет

match_variable_value

string

нет

play_digits_variable

string

нет

sound

integer

нет

sound_type

call_interactive_method

string

нет

interval

record_digits_max

integer

нет

transfer

match_variable_

dst

name

string

нет

match

caller_

variable

id_

name

action

string

нет

context_option

string

нет

silence_time

integer

нет

call

set_

interactive

variable_

url

name

string

нет

caller_id_

action

number

string

нет

caller_id

string

final

boolean

нет

sound

integer

нет

play

sound_

digits_method

type

string

нет

call_interactive_

timeout

url

integer

string

нет

call

caller_

interactive_method

id_name

string

нет

digits

string

нет

silence_time

name

integer

string

нет

match

record_digits_variable

_value

string

нет

context

interval

integer

нет

set

transfer_

variable_name

dst

string

нет

action

context

string

integer

нет

position

action

integer

string

нет

set_variable_value

string

нет

transfer

call_interactive_

variable

timeout

string

integer

нет

name

string

record_digits_sound

integer

нет

Поля ответа

Имя

Тип

transfer_variable

string

call_status

string

play_digits_method

string

sound

integer

sound_type

caller_id

string

match_variable_value

string

play_digits_variable

string

call_interactive_method

string

interval

id

integer

transfer

record_digits_

dst

max

string

match_variable_name

string

caller_id_action

string

context_option

string

call_interactive_url

silence_time

integer

set_variable_name

string

caller_id_

action

number

string

caller_id

final

boolean

sound

integer

sound_type

string

play

call_

digits

interactive_

method

url

string

call

caller_

interactive_timeout

integer

call_interactive_method

string

silence_time

integer

match_variable_value

id_name

string

digits

string

name

string

record_digits_variable

string

interval

integer

transfer_dst

string

context

integer

set_variable_name

string

action

string

set_variable_value

string

transfer

call_interactive_

variable

timeout

string

id

integer

record_digits_sound

integer

name

string

GET /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/{rule_id}

Получить context rule

Параметры URL

Имя

Тип

context_id

integer

option_digits

string

rule_id

integer

extension_id

string

Поля ответа

interval

integer

Имя

Тип

digits

string

sound

integer

sound_type

string

Имя

Тип

transfer_

dst

string

match_

variable

_name

string

context

call_

option

status

string

call

play_

interactive

digits_

url

method

string

caller_id

_action

string

caller

match_variable_

id

value

string

play_digits_

method

variable

string

call_interactive_timeout

integer

call_interactive_method

string

silence_time

id

integer

match

record_

variable

digits_

value

max

string

context

integer

set

match_variable_name

string

caller_id_action

string

set

context_

variable_value

option

string

transfer

silence_

variablestring

time

id

integer

set_variable_name

string

...

caller_id

...

Удалить context rule

Параметры URL

Имя

Тип

context_id

integer

option_digits

string

rule_id

integer

extension_id

string

PUT /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/order/

Udpate context option rules order

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

option_digits

string

Параметры JSON

Имя

Тип

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

rules_ids

array [integer]

да

Поля ответа

Имя

Тип

rules_ids

array [integer]

...

_number

string

final

boolean

sound

integer

sound_type

string

call_interactive_url

string

caller_id_name

string

digits

string

name

string

record_digits_variable

string

interval

integer

transfer_dst

string

context

integer

action

string

set_variable_value

string

call_interactive_timeout

integer

record_digits_sound

integer

DELETE /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/

...

{rule_id}

Удалить context rule

Параметры URL

Имя

Тип

context_id

integer

extension_id

string

Имя

Тип

rules_ids

array [integer]

option_digits

string

Поля ответа

rule_id

integer

extension_id

string

...

Теги по теме

Related Labels