Программа для отсылки SMS-сообщений (в том числе из командной строки)

Случился тут у меня неприятный случай: в результате кратковременного обрыва питания в серверной моей конторы отключились все кондиционеры. Неприятность произошла в субботу, в результате чего, к утру понедельника в конторе не осталось ни одного сервера в “своем уме”. А температура в серверной поднялась до 45 — 50 градусов (при +12 на улице). В общем (слава HP!), все серверы выжили, инцидент исчерпан, но такая ситуация подвигла меня на некоторые действия.

А именно: решил я замутить систему оповещения себя любимого обо всех неприятностях, произошедших в конторе в мое отсутствие. Звеном для построения этой системы стала программка, которую я решил выложить здесь: на случай, что может кому-нибудь пригодится.

Программка отправляет SMS-сообщение через любой подключенный к компьютеру GSM-модем или сотовый телефон. (Я писал ее имея в наличии 3G-модем HUAWEI E1550 с оператором МТС, но затем проверял на сотовом телефоне Sony Ericsson C510i с оператором Теле2, так что должна работать и с другими устройствами, поскольку протоколы стандартные почти для всех устройств).

Отправлять сообщения можно как вручную, вводя номер и текст сообщения прямо в окне программы, так и используя параметры командной строки, а именно это и подходит для автоматизированной работы моей системы оповещения. Именно так я и использую ее в своих скриптах.

Итак, представляю вашему вниманию программу SMSSender. Программа написана на C#, поэтому для работы необходима предустановленная платформа Microsoft .Net Framework не ниже версии 2.0.

Настройка программы

Настройка программы очень проста.

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

2. Запускаем программу SMSSender, нажимаем кнопку с троеточием возле поля «Модем»

smssender1

3. В открывшемся окне выбираем нужный нам модем (на случай, если их будет несколько)

smssender2

4. Далее, заходим на закладку «Настройки» и нажимаем кнопку «Тест модема». Если все нормально, то появится окно «Тест прошел успешно», с текстом ответа модема. В некоторых случаях придется порулить настройками порта, но обычно это лишнее.

smssender3

5. После этого, чтобы настройки сохранились, необходимо нажать кнопку «Сохранить и закрыть». При желании можно проверить работу программы, переключившись на закладку «Отправить СМС», введя там номер телефона абонента, текст сообщения и нажав кнопку «Отправить SMS». В случае успешной отправки появится окно «Сообщение отправлено успешно».

После настройки программы и нажатия кнопки «Сохранить и закрыть», окно программы закроется, а настройки будут сохранены. Теперь можно приступать к использованию. Внимание! Закрытие окна программы кнопкой-крестиком не сохраняет настройки!

Использование программы

Ручной режим отправки прост: запустить программу без параметров, ввести номер телефона, сообщение, нажать кнопку «Отправить SMS» и все.

Второй режим работы программы – с параметрами командной строки. В данном режиме тоже нет ничего сложного: указываем программе параметры и наслаждаемся. Окно программы при этом не появляется, она сама закрывается после окончания работы.

Допустимые параметры командной строки:

-n”номер телефона” Номер телефона абонента в международном формате, например +79107899999. Кавычки обязательны. Данный параметр может быть опущен, в этом случае SMS будет отправлена на последний использованный номер
-m”номер телефона” Текст сообщения. Максимальная длина сообщения 160 символов для сообщений латинскими буквами и 70 символов для сообщений на русском языке. Длинные сообщения обрезаются. Кавычки обязательны.
-f Отправлять сообщение как Flash-SMS. В этом случае SMS приходит на телефон получателя и сразу же отображается на экране.
-t Отправлять сообщение в текстовом режиме. Это упрощенный протокол отправки сообщения. Возможен только для сообщений латинскими буквами. Не поддерживается некоторыми устройствами. В общем, этот параметр обычно не применяется
-l Вести лог в текстовом файле. Файл появляется в папке с программой и будет называться «log.txt»
-l”Путь и имя файла” Вести лог в указанном текстовом файле. Кавычки обязательны.
-? Показать подсказку

Вместо символа «–» можно использовать символ «/»

Вот несколько примеров:

smssender.exe -n”+79107899999” –m”Привет, дружище!” –l

smssender.exe /m”Привет!”

В общем, все просто.

Done

