Asterisk 11: Settare XMPP per invio messaggio con CLI e info

sezione dedicata alle tecnologie Voice Over IP

Asterisk 11: Settare XMPP per invio messaggio con CLI e info

Messaggio da leggereda root » 20/12/2017, 8:03

nano /etc/asterisk/xmpp.conf

[general]

[asterisk]
type=client
serverhost=xmpp.tuoserver.com
username=user@xmpp.tuoserver.com
secret=password
priority=25
port=5222
usetls=yes
usesasl=yes
status=available
statusmessage="Asterisk PBX"
buddy=destinatario@xmpp.tuoserver.com
timeout=15
keepalive=yes


nano /etc/asterisk/extensions.conf

aggiungere al dialplan esistente:

exten => xxxxxxxx,n,JabberSend(asterisk,destinatario@xmpp.tuoserver.com,Chiamata sul numero xxxxxxxx ricevuta da ${CALLERID(all)})

nano /etc/asterisk/modules.conf

aggiungere alla fine la seguente riga:

load => res_xmpp.so

riavviare asterisk e testare.

Nota: se si vuole una informazione piu' completa si puo' usare quanto segue:

exten => xxxxxxxx,n,JabberSend(asterisk,destinatario@xmpp.tuoserver.com,Chiamata sul numero xxxxxxxx ricevuta da ${CALLERID(number)} ricevuta il: ${STRFTIME(${EPOCH},,%H:%M:%S CET - %A %B %e)})

-----------------------------------------------

Un ottimo client XMPP gratuito per android (per ricevere i messaggi dal nostro centralino) e' "Xabber"

Installare un server XMPP sullo stesso server dove risiede il centralino, o in alternativa su una macchina Windows o MacOSx, e' semplicissimo, qui trovate tutto:

https://www.igniterealtime.org/projects/openfire/
Maurizio
Avatar utente
root
Amministratore
 
Messaggi: 390
Iscritto il: 10/04/2012, 10:55
Località: Turin

ricevere messaggi e comandi tramite XMPP su Asterisk

Messaggio da leggereda root » 08/05/2018, 6:13

Da aggiungere alla fine di "/etc/asterisk/xmpp.conf":

sendtodialplan=yes ;; this will take send unsolicited incoming xmpp messages into the dialplan
context=incoming-xmpp ;; this sets the context those incoming messages are sent to

da aggiungere alla fine di "/etc/asterisk/extensions.conf":

[incoming-xmpp]
;
; incoming jabber xmpp messages & commands - by pilovis
exten => s,1,Noop(Incoming Jabber message)
exten => s,n,Set(JabberResponse=${JABBER_RECEIVE(asterisk,mittente@suoxmpp.com)})
; inoltro messaggio ricevuto ad altro utente xmpp
exten => s,n,JabberSend(asterisk,io@mioxmpp.com,Ricevuto messaggio XMPP: ${JabberResponse}
;
; sezione per ricevere comandi
exten => s,n,GotoIf($["${JabberResponse}" = "On"]?On) ; rileva testo On nel messaggio
exten => s,n,GotoIf($["${JabberResponse}" = "Off"]?Off) : rileva testo Off nel messaggio
exten => s,n,Hangup()
;
; esecuzione comando On
exten => s,n(On),Wait(1)
; inoltro comando ricevuto ad altro utente xmpp
exten => s,n,JabberSend(asterisk,io@mioxmpp.com,Ricevuto comando XMPP On: ${JabberResponse}
exten => s,n,System(/root/script.on.sh)
exten => s,n,Hangup()
;
; esecuzione comando Off
exten => s,n(Off),Wait(1)
; inoltro comando ricevuto ad altro utente xmpp
exten => s,n,JabberSend(asterisk,io@mioxmpp.com,Ricevuto comando XMPP Off: ${JabberResponse}
exten => s,n,System(/root/script.off.sh)
exten => s,n,Hangup()

Nota:

i comandi in questo esempio devono essere esclusivamente On oppure Off, qualsiasi altra lettera, numero o parola prima o dopo, non fa scattare il trigger che lancia i comandi, comunque tutti i messaggi ricevuti da questo mittente, siano essi comandi o meno, vengono sempre inoltrati a io@mioxmpp.com, se sono comandi validi arriveranno due messaggi, il secondo e' la conferma di avvenuta attivazione del comando On oppure Off, es: Ricevuto comando XMPP On, i due messaggi possono avere anche destinatari diversi, volendo il destinatario dei messaggi di avvenuta attivazione comando puo' essere il mittente che lo ha inviato (mittente@suoxmpp.com), in modo da ricevere una conferma di avvenuta attivazione.

Inoltre, per ovvi motivi di sicurezza, i messaggi e comandi possono arrivare solo da "mittente@suoxmpp.com", qualsiasi altro messaggio o comando ricevuto da altri utenti XMPP viene ignorato.

Volendo si possono aggiungere comandi a piacere seguendo la sintassi di cui sopra, esempio:

;...
sezione per ricevere comandi
exten => s,n,GotoIf($["${JabberResponse}" = "On"]?On) ; rileva testo On nel messaggio
exten => s,n,GotoIf($["${JabberResponse}" = "Off"]?Off) : rileva testo Off nel messaggio
exten => s,n,GotoIf($["${JabberResponse}" = "Reboot"]?Reboot) ; rileva testo Reboot nel messaggio
exten => s,n,Hangup()
;
; esecuzione comando On
exten => s,n(On),Wait(1)
; inoltro comando ricevuto ad altro utente xmpp
exten => s,n,JabberSend(asterisk,io@mioxmpp.com,Ricevuto comando XMPP On: ${JabberResponse}
exten => s,n,System(/root/script.on.sh)
exten => s,n,Hangup()
;
; esecuzione comando Off
exten => s,n(Off),Wait(1)
; inoltro comando ricevuto ad altro utente xmpp
exten => s,n,JabberSend(asterisk,io@mioxmpp.com,Ricevuto comando XMPP Off: ${JabberResponse}
exten => s,n,System(/root/script.off.sh)
exten => s,n,Hangup()
;
; esecuzione comando Reboot
exten => s,n(Reboot),Wait(1)
; inoltro comando ricevuto ad altro utente xmpp
exten => s,n,JabberSend(asterisk,io@mioxmpp.com,Ricevuto comando XMPP Reboot: ${JabberResponse}
exten => s,n,System(/sbin/reboot)
exten => s,n,Hangup()
Maurizio
Avatar utente
root
Amministratore
 
Messaggi: 390
Iscritto il: 10/04/2012, 10:55
Località: Turin


Torna a Asterisk e VOIP

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite