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	
ПредпросмотрAttachmentSize
sms.rar74.76 КБ

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

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

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

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

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

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Syntax highlight code surrounded by the {syntaxhighlighter SPEC}...{/syntaxhighlighter} tags, where SPEC is a Syntaxhighlighter options string or "class="OPTIONS" title="the title".
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <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>
  • Использовать как разделитель страниц.

Подробнее о форматировании