Как отправить СМС

Обсуждение программы nhsms - отправка и приём СМС
Закрыто
nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Как отправить СМС

Сообщение nhutils »

ОТПРАВКА ОДНОГО СМС

Для отправки сообщения
СБОЙ СЕТИ
Не работает интернет
на номер +7 916 1234567 через модем, подключенный к COM1,
можно запустить программу, указав все данные в командной строке:

Код: Выделить всё

nhsmscl.exe -COM:1 -smsc:79168999100 -phone:79161234567 -esc:\ СБОЙ СЕТИ\nНе работает интернет
Здесь указаны номер порта, к которому подключен телефон (COM1), номера СМС центра и адресата, управляющий символ для форматирования (обратная наклонная черта) и текст СМС (сочетание \n задаёт перевод строки).

Можно упростить командную строку, если перенести редко изменяемые параметры в конфигурационный файл NHSMS.INI:

Код: Выделить всё

[Connection]
Com=1
[Parameters]
Esc=\
[Message]
SMSC=79168999100
Тогда в командной строке достаточно будет указать только номер телефона и текст СМС:

Код: Выделить всё

nhsmscl.exe -phone:79161234567 СБОЙ СЕТИ\nНе работает интернет
Более того, если отправка сообщений всегда будет идти на один и тот же номер (уведомление системного администратора), то можно и его номер вынести в конфигурационный файл NHSMS.INI (параметр [Message]/Phone).

ОТПРАВКА ОДНОГО СМС С УКАЗАНИЕМ ТЕКСТА СМС В ФАЙЛЕ

Для отправки того же сообщения можно сохранить текст СМС в файле, например, SMS.TXT и запустить программу с параметрами:

Код: Выделить всё

nhsmscl.exe -phone:79161234567 -textfromfile:sms.txt
Этот вариант может оказаться проще для реализации, когда требуется составить длинное СМС из нескольких строк в CMD. Кроме того, поддерживаются файлы Unicode, т.е. можно использовать расширенный набор символов.

ОТПРАВКА СПИСКА СМС ИЗ ФАЙЛОВ

Для отправки списка СМС из файлов необходимо задать в конф. файле расположение файлов СМС и режим работы, например:

Код: Выделить всё

[Parameters]
RunMode=once
SmsFile=out-*.sms
SmsFileOnComplete=append,sent.sms
ReadMaxIntervalMs=30000
С этим конф. файлом, программа обработает все файлы с исходящими сообщениями, соответствующие маске out-*.sms, добавит результат выполнения к файлу sent.sms и завершит свою работу. При этом в процессе отправки СМС из файлов программа будет считывать входящие СМС из телефона, пауза между попытками чтения не более 30 сек.

Имеется режим постоянной работы при отправке СМС из файлов. В этом режиме программа работает постоянно, отслеживая появление новых файлов, соответствующих указанной маске, и отправляя сообщения из них. Пример конф. файла:

Код: Выделить всё

[Parameters]
RunMode=continuous
SmsFile=out-*.sms
SmsFileOnComplete=append,sent.sms
ReadMaxIntervalMs=30000
С этим конф. файлом, программа будет отслеживать и обрабатывать все файлы с исходящими сообщениями, соответствующие маске out-*.sms, добавляя результат выполнения к файлу sent.sms. При этом программа будет считывать входящие СМС из телефона, пауза между попытками чтения не более 30 сек.

Пример файла с исходящими сообщениями:

Код: Выделить всё

[СМС 1]
Phone=79161111111
Alert=1
Text=Нет связи с контроллером домена
[СМС 2]
Phone=79162222222,79163333333
Text=Нет связи с контроллером домена
Файл обрабатывается по умолчанию в кодировке ANSI, можно указать параметра CodePage=OEM для конкретного сообщения для обработки его текста в кодировке OEM, например:

Код: Выделить всё

[СМС 1]
Phone=79161111111
Alert=1
Text=Нет связи с контроллером домена
CodePage=OEM

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: Как отправить СМС

Сообщение nhutils »

Особенности отправки СМС из файлов программой NHSMS

Для отправки СМС из файлов программа NHSMS ищет файлы с исходящими СМС - файлы, отвечающие пути и маске, заданным в параметре Parameters.SmsFile конфигурационного файла.

Как только программа NHSMS обнаруживает такой файл, она открывает его на чтение, блокируя при этом доступ на запись. Для чего это сделано: при обработке исходящих СМС сообщений программа записывает в файл результаты отправки, это поля: SentTm (время отправки), ResultCode (0 - успешно, иначе - код ошибки), ResultText (текстовое пояснение к ошибке, например, CMS ERROR), поэтому блокировка предотвращает одновременную запись в этот же файл со стороны других программ.

Запись результатов в исходный файл позволяет программе продолжить обработку файла, если она не была завершена в предыдущем сеансе работы. Когда программа NHSMS открывает файл с исходящими СМС, она обрабатывает только неотправленные СМС, поэтому отправка СМС сообщений будет продолжена с того места, где она была прервана в предыдущем сеансе работы.

Закрыто