Comment recevoir des SMS en C#

Cet article donne des informations sur la façon de recevoir des SMS en C# avec l'passerelle SMS Ozeki. Lisez la suite pour en savoir plus sur cette procédure !

Pourquoi voulez-vous recevoir des SMS en C# ?

Il existe diverses raisons de recevoir des SMS en C#. Vous pouvez vouloir collecter des données à partir de capteurs ou d'utilisateurs mobiles, créer des services SMS qui envoient une réponse avec des informations, ou simplement demander à vos utilisateurs de confirmer qu'ils ont reçu un SMS.

Prérequis

Comment recevoir des SMS en C# (étapes rapides)

Comment recevoir des SMS en C#
  1. Téléchargez l'exemple de réception SMS en C#
  2. Ouvrez la solution dans Visual Studio
  3. Connectez-vous à la passerelle SMS Ozeki
  4. Recevez un SMS simulé en C#
  5. Connectez-vous au réseau mobile
  6. Recevez un SMS en C# envoyé depuis un mobile
  7. Vérifiez les journaux dans la passerelle SMS
  8. Vérifiez le rapport de livraison sur votre mobile

recevoir des sms en c#
Figure 1 - Recevoir des SMS en C#

Exemple de code C# pour recevoir des messages texte

L'exemple de code SMS en C# ci-dessous décrit les étapes les plus importantes pour créer un service de réception de SMS. L'API SMS C# Ozeki est gratuite. Vous pouvez modifier la bibliothèque de l'API, les exemples qui l'accompagnent, et vous pouvez l'utiliser dans votre projet et la redistribuer librement ou ses dérivés. L'exemple suivant vous montre comment vous abonner à l'événement OnMessageReceived en C# et comment gérer cet événement. L'exemple affiche le message SMS entrant dans la console.


class Program
{
    static OzxClient Client;

    static void Main(string[] args)
    {
        Client = new OzxClient();
        Client.AutoReconnect = true;
        Client.OnMessageReceived += Client_OnMessageReceived;
        
        Client.Connect("127.0.0.1",9580,"testuser","testpass");
    }

    static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e)
    {
        Console.WriteLine("Message reçu : " + e.Item.ToString());
    }
}

Le paramètre e.Item est un OzxMessage complet. Cela signifie que vous avez tous les détails des messages SMS dans votre événement de l'API SMS C#. Ces détails incluent l'identifiant de l'expéditeur du SMS, le numéro de téléphone auquel le SMS a été envoyé, le texte du SMS et les horodatages correspondants.

L'un des plus grands avantages de l'utilisation de l'API SMS C# Ozeki est que vous recevez les SMS entrants instantanément. Dès qu'ils atteignent la passerelle SMS, ils sont transmis à votre client SMS C# via le lien TCP/IP établi. Cela signifie que vous ne subirez aucun retard.

Si votre client API SMS C# n'est pas connecté à la passerelle SMS lorsque le SMS est reçu, le SMS est stocké dans le dossier de réception de la passerelle SMS. Cela signifie que vos messages entrants ne seront pas perdus même si le logiciel SMS que vous avez écrit en utilisant l'API SMS C# est hors ligne. Cela est dû au fait que la passerelle SMS Ozeki est en réalité un serveur SMS.

Étape 1 - Téléchargez la bibliothèque SMS C# Ozeki

Accédez à https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip et téléchargez le fichier zip avec votre navigateur. Le fichier zip se trouvera dans votre répertoire de téléchargement (Figure 2). Vous pouvez ouvrir le téléchargement directement dans l'Explorateur Windows. Le package zip téléchargé contiendra l'exemple de code que vous pouvez utiliser pour recevoir des SMS en C#.

bibliothèque SMS Ozeki téléchargée
Figure 2 - Bibliothèque SMS Ozeki téléchargée

Étape 2 - Extrayez la bibliothèque SMS C#

Extrayez la bibliothèque SMS C# en cliquant sur le fichier OzekiConsole.zip avec le bouton droit de la souris (Figure 2). Cela fera apparaître le menu contextuel. Dans le menu contextuel, sélectionnez "Extraire tout...". Cela affichera la fenêtre de dialogue "Extraire", où vous devrez cliquer sur Extraire.

Cliquez sur le bouton "Extraire" dans la fenêtre de dialogue "Extraire tout" (Figure 3).

