Выпущена новая версия nhsms v3.1.0 с изменениями в записи информации об смс.

Новые возможности

Новый параметр sms_custom_id

Для возможности идентификации отправленных смс при отправке через текстовые файлы добавлен новый параметр sms_custom_id, который может быть использован как пользовательский идентификатор смс сообщения.

  • При считывании смс из файла программа заносит в sms_custom_id значение, указанное в квадратных скобках.
  • При запуске скрипта после отправки смс программа передаёт это значение, позволяя скрипту связать отправленное смс с какими-то пользовательскими данными.

Исправления

Исправление sms_referencenumber для отправленных смс

Исправлена работа параметра sms_referencenumber в скриптах обработки отправленных смс (SMS-SUBMIT) для возможности связывания отчетов о доставке (SMS-STATUS-REPORT) с отправленными смс (SMS-SUBMIT): параметр передаётся в скрипт обработки отправленных смс.

Исправление sms_resultcode и sms_resulttext для длинных смс

Переменные sms_resultcode и sms_resulttext теперь формируются и для длинных смс, со значениями:

  • 0 – все части длинного смс отправлены успешно
  • 536870935 – одна или несколько частей длинного смс не были отправлены из-за ошибки
  • 536870936 – все части длинного смс не были отправлены из-за ошибки

Обновление bat файлов для записи смс в файлы

Обновлены/добавлены bat файлы для записи смс сообщений в текстовые файлы:

  • sms-submit.cmd – файл для записи отправленных смс, можно указывать файл для сохранения параметром
  • sms-submit-error.cmd – файл для особой обработки с ошибок отправки, имеет фильтрацию по коду отправки
  • sms-deliver.cmd – файл для сохранения входящих смс
  • sms-status.cmd – файл для сохранения или обработки отчетов о статусе доставки отправленных смс
  • sms-all-details.cmd – файл, использующий команду set для вывода всех переменных, относящихся к sms

Исправление кодов возврата при отправки через параметры запуска

В v3.1.0.43 исправлено формирование кода возврата программы nhsms.exe/nhsmscl.exe для варианта запуска с отправкой смс через параметр командной строки. Подробнее см. возвращается 0, независимо от результатов выполнения

Исправление даты для SQL Server

В v3.1.0.43 исправлена запись даты полей SentTime и DeliveredTime в режиме с базой данных при использовании SQL Server. Подробнее см. дата в режиме БД SQL

Исправление USSD запросов через файлы в режиме БД

В v3.1.0.43 исправлена работа USSD запросов, отправляемых через текстовые файлы в режиме с базой данных.

Загрузка и установка

См. также

Справка по nhsms – как начать работать с программой, как её использовать, описание настроек, режимов и кнопок.

nhsms v3.1.0

