Nell’utilizzo di Freepbx Asterisk in contesti integrati, al fine di permettere lo scambio di dati tra le applicazioni, spesso è necessario manipolare il Sip Header dei pacchetti voip. Come e perchè si ha la necessità di manipolare il sip header delle comunicazioni voip ?
La comunicazione voip è molto utile soprattutto perchè riesce a realizzare il tanto noto concetto di UNIFIED COMMUNICATION. La creazione cioè, di una piattaforma di comunicazione sulla quale vengono scambiati dati sotto diverse forme: voce, dati aziendali, ecc. Il centralino voip è un componente fondamentale di tale struttura, il suo ruolo è amplificato se viene intergrato nel sistema informativo aziendale e scambia dati con gli altri componenti del sistema. Un tipo esempio di integrazione è quella che si realizza tra centralino voip e CRM. Spesso per realizzare ciò, bisogna scambiare dati tra centralino voip e CRM. Ci sono diversi metodi per scambiare i dati, tra i tanti, è possibile inserire e valorizzare delle variabili nel sip header. In questo articolo vedremo come fare ad aggiungere una variabile nel sip header utilizzando un centralino voip basato su Freepbx 17 ed asterisk 20.
Supponiamo di voler aggiungere la variabile “Valore” valorizzandola con il il valore numerico “123456”. L’aggiunta della variabile nel sip header può essere fatto in diverse fasi della chiamata. L’inserimento della variabile all’interno del sip header può essere fatto in diverse fasi della comunicazione. Nell’articolo descriverò come aggiungere una variabile nel sip header quando viene effettuata una chiamata verso numerazioni interne, quando viene effettuata una chiamata verso numerazioni esterne con l’utilizzo di un trunk, quando il centralino voip Freepbx Asterisk riceve una chiamata su un trunk sip.
Aggiunta di variabile in una chiamata verso numerazioni interne
Utilizziamo il contesto macro-dialout-one-predial-hook già predefinito in Freepbx 17. Il contesto consente di manipolare il canale prima di inviare la chiamata. Nel nostro caso aggiungiamo la variabile impostata al valore desiderato come di seguito:
- nel file /etc/asterisk/extensions_custom.conf andremo ad inserire il seguente contesto:
[macro-dialout-one-predial-hook]
exten => s,1,NoOp(Aggiungo nell’Header SIP la variabile “Valore” impostata a “1232456”)
same => n,GoSub(func-set-sipheader,s,1(Valore, 123456}))
same => n,Return()
Se invece, l’header va modificato prima di inviare una chiamata utilizzando un trunk già configurato:
Aggiunta di variabile in una chiamata verso numerazioni esterne
Utilizziamo il contesto macro-dialout-one-predial-hook già predefinito in Freepbx 17. Il contesto consente di manipolare il canale prima di inviare la chiamata. Nel nostro caso aggiungiamo la variabile impostata al valore desiderato come di seguito:
- nel file /etc/asterisk/extensions_custom.conf andremo ad inserire il seguente contesto:
[macro-dialout-trunk-predial-hook]
exten => s,1,NoOp(Aggiungo nell’Header SIP la variabile “Valore” impostata a “1232456”)
same => n,GoSub(func-set-sipheader,s,1(Valore, 123456}))
same => n,Return()
Infine vediamo come inserire una variabile nel sip header per le chiamate in arrivo su un trunk sip:
Aggiunta di variabile in una chiamata in arrivo
Definiamo un nuovo contesto di arrivo, es. set-variabile. Il contesto avrà il compito di inserire nel sip header la variabile con il relativo valore e rimandare la chiamata al naturale contesto di arrivo predefinito in Freepbx. Vediamo l’esempio:
- nel file /etc/asterisk/extensions_custom.conf andremo ad inserire il seguente contesto:
[set-variabile]
exten => s,1,NoOp(Aggiungo nell’Header SIP la variabile “Valore” impostata a “1232456”)
same => n,GoSub(func-set-sipheader,s,1(Valore, 123456}))
same => n,Goto(from-pstn,${EXTEN},1)