Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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"
    }
}

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

  • No labels