2009-08-29 17 views
7

バルクSMSをインターネット経由で送信するサードパーティのサイトがたくさんあることは知っていますが、自分で作成したい場合はどうすればいいですか?私は非常に遅い私の携帯電話を使用してSMSゲートウェイを作成する方法を知っています。インターネットSMSゲートウェイを作成する他の方法はありますか?SMSゲートウェイを作成するには?

答えて

2

うーん...あなたの要件によると、あなたはGSMモデムが必要になります。これを使用して、標準ATコマンドでSMSメッセージを送信することができます。次に、リクエストを取得して処理し、ATコマンドをGSMモデムに送信するHTTPサーバーを開発する必要があります。

3

SMPPプロトコルを使用してSMSCに問い合わせる必要があります。 Kannelを使用することもできます。これは、GSMモデムを含むさまざまなタイプのSMSCと、send-sms HTTPサービスなどで動作する優れた機能を提供します。

6

僕の雇用主にとっては(テキストメッセージがはるかに少ないにもかかわらず)類似のものを設計しました。 Linuxサーバは、Bluetooth USBドングルに接続されており、ラボ内のエンベデッドセンサデバイスからデータを受信し、Siemens TC35 GSMモデムはRS232シリアルリンク経由で受信します。センサーがC++プログラムでも処理される問題があると判断した場合、サーバーは選択した従業員の電話機にメッセージを送信できます。さらに、従業員がWebページを介してメッセージを入力し、選択した従業員にテキストメッセージとして送信できるようにするJ2EEアプリもあります。 J2EEアプリケーションはメッセージをデータベースにダンプし、C++プログラムによって収集され、ATコマンドを使用してTC35経由で送信されます。このようにして、センサの問題のメッセージが常に優先されます。

プログラミングは賢明なものではありません。ATコマンドは分かりやすいためです。プログラミングが安全であることを確認して、スパム発信者に乗っ取られないようにしてください。モデムは、GSM/3Gサービスエリアの良い部屋にあり、地下にはありません。

あなたのプログラムがGSMモデムに信号強度と他のセル基地局情報を定期的に問い合わせて、これを特別なデータベーステーブルに格納することをお勧めします。これにより、セルプロバイダーの問題を発見し、必要に応じて別のセルプロバイダーに移動することができます。私はこの情報を使って、私が使用していた基地局がオフラインになったり、技術的な問題が頻繁に発生してモデムのメッセージスループットが細かくなったりするのを発見しました。

グッドラック

3

それは2つの方法1)GSMモデム 2)HTTP(サービスプロバイダ)(モデムよりも速い)

私が使用しているhttp://www.ozekisms.com/ゲートウェイサービスで行うことができます

C#コードHTTPリクエストを送信する方法と、ユーザー名とパスワードのIPアドレスとポートを追加する方法。

このコードを参考にしてください。

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; 
     } 
    } 
} 

ありがとうございます。

関連する問題