Passa al contenuto principale

Script sugli eventi di chiamata

NethVoice può eseguire script personalizzati in arrivo e chiusura della chiamata. Questa funzione può essere utilizzata per integrare NethVoice con CRM, sistemi di ticketing, applicazioni gestionali o servizi HTTP esterni.

warning

Gli script vengono eseguiti nel container freepbx. Devono terminare rapidamente, gestire gli errori senza bloccare il processo e trattare tutti i dati ricevuti come input non attendibile.

Prerequisiti

Prima di procedere:

  • individua l'identificatore dell'istanza NethVoice, per esempio nethvoice1
  • copia lo script nella directory /tmp del nodo
  • Accedi all'ambiente dell'istanza:
runagent -m nethvoice1
  • copia lo script nell'applicazione, per esempio SCRIPT.name
podman cp /tmp/SCRIPT.name freepbx:/var/lib/asterisk/agi-bin/SCRIPT.name
  • modifica il proprietario e il gruppo
podman exec freepbx chown asterisk.asterisk /var/lib/asterisk/agi-bin/SCRIPT.name
  • rendi lo script eseguibile nel container
podman exec freepbx chmod 750 /var/lib/asterisk/agi-bin/SCRIPT.name

Eseguire uno script al termine di una chiamata

Apri ~/.config/state/environment nell'ambiente dell'istanza e aggiungi:

NETHCTI_CDR_SCRIPT=/var/lib/asterisk/agi-bin/SCRIPT.name

Riavvia il servizio per applicare le variabili di ambiente, comporta il riavvio di Asterisk e quindi la chiusura di tutte le chiamate:

systemctl --user restart freepbx

Per disattivare l'hook, imposta un valore vuoto e riavvia il servizio:

NETHCTI_CDR_SCRIPT=

NethVoice passa allo script i seguenti argomenti, nello stesso ordine:

PosizioneParametroDescrizione
1sourceNumero sorgente
2channelCanale sorgente
3endtimeData e ora di fine
4durationDurata totale in secondi
5amaflagsFlag AMA del CDR
6uniqueidIdentificatore univoco del canale
7calleridCaller ID completo
8starttimeData e ora di inizio
9answertimeData e ora della risposta, se presente
10destinationDestinazione
11dispositionEsito del CDR, per esempio ANSWERED, NO ANSWER, BUSY o FAILED
12lastapplicationUltima applicazione Asterisk eseguita
13billablesecondsDurata dalla risposta alla fine della chiamata
14destinationcontextContesto di destinazione
15destinationchannelCanale di destinazione
16accountcodeAccount code del canale

Eseguire uno script per una chiamata esterna in ingresso

Apri ~/.config/state/environment nell'ambiente dell'istanza e aggiungi:

NETHCTI_CDR_SCRIPT_CALL_IN=/var/lib/asterisk/agi-bin/SCRIPT.name

Riavvia il servizio per applicare le variabili di ambiente, comporta il riavvio di Asterisk e quindi la chiusura di tutte le chiamate:

systemctl --user restart freepbx

Per disattivare l'hook, imposta un valore vuoto e riavvia il servizio:

NETHCTI_CDR_SCRIPT_CALL_IN=

NethVoice passa allo script i seguenti argomenti, nello stesso ordine:

PosizioneParametroDescrizione
1callerNumNumero del chiamante
2uniqueIdIdentificatore univoco della chiamata o del canale
NethVoice 8.0