Extraire l'exemple de réception SMS en C#
Figure 3 - Extraire l'exemple de réception SMS en C#

Étape 3 - Ouvrez le projet dans Visual Studio

Ouvrez le dossier OzekiConsole. Ce dossier apparaîtra après avoir extrait le package OzekiConsol.zip. Dans le dossier OzekiConsole, double-cliquez sur le fichier OzekiConsole.sln. Cela affichera la boîte de dialogue "Comment voulez-vous ouvrir ce fichier ?". Dans cette boîte de dialogue, sélectionnez "Visual Studio". Une fois Visual Studio sélectionné, cliquez sur OK pour ouvrir le projet d'exemple en C#. (Figure 4)

Ouvrir l'exemple de réception SMS en C# dans Visual studio
Figure 4 - Ouvrir l'exemple de réception SMS en C# dans Visual studio

Étape 4 - Cliquez sur Program.cs

Ouvrez Program.cs en cliquant sur le fichier dans l'explorateur de solutions à gauche de l'écran. Ceci est le code principal de cet exemple de projet C#. Ce code contient des exemples sur comment envoyer des SMS depuis C# et sur comment recevoir des SMS en C#. Le code n'est pas trop long, il fait environ 300 lignes. Il démontre toutes les fonctionnalités de l'API SMS en C#. (Figure 5)

Charger Program.cs dans l'éditeur
Figure 5 - Charger Program.cs dans l'éditeur

Étape 5 - Définir un point d'arrêt dans le code de réception SMS

Trouvez le gestionnaire d'événements OnMessageReceived et définissez un point d'arrêt sur la ligne de début de la procédure. Ce point d'arrêt vous permettra de capturer l'événement OnMessageReceived. L'événement OnMessageReceived est déclenché lorsque votre client SMS en C# reçoit le message SMS depuis la passerelle SMS. (Figure 6)

définir un point d'arrêt dans l'événement de réception SMS
Figure 6 - Définir un point d'arrêt dans l'événement de réception de message

Étape 6 - Créer un compte utilisateur OZX pour l'API SMS

Pour permettre à l'exemple d'API SMS en C# de se connecter à la passerelle SMS, vous devez créer un compte utilisateur OZX dans la passerelle SMS. Pour ce faire, accédez à la console de gestion de la passerelle SMS en ouvrant l'URL https://127.0.0.1:9515 et cliquez sur le lien "Ajouter un nouvel utilisateur/application" à droite de l'écran. (Figure 7)

Créer un compte utilisateur SMS pour recevoir des messages texte
Figure 7 - Créer un compte utilisateur SMS pour recevoir des messages texte en C#

Le lien "Ajouter un nouvel utilisateur/application" affichera une liste de types d'utilisateurs installables. Vous devez trouver le compte utilisateur OZX dans la liste. Le compte utilisateur OZX utilise un protocole SMS hautement optimisé, qui permet à votre application SMS en C# de communiquer avec la passerelle SMS via le réseau. Comme la passerelle SMS et le client SMS en C# communiquent via le réseau, vous pouvez recevoir un message texte dans votre projet C# même si le projet s'exécute sur un autre ordinateur. (Figure 8)

installer le compte utilisateur de l'API SMS en C#
Figure 8 - Cliquez sur installer pour installer le compte utilisateur de l'API SMS en C# (utilisateur OZX)

Fournissez un nom d'utilisateur et un mot de passe. Dans notre exemple, nous utilisons testuser comme nom d'utilisateur et testpass comme mot de passe. Le client SMS en C# utilisera ces identifiants pour se connecter à la passerelle SMS. Si vous souhaitez plus d'une connexion d'API SMS en C#, vous pouvez créer plusieurs comptes utilisateurs OZX. Chaque compte utilisateur hébergera son propre client API SMS en C#. Pour décider quel client SMS en C# recevra un SMS entrant, vous devez créer des routes entrantes dans la table de routage SMS Ozeki. (Figure 9)

Définir testuser comme nom d'utilisateur de l'API SMS en C#
Figure 9 - Définir testuser comme nom d'utilisateur de l'API SMS en C#

