SMS-SENDER. Чиста софт. Кривой.

Где-то с год назад я дожевывал свою идею-фикс о смс-сервере. Не обладая програмистским образованием, методом тыка и вытыка писалась утилита командной строки для отсылки смс через GSM-модем.....

А начиналось все очень мирно - требовалось научить Frendly Pinger слать смс когда падает какая-нибудь кошка... К концу моего терпения получился кусок сырого кода, который работал как сервер и как клиент и уверенно падал когда ему присылали смс в ответ. Потому что изначально планировалась обработка входящих смс, ACL-ы и прочая паранойя...

Сегодня писал к нему сопроводилово. Кусочек выложу здесь. Кому интересно - качайте. Абсолютно бесплатно. Фриваре, так сказать. К сожалению, исходник утрачен, придется все начитать с нюля. Ибо за год забыл то немногое по с++, что вычитал в справке к вижуалохфису.  Не придирайтесь к стилю этого словоблудия - для руководства писал :).


Программно-аппаратный комплекс "Флудераст".



Подробное описание.
.ini-файл:
секция [COM]
 - все параметры очевидны, ev- четность
number=COM1
baudrate=19200
ev=none


секция [SERVER]
IP=0.0.0.0
Port=89
LogFile=c:\cmd\mysms2.log

- назначение параметров очевидно
PureRun=1
-этот параметр зарезервирован для будущего функционала

секция [RECIPIENTS]
Monster=81234567890
DEFAULT=81234567890

Пары короткое_имя - номер. Использование зарезервировано для будущего функционала.
Короткое имя DEFAULT - ОБЯЗАТЕЛЬНО! На ассоциированый с ним номер будет отправлено сообщение при запуске в клиентском режиме без параметров. Рекомендуется использовать номер телефона ответственного за данный хост.

секция [MESSAGES]
DEFAULT=testSMStest
DOWN=Is down!!!
UP=Is up..
ALERT=AHTUNG!!! Russische Partizanen!!

Ассоциированные пары короткое_имя - сообщение. . Использование зарезервировано для будущего функционала.
Короткое имя DEFAULT - ОБЯЗАТЕЛЬНО! -см. секцию [RECIPIENTS]

Секция [mcinit]
Команды инициализации GSM-модема. Используется для настройки на конкретную модель GSM-модема. Прведенные в приложенном ini-файле команды рассчитаны на SIEMENS MC35i. Без необходимости - не менять!
 
Секции [MODE], [ACCESS], [Monster], [Haos], [Section1]
- Использование зарезервировано для будущего функционала.
На работу не влияют, но при старте программа проверяет наличие ключей в них. Не менять.

Файл MC35i.ini поставляется полностью настроенным для работы с модемом Siemens MC53iДонастроить необходимо только номер последовательного порта. Остальные настройки соответствуют настройкам модема по умолчанию.
Режим Сервер.
Параметры запуска в режиме сервера:


sms2.exe /S [/i] [/p] [/c] [/b]
ключ /S - обязательный. Программа различает регистр ключей.
Необязательные ключи:
  /i - IP адрес сервера, например:"192.168.0.1"
                по умолчанию: берется из mc35i.ini
  /p - Порт сервера, например:"3223"
                по умолчанию: берется из mc35i.ini
  /c - номер COM-порта, например:"COM1"
                по умолчанию: берется из mc35i.ini, COM1
  /b - скорость обмена на COM-порту, например:"19200"
                по умолчанию: берется из mc35i.ini, 19200
  /n - номер получателя, например:"81234567890"
                по умолчанию: берется из mc35i.ini
  /m - текст сообщения, например:"server on node 1 is down!"
                по умолчанию:берется из mc35i.ini, при наличии разделителей требует взятия в кавычки.
Примеры запуска:


sms2.exe /S /i127.0.0.1 /p82 /cCOM1 /b9600
-    сервер прослушивает локалхост на порту 82


sms2.exe /S /i192.168.141.201 /p357
-    сервер принимает соединения на ip-адрес 192.168.141.201 и порт 357
-    настройки последовательного порта берутся из ini-файла.

