Réponses SMS depuis une base de données SQL
L'utilisateur Autoreply Database d'Ozeki SMS Gateway peut se connecter à votre base de données Microsoft SQL, Oracle, MySQL, Sybase, etc... avec une chaîne de connexion. Il exécute toute requête SELECT que vous fournissez, après avoir reçu un message SMS. Le résultat de la requête sera envoyé sous forme de messages sortants. Les requêtes et les tables peuvent également être modifiées depuis votre propre application.
Comment envoyer une réponse SMS depuis SQL
Pour envoyer une réponse SMS depuis SQL :
- Lancez Ozeki SMS Gateway
- Ajoutez un nouvel utilisateur Autoreply Database
- Créez la structure de la table SQL
- Configurez l'utilisateur Autoreply Database
- Fournissez le script de texte de réponse automatique
- Utilisez des numéros et mots-clés identifiables
- Envoyez un SMS test pour obtenir une réponse depuis SQL
- Vérifiez les journaux de l'utilisateur Autoreply Database
Vous pouvez créer le service suivant en utilisant cette solution (Figure 1) :
1.) Un message SMS est reçu par Ozeki SMS Gateway depuis un téléphone portable.
2.) L'utilisateur Autoreply Database d'Ozeki SMS Gateway recherche des mots-clés dans le message SMS en utilisant un fichier txt.
3.) Selon la recherche, un message de réponse automatique sera sélectionné depuis votre serveur de base de données avec le même fichier txt.
Il est important que vous ayez un fournisseur de services SMS IP ou un modem GSM configuré sur votre Ozeki SMS Gateway, afin de pouvoir recevoir des messages SMS et y répondre automatiquement en utilisant cet exemple.
Étape 1 - Configurer l'utilisateur Autoreply Database dans Ozeki SMS Gateway
Vous devez d'abord installer un utilisateur Autoreply Database pour créer le service expliqué. Sur la console 'Management', veuillez cliquer sur 'Ajouter' comme indiqué sur la Figure 2.
Trouvez l'utilisateur Autoreply Database et cliquez sur le lien bleu 'installer' à côté. Comme vous pouvez le voir sur Figure 3.
Étape 2 - Créer la structure de la table de base de données
L'utilisateur Autoreply Database sélectionnera les messages SMS de réponse depuis une table de base de données. Créez la structure de base de données suivante pour stocker les messages SMS (Figure 4). Cet exemple utilise un serveur de base de données MySQL, mais vous pouvez utiliser d'autres bases de données comme Microsoft SQL, Oracle, Sybase, etc... Vous pouvez également utiliser d'autres tables et configurations de tables.
CREATE TABLE autoreplymessage ( id int(11) NOT NULL auto_increment, keyword varchar(30) default NULL, msg text default NULL, PRIMARY KEY (id) ); INSERT INTO autoreplymessage (keyword,msg) VALUES ("default","Il n'y a pas de données pour ce mot-clé."), ("red","Le rouge est une bonne couleur."), ("blue","Le bleu n'est pas la meilleure option.");Figure 4 - CREATE TABLE et INSERT des lignes dans la table 'autoreplymessage'
Vos tables peuvent être visualisées avec des instructions SELECT * FROM (Figure 5). Bien que cet exemple ne contienne qu'une seule table.
> SELECT * FROM autoreplymessage;
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Il n'y a pas de données pour ce mot-clé. 2 red Le rouge est une bonne couleur. 3 blue Le bleu n'est pas la meilleure option. (3 lignes affectées)Figure 5 - Lire la table 'autoreplymessage' avec une instruction SELECT
Si aucun pilote de base de données n'est installé avec le serveur de base de données, vous devriez installer un pilote, car vous aurez besoin de la chaîne de connexion à l'étape suivante. Le pilote de base de données connecte Ozeki SMS Gateway et le serveur de base de données. Dans la plupart des cas, un pilote de base de données est installé avec le serveur de base de données.
Étape 3 - Configurer l'utilisateur de la base de données Autoreply pour utiliser votre base de donnéesVous devrez entrer le type de connexion à la base de données et la chaîne de connexion dans le panneau 'Configuration de la base de données' de l'utilisateur Autoreply Database (Figure 6). Le type peut être sélectionné dans la boîte combo, tandis que la chaîne doit être placée dans la zone de texte.
Sur la Figure 7, vous pouvez voir un exemple de chaîne pour une connexion à une base de données MySQL.
Gardez à l'esprit que vous pouvez utiliser votre propre type de chaîne de connexion (OleDB, ODBC,
SQLServer, Oracle) pour votre propre serveur de base de données
qui peut être Microsoft SQL, Oracle, Sybase, etc. Si vous utilisez un pilote ODBC
pour MySQL,
vous devez simplement modifier l'adresse IP du serveur MySQL, le nom de la base de données, le nom d'utilisateur et
le mot de passe par vos propres valeurs dans la chaîne suivante :
Type de connexion : ODBC
Chaîne de connexion : Driver={MySQL ODBC 5.3 Unicode Driver}; Server=127.0.0.1;Database=ozekisms;User=ozeki;Password=abc123;Option=4;
Pour trouver la chaîne de connexion pour d'autres serveurs de base de données, il vous est suggéré de lire le guide des chaînes de connexion à la base de données SMS.
Étape 4 - Écrire un script pour répondre automatiquement à partir d'une base de données SQL
Il est maintenant temps d'écrire le fichier de script capable de SELECTionner une ligne de votre table de base de données si la table a été créée avec succès à l'ÉTAPE 2. L'attribut message de la ligne sélectionnée sera renvoyé au message SMS. Voici le chemin de l'exemple de script : C:\Program Files\Ozeki\Ozeki10\Data\NG\config\OzekiUsername\sqlscript.txt
Un simple éditeur de texte peut modifier ces fichiers ou vous pouvez créer votre propre fichier txt et le modifier avec votre propre application, ce qui est utile si vous souhaitez modifier les requêtes. Veuillez fournir le chemin du fichier en utilisant l'utilisateur Autoreply Database en cliquant sur 'Configuration de la base de données' et en sélectionnant l'onglet 'Script de réponse automatique' (Figure 8)
Étape 5 - La structure des scripts de requête SQL
Le script SQL de l'utilisateur Autoreply Database contient des paires filtre-requête, qui fonctionnent exactement comme la structure if-then dans les langages de programmation. Le message SMS reçu passe par le filtre et s'il est valide, une instruction SQL SELECT sera exécutée. Le contenu du message des lignes sélectionnées sera envoyé à un numéro de téléphone. Ce numéro est le 1er paramètre du jeu de résultats de l'instruction SELECT, tandis que le texte du message est le 2ème. Le filtre est capable d'identifier les numéros de téléphone, les fragments de texte et les mots-clés. Le mot-clé de chaque message est le premier mot du texte. L'envoi a lieu si l'adresse du destinataire est incluse dans la base de données (Figure 11).
Étape 6 - Un exemple simple de mot-clé
Cet exemple fonctionnera sur la table suivante que vous pouvez voir dans la Figure 9.
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Il n'y a pas de données pour ce mot-clé. 2 red Le rouge est une bonne couleur. 3 blue Le bleu n'est pas la meilleure option.Figure 9 - Le contenu de la table 'autoreplymessage'
Vous pouvez exécuter le script suivant dans la Figure 10 sur la table 'autoreplymessage' en l'ajoutant à 'sqlscript.txt'. Pour rappel, le mot-clé, symbolisé par le caractère 'k', est le premier mot du message SMS. Ce mot sera testé par le filtre. Si un test de filtre est réussi, l'instruction SELECT s'exécute et le script s'arrête. Comme vous pouvez le voir, vous pouvez placer des valeurs constantes dans l'instruction SELECT. Par exemple, '$sender', qui est l' expéditeur du message entrant.
Éléments de script que vous pouvez placer dans sqlscript.txtSELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Le premier filtre vérifie si le mot 'RED' était le mot-clé. #Si vrai, il SELECTionne 'Le rouge est une bonne couleur.' comme message de réponse. #Si faux, il passe au filtre suivant. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #Le deuxième filtre vérifie si le mot 'BLUE' était le mot-clé. #Si vrai, il SELECTionne 'Le bleu n'est pas la meilleure option.' comme message de réponse. #Si faux, il passe au filtre suivant. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Le troisième filtre acceptera tout autre mot-clé. #Il SELECTionne 'Il n'y a pas de données pour ce mot-clé.' comme message de réponse.Figure 10 - Exemple de script qui peut être placé dans sqlscript.txt
La partie filtre du script de requête SQL fonctionne de manière similaire à la partie filtre du script de messagerie SMS, mais gardez à l'esprit de ne rechercher que des exemples de filtres, car la deuxième partie est toujours une instruction SQL SELECT.
Étape 7 - Mots-clés prédéfinis dans Ozeki SMS GatewayCes types de mots-clés peuvent être placés dans le script. Par exemple '$sender' :
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'Figure 11 - Envoie msg à '$sender'
L'utilisateur de la base de données Autoreply peut reconnaître les mots-clés suivants :
Mot-clé | Valeur | $originator | Remplacé par le numéro de téléphone de l'expéditeur. |
---|---|
$sender | =$originator (Le $sender est un autre nom pour le $originator.) |
$recipient | Remplacé par le numéro de téléphone qui a reçu le message. |
$receiver | =$recipient (Le $receiver est un autre nom pour le $recipient.) |
$messagedata | Remplacé par le texte du message. |
$keyword | Remplacé par le 1er mot du message. Ce mot est appelé mot-clé. |
$after | Remplacé par le texte restant après le mot-clé. |
$senttime | Remplacé par un horodatage indiquant quand le message a été envoyé. |
$receivedtime | Remplacé par un horodatage indiquant quand le message a été reçu. |
$messagetype | Remplacé par le type du message, qui est 'SMS:TEXT' dans la plupart des cas. |
$id | Remplacé par une chaîne unique, qui identifie le message dans Ozeki SMS Gateway. |
$operator | Remplacé par le nom du fournisseur de services, qui a reçu le message dans Ozeki SMS Gateway. |
$1 | Remplacé par le 1er mot du message. |
$2 | Remplacé par le 2ème mot du message. |
$3 | Remplacé par le 3ème mot du message, etc... |
La structure du script de réponse automatique est expliquée sur ces pages web :
- La structure simple d'un fichier de script est définie sur cette page web.
- Exemple de 'sqlscript.txt'
Étape 8 - Tester la solution de réponse automatique à partir de la base de données
Après avoir effectué les étapes 1 à 6, vous pouvez essayer la solution. Ozeki SMS Gateway transférera les messages SMS entrants à votre utilisateur de base de données Autoreply. Le script de requête SQL filtre le message SMS pour créer les ensembles de résultats SELECT appropriés. Chaque ligne de l'ensemble de résultats représentera un message à répondre ou à transférer.
Vous pouvez suivre le journal des messages de votre utilisateur de base de données Autoreply à l'emplacement suivant :
C:\Program Files\Ozeki\Ozeki10\Data\NG\Logs
Lorsque j'insère des données dans la table Ozekimessageout, je ne reçois pas de message sur mon téléphone portable. Quelle pourrait être la raison pour laquelle je ne reçois pas le message texte qui est inséré dans la table de sortie en utilisant ma console SQL ?
Tout d'abord, éliminons un problème de réseau mobile. Envoyez un SMS test directement depuis l'interface graphique (GUI) d'Ozeki. Si le message arrive avec succès, la connexion réseau semble fonctionner correctement.
Ensuite, nous devons vérifier si les messages sont transférés de votre base de données vers le logiciel Ozeki. Insérez quelques messages de test dans la table Ozekimessageout. Ensuite, dans l'interface graphique d'Ozeki, accédez à la boîte d'envoi associée à l'utilisateur de base de données que vous utilisez. Si ces messages de test sont absents de la boîte d'envoi, le problème réside dans le processus de transfert de données entre la base de données et Ozeki.
Je souhaite utiliser une base de données pour plusieurs "utilisateurs de base de données". Est-ce possible ?
Absolument ! Ozeki SMS Gateway vous permet de conserver des journaux de messages distincts pour différentes finalités en utilisant des utilisateurs de base de données séparés.
Voici un guide étape par étape :
- Créez de nouvelles tables de base de données : Configurez deux nouvelles tables dans votre base de données. Pour une identification facile, vous pouvez les nommer ozekimessagein2 et ozekimessageout2. Ces tables doivent refléter la structure des tables ozekimessagein et ozekimessageout existantes utilisées par votre premier utilisateur de base de données.
- Configurez le deuxième utilisateur de base de données : Accédez au formulaire de configuration de votre deuxième utilisateur de base de données dans Ozeki.
- Modifiez les modèles SQL : Localisez la section des modèles SQL dans le formulaire de configuration. Ces modèles spécifient comment les messages sont enregistrés dans les tables de base de données.
- Mettez à jour les noms des tables : Dans les modèles SQL pour le deuxième utilisateur de base de données, mettez à jour les noms des tables existantes (ozekimessagein et ozekimessageout) pour qu'ils correspondent aux nouvelles tables créées (ozekimessagein2 et ozekimessageout2).
Mon Ozeki SMS Gateway se déconnecte toujours de mon serveur MySQL avec le message d'erreur suivant : MySQL Server has gone away. Que dois-je faire ?
Pour améliorer la réactivité lors de l'utilisation d'Ozeki avec MySQL, ajustez le paramètre de délai d'attente. Voici comment :
Configurer le délai d'attente MySQL :
- Modifiez votre fichier de configuration MySQL (par exemple, my.ini) et définissez le paramètre interactive_timeout à la durée souhaitée en secondes (par exemple, interactive_timeout = 28800 pour 8 heures).
- Enregistrez les modifications et redémarrez le service MySQL.
Mettez à jour la chaîne de connexion Ozeki :
-
Modifiez votre chaîne de connexion Ozeki pour utiliser Interactive au lieu de wait_timeout. Le format correct est Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;Interactive=VOTRE_VALEUR_DE_DELAI_D_ATTENTE.
- N'oubliez pas de remplacer VOTRE_VALEUR_DE_DELAI_D_ATTENTE par le délai d'attente souhaité en secondes.
Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;interactive=;Option=8;
More information
- Réponse SMS du PC vers le mobile
- Comment écrire un script de réponse SMS
- Comment envoyer une réponse SMS depuis SQL