Программная отправка SMS из 1С через бесплатную программу cmd2phone
6Полезные технологии
Описание
Подключение к интернет не требуется. Управление через командную строку и лог.
Автор: Валерий Доможиров (d_valery@mail.ru)
Но все программы, которые я нашел на infostart, были либо демо-версиями, либо не управляемыми.
Тогда я отправился на поиски в интернет и нашел программу cmd2phone: http://myfreeware.narod.ru/products/cmd2phone.htm
Упоминание о ней я нашел на каком-то форуме, а потом ввел в яндексе "cmd2phone" и нашел сайт программы.
Тогда я использовал NOKIA 6021.
Я сделал сопряжение телефона и компьютера через BLUETOOTH.
Правда, телефон обрывал подключение компьютера через 3-4 секунды простоя и при новом подключении запрашивал подтверждение.
Я зашел на телефоне в список сопряженных устройств и для подключения к компьютеру выбрал режим "Автоподключение без подтверждения".
В панели управления в разделе "Телефоны и модем" я нашел новый модем, созданный при сопряжении телефона, зашел в его свойства, нажал кнопку "Протестировать".
Запомнил номер порта - COM55.
В конечном итоге используется команда:
cmd2phone -Q -P COM55 -L -LF "log_sms.txt" -M "THIS" 8909....... "hello its me !"
-Q - задает тихий режим, чтобы не выдавалось предупреждение после завершения отправки (я анализирую результат в логе).
-P COM - задает номер COM-порта, на который подключился мобильный телефон.
-L - обозначает что нужно выводить записи в журнал (лог).
-LF - указывает имя файла лога. Если не указан полный путь, файл создается в каталоге с программой.
-M - указывает сообщение, которое должно выводиться в начало строки лога (можно маркировать каждую отдельную отправку СМС"
"hello its me !" - это смс-сообщение.
В результате нескольких отправок я получил протокол:
18.11.08 19:20:54 Sent Message is successfully!
18.11.08 19:22:23 THIS Sent Message is successfully!
При второй отправке я задал маркер "THIS" и вот я его вижу в логе.
Таким образом, можно отправлять SMS, запуская программу через командную строку и после ее завершения анализируя лог (строки лога можно помечать маркерами).
Можно в принципе анализировать код возврата, но для массовых рассылок лучше анализировать лог.
Рекомендую выбрать дешевый тариф оператора, где SMS стоят дешево.
Вызов:
CMD2PHONE.EXE [Опции] <телефон>|<Файл со списком> <Сообщение>|= <Файл с сообщением>
Где:
[Опции]
[-P|/P <COMPORT>] - COM-порт подключения телефона, например: -P COM1 (запоминается, можно указать только один раз)
[-S|/S <SPEED>] - скорость обмена с COM-портом, например: -S 115200 (запоминается, можно указать только один раз)
[-SC|/SC <SMCA>] - номер центра SMS сообщений, например: -SC +79262909090
[-Q|/Q] - "тихий режим" без вывода сообщений об ошибках и результате отправки
[-N|/N] - делить длинные сообщения на короткие SMS (не поддерживаются длинные)
[-D|/D] - режим отладки с протоколирование всей информации в лог-файл
[-E|/E <File>] - эмуляция COM-порта, вывод данных в файл <File>
[-LF|/LF <LogFile>] - путь к LOG-файлу (запоминается, можно указать только один раз)
[-L|/L] - Результат отправки записывать в Log-файл заданный ключом -LF
[-M|/M <Mark>] - "метка" в лог-файле в первой колонке всех выводимых строк
[-T|/T] - транслитерация сообщения в латиницу
[-W|/W <Wait Timeout>] - максимальное время работы программы в секундах(запоминается)
[-A|/A <pAuse Timeout>] - время ожидания в секундах после отправки SMS
[-PD|/PD] - сообщение содержит данные в PDU-формате (в HEX-формате)
[-IH|/IH] - заголовок помещен в данные в PDU-формате
[-HD|/HD <HEADER>] - заголовок сообщения в PDU-формате (в HEX-формате без длины)
[-F|/F] - сообщение с выводом на экран (Flash-SMS)
[-BD|/BD] - файл с сообщением содержит двоичные данные (например, картинка или мелодия)
<телефон> - номер телефона или список номеров через запятую без пробелов
<Файл со списком> - путь к файлу со списком телефонов через запятую или с новой строки
<Сообщение> - текст сообщения в кириллице или латинице (работает автоопределение кодировки)
= <Файл с сообщением> - путь к файлу с сообщением
Файл может содержать текст максимальной длины 40800 символов в латинице
либо 17850 символов в кириллице и это будет 255 SMS-сок :-)
Примеры вызова:
CMD2PHONE -P COM2 -L -M "SERVER DB" +79101234567,+79101234568,+79101234569 "Это тестовое сообщение на список номеров"
CMD2PHONE +79101234567 "Это тестовое сообщение"
CMD2PHONE -P COM1 -S 115200 -SC +79262909090 -L -LF "C:\Program Files\VD Soft\SMS.LOG" +79101234567 Это тестовое сообщение!
CMD2PHONE +79101234567 = "C:\Program Files\VD Soft\SMS.TXT"
CMD2PHONE -P COM3 -Q -LF "C:\Log.txt" -L -M Serv1 "C:\Phones.txt" = "C:\Message.txt"
CMD2PHONE -PD -HD 050415810000 +79101234567 024A3A51D195CDD004001B205505906105605585505485408208499000
тоже самое одним пакетом:
CMD2PHONE -PD -IH +79101234567 06050415811581024A3A51D195CDD008001B205505906105605585505485408208499000
Две последних строки отправляет текст "test" и пример мелодии, закодированные в PDU формате.
В последней строке разделены заголовок и тело сообщения, благодаря чему тело сообщения может быть длиннее 140 байт.
Пакет будет автоматически резаться на СМС длиной 140 байт с автоматической вставкой заголовков.
Кому интересно узнать о формате PDU, Вам сюда: http://www.forum.nokia.com/main/html_readers/smart_messaging_faq.html
Или просто скачайте этот документ: http://sw.nokia.com/id/23e93d2d-0f25-4799-9b03-1ec9b5cf775a/Smart_Messaging_FAQ_v2_0.pdf
Форум по SMS здесь: http://discussion.forum.nokia.com/forum/forumdisplay.php?s=&forumid=22
Примечание:
КОД ВОЗВРАТА: Если все ОК, то код возврата будет равен 200 иначе 0.
Оценка сообщества
|
Плюсы (+8):
, , , , , , , |
Минусы (– 2):
, |
Добавить плюс Добавить минус
Комментарии (12)
ДУмаю, может накатать обработочку. Выбираешь из текстового файла список абонентов.
Галочками отмечаешь нужных.
Выбираешь файл шаблонов смсок. Из файла выбираешь нужный текст сообщения.
В тексте может быть слово $name, оно автоматически заменяется на имя абонента, чтобы смски были персонифицированными.
Имена идут третьей колонкой в файле списка абонентов. Причем имена идут через запятую. Например: Маша, Машенька, Машулька, Машка, Машонок
Получается, что каждый раз абоненту приходит персонифицированная смска. Причем имена все время разные.
Прикольно! Сам написал на основе этой же программы полгода назад. Массовую рассылку сделал на основе анализа лога, сделал подсчет количества символов в SMS - для определения на сколько SMS для каждого оператора разобьется текущая. Еще есть добавление номеров из справочника сотрудники, создание списка для рассылки, вывод в сообщение об успешности доставки (лог смотрю), перекодировка в латиницу (для уменьшения количество частей, на кот. SMS разбивается), ну и ... больше ничего не придумал для своих нужд - сотрудникам рассылаю сообщения, оповещения и проч.
(4) с обязательным примером аффтора топа: "Маша, Машенька, Машулька, Машка, Машонок"
2(0) Не забудь оповестить всех, когда научишься пользоваться поиском по порталу.
(8) Я ее видел, что дальше?
Ты чуствуешь разницу между DLL и EXE файлов. EXE не надо регистрировать, как минимум, что актуально.
Кроме того, по-моему у автора демо-версия. ;-)
Ну и до кучи - чем больше альтернатив, тем лучше.
У Доможирова опций больше. Судя по тому, что там перечислено в опциях, программа Доможирова более продвинута.
Может и не так удобна, как ВК, но ВК опять же надо регить.
Я думаю, что это http://infostart.ru/projects/2924/ по функционалу лучше. Потому этот блог можно удалять.
(10) Это чисто твое субъективное мнение. Все таки надо отличать платформу и конфигурацию (надстройку над платформой) друг от друга. Не будем допускать политической близорукости!



>> Тогда я использовал NOKIA 6021.
Твоя беда - несолидные мобилы, которые ты брал для теста. Нармальные пацаны юзают вот что: http://www.e-blog.com.ua//data/storage/images/3c4bdc8a2a781cdc4209e22d683cb165.jpg Ну или хотя бы Zenum Opus... :D