Одна мысль о “nhsms v3.1.0

  • 09.09.2017 в 17:10
    Постоянная ссылка

    Добрый день.
    Сегодня при отправке СМС в ответ почти на все приходит следующее:
    99 Ошибка, СМСЦ прекратил передачу СМС.
    Подскажите, что это может значить? СМСЦ просто не захотел или что-то ему не понравилось, или все абоненты вне зоны действия и он перестал, т.к. закончилось время хранения СМС у оператора?

    Ответ
    • 09.09.2017 в 19:17
      Постоянная ссылка

      У меня вчера и сегодня, примерно треть получателей смски не получили с таким же статусом. Отправлено около 30 сообщений. Мой оператор теле2. В основном, не получили абоненты Мегафона. Может из-за магнитных бурь? Но так как некоторые, таки, получили, то проблема не в nhsms.

      Ответ
    • 09.09.2017 в 19:38
      Постоянная ссылка

      Может, и оператор по какой-то причине блокирует.
      Сейчас вспомнил, у меня был случай, когда я отлаживал USSD запросы в nhsms, и за час отправил где-то сто запросов на баланс и ещё каких-то, и через час на этом номере перестали выполняться любые USSD запросы – каждый раз было сообщение об ошибке. Наутро USSD заработало нормально.

      Ответ
  • 30.08.2017 в 19:55
    Постоянная ссылка

    Доброго времени суток. Пытаюсь прикрутить отправку из командной строки к стандартной одинэсной процедуре RunApp(), умеющей считывать коды возврата. Качнул наугад несколько версий — 2.8.1, 2.14.0.30, 3.0.3.38, 3.1.0.40. С завидным упорством возвращается 0, независимо от результатов выполнения (включая отсутствующий модем).

    Ваши предложения? Заранее благодарен.

    Ответ
    • 31.08.2017 в 12:42
      Постоянная ссылка

      Добрый день, посмотрим, почему так получается. Вообще, больше рекомендуется использовать отправку смс через текстовые файлы или базу данных – в этим режимах больше возможностей
      http://nhutils.ru/blog/nhsms/usage/

      Ответ
      • 31.08.2017 в 13:15
        Постоянная ссылка

        И снова здравствуйте. Жду с нетерпением результатов, поскольку мине больше возможностей нинада — только попытаться отправить СМС и убедиться, что она — либо отправлена и доставлена (ура!), либо не отправлена по конкретной причине, в зависимости от которой я и буду предпринимать дальнейшие действия.

        Ответ
  • 22.08.2017 в 20:00
    Постоянная ссылка

    Вчера решил переустановить программу (до этого два года сидел на v2.14.0.30) чтобы воспользоваться функциями БД.
    При отправке USSD в БД не меняется статус сообщения — сначала Q — поставлено в очередь, затем S — идет отправка. И все!
    Ну и ответ ussd не вносится в БД. Сейчас там пусто.
    Проверил на v3.1.0.38 — 39 — 40

    Ответ
      • 23.08.2017 в 16:53
        Постоянная ссылка

        Спасибо, заработало!

        Еще прошу учесть в будущих релизах (это не ошибка, а пожелание):
        Сейчас в БД число частей одного SMS пишется в колонку «Notes» как «Parts=4»
        Если Parts вывести в отдельную колонку, то одним запросом можно получить число отправленных в день сообщений, делая отбор по дате и суммируя Parts.
        В Parts должны попадать только тарифицируемые сообщения (без входящих и ussd).

        Ответ
        • 23.08.2017 в 22:55
          Постоянная ссылка

          Насколько точным будет это значение, если в него будут попадать и неотправленные (из-за ошибок) смс (или их части), и бесплатные смс (например, служебные на короткий номер 111 для МТС)?
          И для чего потом использовать это значение? Если для контроля превышения лимитов, то в будущих версиях будет специальная функция для этого, как писал здесь — http://nhutils.ru/forum/viewtopic.php?f=3&t=2893&p=4028

          Ответ
          • 24.08.2017 в 00:17
            Постоянная ссылка

            Да, это мои «хотелки».
            Во-первых, провайдер считает отправленные сообщения, а не доставленные. Как обрабатываются короткие номера — нужно тестировать, но, скорее всего, также как и на длинные.
            Во-вторых, сейчас отправил длинное сообщение (4 части) на свой городской телефон, на который sms точно не может быть доставлена. Счетчик провайдера его легко тарифицировал. Программа вернула статус «T-отправлено».
            Кстати, на версиях с БД (последние 3-4 релиза) я ни разу не видел статуса «доставлено». Может тупит мой Теле2. Но, возможно, программа его не возвращает. На версии 2.14 в файл сохранялось «Сообщение доставлено».

          • 24.08.2017 в 15:34
            Постоянная ссылка

            Со статусом доставки разобрался. Не стояла галочка: «Запрос отчета о статусе».

          • 28.08.2017 в 15:42
            Постоянная ссылка

            Добавлю о статусе доставки в БД версии:
            сейчас статус проверяется только в момент запуска программы.
            Висящая в трее программа за пять часов статусы не обновила ни разу.
            Закрыл -> открыл: ура, статусы обновлены!

          • 29.08.2017 в 15:11
            Постоянная ссылка

            Сейчас проверил – статус отправленного меняется с T (sent) на D (Delivered) сразу после прихода отчёта SMS-STATUS-REPORT.

          • 29.08.2017 в 15:56
            Постоянная ссылка

            Да, они обновляются сразу, как только приходят. Но статусы SMS-STATUS-REPORT у меня приходят только в момент запуска программы.
            Сколь долго в запущенном виде NHSMS не будет висеть в трее — статусы не обновляются.
            Уточню: программа с БД, запущена не как сервис и свернута в трей. Система XP.
            Возможно сервис работает иначе. Но я пока ее настраиваю на своем компьютере. Потом она переедет на другой комп.

          • 29.08.2017 в 16:09
            Постоянная ссылка

            Я проверяю на nhsms.exe.
            Если программа получает отчеты о статусе только на запуске (когда программа делает опрос модема на наличие входящих сообщений), то возможно, что настроено получение смс по уведомлению, но оно не работает корректно. В этом случае имеет смысл поменяеть режим на опрос. Настраивается здесь.

  • 18.08.2017 в 14:14
    Постоянная ссылка

    Добрый день.
    Скачал версию 3.1.0.39 службы. Установил. Запустил.
    Входящие СМС и отчеты о доставке не формируют файлы, т.к. в скриптах sms-deliver.cmd и sms-status.cmd все переменные имеют пустое значение, в том числе %sms_type%
    Может надо перезагрузить ПК после установки службы или еще что-то сделать?

    Установил обратно предыдущую версию 3.0.2.37 без перезагрузки, все стало работать как до обновления.

    Ответ
    • 20.08.2017 в 19:26
      Постоянная ссылка

      Добрый день, есть проблема со входящими, завтра исправлю. С отчётами пока проблема не подтвердилась, завтра посмотрю ещё.

      Ответ
      • 22.08.2017 в 08:43
        Постоянная ссылка

        Добрый день. К сожалению ничего не изменилось. По-прежнему в скриптах sms-deliver.cmd и sms-status.cmd все переменные окружения имеют пустое значение.
        Может быть вам какие-то файлы выслать, например, nhsms.ini?

        Ответ
          • 22.08.2017 в 15:31
            Постоянная ссылка

            После установки службы последней версии отправил смс на симку своего модема. В файле sms-deliver.txt ничего не появилось.
            Заремарил строку if not «%sms_type%» == «SMS-DELIVER» exit /b 0
            в файле sms-deliver.cmd и после отправки очередной смс на модем
            в файле sms-deliver.txt появилась строка — без скобок конечно же.
            Т.е. скрипт запускается и отрабатывает, но пишутся пустые значения.
            Аналогично и для командника sms-status.cmd

            Для установки новой версии скачал nhsms-v3.1.0.40-service-setup.exe
            В процессе установки блымнуло cmd-окно и затем появилось окно с ошибкой «setx failed» от Windows Script Host.
            Закрыл окно и настроил автозапуск службы.
            Файлы nhsmssvc.exe и nhsmscfg.exe имеет версию 3.1.0.40
            Подскажите, какие еще exe-файлы необходимо проверить на версию?

            п.с. после запуска nhsmscfg.exe и донастройки запуска sms-status.cmd в файле nhsms.ini внизу обновился блок
            [Version]
            Configuration=v3.1.0.40

            Вроде все проверил.

          • 22.08.2017 в 15:34
            Постоянная ссылка

            Не удалось в предущем посте передать пустую строку из файла sms-deliver.txt
            Опишу словами: пробел пробел кавычка кавычка пробел

          • 22.08.2017 в 15:36
            Постоянная ссылка

            Собственно сам командник sms-deliver.cmd:

            @echo off

            rem Обрабатываем только входящие СМС
            if not «%sms_type%» == «SMS-DELIVER» exit /b 0

            rem Пример: фильтрация отправителя
            if «%sms_sender%» == «79161111111» exit /b 0

            set filename=%1
            if «%filename%» == «» set filename=sms-deliver.txt

            rem Пример: сохранение в общий файл
            echo %sms_senttime% %sms_sender% «%sms_messagetext%» >> «%filename%»

            rem Пример: сохранение каждого смс в отдельный файл, по дате/времени и номеру
            echo %sms_messagetext% > «%sms_senttime_year%-%sms_senttime_month%-%sms_senttime_day% %sms_senttime_hour%-%sms_senttime_min%-%sms_senttime_sec% %sms_sender%.txt»

            rem Примеры: проверка текста сообщения
            if «%sms_messagetext%» == «Restart» nhss -r
            if «%sms_messagetext%» == «Rebuild» start D:\Dev\rebuild.cmd

            rem Дальнейшая обработка…

          • 22.08.2017 в 20:44
            Постоянная ссылка

            Запуск происходит я так понимаю по инициативе службы в соответствии с настройками из nhsms.ini
            Вот фрагмент из этого файла:
            [Read]
            ReadingTextMessages=scanning
            ReadMaxIntervalMs=10000
            MessageStorage=
            CommandLine0=scripts\save_to_text\sms-deliver.cmd
            CommandLine1=scripts\save_to_text\sms-status.cmd

          • 22.08.2017 в 20:47
            Постоянная ссылка

            Вот фрагмент из файла nhsms.out
            ……………
            2017-08-22 08:39:38 считываю из ‘MT’…
            2017-08-22 08:39:38 считываю из ‘SM’…
            2017-08-22 08:39:41 отчет о статусе сообщения для 7XXXXXXXXXX отправлено 2017-08-22 08:39:35, время 2017-08-22 08:39:38 — Сообщение доставлено
            2017-08-22 08:39:41 Запускаю «scripts\save_to_text\sms-deliver.cmd»… OK
            2017-08-22 08:39:41 Запускаю «scripts\save_to_text\sms-status.cmd»… OK
            2017-08-22 08:39:44 считываю из ‘SR’…
            2017-08-22 08:39:45 считано сообщений: 1
            2017-08-22 08:39:55 Считываю входящие сообщения…
            2017-08-22 08:39:55 считываю из ‘ME’…
            ……………

          • 23.08.2017 в 15:24
            Постоянная ссылка

            Входящие заработали.
            Отчеты тоже, но значения переменных %sms_id% %sms_custom_id% в файле sms-status.txt пустые (выводятся только кавычки).

            Вырезка из sent.sms:
            [5173]
            Phone=7XXXXXXXXXX
            PhoneType=international
            Alert=0
            StatusReportRequest=1
            Text=Тест 8
            Parts=1
            SentTm=2017-08-23 15:13:07
            ResultCode=0
            ResultText=Операция успешно завершена.
            Alphabet=UCS2 (16 bit)
            MessageReference=21

            Вырезка из sms-submit.txt:
            «7XXXXXXXX» «Тест 8» «2017-08-23 15:13:07» «» «0» custom_id=»5173″

            Вырезка из sms-status.txt:
            кавычка кавычка пробел кавычка кавычка 7XXXXXXXXXX «0» «Сообщение доставлено» «2017-08-23 15:13:18»

          • 23.08.2017 в 15:35
            Постоянная ссылка

            Да. Эти переменные %sms_id% и %sms_custom_id% идентифицируют соответствующее отправленное смс и определяются только в режиме с базой данных.

          • 23.08.2017 в 17:09
            Постоянная ссылка

            Все работает. Спасибо. Подскажите, за чисткой БД (access) мы уже сами следим, правильно? А то разрастется бесконтрольно…

          • 23.08.2017 в 22:51
            Постоянная ссылка

            Сейчас программа не делает ничего для очистки устаревшей информации.
            В будущем будет автоматическое удаление старых сообщений по дате. Но сжатие (compress) файла БД останется на администраторе системы.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *