VoIP and Hacking | Consulenza Documentazione

Supporto SMS della scheda Voismart vGSM

by admin on Mar.04, 2009, under Asterisk, Telefonia

L’invio è possibile sia attraverso Asterisk CLI oppure Asterisk AMI, sia in formato standard che flash.

Analogamente è possibile anche la ricezione, a patto di predisporre un programma spooler esterno eseguito all’arrivo del messaggio.

Ricezione degli SMS

La ricezione degli SMS viene effettuata attraverso un programma spooler esterno.

In vgsm.conf occorre impostare (nella variabile sms_spooler) il percorso al programma che deve essere invocato ogni qualvolta un SMS venga ricevuto

Lo spooler SMS è appunto un comando (un eseguiabile oppure uno script) mandato in esecuzione alla ricezione di un messaggio SMS (SMS-DELIVER) oppure di un SMS-STATUS-REPORT.
Il messaggio viene passato allo spooler attraverso il descrittore del file relativo allo standard input.

Il messaggio è formattato in accordo con la RFC 2822, molto somigliante ad una normale e-Mail, con headers aggiuntivi. E’ infatti possibile usare /usr/sbin/sendmail per sottomettere direttamente il messagio ad un Mail Transfer Agent.

I codici di uscita del comando spooler dovrebbe essere conforme a <sysexits.h>

Ad esempio, questo semplice script riceve i messaggi e li accoda ad un file in /tmp.

#!/bin/bash
echo “******************* INIZIO SMS *******************” >>/tmp/sms_rx
cat >>/tmp/sms_rx
echo “******************* FINE SMS *******************” >>/tmp/sms_rx

Lista degli headers

Header Descrizione
To Impostato a partire da vgsm.conf
Received Impostato col nome del modulo e informazioni di registrazione in un formato conforme alla RFC2822
From Contiene l’indirizzo di origine (phone number) con appeso il dominio configurato in vgsm.conf.
Subject Testo generico a descrizione del messagggio
MIME-Version Fisso a 1.0
Content-Type Fisso a text/plain charset=”UTF-8″
Content-Transfer-Encoding Fisso a 8bit
Date Data recevuta dal Centro Servizi
X-SMS-Message-Type
X-SMS-Sender-NP
X-SMS-Sender-TON
X-SMS-Sender-Number
X-SMS-SMCC-NP
X-SMS-SMCC-TON
X-SMS-SMCC-Number
X-SMS-Class
X-SMS-More-Messages-To-Send
X-SMS-Reply-Path
X-SMS-User-Data-Header-Indicator
X-SMS-Status-Report-Indication

Esempio di SMS-DELIVER
Received: from GSM module vodafone registered on Vodafone,
Italy; Mon, 23 Oct 2006 02:01:03 +0200
From: <+393474659309@sms.acme.it>
Subject: SMS message
MIME-Version: 1.0
Content-Type: text/plain
charset=”UTF-8″
Content-Transfer-Encoding: 8bit
To:
Date: Mon, 23 Oct 2006 03:02:20 +0200
X-SMS-Message-Type: SMS-DELIVER
X-SMS-Sender-NP: ISDN telephony
X-SMS-Sender-TON: International
X-SMS-Sender-Number: +393474659309
X-SMS-SMCC-NP: ISDN telephony
X-SMS-SMCC-TON: International
X-SMS-SMCC-Number: +393492000896
X-SMS-Class: -1
X-SMS-More-Messages-To-Send: yes
X-SMS-Reply-Path: no
X-SMS-User-Data-Header-Indicator: no
X-SMS-Status-Report-Indication: no

Hello! This is an SMS, do you like me?

Esempio di SMS-STATUS-REPORT

Received: from GSM module vodafone registered on Vodafone,
Italy; Mon, 23 Oct 2006 01:51:33 +0200
From: <+393474659309@sms.acme.it>
Subject: SMS Status Report
MIME-Version: 1.0
Content-Type: text/plain
charset=”UTF-8″
Content-Transfer-Encoding: 8bit
To:
Date: Mon, 23 Oct 2006 02:52:46 +0200
X-SMS-Message-Type: SMS-STATUS-REPORT
X-SMS-Message-Reference: 46
X-SMS-Discharge-Time: Mon, 23 Oct 2006 01:52:51 +0200
X-SMS-Recipient-NP: ISDN telephony
X-SMS-Recipient-TON: International
X-SMS-Recipient-Address: +393474659309
X-SMS-SMCC-NP: ISDN telephony
X-SMS-SMCC-TON: International
X-SMS-SMCC-Number: +393492000200
X-SMS-More-Messages-To-Send: no
X-SMS-User-Data-Header-Indicator: yes
X-SMS-Status-Report-Qualifier: SMS-SUBMIT

Message successfully delivered

Invio di SMS

SMS possono essere inviati dalla CLI di Asterisk oppure tramite (Asterisk Manager Interface).

CLI Interface

CLI> vgsm send sms vodafone +393351234567 hello

invierà un sms al numero specificato col testo “hello”.

Aggiungendo il parametro opzionale relativo alla classe uguale a 0, ad esempio:

CLI> vgsm send sms vodafone +393351234567 hello 0

invierà un flash sms al numero specificato col testo “hello”.

Per inciso un FLASH SMS è un SMS che appare direttamente sullo schermo del cellulare del destinatario senza la necessità di entrare nell’area “messaggi” del telefonino.

VGSMsmstx Action

L’ Asterisk channel driver vGSM fornisce una nuova azione all’interfaccia manager per l’invio di SMS. Tale azione prende il nome di VGSMsmstx.