Еще раз повторюсь: программа написана на C#, поэтому для работы необходима предустановленная платформа Microsoft .Net Framework не ниже версии 2.0

В общем, программа проста как 3 копейки. Может, кому пригодится.

Функционал, при желании, можно расширить, если кому-то понадобится – пишите в комментариях.

Обновлено 19.08.2011

Выложил вторую версию программы.  Главное новшество: программа теперь может отправлять длинные SMS (больше 160 символов латынью или 70 символов кириллицей). Кроме того, добавлена возможность вместо имени модема указать непосредственно com-порт, на котором висит модем. На тот случай, если у кого-то программа сама найти модем не сможет.

Enjoy It!

СКАЧАТЬ ПРОГРАММУ:

Скачать

Исходный код

Для тех, кто по каким-либо причинам не может разобраться с данной темой, я выложил исходные коды программы SMSSender. Там реализована отправка длинных сообщений, и код, формирующий PDU-текст достаточно понятно комментирован.  Смотрите раздел «Исходные коды»

Поделиться с друзьями:
  • Добавить ВКонтакте заметку об этой странице
  • Одноклассники
  • Facebook
  • В закладки Google
  • Мой Мир
  • Twitter
  • LiveJournal
  • Яндекс.Закладки
  • LinkedIn
  • Reddit
  • StumbleUpon
  • БобрДобр
  • Memori.ru
  • МоёМесто.ru

