Icon

Partager Envoyer

(Document)

Configuration de l'envoi de messages SMS

chora permet d'envoyer des messages SMS à travers sa file d'envoi. Les messages SMS se distinguent des messages Email par un numéro de téléphone mobile valide (ou une liste de numéros) comme destinataire.
 

Paramètres

Dans le cas d'un message SMS, en plus du champ destinataire (To), seul le champ Message est pris en compte : il doit contenir le message qui sera envoyé.
Les autres options (et paramètres d'envoi) propres aux SMS doivent être définis pour l'application dans le fichier config/site.php

Il existe deux manières d'envoyer les SMS : soit via une passerelle Email2SMS, soit via l'API d'un agent de transport des messages SMS. La configuration doit être effectuée pour au moins une des deux. Lorsque les deux sont paramétrées, l'agent de transport de messages Sms sera utilisé de préférence.
 

Passerelle Email2SMS

Le principe de fonctionnement d'une telle passerelle est de reconnaître un en-tête particulier de message Email pour le transformer en SMS. La seule passerelle Email2SMS actuellement autorisée est celle d'Ovh.
Voici les paramètres à définir pour qu'elle fonctionne :

/* Email to SMS Gateway parameters (used for events confirmation) */
/* CHANGE THIS */ define('EMAILTOSMSADDRESS','email2sms@ovh.net'); /* Email to SMS gateway email address */
/* CHANGE THIS */ define('EMAILTOSMSACCOUNT','sms-xx0000-0'); /* OVH account */
/* CHANGE THIS */ define('EMAILTOSMSUSER','username'); /* Email to SMS login */
/* CHANGE THIS */ define('EMAILTOSMSPASSWORD','<password>'); /* Email to SMS user password */
/* CHANGE THIS */ define('EMAILTOSMSSENDER','+33600000000'); /* SMS sender: +33600000000 */
/* CHANGE THIS */ define('EMAILTOSMSRECIPIENT','+33600000000'); /* SMS recipient (bcc): +33600000000 */
/* CHANGE THIS */ define('EMAILTOSMSLABEL','AE Support'); /* SMS sender name (text) (unused) */

 

Agent de transport des messages SMS

Un agent de transport des messages SMS (SMSTRANSPORT) doit être défini dans votre fichier de configuration de l'application.
Pour l'instant, seul "ovh" est supporté.
Voici les paramètres à définir pour pouvoir utiliser l'API d'OVH :

/* Sms Transport Provider API */
/* CHANGE THIS */ define('SMSTRANSPORT','ovh'); //This requires a <SMSTRANSPORT>_send_sms() function in helpers/sms_helper.php
/* CHANGE THIS */ define('SMSAPPKEY',''); //This is the API Key
/* CHANGE THIS */ define('SMSAPPSECRET',''); //If required, this is your password
/* CHANGE THIS */ define('SMSCONSUMERKEY',''); //If required, this is your identifier
/* CHANGE THIS */ define('SMSENDPOINT','ovh-eu'); //If required, this is the API endpoint

Les paramètres suivants ne sont pas toujours pris en compte, mais ils doivent être définis :

/* CHANGE THIS */ define('SMSSENDER','+33600000000'); //Default mobile number of sender (optional)
/* CHANGE THIS */ define('SMSSENDERLABEL','SendersName'); //Default label of sender (optional)

Notez que dans le cas d'Ovh, l'obtention de vos clés d'API se fait à l'adresse suivante : https://api.ovh.com/createToken/
 

Ajout d'autres agents de transport

Il est possible d'étendre l'application en lui ajoutant de nouveaux agents de transport de messages Sms.
A chaque agent de transport doivent correspondre deux fonctions nommées comme suit dans le fichier helpers/sms_helper.php :

— une fonction <SMSTRANSPORT>_send_sms() (ex. ovh_send_sms()) ;
cette fonction, appelée à partir de la file d'envoi, devra accepter les paramètres suivants (les valeurs par défaut attendues sont indiquées entre parenthèses) :
$sender : (requis) numéro de l'expéditeur
$target : (requis) liste de numéros destinataires du message entre guillemets droits et séparés par des virgules : "+33600000000", "+33600000000"...
$message : (requis) contenu du message SMS à envoyer encodé en UTF-8 ou 7bit (pour GSM 03.38)
$coding : (optionnel, défaut : '7bit') encodage du message
$noStopClause (optionnel, défaut : false) true si le message doit contenir la mention STOP AU ***** (SMS commerciaux)
 
— une fonction <SMSTRANSPORT>_status_sms() (ex. ovh_status_sms()) ;
cette fonction accepte un paramètre qui est le numéro/identifiant du message SMS dont on veut connaître le statut.
Elle renvoie une chaîne de caractères : "sent" si le message a été envoyé avec succès, "sent (no response)" si aucun statut n'est renvoyé par l'appel à l'API, "delivered" s'il a été lu et "failed" si l'envoi n'a pu aboutir.
 

Longueur des messages et encodage des caractères

Les messages texte de type SMS doivent être encodés en UTF-8 pour leurs paramètres et en GSM 03.38 ou UTF-8 pour le contenu du message lui-même (options disponibles selon l'agent de transport).

Jeux de caractères autorisés

Encodage GSM 03.38

The standard SMS mobile-phone character set is used universally to send text messages. You can send a longer text message by using only GSM 03.38 characters. The standard character set allows up to 160 characters, and includes the Latin alphabet and the most common accented forms, certain special characters, and the Greek alphabet.
Les caractères suivants sont autorisés :

@	Δ	SP	0	¡	P	¿	p
£	_	!	1	A	Q	a	q
$	Φ	"	2	B	R	b	r
¥	Γ	#	3	C	S	c	s
è	Λ	¤	4	D	T	d	t
é	Ω	%	5	E	U	e	u
ù	Π	&	6	F	V	f	v
ì	Ψ	'	7	G	W	g	w
ò	Σ	(	8	H	X	h	x
Ç	Θ	)	9	I	Y	i	y
LF	Ξ	*	:	J	Z	j	z
Ø	ESC	+	;	K	Ä	k	ä
ø	Æ	,	<	L	Ö	l	ö

Note : Un caractère d'échappement précède toujours les signes { } ~ [ ] | ^ €, qui comptent donc pour 2 caractères lors de l'envoi.

Unicode

Lorsqu'un message contient des caractères non GSM 03.38, SMS le transmet comme message Unicode. Cela permet d'envoyer des messages écrits en Arabe, Kanji, Cyrillique, Mandarin, etc.

Longueur des messages

Encodage GSM 03.38

Le texte des messages est strictement limité à 160 caractères, incluant les espaces. Cependant, jusqu'à 6 messages peuvent être liés pour contenir un seul texte d'une longueur supérieure.

Chaque message ainsi concaténé est limité à 153 caractères plutôt que 160 à cause de la présence d'informations spéciales UDH (user-data header). Ceci ne s'applique qu'aux messages encodés avec le jeu de caractères GSM 03.38.
 

nombre de sms concaténés nombre maximum de caractères du texte du message
1 160
2 306
3 459
4 612
5 765
6 918 

Unicode

L'encodage Unicode impose une longueur maximale de 70 caractères pour le texte des messages.Cependant, certains fournisseurs proposent également la concaténation de plusieur messages Unicode via leur API.

Statut étendu

La file d'envoi des messages contient en plus du champ status utilisé pour effectuer les envois, un champ extended_status.Celui-ci permet de stocker le résultat des appels à l'API de l'agent de transport des messages Sms.

Ce résultat est généralement un tableau qui est sérialisé pour pouvoir être stocké dans la base de données.
Notez que l'affichage d'un message dans la file permet de visualiser à un format lisible le statut étendu du message pour obtenir des informations complémentaires en cas d'erreur.
 


 


Ce document a été publié le 2018-12-18 06:49:42. (Dernière mise à jour : 2018-12-28 17:08:43.)




This website uses 'cookies' to enhance user experience and provide authentification. You may change which cookies are set at any time by clicking on more info. Accept
x