IVR-скрипт в формате JSON — это объект состоящий из пар:
Формат блока IVR-скрипта:
<Строка, id блока>: {
"name": <Строка, имя блока>,
"params": <Объект, множество параметров блока>
"pos": <Объект, необязательный параметр>
"cases": <Объект, множество переходов в другие блоки>
} |
"next": <Строка, id блока>.
{
"name": "ivr_script_block_0_ring_1",
"last_modified": "2015/12/25 12:11:10",
"actions": {
"SvgjsG7210": {
"name": "ring",
"params": {
"description": "Блок Ring c отключенным КПВ",
"ringback_duration": "0"
},
"pos": {
"x": 1,
"y": 0
},
"cases": {
"next": "SvgjsG7217"
}
}
},
"description": ""
} |
"next": <Строка, id блока>.
{
"actions": {
"SvgjsG5570": {
"name": "info",
"params": {
"description": "Блок Info",
"info": [
{
"file": "Файл 1",
"group": "",
"location": "system"
},
{
"file": "Файл 2",
"group": "group",
"location": "domain"
}
],
"replay": "1"
},
"pos": {
"x": 1,
"y": 1
},
"cases": {
"next": "SvgjsG5577"
}
}
},
"description": ""
} |
"play": <Список от 1 до 20 элементов, проигрываемые файлы>:
Формат проигрываемого файла:
{
"duration": "1",
"group": <Строка, имя папки>,
"location": <Строка, тип файла>,
"type": "file",
"file": <Строка, имя файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
Формат проигрываемого тона:
{
"duration": <Строка, число от 1 до 15 (секунд)>,
"group": "",
"location": "",
"type": "tone",
"file": <Строка, имя тона>
}
, где *<Строка, имя тона>*:
* "dialtone";
* "ringback". |
"ivr": <Список, переходы ivr>:
- "wait_time": <Число, от 1 до 30 (время ожидания ввода цифры, сек)>;
- "extension_dialing": <Boolean, true | false (донабор)>;
- "category": <Строка, число от 1 до 255>;
- "max_digits": <Число, от 1 до 25 (размер вводимого номера)>;
- "interdigit_timeout": <Число, от 1 до 30 (межцифровой интервал, сек)>.
Формат перехода ivr:
{
"command": <Строка, число от 0 до 9>,
"description": <Строка, описание перехода>
} |
<Объект, множество переходов в другие блоки> (формируются по переходам в параметре ivr):
- "0": <Строка, id блока>;
- "1": <Строка, id блока>;
- "2": <Строка, id блока>;
- "3": <Строка, id блока>;
- "4": <Строка, id блока>;
- "5": <Строка, id блока>;
- "6": <Строка, id блока>;
- "7": <Строка, id блока>;
- "8": <Строка, id блока>;
- "9": <Строка, id блока>;
- "No Match": <Строка, id блока>.
{ |
{ |
Значения параметров для блока Play
"play": <Список от 1 до 20 элементов, проигрываемые файлы>:
Формат проигрываемого файла:
{
"file": <Строка, имя файла>,
"group": <Строка, имя папки>,
"location": <Строка, тип файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
"next": <Строка, id блока>.
{
"actions": {
"SvgjsG5836": {
"name": "play",
"params": {
"description": "Блок Play с минимальным количеством проигрывания файлов",
"play": [
{
"file": "Файл 1",
"group": "",
"location": "system"
},
{
"file": "Файл 2",
"group": "group",
"location": "domain"
}
],
"replay": "1"
},
"pos": {
"x": 1,
"y": 1
},
"cases": {
"next": "SvgjsG5843"
}
}
},
"description": ""
} |
{"list_id":<Строка, номер телефона>}
Номера телефона используется для сравнения с номером вызывающего абонента: ‘0-9*#A-F’ - цифры 0-9, *, #, буквы A-F; Пример: 123ABC23 |
"No": <Строка, id блока>.
{
"actions": {
"SvgjsG7231": {
"name": "numbers",
"params": {
"description": "Блок Numbers с минимальным размером номера",
"numbers": [
{
"list_id": "1"
}
]
},
"pos": {
"x": 1,
"y": 2
},
"cases": {
"Yes": "SvgjsG7238",
"No": "SvgjsG7280"
}
}
},
"description": ""
} |
"No": <Строка, id блока>.
{
"actions": {
"SvgjsG1310": {
"name": "time",
"params": {
"description": "Блок Time со временем",
"time_ranges": [
{
"time": "00:00-00:15,1,2,3,4,5,6,7"
}
]
},
"pos": {
"x": 1,
"y": 1
},
"cases": {
"Yes": "SvgjsG1317",
"No": "SvgjsG1324"
}
},
},
"description": ""
} |
{"mask":<Строка от 1 до 25 элементов, маска номера телефона>}
Маска номера телефона используется для сравнения с номером вызывающего абонента:
‘X’,‘х’ - любая цифра;
‘0-9*#A-F’ - цифры 0-9, *, #, буквы A-F;
‘[ ]’ - диапазон или перечисление;
‘{min,max}’ - количество повторений;
‘.’ - неограниченное количество повторений;
‘|’ - разделитель шаблонов
Пример: 01|02*.D{3,3}[0-9] |
{ "actions": { |
"numbers": <Строка, номер телефона>.
Номера телефона на который будет сделан вызов: ‘0-9*#A-F’ - цифры 0-9, *, #, буквы A-F; Пример: 123ABC23 |
{ |
"caller_info": <Список от 1 до 100 элементов, модификация имен вызывающего абонента>
Формат модификации имени по номеру вызывающего абонента
{
"mask_number": <Строка, маска номера телефона>,
"display_name": <Строка, отображаемое имя вызывающего абонента>
} |
Маска номера телефона используется для сравнения с номером вызывающего абонента:
‘X’,‘х’ - любая цифра;
‘0-9*#A-F’ - цифры 0-9, *, #, буквы A-F;
‘[ ]’ - диапазон или перечисление;
‘{min,max}’ - количество повторений;
‘.’ - неограниченное количество повторений;
‘|’ - разделитель шаблонов.
Пример: 01|02*.D{3,3}[0-9] |
{ |
В заголовке сообщения и в теле сообщения допускается использование тегов:
[SData] - "Дата отправления"; [SPName] - "Имя отправляющей стороны"; [SPNumber] - "Номер отправляющей стороны"; [RPName] - "Имя принимающей стороны"; [RPNumber] - "Номер принимающей стороны". |
{ |
"next": <Строка, id блока>.
{
"actions": {
"SvgjsG7259": {
"name": "rec",
"params": {
"description": "Блок Rec"
},
"pos": {
"x": 0,
"y": 6
},
"cases": {
"next": "undefined"
}
}
},
"description": ""
} |
"agents": <Список от 1 до 50 элементов, агенты>:
Формат агента:
{
"agent":<Строка, имя агента>
} |
"fone": <Список из 1 элемента, проигрываемый файл (в фоне)>:
Формат проигрываемого файла:
{
"file": <Строка, имя файла>,
"group": <Строка, имя папки>,
"location": <Строка, тип файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
"inqueue": <Список из 1 элемента, проигрываемый файл (при постановке в очередь)>:
Формат проигрываемого файла:
{
"file": <Строка, имя файла>,
"group": <Строка, имя папки>,
"location": <Строка, тип файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
"predicted_time": <Список из 1 элемента, проигрываемый файл (предсказываемое время ожидания в очереди)>:
Формат проигрываемого файла:
{
"file": <Строка, имя файла>,
"group": <Строка, имя папки>,
"location": <Строка, тип файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
"distribution_mode": <Строка, режим распределения вызовов>:
Режим распределения вызовов из очереди по агентам: "random" - случайное распределение; "mia" - наиболее свободный агент (агент свободный от обслуживания нагрузки дольше других); "loa" - наименее занятый агент (агент обслуживший меньшую нагрузку за определенный промежуток времени). |
{ |
{ |
"join_type": <Строка, направление вызова>:
Направление вызова: "join_number" - на номер, который указан в параметре "join_number"; "origination" - на номер вызывающего абонента (CgPN); "termination" - но номер вызываемого абонента (CdPN). |
"join_number": <Строка, номер телефона (только если в "join_type" присутствует "join_number")>:
Номера телефона используется для сравнения с номером вызывающего абонента: ‘0-9*#A-F’ - цифры 0-9, *, #, буквы A-F; Пример: 123ABC23 |
"greeting": <Список от 1 до 20 элементов, проигрываемые файлы>:
Формат проигрываемого файла:
{
"file": <Строка, имя файла>,
"group": <Строка, имя папки>,
"location": <Строка, тип файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
"fone": <Список от 1 до 20 элементов, проигрываемые файлы>:
Формат проигрываемого файла:
{
"file": <Строка, имя файла>,
"group": <Строка, имя папки>,
"location": <Строка, тип файла>
}
, где *<Строка, тип файла>*:
* "system" - системный файл;
* "domain" - пользовательский файл. |
{ |
{ |
{ |