Комментарии

  1. Очень хорошая программа! Сам пишу CRM-систему на C# и хочу прикрутить туда SMS-оповещения о новых задачах и пр. Автор! Поделитесь исходниками, пожалуйста! Или назначьте разумную цену за ваше творение.

  2. Это я видел.. Но этого недостаточно для полноценной проги. Например, непонятно, как с модемом работать.

      1. Да понятно, что при желании и наличии времени в инете все можно раскопать. Просто я свою программу пишу уже 1,5 года — не потому что это грандиозная мегасистема, а потому что времени удается выделить — час-два в неделю.
        Хочу сказать, что не собираюсь использовать вашу программу в коммерческих целях, в прямом смысле этого слова. Предлагаю в обмен исходники моей проги, тоже много полезного найдете. Или продайте за деньги.
        Если интересно, пишите в почту

  3. Здравствуйте, уважаемый! А не могли бы и вы и мне прислать исходники вашей программы. Дело в том, что на работе купили GSM модем и нужно срочно написать программу для рассылки смс. Да и по вашей инструкции не очень что-то получается… Модем пишет ERROR. В общем было бы гораздо проще писать, по чужим исходникам…

  4. Программа и статья просто супер!Автору СПАСИБО.Пытаюсь сделать подобное, только ещё пакет шифровать. Прошу тоже, поделитесь кодом пожалуйста на маил. Спасибо!

  5. Подскажите что делать если нужно отправить смс где длина рус сообщения больше 200 знаков??

    1. Ну, с длинными СМС я не разбирался, по причине отсутствия такой необходимости. Однако в планах есть желание доработать программу в этом плане, как время свободное появится. Тем более, что мне тут подкинули материалы по реализации такой возможности. Так что как только- так сразу 🙂

      1. Здравствуйте уважаемый StarXXX! Не могли бы вы добавить в данную программу массовую рассылку? Свяжитесь, пожалуйста со мной по почте: q9663084434 собака yandex.ru или по ICQ:673058050. Если вы заинтересованы, то я готов заплатить. Озвучте цену вопроса.

  6. Автору, спасибо 🙂 Вот я одного не пойму как ты нужный порт отпределяешь?
    (прием, передача) А то каждый раз у меня порты меняет 🙁

    1. макс
      Да все просто. Через WMI. Имя модема нам известно, следовательно его можно найти, как бы он в системе не прописался. Вот пример:

      ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_POTSModem where Description like \"%"+ModemName+"%\"");
      ManagementObjectCollection systemModems = searcher.Get();

      if (systemModems.Count == 0)
      {
      MessageBox.Show("Модем не обнаружен!");
      return "";
      }

      foreach (ManagementObject mdm in systemModems)
      {
      if (mdm["Status"].ToString() == "OK")
      {
      return mdm["AttachedTo"].ToString();
      }
      }

      ModemName — имя модема, или его часть, например «HUAWEI Mobile Connect»
      Возвращается либо пустая строка, если модемы не найдены, либо COM-порт, к которому подключен модем…

  7. Здравствуйте,
    У меня программа для отправки родителям смс о поведении детей в колледже. Раньше я программа работала с телефоном для отправки смс(Nokia 6131). Но теперь я хочу сделать прогу для 3g модема. Скачал вашу программу, работает!!! Но почему то у меня не получается, вот код проги

    SerialPort port = new SerialPort();
    //допустим что ком порт найден….
    port.PortName = «COM4»;
    port.BaudRate = 115200;
    port.DataBits = 8;
    port.StopBits = StopBits.One;
    port.Parity = Parity.None;
    port.Handshake = Handshake.None;
    string tel = «+998653058020»;
    port.Open();
    port.WriteLine(«AT#CLS=8»);
    //SMS в текстовом режиме (мой усб модем поддерживает)
    port.WriteLine(«AT+CMGF=1»);
    port.WriteLine(«AT+CMGS=» + (char)(34) + tel.ToString() + (char)(34) + «\r»);
    port.WriteLine(«tekst soobsheniya» + System.Environment.NewLine + (char)(26));

    //закрываем порт
    port.Close();

    Но к сожелению смс не отправлется. Но с этим – же кодом мобилный телефон отправлять смс(правда в мобилке надо добавить слипп).
    Помогите, Буду очень благодарен, если поделитесь исходниками
    tshdaniel@gmail.com

    1. переменная tel у вас итак строка. Зачем же использовать tel.ToString () ?
      Это бросилось в глаза сразу. А по поводу текстового режима — есть уйма статей. Ну и заодно посмотрите, что возвращает модем в ответ на ваши действия.
      А исходники моей программы доступны на странице «Исходные коды»: http://hardisoft.ru/isxodnye-kody/

  8. Здравствуйте, уважаемый StarXXX! Ваша программа (теоретически, если её доделать) может выполнять следующие действия при рассылки с телефона/модема:
    1) показывать статус доставки сообщения либо наоборот — не доставке
    (если да, то как выглядит? В самой программе прописывается или же на телефон приходит?)
    2) импортировать и экспортировать файлы Excel
    3) подмена номера отправителя
    Ну или просто скажите, могли бы вы сделать с программой то, что я написал выше? Вас, в обязательном порядке, ждёт вознаграждение в билетах банка России 🙂 Я думаю сумма будет разумной…Тем более, что вы сможете после этого так или иначе продавать свой продукт.
    Спасибо за внимание и понимание.
    С уважением к Вам, Алексей.

    1. Теоретически, если ее доделать, возможно всё. Но проблема в том, что доделывать ее я не буду. В основном из-за отсутствия желания 🙂 Хотя, кто знает, может оно когда-нибудь и появится 🙂

        1. пункт 1 и 2 реализуем в программе, технически.
          пункт 3 — нет.
          подмена номера или альфанумерическая подпись (она же буквенная подпись вместо номера) возможно только при подключению к оператору по SMPP (прямое подключение к смс-шлюзу оператора), при отправке смс через модем/телефон — не реализуемо вообще.

      1. Добрый день!
        Подскажите как загрузить список номеров для массовой рассылки смс на 10 000 номеров из файла или может еще способы есть?
        отблагодарю материально!

  9. Добрый день.Отличная программа.Не могли бы и мне на почту выслать код программы вместе с АТ командами? а то служба безопасности против использования чужих программ.

  10. Подскажите как отправить одной командой СМС на два номера сразу?

    -n»+7913——-» -m»Send Admin %Name (%Address) is down %Time» -L -f

  11. StarXXX, спасибо не только за программу, но и за разъяснения к каждому пункту во всех твоих статьях.
    Возможно подскажешь ответ вот на какой вопрос:
    При передаче текста смс через командную строку возникла необходимость передать «символ перевода строки». Если отправлять через программу, то обычный символ {Enter} переводит текст в окне программы на новую строку и соответственно в отправленной смс текст так же переносится на новую строку.
    Т.е. Как передать знак {Enter} в смс?
    -n»+7913——-» -m»Первая строка.{Enter} Вторая строка.»
    Р.С. очень толковый сайт. Спасибо за него.

    1. Попробуйте стандартную комбинацию языка Си: «Первая строка.\r\nВторая строка.»
      Если не получится — подправлю саму программу

      1. StarXXX, к сожалению программа не обрабатывает \r\n. Смс приходит с текстом: «Первая строка.\r\nВторая строка.» Облазил всё что нашел по командной строке, перепробовал все возможные комбинации \r\n, \r, \n, $_, ^ и даже другие более экзотические варианты, т.е. всё что относилось к командам переноса строки и не помогло.

          1. Да,всё отлично отправляется!
            Удивлён, честно удивлён столь быстрым внесением изменений. Спасибо.

          2. На АДЕКВАТНЫЕ вопросы, я, обычно, отвечаю быстро. Адекватные выделил потому, что устал отвечать на вопросы типа «Найдите мне программу для моей флэшки кингстон 4 Гигабита»…
            Ваш вопрос был адекватен и актуален. Я так прикинул, что и мне, возможно, понадобилось бы отправить многострочную СМС из командной строки. Посему — такая быстрая реакция.
            Спасибо за вопрос, спасибо за тестирование, будут еще вопросы — обращайтесь 🙂

  12. Годик назад настраивал этот модем для asterisk. Был глюк у модема который не смог победить: если модему надо 2 операции делать одновременно то он вис (оранжевая лампочка на нем загоралась). Например во время разговора по нему приходила смс. И еще вис когда несколько раз трубка поднималась и опускалась и отправлялась пачка смс. Ошибка вываливалась редко — но блин к промышленной эксплуатации из за этого допущено не было. Это так для информации 🙂 рекомендую на эту тему потестить прогу 🙂

  13. Первый раз в жизни отправил СМС денюжку за исходники, а мне в ответ пришла какая то долбанная картинка ((( http://userend.info/-/1296233528.png
    Может не то что то послал, но может поделитесь исходниками, надо отсылки смс организовать, время поджимает всё с 0 писать.

  14. Разобрался с тех.поддержкой смс сервиса, отправил DAM, где M оказалась кириллической и о ЧУДО !!! Есть у них и такой код !!! На таком коде неожиданно оказалась картинка и деньги были сняты ) 100 рублей конечно не деньги, но о порядочности данного сервиса говорить сложно )

  15. Доброго времени суток!
    Нужно организовать отправку СМС клиентам, из 1С, посредством командной строки. Для отправки будет использоваться GSM шлюз Шлюз Termit pbxGate v2.
    В диспетчере устройств он отображается только в COM и LPT портах. В поиске он не определяется, а если вписать COM3, при тесте выдается следующее сообщение:»Произошла ошибка при приеме ответа на команду ATE0″.
    Хотелось бы использовать эту программу, интерфейс очень даже подходит мне, но сможет ли она работать с моим шлюзом. Если понадобится какая-то дополнительная инфа я посодействую чем смогу

    1. Для Termit надо поставить Скорость порта 115200, биты 8, чётность не проверять, стоповые 1, и всё будет работать

  16. Спасибо за прогу. Достаточно удобным оказалось выгружать список рассылки в файл «*.cmd». Только нужно в первой строке вбить текст: «chcp 1251». Чтоб SMS на руссоком отправлялись в правильной кодировке.

  17. Здравствуйте!
    ОС Win 7 32-bit
    ОС в свойствах устройства определяет модем как:
    Имя:HUAWEI Mass Storage USB Device Тип: DVD и CD-ROM дисководы
    Имя:HUAWEI SD Storage USB Device Тип: Дисковые устройства
    Имя:WDC WD2500AAKX-001CA0 ATA Device Тип: Дисковые устройства

    Программа не видит модем.
    Кнопка «Пересканировать» не помогает.
    Соответственно запуска программы в режиме текстовой строки дает сообщение в журнале:
    -1
    10.05.2012 15:28:58: Phone number: +7916ХХХХХХ
    10.05.2012 15:28:58: Message: Привет!
    10.05.2012 15:28:58: Command: ConnectToModem
    Error: True
    Modem Reply: Connection error!
    ———-
    10.05.2012 15:28:58: Ошибка открытия порта модема.

    Т.е. нужен именно 3G модем или есть иная причина, которая
    не позволяет программе найти модем?

    1. А драйвер на модем вы ставили? То, что вы написали — это дисковые устройства. Так он определяется именно без драйверов. Обычно модем сначала определяется как CD-ROM, на котором лежат драйвера и программа для работы с модемом. В системе должен быть именно модем! Установите драйверы.

      И еще. Нужно обязательно закрывать родные программы модемов, они захватывают его и не дают другим программам с ним работать.

  18. Как с помощью этой проги отправить смс на короткий номер? Отправляю приходит смс: сообщение не отправлено.
    На обычный номер отправляет!

  19. Здравствуйте, как можно с вами связаться? есть щепетильный вопрос по вашей программе, хотелось бы задать его лично. С уважением, Игорь.

  20. При отправке большого количества SMS происходит интересная вещь — после примерно 60 — 70 сообщений отправка прекращается (т.е. модем делает вид, что отправляет, индикатор мигает). Это подтверждается отчетом по балансу. Через 3-5 минут отправка возобновляется. У оператора ограничений нет (со слов тех. поддержки МТС). Есть какие-либо соображения ?
    Модем — форм-фактор Express Card, вендор — Merlin, драйвер — родной, программа — Ваша, оператор — МТС, сообщений — 200 — 250 шт.
    Заранее благодарен.
    С уважением,
    Константин.

    1. Понятия не имею, что это может быть. Я никогда столько СМС за раз ей не отправлял — небыло такой необходимости. Может паузы между сериями отправок делать?

  21. Помогите пожалуйста написать код для этой программы что бы стразу 10 смс отправлялось на короткий номер 2663 с текстом fdxh322kk(примерный текст)

      1. нет) нужна скорость помогите пожалуйста напишите в аську 330846 или на почту artyom(точка)bulanov(собака)yandex.ru

        отблагодарю если поможете

        1. Какая скорость если не секрет? Тут, извините, о большой скорости разговора быть не может, работа с модемом идет через таймауты. У него есть свои тормоза, которые программой компенсируются. И все СМС отправляются последовательно, одна за другой.

          Грубо говоря, шанс, что 10 СМС уйдет залпом одна за другой и все будет хорошо — 50 на 50. Если сильно торопиться — модем может впасть в ступор.

          Если нужно отправить 10 СМС подряд — лучше делать между ними паузы. Хотя бы небольшие.

          В любом случае, программа поддерживает командную строку, так что можно либо вызывать ее с параметрами из своей программы, либо тупо сделать bat-файл из 10 строчек, по одной на каждую СМС.

  22. Автор привет и уважуха тебе за статью!
    Вопрос такой: как отследить принятые сообщения на модем. Потоком всё время сканировать com порт и он должен выдать закодированный текст. декодировать его и всё? или я что то путаю?

  23. здраствуйте !!! для нашего предприятия нужна такая програмка -у нас уходит смс для клиента допустим «просим придти к 23:45-без опозданий» вот нужно чтобы телефон при получении этого смс присылал ответ допусти «получил в 22:05» — Возможно ли это ???

  24. Автору респект за разбор PDU и за прогу! Создатели протокола действительно курили нехило. Спасибо вам!

  25. Зашел на исходники, смску отправил. В ответ — тишина 🙁 ДАвно бьюсь над этой рпоблемой (периодически, правда) Как же все же пможно получить исходники?

  26. Здравствуйте. А можно с помощью данной программы осуществлять массовую рассылку, указывая несколько номеров в поле «номер абонента»? Если да, то как правильно писать номера через запятую или подряд? Заранее спасибо за ответ.

  27. Здравствуйте.
    Использую вашу программу, чудесная вещь! Но иногда смс-ки не отправляются, выдаётся ошибка: «Произошла ошибка при приёме ответа на команду AT+…». Использую стандартный Мегафон 3G модем. Всвязи с этим возникла идея для надёжности посылать смс-ки с двух модемов причём разных операторов. Т.е. к компьютеру будут подключены два модема — Мегафон и МТС. В интерфейсе у вас можно выбрать из списка нужный модем, а как в командной строке указать модем?

    1. К сожалению, такой возможности у программы нет. Как вариант могу предложить 2 копии программы в разных папках. Каждая настроена на свой модем…

      1. Программа супер, спасибо автору. На короткие номера жаль не отправляет, можете добавить эту функцию. оператор мегафон в частности.

  28. Программа хороша, у меня сразу заработала.. Тока нет тел книги, чтоб сохранять контакты и делать массовую рассылку….
    Есть возможность добавить возможность?

  29. Здравствуйте.
    Было бы очень хорошо, если вы выложили исходники на plati.ru или в другой подобный сервис оплаты. А то мобильные операторы забирают себе как минимум 50%.

  30. А можно ли сделать так, чтобы программа отсылала не одно смс а брала список номеров из текстового фала, где на каждой строке был бы отдельный номер? Если это не сложно реализовать сделайте пожалуйста.

  31. Здравствуйте! Скажите а можно в программе сделать так чтобы она отправляля смс в нужный момент времени!

        1. Самый простой вариант — создать bat-файл, в котором будет вызов программы с параметрами командной строки. И запускать этот bat-файл. Либо вручную, либо через планировщик Windows.

  32. Здравствуйте! Не могу отправить смс из командной строки. Из программы всё работает замечательно. Но при запуске из командной строки в лог пишет «10.10.2013 13:54:22: Command: AT+CMGS=»+375299111778″
    Error: True
    Modem Reply:
    ERROR» Что я делаю не так? Подскажите, пожалуйста! Заранее благодарна за помощь.

    1. Сложно сказать… Может из-за кода… Я проверял программу с российскими операторами и СМС отправлял на российский телефон… а код +37 — не знаю, не знаю…

          1. Номер наверное помнит последний, ошибка та же 10.10.2013 14:38:15: Произошла ошибка при приеме ответа на команду AT+CMGS=»+375299111778″:

        1. Попробуйте скачайте программу еще раз. Я ее только что закачал. Именно этой версией я отправлял Вам СМС.
          Не забывайте после настройки модема ПЕРЕД использованием программы в командной строке нажимать в программе кнопку «Сохранить и закрыть».

        1. Попробуйте скачайте программу еще раз. Я ее только что закачал. Именно этой версией я отправлял Вам СМС.

          Не забывайте после настройки модема ПЕРЕД использованием программы в командной строке нажимать в программе кнопку «Сохранить и закрыть».

  33. Здравствуйте, StarXXX!
    Тестировал Вашу программу, все работает на все 100%.
    Единственное чего хотелось бы реализовать в программе — это что бы лог файл отправки имел строковый/табличный формат, пример:
    datetime;Command;Phone_number;Message;statusError
    08.11.2013 22:12:45;ConnectToModem;+38012345678;test;True
    08.11.2013 22:15:45;ConnectToModem;+38012345678;test2;False
    + что бы файл всегда дописывался, данная реализация позволит просмотреть всю историю отправки sms. Если не сложно, могли бы реализовать такую доработку?
    Спасибо Вам большое за Ваш труд!
    Всех благ!

  34. Добрый день.
    Очень понравилась программулина, вот только при запуске ее через PsExec вылетает с ошибкой на создание формы.
    Можете добавить флаг, чтобы не выводились никакие сообщения при отправке.

    Вот такой вызов приводит к ошибке
    \\srv1\tools\PsExec.exe \\srv2 c:\sendSMS\smssender.exe -n»+792134164**» -m»Ахтунг меседж» -l

    т System.Windows.Forms.Form.Show(IWin32Window owner)
    т SMSSender.mainForm.bSendSMS_Click(Object sender, EventArgs e)
    т SMSSender.mainForm..ctor()
    т SMSSender.Program.Main()
    c:\sendSMS\smssender.exe exited on bug with error code -532459699.

  35. Скачать исходники не мог, нет моего оператора, Tele2. Большая просьба бросьте на почту и можете выставить счет на Киви. Или сделайте оператора.

  36. Смотрю у многих проблема с отправкой большого кол-ва смс.
    Решил проблему сторонними средствами. Код могу привести кому надо.
    Смысл простой… запускаю дочерний процесс, жду кода завершения программы, потом следующая смс.Все не особо сложно.
    Пример последней пачки смс:
    9 смс (88,136,124,88,136,88,88,88,88 символов кириллицей).
    Отработано за 1 минуту 16 секунд. Учитывая что после каждого смс я еще задержку лепил в 2 секунды, то вполне норм скорость.
    за 1 минуту — 9 смс на кириллице с текстом более 70 символов.
    Модем Е173. Оператор-мегафон.

  37. Добрый День.
    Не могу скачать исходный код. Я из Молдовы — у нас платных СМС нет.
    Сколько строк в коде? Новичек разберется?
    Автор свяжись со мной.
    sacerum@gmail.com

  38. Программный код легко можно посмотреть рефлектором — вскрывается легко и код как на ладони.

    Автор — закодируй хотя бы (кажется дефускатор называется)

    1. Не вижу смысла. Я ж не продаю конечный продукт. Деньги за исходники — чисто символичные, и люди их платят за готовый проект, с комментариями к коду. Остальные если хотят — пусть реверсят, мне не жалко. Обфускировать не буду, кто захочет сэкономить время — тот возьмет готовое.

  39. Добрый день. Можно вашу программу использовать у нас в офисе для отправки sms отчётов руководителю ?

  40. Похоже автор забросил свою программу, иначе как понять, что исполняемый файл с этой страницы отличается от такого же файла в архиве с исходным кодом.
    Я был против покупки исходников, понимая, что ничего интересного там нет, но знакомый решил по-своему. Так и оказалось. Понравилась его ремарка:
    // TP-VP — TP-Validity-Period — время действия сообщения. Я не искал описания, в каком виде это время задается,
    // тем более что оно зависит от битов 4 и 3 поля SMS-SUBMIT PDU.
    // Поскольку формат нам не известен — то в поле SMS-SUBMIT-PDU укажем биты 4 и 3 равными , что означает,
    // что поля TP-VP не будет указано вообще.
    комментарии излишни.

    1. Критикуете? Тогда предлагайте! Вы изучили формат досконально? Тогда расскажите об этом!
      Какую шикарную исследовательскую работу Вы тут проделали… Вот уж действительно: комментарии излишни…

  41. Критикую. Выяснилась интересная вещь, Reference number в UDH нежелательно выставлять FF (255). Тестировалось 7 телефонов, принадлежащих разным сотовым оператором. Отправлялись длинные сообщения. 6 телефонов из 7 всегда получали сообщения в полном объёме, один не получал никогда. Перепроверили всё, начиная от инициализации порта, настройки модема, до отправки самого сообщения. Ничего подозрительного не нашли. Проверяли «фирменные» программы Мегафона и Билайна, также вроде ничего подозрительного. «Ошибку» выявили случайно. Reference number выставили в меньшее значение (не FF) и последний телефон также начал получать сообщения.
    Так что могу сказать, что именно Вы не полностью изучили PDU и его подводные камни.

    1. Ну естественно я не полностью изучил формат PDU, мне это просто незачем. Я изучал его в рамках конкретно поставленной задачи. Кроме того, покажите мне источник, где все произведенное вами «методом научного тыка» грамотно описывается разработчиками формата?
      Я уже привык, что человеку всегда все плохо. Дали вам описание на русском — плохо дали. Надо было еще пережевать да в рот положить…
      Заканчиваю полемику, ибо это может продолжаться бесконечно.

      1. Поиски по сети, дали только 2 сайта с нормальным описанием посылки длинных сообщений: ваш и ещё один. Именно поэтому я и указываю на некоторые недостатки, чтобы описание стало более полным. На остальных сайтах я и задерживаться не стал — ибо там просто нечего комментировать, из-за абсолютно безграмотно поданного материала.
        Принимайте критику спокойнее. Я также изучил PDU для своей задачи, но при этом постарался разобрать его по «косточкам», а вот Reference number относится как раз к тем подводным камням, о которых, похоже, не подозревали и сами разработчики.

        1. Чтобы описание стало более полным одних экспериментов мало. Неплохо было бы найти мануал и, опираясь на него дополнить описание формата на русском.
          Я тоже разбирал PDU по «косточкам», и некоторые вещи так и остались либо не понятыми, либо затратными в реализации, либо не применимыми к задаче.
          Я не думаю, что Reference number это косяк разработчиков. Там не дети работают, а грамотные люди. Скорее всего, косяк был в реализации PDU на этом Вашем телефоне номер 7. Я часто встречался с тем, что разработчики железа вертят стандартами как хотят.
          В любом случае, рад, что у Вас все получилось. Удачи!

  42. Добрый день! Программа хорошая. Не пойму одно -можно ли с помощью нее отследить например обрыв внешнего соединения с Интернетом? НЕ поделитесь исходником. Могу взамен дать вам свои.
    спасибо!

Добавить комментарий для Влад Отменить ответ

Ваш e-mail не будет опубликован.