Call's applications
Call management
ringReady
The 180 Ringing response to an incoming INVITE request
{
"ringReady": ""
}
preAnswer
The 183 Session Progress response to an incoming INVITE request
{
"preAnswer": ""
}
answer
The 200 OK response to an incoming INVITE request
{
"answer": ""
}
sipRedirect
The SIP 302 Moved Temporarily response to an incoming INVITE request
{
"sipRedirect": "sip:foo@end.com"
}
ringback
The application allows setting the IVR tone or media file.
{
"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.
{
"updateCid": {
"name": "New client",
"number": "8${effective_caller_id_number}"
}
}
park
Call holding on the server side
{
"park": {
"auto": "in",
"lot": "1000-2000",
"name": "myPark"
}
}
conference
Joining a conference
{
"conference": {
"flags": [
"audio-always"
],
"name": "CR-$1",
"profile": "video-mcu-stereo"
}
}
bridge
Initiation of the B-channel with subsequent connection to the A-channel
{
"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
{
"hangup": ""
}
Media interaction
inBandDTMF
Control of in-band DTMF
{
"inBandDTMF": "start"
}
flushDTMF
Clearing the input buffer by the subscriber
{
"flushDTMF": true
}
playback
Playback of a media file with the ability to save subscriber input into a variable
{
"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
{
"recordFile": {
"maxSec": 30,
"name": "${uuid}",
"silenceHits": 5,
"terminators": "#",
"type": "mp3",
"voiceMail": true
}
}
recordSession
Control of media stream recording to a file
{
"recordSession": {
"action": "start",
"bridged": false,
"followTransfer": true,
"minSec": 2,
"stereo": true,
"type": "mp3"
}
}
generateLink
The application generates a public link to the recording and saves the value into a variable.
{
"generateLink": {
"expire": 604800,
"server": "https://dev.webitel.com",
"set": "record_link"
}
}
Speech synthesis and recognition
tts
Speech generation
{
"tts": {
"language": "eng-ENG",
"provider": "google",
"text": "<speak> Your contract number ${usr_selected_prolongation}.</speak>",
"textType": "ssml"
}
}
getSpeech
Асинхронное распознавание речи
[
{
"set": {
"GOOGLE_DISABLE_BREAK": "true",
"GOOGLE_OFFSET": "14000",
"GOOGLE_SILENCE_THRESHOLD": "100",
"GOOGLE_SPEECH_ALTERNATIVE_LANG": "eng-ENG",
"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
{
"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
{
"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.
{
"getQueueAgents": {
"queue": {
"id": 2
} ,
"set": {
"res_count": "count",
"res_offline": "offline",
"res_online": "online",
"res_pause": "pause",
"res_waiting": "waiting"
}
}
}
getQueueMetrics
Calculate queue metrics
{
"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.
{
"ccPosition": {
"set": "pos"
}
}
ewt
Calculation of the average waiting time for the subscriber in the queue.
{
"ewt": {
"queue_ids": [
8
],
"setVar": "ewt",
"strategy": "puzzle"
}
}
memberInfo
Find information about the dialer's subscriber
{
"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
{
"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
{
"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
{
"confirm": {
"destination": "00${destination}",
"display": "${agent_extension}",
"export": [
"new_variable"
]
}
}
cancel
Canceling the current attempt to dial a subscriber in the dialer
{
"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
{
"abandoned": {
"export": [
"retry"
],
"maxAttempts": 100500,
"waitBetweenRetries": "120"
}
}
attemptResult
The result of the current dialing attempt after speaking with the operator
{
"attemptResult": {
"status": "abandoned",
"stickyDisplay": false,
"readyAt": "",
"description": "",
"waitBetweenRetries": 60
}
}
retry
Within one attempt, make calls from all resources in sequence, for the After schema of the Predictive Dialer
{
"retry": {
"nextResource": true,
"sleep": 3000
}
}
lastBridged
Retrieve information about call stickiness connections.
{
"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
- 1 Call management
- 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 Media interaction
- 2.1 inBandDTMF
- 2.2 flushDTMF
- 2.3 playback
- 2.4 recordFile
- 2.5 recordSession
- 2.6 generateLink
- 3 Speech synthesis and recognition
- 4 Working with queues
- 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