Как создать смс шлюз? - PullRequest
       44

Как создать смс шлюз?

7 голосов
/ 29 августа 2009

Я знаю, что существует множество сторонних сайтов для отправки массовых SMS через Интернет, но если бы я захотел создать его самостоятельно, как бы я это сделал? Я знаю, как создать SMS-шлюз с помощью моего мобильного телефона, что очень медленно. Есть ли другой способ создания интернет-шлюза SMS?

Ответы [ 4 ]

6 голосов
/ 25 февраля 2010

Я разработал нечто подобное (хотя для гораздо меньшего количества текстовых сообщений) для моего работодателя. Сервер Linux подключен к USB-ключу Bluetooth для получения данных от встроенных сенсорных устройств в лаборатории и GSM модема Siemens TC35 через последовательный канал RS232. Сервер может отправлять сообщения на выбранный телефон сотрудника, если датчики определяют, что существует проблема, которая также обрабатывается программой C ++. Кроме того, есть приложение J2EE, которое позволяет сотрудникам вводить сообщения через веб-страницу, которые затем отправляются в виде текстовых сообщений выбранным сотрудникам. Приложение J2EE сбрасывает сообщения в базу данных, которые затем собираются программой C ++ и отправляются с помощью команд AT через TC35. Это делается таким образом, чтобы сообщения о проблемах датчика всегда имели приоритет.

В программировании не было ничего особенного, поскольку AT команды легко понять. Просто убедитесь, что ваши программы безопасны, чтобы они не могли быть захвачены спамером, а модем находится в комнате с хорошим покрытием GSM / 3G и не находится в подвале.

Да, также неплохо бы, чтобы ваша программа регулярно запрашивала у GSM-модема уровень сигнала и другую информацию о базовой станции сотовой связи и сохраняла ее в специальной таблице базы данных. Это позволит вам обнаружить проблемы с вашим сотовым провайдером и перейти к другому, если это необходимо. Я использовал эту информацию, чтобы обнаружить, что базовая станция, которую я использовал, выходила из строя или часто сталкивалась с техническими проблемами, из-за которых пропускная способность моих модемных сообщений снижалась до минимума.

Удачи

3 голосов
/ 21 апреля 2012

это можно сделать двумя способами 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;
        }
    }
}

Спасибо.

3 голосов
/ 29 августа 2009

Вам нужно будет поговорить с SMSC с протоколом SMPP . Вы также можете использовать Kannel , он предоставляет приятные функции для работы с различными типами SMSC, включая GSM-модемы, а также send-sms HTTP-сервис и многое другое.

2 голосов
/ 29 августа 2009

Хмм ... По вашему требованию вам понадобится GSM модем. С его помощью вы можете отправлять SMS-сообщения с помощью стандартных AT-команд. Затем вам нужно разработать HTTP-сервер, который получает запрос, обрабатывает его и отправляет AT-команды в GSM-модем.

...