Activez les options de journalisation pour le compte de l'API SMS en C# pour obtenir des journaux de communication. Je vous recommande de cocher d'abord toutes les cases de journalisation, afin d'obtenir des informations détaillées sur ce qui arrive à un message. Si vous recevez un texte, vous le verrez apparaître dans le journal avant qu'il ne soit transmis à votre client SMS en C#. (Figure 10)

Activer la journalisation pour voir les SMS reçus avant qu'ils n'arrivent au client SMS en C#
Figure 10 - Activer la journalisation pour voir les SMS reçus avant qu'ils n'arrivent au client SMS en C#

Étape 6 - Ajouter une nouvelle route pour simuler un SMS entrant

Créez une nouvelle route SMS pour permettre à l'utilisateur admin d'envoyer des messages SMS de test au client API SMS en C#. L'un des meilleurs aspects de l'utilisation d'Ozeki SMS Gateway est qu'il vous permet de gérer vos messages SMS avec une table de routage. Vous pouvez configurer diverses connexions au réseau mobile et décider quels SMS iront où. Dans notre exemple, nous voulons router les messages SMS provenant du compte admin vers le client API SMS en C#. Dans un système réel, vous ne routerez pas les SMS depuis le compte admin, mais vous routerez les messages SMS reçus sur les connexions au réseau mobile vers votre client API SMS en C#.

Pour créer une nouvelle route SMS, cliquez sur Ajouter une nouvelle route dans le tableau de bord d'Ozeki SMS Gateway (Figure 11).

Ajouter une nouvelle route SMS pour le client SMS en C#
Figure 11 - Ajouter une nouvelle route SMS

Pour recevoir un texte pendant que vous écrivez votre code SMS en C#, vous utiliserez le formulaire de composition de la passerelle SMS, et vous enverrez le SMS en tant qu'utilisateur admin. La route SMS que nous allons créer routera les messages SMS provenant de admin vers le compte testuser. Le compte testuser transmettra le SMS au client SMS en C# (Figure 12).

SMS de l'interface graphique vers C#
Figure 12 - SMS de admin vers le client C#

Sélectionnez testuser comme destination pour vos messages SMS entrants dans le formulaire de détails de routage. Cette route enverra les messages SMS de l'utilisateur admin à testuser. Testuser transmettra les SMS reçus au client API en C# (Figure 13).

Créer une route SMS pour simuler des textes entrants
Figure 13 - Créer une route SMS pour simuler des textes entrants

Étape 7 - Démarrer le projet d'exemple SMS en C#

Pour démarrer votre projet SMS en C#, vous devez cliquer sur le bouton Démarrer dans la barre d'outils de Visual Studio. Après avoir cliqué sur ce bouton, Visual Studio compilera le code et l'exécutera dans l'environnement de développement. L'exécution du programme s'arrêtera lorsque l'algorithme atteindra un point d'arrêt. Comme notre exemple est une application console, vous verrez apparaître la fenêtre console noire une fois l'exécution démarrée. (Figure 14)

Figure 14 - Démarrer le projet SMS en C#

Tapez help dans la fenêtre console. Le texte d'aide listera les commandes disponibles pour vous dans ce projet exemple. La première commande que vous utiliserez est la commande connect. Tapez "connect 127.0.0.1:9580 testuser testpass" dans la fenêtre console pour connecter votre code SMS en C# à la passerelle SMS. Notez que 127.0.0.1 signifie que la passerelle SMS fonctionne sur le même PC où votre code SMS en C# s'exécute. 9580 est le port TCP/IP utilisé par la passerelle SMS pour accepter les clients SMS en C# (utilisateurs OZX), et les identifiants testuser et testpass sont ceux que nous avons définis lors de la création du compte utilisateur OZX à l'étape 6 de ce tutoriel SMS. (Figure 15)

Figure 15 - Lancer l'application console SMS en C#

Une fois connecté à la passerelle SMS, vous êtes prêt à envoyer votre premier SMS à votre client API en C#.

Étape 8 - Envoyer un SMS test

Envoyez un message SMS test en cliquant sur le bouton "Nouveau" dans la barre d'outils Ozeki de la console de gestion de la passerelle SMS. Lorsque vous envoyez votre SMS test, vous devrez définir une adresse de destinataire et le texte du message. Dans l'onglet Avancé, vous pouvez également définir un ID d'expéditeur, tel qu'un ID d'expéditeur alphanumérique pour votre SMS. (Figure 16)

SMS test sur le point d'être reçu
Figure 16 - Composer le SMS test sur le point d'être reçu

Cliquez sur OK pour soumettre le SMS test. Votre passerelle SMS vous fournira les événements liés à la soumission du SMS, et vous obtiendrez un ID de message. Vous remarquerez peut-être la chaîne GUID dans la dernière ligne de la Figure 17.

ID de message SMS à utiliser dans l'API SMS en C#
Figure 17 - ID de message SMS à utiliser dans l'API SMS en C#

Après l'envoi du SMS par l'utilisateur admin, il est reçu par le compte utilisateur OZX appelé testuser. Ce compte transfère le SMS au client SMS en C# via le réseau. Le client SMS en C# reçoit le texte via le lien TCP/IP établi par la méthode connect. Si vous avez défini un point d'arrêt dans l'événement OnMessageReceived, c'est à ce moment que votre point d'arrêt interrompra l'exécution du programme.

Étape 9 - Recevoir un SMS dans la console C#

Lisez la ligne de message reçu dans la console C#. Vous verrez que le SMS a été envoyé par admin@localhost au numéro de téléphone +361111111. L'API SMS en C# a reçu le texte 'Hello c sharp client' (Figure 18). Le message texte a été présenté au client C# sous la forme d'un événement C#. Le gestionnaire d'événements OnMessageReceived est appelé lorsque cet événement est déclenché, et le message est passé en paramètre d'entrée de la méthode OzMessageReceived.

recevoir un SMS dans la console C#
Figure 18 - recevoir un SMS dans la console C#

La prochaine chose à faire est de consulter les journaux dans la passerelle SMS.

Étape 10 - Voir les journaux dans la passerelle SMS

Ouvrez la page de détails de testuser en cliquant sur le lien testuser dans le tableau de bord de la passerelle SMS Ozeki. Cela nous amènera au journal des événements du compte testuser. Dans ce journal, nous nous attendons à voir la communication entre le client SMS en C# et la passerelle SMS. Nous nous attendons également à voir le SMS reçu dans le journal de communication. (Figure 19)

Figure 19 - Ouvrir la page de détails de testuser

Localisez la ligne "Received." dans l'onglet des événements de testuser. Vous verrez le SMS reçu par le client SMS en C# dans cette ligne. Vous pouvez voir la date et l'heure de l'événement, ainsi que les détails du message. Sous l'entrée de journal lisible par l'homme, vous verrez le journal de communication du protocole OZX. Ce journal vous permet de déboguer la communication en cas de problème. (Figure 20)

Figure 20 - vérifier le SMS entrant dans le compte utilisateur associé à l'API SMS en C#

Recevoir un message texte du réseau mobile

Dans les étapes précédentes, nous avons simulé un message entrant. L'utilisateur admin a envoyé un message qui a été transmis à l'exemple SMS en C#. L'étape suivante consiste à connecter le système au réseau mobile. Pour cela, vous avez plusieurs options. Vous pouvez vous connecter à un fournisseur de services SMS basé sur Internet en utilisant une Ozeki 10 SMS Gateway sur votre téléphone Android et utiliser la connexion SMS intégrée de la passerelle SMS Android. (Figure 21)

Figure 21 - Recevoir un SMS avec un téléphone Android

Pour faire fonctionner la solution ci-dessus avec un téléphone Android, tout ce que vous avez à faire est de créer une route entrante dans la table de routage SMS d'Ozeki. Vous devez créer cette route entre la connexion au réseau mobile et l'utilisateur de l'API SMS en C# (testuser). Pour trouver la meilleure méthode de connexion au réseau mobile pour votre projet, consultez notre guide sur la connexion de votre passerelle SMS au réseau mobile. (Figure 22)

Figure 22 - Table de routage pour recevoir des SMS

Pour résumer

Ceci était une longue et très détaillée liste d'instructions pour vous aider à démarrer le développement d'un projet SMS en C# capable de recevoir des messages SMS. Si vous commencez à utiliser cette solution, vous constaterez rapidement qu'elle est très efficace si vous souhaitez recevoir des SMS rapidement via diverses connexions au réseau mobile. Cette solution fonctionne que vous souhaitiez recevoir des SMS via un téléphone mobile Android ou via une liaison SMS IP, telle qu'une connexion client SMPP.

More information