Call's applications
Управление звонком
ringReady
Ответ 180 Ringing на входящий INVITE запрос
{
"ringReady": ""
}
preAnswer
Ответ 183 Session Progress на входящий INVITE запрос
{
"preAnswer": ""
}
answer
Ответ 200 Ok на входящий INVITE запрос
{
"answer": ""
}
sipRedirect
Ответ SIP 302 Moved Temporarily на входящий INVITE запрос
{
"sipRedirect": "sip:foo@end.com"
}
ringback
Приложение позволяет задать тон КПВ либо медиафайл
{
"ringback": {
"all": true,
"call": {
"name": "%(1000,6000,425);loops=-1",
"type": "tone"
},
"hold": {
"id": 10
},
"transfer": {
"name": "%(1000,6000,425);loops=-1",
"type": "tone"
}
}
}
updateCid
Приложение позволяет изменить значение номера и имени абонента
{
"updateCid": {
"name": "Новый клиент",
"number": "8${effective_caller_id_number}"
}
}
park
Удержание звонка на стороне сервера
{
"park": {
"auto": "in",
"lot": "1000-2000",
"name": "myPark"
}
}
conference
Вход в конференцию
{
"conference": {
"flags": [
"audio-always"
],
"name": "CR-$1",
"profile": "video-mcu-stereo"
}
}
bridge
Инициация Б-канала с дальнейшим соединением с А-каналом
{
"bridge": {
"endpoints": [
{
"extension": "1008",
"idle": true,
"type": "user"
},
{
"dialString": "380732327758",
"name": "lifecell_out",
"type": "gateway",
"parameters": {
"origination_caller_id_number": "380732327757",
"sip_h_X-FWD-Original": "${caller_id_number}"
}
}
]
}
}
hangup
Завершение звонка. В качестве параметра может быть указан код ответа из списка Hangup cause
{
"hangup": ""
}
Медиавзаимодействие
inBandDTMF
Управление in-band DTMF
{
"inBandDTMF": "start"
}
flushDTMF
Очистка буфера ввода абонентом
{
"flushDTMF": true
}
playback
Воспроизведение медиафайла с возможностью сохранить ввод абонента в переменную
{
"playback": {
"files": [
{
"id": "16",
"name": "file_example_WAV_1MG.wav"
}
],
"getDigits": {
"digitTimeout": 2000,
"flushDTMF": false,
"max": "2",
"min": 1,
"setVar": "getIVR",
"timeout": 3000,
"tries": 1,
"terminators": "-"
}
},
"break": false,
"tag": "57-playback-custom-tag"
}
recordFile
Записать медиа в файл
{
"recordFile": {
"maxSec": 30,
"name": "${uuid}",
"silenceHits": 5,
"terminators": "#",
"type": "mp3",
"voiceMail": true
}
}
recordSession
Управление записью медиапотока в файл
{
"recordSession": {
"action": "start",
"bridged": false,
"followTransfer": true,
"minSec": 2,
"stereo": true,
"type": "mp3"
}
}
generateLink
Приложение создает публичную ссылку на запись и сохраняет значение в переменную
{
"generateLink": {
"expire": 604800,
"server": "https://dev.webitel.com",
"set": "record_link"
}
}
Синтез и распознавание речи
tts
Генерация речи
{
"tts": {
"language": "ru-RU",
"provider": "google",
"text": "<speak>Ваш номер договора ${usr_selected_prolongation}.</speak>",
"textType": "ssml"
}
}
getSpeech
Асинхронное распознавание речи
[
{
"set": {
"GOOGLE_DISABLE_BREAK": "true",
"GOOGLE_OFFSET": "14000",
"GOOGLE_SILENCE_THRESHOLD": "100",
"GOOGLE_SPEECH_ALTERNATIVE_LANG": "ru-RU",
"GOOGLE_SPEECH_ENABLE_AUTOMATIC_PUNCTUATION": "true",
"GOOGLE_SPEECH_LANG": "uk-UA"
}
},
{
"playback": {
"files": [
{
"name": "media_file_menu.wav"
},
{
"name": 3500,
"type": "silence"
}
],
"getSpeech": {}
}
},
{
"set": {
"usr_text": "${google_transcript}"
}
}
]
Работа с очередями
joinQueue
Постановка абонента в очередь
{
"joinQueue": {
"bucket_id": 1,
"priority": 100,
"agent": {
"extension": "1000"
},
"queue": {
"id": 1
},
"ringtone": {
"id": 126,
"type": "wav"
},
"timers": [
{
"actions": [
{
"playback": {
"files": [
{
"name": "hold_акции.wav"
}
]
}
}
],
"interval": 1,
"tries": 20
}
],
"transferAfterBridge": {
"id": 2
}
}
}
joinAgent
Постановка абонента в личную очередь оператора
{
"joinAgent": {
"agent": {
"extension": "1008"
},
"bridged": [
{
"log": "request 1C"
}
],
"cancel_distribute": true,
"processing": {
"enabled": true,
"renewal_sec": 5,
"sec": 30
},
"queue_name": "${cc_queue_name}"
}
}
getQueueAgents
Получить информацию по количеству операторов в зависимости от статуса в очереди
{
"getQueueAgents": {
"queue": {
"id": 2
} ,
"set": {
"res_count": "count",
"res_offline": "offline",
"res_online": "online",
"res_pause": "pause",
"res_waiting": "waiting"
}
}
}
getQueueMetrics
Рассчитать показатели по очереди
{
"getQueueMetrics": {
"bucket": null,
"calls": "complete",
"field": "sl",
"lastMinutes": 3800,
"metric": "sl",
"queue": {
"id": 19
},
"set": "varResult",
"slSec": 20
}
}
ccPosition
Текущая позиция абонента в очереди
{
"ccPosition": {
"set": "pos"
}
}
ewt
Расчет среднего времени ожидания абонентом в очереди
{
"ewt": {
"queue_ids": [
8
],
"setVar": "ewt",
"strategy": "puzzle"
}
}
memberInfo
Найти информацию по абоненту дайлера
{
"memberInfo": {
"member": {
"completed": false,
"id": "${member_id}",
"queue_ids": [
"${queue_id}"
],
"today": true
},
"set": {
"count_destinations": "count_destinations",
"priority": "priority"
}
}
}
patchMembers
Изменить информацию по абоненту дайлера
{
"patchMembers": {
"member": {
"bucket": [
{
"id": "187"
}
],
"completed": true,
"destination": "",
"id": "",
"name": "",
"queues": [
{
"id": "187"
}
],
"today": true
},
"patch": {
"bucket": {
"id": 10
},
"name": "name",
"priority": 10,
"queueId": 100,
"stopCause": "success_duplicate",
"variables": {}
}
}
}
callbackQueue
Добавить абонента в оффлайн очередь
{
"callbackQueue": {
"agent": {
"id": 67
},
"communication": {
"destination": "${user}",
"type_id": 1
},
"holdSec": 1,
"name": "${from}",
"queue_id": 427,
"variables": {
"DPD": "${user}"
}
}
},
confirm
Установка значений до набора абонента дайлером
{
"confirm": {
"destination": "00${destination}",
"display": "${agent_extension}",
"export": [
"new_variable"
]
}
}
cancel
Отмена текущей попытки набора абонента в дайлере
{
"cancel": {
"description": "do not call",
"export": [
"new_var"
],
"nextDistributeSec": 0,
"stop": false
}
}
abandoned
Позволяет задать через сколько секунд осуществить следующую попытку набора, а также, задать новое значение для максимального количества наборов абонента
{
"abandoned": {
"export": [
"retry"
],
"maxAttempts": 100500,
"waitBetweenRetries": "120"
}
}
attemptResult
Результат текущей попытки дозвона, после общения оператора
{
"attemptResult": {
"status": "abandoned",
"stickyDisplay": false,
"readyAt": "",
"description": "",
"waitBetweenRetries": 60
}
}
retry
В рамках одной попытки совершать звонки из всех ресурсов по очереди, для After schema Предиктивного дайлера
{
"retry": {
"nextResource": true,
"sleep": 3000
}
}
lastBridged
Получить информацию по соединениям для липкости звонка
{
"lastBridged": {
"calls": {
"inbound": "all",
"outbound": "all",
"queue_ids": [
1, 2
]
},
"hours": 24,
"number": "380932327757",
"set": {
"my_ag": "agent_id",
"my_ext": "extension",
"my_q": "queue_id"
}
}
}
false - Не учитывать данное направление звонка
bridged - Попытки по которым было соединение
attempt - Попытки без соединения
all - Все попытки
Голосовые приложения
- 1 Управление звонком
- 1.1 ringReady
- 1.2 preAnswer
- 1.3 answer
- 1.4 sipRedirect
- 1.5 ringback
- 1.6 updateCid
- 1.7 park
- 1.8 conference
- 1.9 bridge
- 1.10 hangup
- 2 Медиавзаимодействие
- 2.1 inBandDTMF
- 2.2 flushDTMF
- 2.3 playback
- 2.4 recordFile
- 2.5 recordSession
- 2.6 generateLink
- 3 Синтез и распознавание речи
- 4 Работа с очередями
- 4.1 joinQueue
- 4.2 joinAgent
- 4.3 getQueueAgents
- 4.4 getQueueMetrics
- 4.5 ccPosition
- 4.6 ewt
- 4.7 memberInfo
- 4.8 patchMembers
- 4.9 callbackQueue
- 4.10 confirm
- 4.11 cancel
- 4.12 abandoned
- 4.13 attemptResult
- 4.14 retry
- 4.15 lastBridged