sms2.exe /S
-    ВСЕ настройки берутся из ini-файла
Специальные случай: адрес указан как 0.0.0.0 :
Сервер прослушивает все ip-адреса всех интерфейсов хоста


Режим Клиент:

sms2.exe [/C] [/i] [/p] [/n] [/m]
Все ключи аналогичны режиму Сервер за исключением необязательного ключа /C
Примеры запуска:


sms2.exe /n81234567890 /m"Node WhitHouse is DOWN!"
адрес и порт сервера берутся из ini-файла, на номер 81234567890 передается сообщение "Node WiteHouse is DOWN!". Кавычки при этом убираются.

sms2.exe /i192.168.2.5 /p43 /n81234567890 /m"Dima, sro4no perezvoni v offis!:)"
Клиент ищет сервер по адресу 192.168.2.5 на порту 43 и передает на номер 81234567890 сообщение "Dima, sro4no perezvoni v offis!:)".
sms2.exe
Все параметры берутся из ini-файла. Содержание сообщения, как правило, тестовое.
 


sms.rar

Скриншот гуя на PHP:

образец лог-файла:

================================================
2010/12/5 17:22:4.555	sms sender started: write log started.
2010/12/5 17:22:4.555	Current Folder: C:\cmd\
2010/12/5 17:22:4.555	Full log-file path: c:\cmd\sms2.log
2010/12/5 17:22:4.555	.ini file found. Open C:\cmd\mc35i.ini
2010/12/5 17:22:4.555	Command-line args count: 2
2010/12/5 17:22:4.555	1/S
2010/12/5 17:22:4.555	Mode = server
2010/12/5 17:22:4.555	S:Server IP address = 0.0.0.0
2010/12/5 17:22:4.555	S:Server port = 89
2010/12/5 17:22:4.555	S:COM-port number = COM1
2010/12/5 17:22:4.555	S:COM-port speed = 9600
2010/12/5 17:22:4.555	start in Server-mode
2010/12/5 17:22:7.953	module Server: Create MUTEX
2010/12/5 17:22:7.953	module Server: start Thread COM-port

================================================
2009/4/27 4:27:28.968	sms sender started: write log started.
2009/4/27 4:27:28.968	Current Folder: C:\cmd\
2009/4/27 4:27:28.968	Full log-file path: c:\cmd\mysms2.log
2009/4/27 4:27:28.968	.ini file found. Open C:\cmd\mc35i.ini
2009/4/27 4:27:28.968	Command-line args count: 6
2009/4/27 4:27:28.968	1/C
2009/4/27 4:27:28.968	2/n8xxxxxxxxxx
2009/4/27 4:27:28.968	3/meeee
2009/4/27 4:27:28.968	4/i192.168.125.254
2009/4/27 4:27:28.968	5/p89
2009/4/27 4:27:28.968	Mode = client
2009/4/27 4:27:28.968	C:MessageBody = eeee
2009/4/27 4:27:28.968	Start module Client
2009/4/27 4:27:28.968	String for send to server: <startn>8xxxxxxxxxx<starts>eeee<ends>
2009/4/27 4:27:28.968	module Client: try INIT SOCKET
2009/4/27 4:27:28.984	module Client: INIT SOCKET Success. Try connect to server
2009/4/27 4:27:28.984	module Client: Query server
2009/4/27 4:27:28.984	module Client: Wait server answer
2009/4/27 4:27:28.984	module Client: sms send to server
2009/4/27 4:28:59.750	
PreviewAttachmentSize
sms.rar74.76 KB

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Упс..Доложил файл.

Упс..Доложил файл.
воркалось....

чтоб не вылетал, надо дать

чтоб не вылетал при ПРИЕМЕ смс, надо дать модему команду не сообщать о входящих смс (операторы мобильной связи - все КАЗЛЫ!(имеется в виду рекламный мусор)). И записать настройки в нврам. Проверено.
воркалось....

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Syntax highlight code surrounded by the {syntaxhighlighter SPEC}...{/syntaxhighlighter} tags, where SPEC is a Syntaxhighlighter options string or "class="OPTIONS" title="the title".
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <s> <strike> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <caption> <tbody> <tr> <td> <em> <b> <u> <i> <strong> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike>
  • Use to create page breaks.

More information about formatting options