Ich weiß, dass es viele Websites von Drittanbietern gibt, um Massen-SMS über das Internet zu verschicken, aber wenn ich selbst eines erstellen möchte, wie würde ich dann vorgehen? Ich weiß, wie man mit meinem Handy ein SMS-Gateway erstellt, das sehr langsam ist. Gibt es eine andere Möglichkeit, ein Internet-SMS-Gateway zu erstellen?Wie erstelle ich ein SMS-Gateway?
Antwort
Hmm ... Entsprechend Ihrer Anforderung benötigen Sie ein GSM-Modem. Damit können Sie SMS-Nachrichten mit Standard-AT-Befehlen senden. Dann müssen Sie einen HTTP-Server entwickeln, der die Anforderung empfängt, verarbeitet und die AT-Befehle an das GSM-Modem sendet.
Ich entwarf etwas ähnliches (obwohl für viel weniger Textnachrichten) für meinen Arbeitgeber. Ein Linux-Server ist mit einem Bluetooth-USB-Dongle zum Empfang von Daten von eingebetteten Sensorgeräten im Labor und einem Siemens TC35 GSM-Modem über eine serielle RS232-Verbindung verbunden. Der Server kann Nachrichten an ausgewählte Mitarbeiter senden, wenn die Sensoren feststellen, dass ein Problem vorliegt, das auch von einem C++ - Programm behandelt wird. Darüber hinaus gibt es eine J2EE-App, mit der Mitarbeiter Nachrichten über eine Webseite eingeben können, die dann als Textnachrichten an die von ihnen ausgewählten Mitarbeiter gesendet werden. Die J2EE-App speichert die Nachrichten in einer Datenbank, die dann vom C++ - Programm gesammelt und mit den Befehlen AT
über den TC35 gesendet werden. Dies geschieht auf diese Weise, so dass Sensorproblemmeldungen immer Priorität haben.
Programmierung weise war es nichts besonderes, wie AT
Befehle sind einfach zu verstehen. Stellen Sie nur sicher, dass Ihre Programmierung sicher ist, so dass sie nicht von einem Spammer entführt werden kann und dass sich das Modem in einem Raum mit guter GSM/3G-Abdeckung befindet und sich nicht in einem Keller befindet.
Oh, und es ist auch eine gute Idee, Ihr Programm fragen Sie das GSM-Modem für seine Signalstärke und andere Basisstation Informationen in regelmäßigen Abständen und speichern Sie diese in einer speziellen Datenbanktabelle. Dadurch können Sie Probleme mit Ihrem Mobilfunkanbieter erkennen und bei Bedarf zu einem anderen Anbieter wechseln. Ich habe diese Informationen verwendet, um festzustellen, dass die Basisstation, die ich benutzte, offline zu gehen schien oder ziemlich häufig technische Probleme hatte, was dazu führte, dass der Datendurchsatz meiner Modems zu einem Rinnsal wurde.
Good Luck
es kann auf zwei Arten 1) GSM-Modem 2) http (Service Provider) (Schneller als Modem)
Ich habe http://www.ozekisms.com/ Gateway Service
C# -Code verwendet getan werden um HTTP-Anfrage zu senden und wie Benutzername und Passwort IP-Adresse und Port hinzufügen.
Verweisen Sie auf diesen Code, der Ihnen hoffentlich hilft.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SMSClient;
namespace SMSDemoConsole
{
class Program
{
private static void WriteEvent(String myEvent)
{
Console.WriteLine(myEvent);
}
#region Events
static void mySMSClient_OnMessageReceived(object sender, DeliveryEventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " " + "Message received. Sender address: " + e.Senderaddress + " Message text: " + e.Messagedata + "\r\n");
}
static void mySMSClient_OnMessageDeliveryError(object sender, DeliveryErrorEventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " " + "Message could not be delivered. ID: " + e.Messageid + " Error message: " + e.ErrorMessage + "\r\n");
}
static void mySMSClient_OnMessageDeliveredToHandset(object sender, DeliveryEventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " " + "Message delivered to handset. ID: " + e.Messageid + "\r\n");
}
static void mySMSClient_OnMessageDeliveredToNetwork(object sender, DeliveryEventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " " + "Message delivered to network. ID: " + e.Messageid + "\r\n");
}
static void mySMSClient_OnMessageAcceptedForDelivery(object sender, DeliveryEventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " " + "Message accepted for delivery. ID: " + e.Messageid + "\r\n");
}
static void mySMSClient_OnClientConnectionError(object sender, ErrorEventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " " + e.ErrorMessage + "\r\n");
}
static void mySMSClient_OnClientDisconnected(object sender, EventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " Disconnected from the SMS gateway " + "\r\n");
}
static void mySMSClient_OnClientConnected(object sender, EventArgs e)
{
WriteEvent(DateTime.Now.ToString() + " Successfully connected to the SMS gateway " + "\r\n");
}
#endregion
static void Main(string[] args)
{
ozSMSClient mySMSClient = new ozSMSClient();
mySMSClient.OnClientConnected += new SimpleEventHandler(mySMSClient_OnClientConnected);
mySMSClient.OnClientDisconnected += new SimpleEventHandler(mySMSClient_OnClientDisconnected);
mySMSClient.OnClientConnectionError += new ErrorEventHandler(mySMSClient_OnClientConnectionError);
mySMSClient.OnMessageAcceptedForDelivery += new DeliveryEventHandler(mySMSClient_OnMessageAcceptedForDelivery);
mySMSClient.OnMessageDeliveredToNetwork += new DeliveryEventHandler(mySMSClient_OnMessageDeliveredToNetwork);
mySMSClient.OnMessageDeliveredToHandset += new DeliveryEventHandler(mySMSClient_OnMessageDeliveredToHandset);
mySMSClient.OnMessageDeliveryError += new DeliveryErrorEventHandler(mySMSClient_OnMessageDeliveryError);
mySMSClient.OnMessageReceived += new DeliveryEventHandler(mySMSClient_OnMessageReceived);
mySMSClient.Username = "admin";
mySMSClient.Password = "abc123";
mySMSClient.Host = "127.0.0.1";
mySMSClient.Port = 9500;
mySMSClient.Connected = true;
mySMSClient.sendMessage("+44987654", "TEST", "vp=" + DateTime.Now + "&ttt=werwerwe rewwe34232 1");
Console.ReadKey();
mySMSClient.Connected = false;
}
}
}
Danke.
- 1. Wie erstelle ich ein PDF?
- 2. Wie erstelle ich ein jqGrid
- 3. Wie erstelle ich ein Kartensymbol?
- 4. Wie erstelle ich ein Leinwandauswahlwerkzeug?
- 5. Wie erstelle ich ein Frühlingsprojekt?
- 6. Wie erstelle ich ein Sternenbewertungssystem?
- 7. Wie erstelle ich ein Singleton?
- 8. Wie erstelle ich ein Meldungsfeld mit tkinter?
- 9. Schienen/Haml: Wie erstelle ich ein Postformular?
- 10. Wie erstelle ich ein Cocoa-Fenster programmgesteuert?
- 11. Wie erstelle ich ein Verzeichnis in Lua?
- 12. Wie erstelle ich ein wiederholbares Indexskript?
- 13. Wie erstelle ich ein Halbfenster-Ansichtsmenü?
- 14. WiX - Wie erstelle ich ein Unterverzeichnis?
- 15. Wie erstelle ich ein benutzerdefiniertes Outlook-Objekt?
- 16. Wie erstelle ich ein schwarzes UIImage?
- 17. Java - Wie erstelle ich ein benutzerdefiniertes Dialogfeld?
- 18. Wie erstelle ich ein Konfigurations-Skript?
- 19. Wie erstelle ich ein OpenGL Live Wallpaper?
- 20. Wie erstelle ich ein Highlight bei mouseover?
- 21. Wie erstelle ich ein serverseitiges zeitgesteuertes Ereignis?
- 22. C Präprozessor: Wie erstelle ich ein Zeichenliteral?
- 23. Wie erstelle ich ein Bild von UILabel?
- 24. Wie erstelle ich ein Sinuswellensignal in Cocoa?
- 25. Wie erstelle ich ein Array von Namespaces?
- 26. Wie erstelle ich ein JSON-Array
- 27. Wie erstelle ich ein überlappendes Balkendiagramm?
- 28. Wie erstelle ich ein Observable in Android?
- 29. Wie erstelle ich ein benutzerdefiniertes Gridview-Steuerelement?
- 30. Wie erstelle ich ein benutzerdefiniertes Textbearbeitungs-Steuerelement?