inizio di una chiamata in entrata nel centralino
Parametri inviati al link per le notifiche:
- event – evento (NOTIFY_START)
- call_start – ora di inizio della chiamata;
- pbx_call_id – id della chiamata;
- caller_id – numero di origine;
- called_did – numero di destinazione.
Redazione della sottoscrizione di verifica per la notifica delle chiamate in entrata, esempio in PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['called_did'] .
$_POST['call_start'], API_SECRET));
Per le richieste NOTIFY_START e NOTIFY_IVR è possibile modificare “al volo” lo scenario della chiamata in corso. A tal fine, inviare in risposta al webhook una delle seguenti opzioni:
1. Trasferire la chiamata:
(Esempio 1)
Esempio 1:
{
"redirect": ID,
"return_timeout": TIMEOUT (необязательное)
}
Dove:
- redirect - id dello scenario di reindirizzamento (nel formato 0-1, dove 0 è il numero del menu vocale, 1 è il numero dello scenario); oppure nel formato 1, dove 1 è il numero dello scenario (il numero del menu vocale in questo caso è 0); oppure il menu del centralino nel formato 0-main, dove 0 è l'id del menu; oppure il numero interno del centralino (numero a tre cifre); oppure “blacklist” - in questo caso la chiamata verrà rifiutata con un segnale di occupato;
- return_timeout - Valore in secondi. Valori possibili:
- 0, la chiamata non tornerà al menu;
- >= 3 - durata della chiamata al numero interno prima che la chiamata torni al menu;
- rewrite_forward_number - inoltro al numero di telefono. Parametro opzionale, disponibile solo in combinazione con il parametro redirect. Necessario per sostituire “al volo” il numero di telefono di inoltro specificato nelle impostazioni del numero interno del centralino.
2. Terminare la chiamata:
(Esempio 2)
Esempio 2:
{
"hangup": 1
}
3. Impostare il nome del numero chiamante
È possibile impostare il nome del numero chiamante (campo SIP CallerName) e questo verrà visualizzato nell'applicazione. In questo modo è possibile trasmettere comodamente il nome del chiamante, se il suo numero è presente nel sistema.
(Esempio 3)
Esempio 3:
{
"caller_name": NAME
}
Dove:
- caller_name - nome del numero.
In ciascuna delle seguenti opzioni (numeri 4–7) può essere presente una risposta dell’utente sotto forma di cifre. Parametri di inserimento delle cifre:
(Esempio 4)
Esempio 4:
{
"wait_dtmf": {
"timeout": TIMEOUT,
"attempts": ATTEMPTS,
"maxdigits": MAXDIGITS,
"name": NAME,
"default": DEFAULT,
}
}
Dove:
- timeout - tempo di attesa per l'inserimento dei numeri in secondi;
- attempts - numero di tentativi di composizione dei numeri da parte dell'utente;
- maxdigits - numero massimo di numeri che è possibile attendere;
- name - nome che verrà restituito nella risposta;
- default - azione da eseguire se non è stata digitata alcuna cifra (si noti che per l'esecuzione dell'azione è necessario riprodurre precedentemente il file con il comando ivr_play secondo il punto 4 riportato di seguito). Valori possibili:
- id dello scenario di reindirizzamento (nel formato 0-1, dove 0 è il numero del menu vocale, 1 è il numero dello scenario);
- menu del centralino nel formato 0-main, dove 0 è l'id del menu;
- numero interno del centralino (numero a tre cifre);
- hangup - terminare la chiamata.
4. Riprodurre il file:
(Esempio 5)
Esempio 5:
{
"ivr_play": "ID"
}
Dove:
- ivr_play – il valore dalla colonna ID nell'elenco dei file caricati/letti per il file desiderato.
5. Riprodurre la frase popolare:
(Esempio 6)
Esempio 6:
{
"ivr_saypopular": 1,
"language": "en"
}
Dove:
- ivr_saypopular – numero della frase dall'elenco;
Elenchi di frasi popolari:
- Salve
- Buongiorno
- Inoltro della chiamata
- Chiamata dal sito web
- Benvenuto
- Messaggio di prova
- Rimanga in linea
- Ha chiamato fuori dall'orario di lavoro
- Tutti i nostri manager sono occupati, risponderà il primo operatore disponibile.
- Digita il numero interno dell'utente
- Digita il numero interno del dipendente
- Digita il numero aggiuntivo
- Attendi, per favore
- Digita il numero interno o attendi la risposta dell'operatore
- Lascia un messaggio, per favore
- Lascia il tuo messaggio dopo il segnale
- Richiama durante l'orario di lavoro, per favore
- Grazie per aver contattato la nostra azienda.
- Grazie per aver chiamato.
- Attendere la risposta dell'operatore
- La sua chiamata è molto importante per noi
- La chiamata viene registrata
- Al momento non siamo in ufficio
- La richiameremo il prima possibile
- Oggi siamo chiusi.
6. Riproduci i numeri:
(Esempio 7)
Esempio 7:
{
"ivr_saydigits": "12",
"language": "en"
}
7. Riprodurre il numero (secondo le regole dei numerali complessi):
(Esempio 8)
Esempio 8:
{
"ivr_saynumber": "123",
"language": "en"
}
Dove:
- language può assumere uno dei seguenti valori: ru, en, es, pl;
Se sono stati specificati ivr_saydigits o ivr_saynumber, nel successivo evento NOTIFY_IVR verrà aggiunto il parametro:
"ivr_saydigits": "COMPLETE" oppure "ivr_saynumber": "COMPLETE"
Nel prossimo evento NOTIFY_IVR verrà specificato anche il parametro:
(Esempio 9)
Esempio 9:
{
"wait_dtmf": {
"name": NAME,
"digits": DIGITS,
"default_behaviour": "1"
}
}
Dove:
- name - nome indicato nella risposta precedente;
- digits - cifre inserite dall'utente;
- default_behaviour - indicato se l'utente non ha premuto alcun tasto e si è attivato il comportamento predefinito;