Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Управление звонком

Call management

ringReady

Ответ The 180 Ringing на входящий INVITE запросresponse to an incoming INVITE request

Code Block
{
    "ringReady": ""
}

preAnswer

Ответ The 183 Session Progress на входящий INVITE запросresponse to an incoming INVITE request

Code Block
{
    "preAnswer": ""
}

answer

Ответ 200 Ok на входящий INVITE запросThe 200 OK response to an incoming INVITE request

Code Block
{
    "answer": ""
}

sipRedirect

Ответ SIP 302 The SIP 302 Moved Temporarily на входящий INVITE запросresponse to an incoming INVITE request

Code Block
{
    "sipRedirect": "sip:foo@end.com"
}

ringback

Приложение позволяет задать тон КПВ либо медиафайлThe application allows setting the IVR tone or media file.

Code Block
{
    "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

Приложение позволяет изменить значение номера и имени абонентаThe application allows changing the value of the subscriber's number and name.


Code Block
{
    "updateCid": {
        "name": "НовыйNew клиентclient",
        "number": "8${effective_caller_id_number}"
    }
}

park

Удержание звонка на стороне сервераCall holding on the server side

Code Block
{
    "park": {
        "auto": "in",
        "lot": "1000-2000",
        "name": "myPark"
    }
}

conference

Вход в конференциюJoining a conference
Code Block
{
    "conference": {
        "flags": [
            "audio-always"
        ],
        "name": "CR-$1",
        "profile": "video-mcu-stereo"
    }
}

bridge

Инициация Б-канала с дальнейшим соединением с А-каналомInitiation of the B-channel with subsequent connection to the A-channel

Code Block
{
    "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

Завершение звонка. В качестве параметра может быть указан код ответа из списка Call termination. The parameter may include a response code from the list  Hangup cause

Code Block
{
    "hangup": ""
}
Медиавзаимодействие

Media interaction

inBandDTMF

Управление inControl of in-band DTMF

Code Block
{
  "inBandDTMF": "start"
}

flushDTMF

Очистка буфера ввода абонентомClearing the input buffer by the subscriber

Code Block
{
  "flushDTMF": true
}

playback

Воспроизведение медиафайла с возможностью сохранить ввод абонента в переменнуюPlayback of a media file with the ability to save subscriber input into a variable

Code Block
{
    "playback": {
        "files": [
            {
                "name": "its_${lang}.wav"
            }
        ],
        "getDigits": {
            "flushDTMF": true,
            "max": 4,
            "min": 1,
            "setVar": "getIVR",
            "timeout": 3000,
            "tries": 1
        }
    }
}

recordFile

Записать медиа в файлRecord media to a file

Code Block
{
    "recordFile": {
        "maxSec": 30,
        "name": "${uuid}",
        "silenceHits": 5,
        "terminators": "#",
        "type": "mp3",
        "voiceMail": true
    }
}

recordSession

Управление записью медиапотока в файлControl of media stream recording to a file

Code Block
{
    "recordSession": {
        "action": "start",
        "bridged": false,
        "followTransfer": true,
        "minSec": 2,
        "stereo": true,
        "type": "mp3"
    }
}

Приложение создает публичную ссылку на запись и сохраняет значение в переменнуюThe application generates a public link to the recording and saves the value into a variable.

Code Block
{
    "generateLink": {
        "expire": 604800,
        "server": "https://dev.webitel.com",
        "set": "record_link"
    }
}
Синтез и распознавание речи

Speech synthesis and recognition

tts

Генерация речиSpeech generation
Code Block
{
    "tts": {
        "language": "rueng-RUENG",
        "provider": "google",
        "text": "<speak>Ваш<speak> Your номерcontract договораnumber ${usr_selected_prolongation}.</speak>",
        "textType": "ssml"
    }
}

getSpeech

Асинхронное распознавание речи

Code Block
[
    {
        "set": {
            "GOOGLE_DISABLE_BREAK": "true",
            "GOOGLE_OFFSET": "14000",
            "GOOGLE_SILENCE_THRESHOLD": "100",
            "GOOGLE_SPEECH_ALTERNATIVE_LANG": "rueng-RUENG",
            "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}"
        }
    }
]
Работа с очередями

Working with queues

joinQueue

Постановка абонента в очередьQueueing a subscriber
Code Block
{
    "joinQueue": {
        "bucket_id": 1,
        "priority": 100,
        "agent": {
            "extension": "1000"
        },
        "queue": {
            "id": 1
        },
        "ringtone": {
            "id": 126,
            "type": "wav"
        },
        "timers": [
            {
                "actions": [
                    {
                        "playback": {
                            "files": [
                                {
                                    "name": "hold_акцииpromotions.wav"
                                }
                            ]
                        }
                    }
                ],
                "interval": 1,
                "tries": 20
            }
        ],
        "transferAfterBridge": {
            "id": 2
        }
    }
}

joinAgent

Постановка абонента в личную очередь оператораQueueing a subscriber in the operator's personal queue
Code Block
{
    "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

Получить информацию по количеству операторов в зависимости от статуса в очередиRetrieve information about the number of operators depending on their status in the queue.

Code Block
{
    "getQueueAgents": {
        "queue": {
            "id": 2
        }	,
        "set": {
            "res_count": "count",
            "res_offline": "offline",
            "res_online": "online",
            "res_pause": "pause",
            "res_waiting": "waiting"
        }
    }
}

getQueueMetrics

Рассчитать показатели по очередиCalculate queue metrics

Code Block
{
    "getQueueMetrics": {
        "bucket": null,
        "calls": "complete",
        "field": "sl",
        "lastMinutes": 3800,
        "metric": "sl",
        "queue": {
            "id": 19
        },
        "set": "varResult",
        "slSec": 20
    }
}

ccPosition

Текущая позиция абонента в очередиThe current position of the subscriber in the queue.

Code Block
{
    "ccPosition": {
        "set": "pos"
    }
}

ewt

Расчет среднего времени ожидания абонентом в очередиCalculation of the average waiting time for the subscriber in the queue.

Code Block
{
    "ewt": {
        "queue_ids": [
            8
        ],
        "setVar": "ewt",
        "strategy": "puzzle"
    }
}

memberInfo

Найти информацию по абоненту дайлераFind information about the dialer's subscriber
Code Block
{
    "memberInfo": {
        "bucket_id": 1,
        "completed": false,
        "destination": "${caller_id_number}",
        "name": "Customer Name",
        "queue_ids": [
            8
        ],
        "set": {
            "member_var1": "sum",
            "member_var2": "credit"
        },
        "today": true
    }
}

patchMembers

Изменить информацию по абоненту дайлераModify information about the dialer's subscriber

Code Block
{
    "patchMembers": {
        "bucket_id": 1,
        "completed": false,
        "destination": "${caller_id_number}",
        "name": "Customer Name",
        "queue_ids": [
            8
        ],
        "patch": {
            "bucket_id": 2,
            "name": "sum",
            "priority": "credit",
            "ready_at": 2147483647,
            "stop_cause": "cancel",
            "variables": {
                "new_var": "var"
            }
        },
        "today": true
    }
}

callbackQueue

Добавить абонента в оффлайн очередьAdd a subscriber to the offline queue

Code Block
{
        "callbackQueue": {
            "agent": {
                "id": 67
            },
            "communication": {
                "destination": "${user}",
                "type_id": 1
            },
            "holdSec": 1,
            "name": "${from}",
            "queue_id": 427,
            "variables": {
                "DPD": "${user}"
            }
        }
    },

confirm

Установка значений до набора абонента дайлеромSetting values before dialing a subscriber

Code Block
{
    "confirm": {
        "destination": "00${destination}",
        "display": "${agent_extension}",
        "export": [
            "new_variable"
        ]
    }
}

cancel

Отмена текущей попытки набора абонента в дайлереCanceling the current attempt to dial a subscriber in the dialer

Code Block
{
    "cancel": {
        "description": "do not call",
        "export": [
            "new_var"
        ],
        "nextDistributeSec": 0,
        "stop": false
    }
}

abandoned

Позволяет задать через сколько секунд осуществить следующую попытку набора,  а также, задать новое значение для максимального количества наборов абонентаAllows setting the interval in seconds before the next dialing attempt, as well as setting a new value for the maximum number of dialing attempts for the subscriber

Code Block
{
    "abandoned": {
        "export": [
            "retry"
        ],
        "maxAttempts": 100500,
        "waitBetweenRetries": "120"
    }
}

attemptResult

Результат текущей попытки дозвона, после общения оператораThe result of the current dialing attempt after speaking with the operator
Code Block
   {
       "attemptResult": {
           "status": "abandoned",
           "stickyDisplay": false,
           "readyAt": "",
           "description": "",
           "waitBetweenRetries": 60
       }
   }

retry

В рамках одной попытки совершать звонки из всех ресурсов по очереди, для After schema  Предиктивного дайлера Within one attempt, make calls from all resources in sequence, for the After schema of the Predictive Dialer

Code Block
{
    "retry": {
        "nextResource": true,
        "sleep": 3000
    }
}

lastBridged

Получить информацию по соединениям для липкости звонкаRetrieve information about call stickiness connections.

Code Block
{
    "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 - Не учитывать данное направление звонкаDo not consider this call direction
  • bridged - Попытки по которым было соединениеAttempts where there was a connection
  • attempt - Попытки без соединенияAttempts without a connection
  • all - Все попытки
Голосовые приложения
  • All attempts


Voice applications

Table of Contents
maxLevel3
minLevel2