Problema
Si desidera originare a livello di codice una chiamata al di fuori di Asterisk direttamente dal server Asterisk, nel modo più semplice possibile.
Soluzione
Creare un call.file utilizzando un editor di testo col nome example.call contenente:
Channel: SIP/TUO_SIP_PHONE
Context: mio_contesto_call_file
Exten: 12565551212
Priority: 1
Una volta creato il file, spostarlo nella directory di spool di Asterisk:
$ mv esempio.call /var/spool/asterisco/in uscita/
Verrà generata la chiamata verso TUO_SIP_PHONE e alla risposta verrà eseguito il codice del dialplan del contesto mio_contesto_call_file per l’estensione 12565551212, dalla priorità 1.
Discussione
I call.file sono un ottimo sistema per generare chiamate dall’esterno di Asterisk.
Vediamo come generare un call.file.
Fatto salvo che deve essere sempre presente la riga che definische il canale:
Channel: TECH/DATA
sono disponibili due modalità per originare le chiamate:
- per connettere una chiamata ad una applicazione
- per connettere una chiamata al dialplan di Asterisk
Esempio di call.file per connettere una chiamata ad una applicazione
Channel: SIP/100
Application: MeetMe
Data: 1234
Esempio di call.file per connettere una chiamata al dialplan di Asterisk
Channel: SIP/100
Context: default
Extension: s
Priority: 1
Altri parametri opzionali possono essere specificati nel call.dile:
Codec: ulaw, alaw, gsm
Specificare i codec separati da virgola secondo la priorità di negoziazione
MaxRetries: 2
Se la chiamata in uscita dal canale specificato ha esito negativo, questo è il numero di volte che la chiamata
verrà ritentata. Per impostazione predefinita, la chiamata verrà tentata solo una volta.
RetryTime: 60
Questa opzione specifica il numero di secondi di attesa tra i tentativi. Il predefinito è di 300 secondi.
WaitTime: 30
Questo è il numero di secondi di attesa per la risposta alla chiamata in uscita. Al raggiungimento del secondi specificati verrà considerato come tentativo fallito. Per impostazione predefinita il valore è di 45 secondi.
CallerID: “+3902123456789” <+3902123456789>
Specificare il CallerID da utilizzare per la chiamata in uscita.
Account: accountcode
Imposta il campo accountcode sul canale in uscita. L’accountcode viene utilizzato sia nel CDR sia nel CEL
Set: CHANNELVAR=value
Impostare una variabile di canale sul canale in uscita.
Set: FUNCTION(functionargs)=value
Impostare una funzione di dialplan sul canale in uscita.
Archive: Yes
Se questa opzione è impostata a Yes, invece di eliminare i call.file Asterisk li sposterà nella directory /var/spool/asterisk/outgoing_done/.