Parametri

Header Utilizzo Descrizione
To Obbligatorio Il numero di telefono cui inviare l’ SMS. Può essere in formato nazionale (347123456) oppure internazionale (+39347123456). Lo 00 o altri prefissi specifici di un operatore non sono supportati.
X-SMS-Module Opzionale Specifica la interfaccia su cui l’ SMS viene inviato. Se non specificato l’ SMS viene inviato a carico della prima interfaccia disponibile. Gli huntgroups sono supportati, ma l’invio non è attualmente supportato nel caso di un fallimento del modulo scelto. Inoltre, solamente l’ hunting sequenziale viene supportato.
X-SMS-SMCC-Number Opzionale Se presente, forza l’ uso di uno specifico Centro Servizi.
X-SMS-Reject-Duplicates Opzionale Mappato a TP-Reject-Duplicates (TP-RD), Ref. TS 100 901, §9.2.3.27
X-SMS-Reply-Path Opzionale Mappato a to TP-Reply-Path (TP-RP), Ref. TS 100 901, §9.2.3.17
X-SMS-Status-Report-Request Opzionale Mappato a TP-Status-Report-Request (TP-SRR), Ref. TS 100 901, §9.2.3.5
X-SMS-Message-Reference Opzionale Mappato a TP-Message-Reference (TP-MR), Ref. TS 100 901, §9.2.3.6
X-SMS-Validity-Period Opzionale Specifica per quanto tempo (in secondi, a partire dal momento attuale) il messaggio SMS sia valido e quindi tentato il recapito. Se non specificato il valore di default è 4 giorni.
X-SMS-Class Opzionale Se specificato imposta la classe dell’ SMS. La Class 0 viene usata per i flash SMSes, mentre la classe 3 viene usata per i normali messaggi.
X-SMS-Concatenate-RefID Opzionale Specifica il Reference Id dello spezzone di messaggio.
X-SMS-Concatenate-Total-Messages Opzionale Specifica il numero di messaggi in cui l’originale è stato spezzato
X-SMS-Concatenate-Sequence-Number Opzionale Specifica il numero di sequenza di questo messaggio
Content-Type Opzionale Definisce il tipo di contenuto; Solamente il tipo text/plain viene attualmente supportato
Content-Transfer-Encoding Opzionale Definisce la codifica del contenuto, valori validi sono:
* 7bit: 7-bit ASCII text
* hex: Hex-Encoded text
* base64: Base64-encoded text
* quoted-printable: Quoted-printable escaping
Content Obbligatorio Il corpo dell’ SMS nella codifica specificata nel campo header Content-Transfer-Encoding oppure 7-bit ASCII se tale header risultasse assente.

Stati di Response

  • Success
    • 201 Messaggio inviato
  • Temporary failures
    • 401 Modulo non pronto
    • 402 Modulo non registrato
    • 403 Modulo che già sta inviando un messaggio
    • 404 Impossibile trovare un modulo disponibile
    • 405 Impossibile allocare il messaggio
    • 406 Out of memory
  • Permanent failures
    • 501 Impossibile trovare il modulo
    • 502 Numero Centro Servizi non impostato
    • 503 Impossibile aprire il contesto iconv
    • 504 Tipo di Contenuto non valido
    • 505 Tipo di Contenuto non nsupportato
    • 506 Tipo di Codifica non nsupportato
    • 507 Errore nrlla conversione del set Caratteri
    • 508 Impossibile trovare un huntgroup
    • 509 Content: header mancante
    • 510 To: header mancante

Esempio di una sessione di invio SMS

Autenticazione

# telnet localhost 5038
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
Asterisk Call Manager/1.0
Action: login
Username: sms
Secret: sms

Response: Success
Message: Authentication accepted

Invio di un semplice messaggio in formato ASCII

Action: VGSMsmstx
To: +393474659309
Content-type: text/plain; charset=ASCII
Content: Ciao, questo e’ un SMS.
Nessun carattere del set esteso a 8-bit, qui.

Status: 201
SMS-Ref: 22
Response: Success
Message: Message sent

Messaggio in formato UTF-8

Action: VGSMsmstx
To: +393474659309
X-SMS-Module: vodafone
X-SMS-Class: 3
X-SMS-SMCC-Number: +393492000200
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
Content: UXVlc3RvIMOoIHVuIFNNUyBjb24gaW52aWF0byBpbiBVQ1MyLCDDoMOow
6zDssO5IGZ1bnppb25hbm8sIG1hIGFuY2hlIM6xzrLOs860zrUgOikK

Status: 201
X-SMS-Reference: 23
Response: Success
Message: Message sent

Invio di messaggi concatenati

Action: VGSMsmstx
To: +393474659309
X-SMS-Module: vodafone
X-SMS-Concatenate-RefID: 58
X-SMS-Concatenate-Total-Messages: 2
X-SMS-Concatenate-Sequence-Number: 1
Content-type: text/plain; charset=ASCII
Content: Questa costituisce la prima parte di 2,
seguita successivamente dalla seconda ed ultima di 2.

Action: VGSMsmstx
To: +393474659309
X-SMS-Module: vodafone
X-SMS-Concatenate-RefID: 58
X-SMS-Concatenate-Total-Messages: 2
X-SMS-Concatenate-Sequence-Number: 2
Content-type: text/plain; charset=ASCII
Content: Qusta costituisce la seconda ed ultima parte di 2,
quindi messaggio completo.

Send post as PDF to PDF | PDF Creator | PDF Converter
:, ,

Comments are closed.

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...