2009-08-29 16 views
7

मुझे पता है कि इंटरनेट के माध्यम से थोक एसएमएस भेजने के लिए बहुत सी तृतीय पक्ष साइटें हैं, लेकिन अगर मैं खुद को बनाना चाहता हूं, तो मैं इसके बारे में कैसे जाऊं? मुझे पता है कि मेरे मोबाइल फोन का उपयोग करके एक एसएमएस गेटवे कैसे बनाया जाए, जो बहुत धीमी है। क्या इंटरनेट एसएमएस गेटवे बनाने का कोई और तरीका है?एसएमएस गेटवे कैसे बनाएं?

उत्तर

2

हम्म ... आपकी आवश्यकता के अनुसार आपको एक जीएसएम मोडेम की आवश्यकता होगी। इसका उपयोग करके आप मानक एटी कमांड के साथ एसएमएस संदेश भेज सकते हैं। फिर आपको एक HTTP सर्वर विकसित करने की आवश्यकता है जो अनुरोध प्राप्त करता है, इसे संसाधित करता है और एटी कमांड को जीएसएम मोडेम में भेजता है।

3

आपको SMPP प्रोटोकॉल के साथ एक एसएमएससी से बात करने की आवश्यकता होगी। आप Kannel का भी उपयोग कर सकते हैं, यह विभिन्न प्रकार के एसएमएससी के साथ काम करने के लिए अच्छी सुविधाएं प्रदान करता है जिसमें जीएसएम मोडेम के साथ-साथ send-sms HTTP सेवा और भी बहुत कुछ शामिल है।

6

मैंने अपने नियोक्ता के लिए कुछ समान (हालांकि बहुत कम पाठ संदेशों के लिए) तैयार किया है। एक लिनक्स सर्वर एक ब्लूटूथ यूएसबी डोंगल से लैब में एम्बेडेड सेंसर डिवाइस से डेटा प्राप्त करने और एक आरएस 232 धारावाहिक लिंक के माध्यम से एक सीमेंस टीसी 35 जीएसएम मोडेम से कनेक्ट होता है। सर्वर चयनित कर्मचारियों के फोन पर संदेश भेज सकता है अगर सेंसर निर्धारित करता है कि एक समस्या है जिसे सी ++ प्रोग्राम द्वारा भी संभाला जाता है। इसके अलावा एक जे 2 ईई ऐप है जो कर्मचारियों को ऐसे वेब पेज के माध्यम से संदेशों को दर्ज करने की अनुमति देता है जिन्हें उनके द्वारा चुने गए कर्मचारियों को टेक्स्ट संदेश के रूप में भेजा जाता है। जे 2 ईई ऐप संदेशों को डेटाबेस में डंप करता है जिसे सी ++ प्रोग्राम द्वारा एकत्र किया जाता है और टीसी 35 के माध्यम से AT कमांड का उपयोग करके भेजा जाता है। ऐसा इसलिए किया जाता है ताकि सेंसर समस्या संदेशों को हमेशा प्राथमिकता दी जा सके।

प्रोग्रामिंग के अनुसार यह AT कमांड के रूप में कुछ भी विशेष नहीं था, समझने में आसान हैं। बस सुनिश्चित करें कि आपका प्रोग्रामिंग सुरक्षित है इसलिए इसे स्पैमर द्वारा अपहृत नहीं किया जा सकता है और मॉडेम अच्छे जीएसएम/3 जी कवरेज वाले कमरे में स्थित है और बेसमेंट में नहीं है।

ओह और यह भी एक अच्छा विचार है कि आपका प्रोग्राम जीएसएम मोडेम को इसकी सिग्नल शक्ति और अन्य सेल बेस स्टेशन की जानकारी के लिए नियमित अंतराल पर पूछें और इसे एक विशेष डेटाबेस तालिका में स्टोर करें। इससे आपको अपने सेल प्रदाता के साथ समस्याएं तलाशने की आवश्यकता होगी और यदि आवश्यक हो तो दूसरे स्थान पर जाएं। मैंने इस जानकारी का उपयोग यह पता लगाने के लिए किया था कि मैं जिस बेस स्टेशन का उपयोग कर रहा था वह ऑफ़लाइन जा रहा था या तकनीकी समस्याएं अक्सर दिखाई दे रही थीं जिससे मेरे मॉडेम संदेश थ्रूपुट को एक ट्रिकल तक धीमा कर दिया गया।

गुड लक

3

यह दो तरीके 1) जीएसएम मॉडेम 2) http (सेवा प्रदाता) (मोडेम से तेज़)

मैं का इस्तेमाल किया है http://www.ozekisms.com/ प्रवेश द्वार सेवा में किया जा सकता

सी # कोड एचटीपी अनुरोध भेजने और उपयोगकर्ता नाम और पासवर्ड आईपी पता और पोर्ट जोड़ने के लिए।

इस कोड की आशा देखें कि आशा आपकी मदद करेगी।

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

धन्यवाद।

संबंधित मुद्दे