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 :

  1. Lancez Ozeki SMS Gateway
  2. Ajoutez un nouvel utilisateur Autoreply Database
  3. Créez la structure de la table SQL
  4. Configurez l'utilisateur Autoreply Database
  5. Fournissez le script de texte de réponse automatique
  6. Utilisez des numéros et mots-clés identifiables
  7. Envoyez un SMS test pour obtenir une réponse depuis SQL
  8. Vérifiez les journaux de l'utilisateur Autoreply Database

Vidéo 1 - Comment envoyer une réponse SMS depuis SQL (Tutoriel vidéo)

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.

comment fonctionne l'utilisateur autoreply database d'ozeki sms gateway
Figure 1 - Comment fonctionne l'utilisateur Autoreply Database d'Ozeki SMS Gateway

É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.

cliquez sur ajouter utilisateur ou application sur la console de gestion
Figure 2 - Cliquez sur 'Ajouter' utilisateur ou application sur la console 'Management'

Trouvez l'utilisateur Autoreply Database et cliquez sur le lien bleu 'installer' à côté. Comme vous pouvez le voir sur Figure 3.

installer l'utilisateur autoreply database depuis la console de gestion
Figure 3 - Installer l'utilisateur Autoreply Database depuis la console 'Management'

É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ées

Vous 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.

configurer l'utilisateur de la base de données autoreply pour la requête d'informations SMS
Figure 6 - Configuration de l'utilisateur Autoreply Database pour la requête d'informations SMS

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;

Figure 7 - Exemple de chaîne de connexion pour une connexion ODBC à une base de données MySQL

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)

fournir le chemin du script txt à l'utilisateur Autoreply Database
Figure 8 - Fournir le chemin du script txt à l'utilisateur Autoreply Database

É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.txt
SELECT '$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 Gateway

Ces 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
$originatorRemplacé par le numéro de téléphone de l'expéditeur.
$sender=$originator (Le $sender est un autre nom pour le $originator.)
$recipientRemplacé 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.)
$messagedataRemplacé par le texte du message.
$keywordRemplacé par le 1er mot du message. Ce mot est appelé mot-clé.
$afterRemplacé par le texte restant après le mot-clé.
$senttimeRemplacé par un horodatage indiquant quand le message a été envoyé.
$receivedtimeRemplacé par un horodatage indiquant quand le message a été reçu.
$messagetypeRemplacé par le type du message, qui est 'SMS:TEXT' dans la plupart des cas.
$idRemplacé par une chaîne unique,
qui identifie le message dans Ozeki SMS Gateway.
$operatorRemplacé par le nom du fournisseur de services,
qui a reçu le message dans Ozeki SMS Gateway.
$1Remplacé par le 1er mot du message.
$2Remplacé par le 2ème mot du message.
$3Remplacé par le 3ème mot du message, etc...

La structure du script de réponse automatique est expliquée sur ces pages web :

É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).
En suivant ces étapes, vous établirez des journaux de messages distincts pour chaque utilisateur de base de données. Cela vous permet de catégoriser ou de filtrer les messages en fonction de vos besoins spécifiques en utilisant les noms de tables choisis.

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.
En suivant ces étapes, vous optimiserez les délais d'attente de connexion MySQL pour un fonctionnement plus fluide dans Ozeki, particulièrement bénéfique pour les tâches de longue durée ou les ensembles de données volumineux.

Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=ozeki;User=test;Password=test;interactive=;Option=8;

More information