Хотелки

Обсуждение программы nhsms - отправка и приём СМС
Закрыто
Nik-An
Сообщения: 6
Зарегистрирован: 22 апр 2015, 16:21

Хотелки

Сообщение Nik-An »

Предлагаю программу NHSMS дополнить новыми возможностями:
1. Хотелось бы иметь счетчик отправленных сообщений за сутки и отображать его, либо в интерфейсе программы, либо хранить в служебном файле.
У меня подключен тариф с опцией «200 SMS в сутки».
После превышения суточного лимита, стоимость одной sms-ки «конская» - 2,5р./sms. Если сообщение состоит из 2-3 частей, то можно моментально улететь в минус.

USSD запросы не должны учитываться. В идеале, нужно чтобы счетчик работал для каждой конкретной симки (или IMEI).
Т.е. нужно учитывать, что программа может запускаться с разными симками (модемами) и даже одновременно в нескольких экземплярах, но храниться лог должен для каждой запускавшейся в одном файле (месте).

2. Также хотелось бы иметь возможность приостанавливать отправку SMS до конца текущего дня, при достижении определенного значения счетчика п.1, и продолжить отправку на следующий день по заданному расписанию.
Например, ввести параметр StopAfterPerDay=190. Ну и предусмотреть в период 23:45 - 00:15 приостановку отправки, чтобы часы и счетчик провайдера отработали корректно с компьютером пользователя.

3. В интерфейс просто просятся 2-3 пользовательских кнопки:
int_1.jpg
Как это можно реализовать:
В ini файл ввести раздел
[Interface]
Button1 = ”Баланс”,” *105#”
Button2 = ”Остаток SMS”,” *155*2#”
Button3 =

Возможен и такой вариант, когда кнопке назначается внешняя команда:
Button1 = ”Баланс”, cmd copy %startpath%balans.sms %startpath%Outgoing \*.*

Если параметр заполнен, то кнопка выводится, если пустой - то нет.

4. В случае глобальных ошибок, когда SMSки вообще не отправляются, нужно иметь возможность информировать администратора об этом по электронной почте, т.е. через альтернативные каналы. Для этого в программе должен быть настроен smtp сервер. Иначе о проблеме можно узнать слишком поздно, а известить смской – не возможно :(
Либо модем должен делать звонок на настроенный телефон администратора. СМС-ки могут не отправляться, а звонок, при положительном балансе, должен дойти.

5. Хотелось бы в параметре SmsFileOnComplete иметь возможность работать с локальными переменными, например %data% или %year%, %month%, %day%. Например настроить чтобы отправленные сообщения каждый день писались в новый файл, например:
SmsFileOnComplete="append"," Sent \%year%-% month%-%day%_sent.txt",Unicode
или даже складывать в новую папку помесячно:
SmsFileOnComplete="append"," Sent \%year%-% month%\%day%-sent.txt",Unicode

6. Также неплохо было бы ввести пользовательские константы, например:
work_dir=\\Server\one\SendSMS
NHSMS=C:\SMSinfo\NHSMS
Script=C:\SMSinfo\NHSMS\Scripts
которые можно далее использовать в именах файлов, папок, а также в скриптах, например:
SmsFile=% work_dir % \*.sms
или CommandLine0=cscript.exe //nologo %Script%\process_status.js

Перечисленные "хотелки", думаю, нужны многим.
Буду рад поучаствовать в доведении программы до совершенства :)

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

Re: Хотелки

Сообщение nhutils »

Добрый день! Спасибо за идеи и подробное описание!

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

3. да, это удобнее, чем вспоминать ту или иную команду. заношу в список будущих функций.

4. здесь непонятный момент, как программа может решить, данная ошибка глобальная или неглобальная? вообще, есть идея выполнения внешних команд в таких ситуациях, как запуск, завершение, обновление конфигурации и т.п., в эти команды можно вставить и отправку почты, например, SMTP из командного файла. При этом уже сейчас есть возможность выполнения своего bat файла или скрипта по факту отправки смс - Команды обработки отправленных сообщений, и там доступен результат отправки sms_resultcode, то есть можно определить ошибку и оповестить почтой.

5. Эти возможности уже есть и реализуются тоже через Команды обработки отправленных сообщений, там есть и переменные с датами Переменные в скриптах обработки смс. Запись в различные файлы может быть реализована так:

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

echo %sms_messagetext% > "%sms_senttime_year%-%sms_senttime_month%-%sms_senttime_day% %sms_senttime_hour%-%sms_senttime_min%-%sms_senttime_sec% %sms_sender%.txt"
Это пример из файла sms-deliver.cmd, который устанавливается вместе с программой в папку scripts\save_to_text.
Комбинируя переменные, можно сохранять смс по датам, номерам телефонов, результату отправки и т.д.

6. Дополнительные переменные можно сделать через стандартные переменные среды окружения, а папка запуска программы доступна через переменную %startpath%.

Nik-An
Сообщения: 6
Зарегистрирован: 22 апр 2015, 16:21

Re: Хотелки

Сообщение Nik-An »

Спасибо за программу и поддержку!
по п.4
Как-то у меня без причины завис модем.
Заметил только на вторые или третьи сутки. Помогла перезагрузка.
int_2.png
Хотелось бы как-то более оперативно реагировать.
Например, после 2-3 не отправленных подряд sms на разных получателей.

по п.5 - как понял, переменные в скриптах можно использовать только для входящих sms.
Исходящие я раньше (для архива) писал в "SmsFileOnComplete="append","Incoming\sent.txt",auto".
Как скриптом их сохранить в таком виде "C:\ARH_SMS\ГГГГ-ММ\ДД.txt", рассортировывая по месяцам?
В принципе, БД эту проблему решает.
Сейчас переписываю свой модуль интеграции с 1с под новые возможности NHSMS.
Когда закончу, постараюсь написать инструкцию по подключению к 1с.

по п.6 - имея собственные константы, которые хранятся в ini, проще перенести программу на другой компьютер, чтобы затем не переписывать скрипты. Но это не столь принципиально. Программа настраивается один раз и далее работает без участия пользователя. На этот пункт можно "забить".
Мне эти константы были интересны, когда я переходил с CMD2PHONE на NHSMS.

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

Re: Хотелки

Сообщение nhutils »

Nik-An писал(а):по п.4
Как-то у меня без причины завис модем.
Заметил только на вторые или третьи сутки. Помогла перезагрузка.
Хотелось бы как-то более оперативно реагировать.
Например, после 2-3 не отправленных подряд sms на разных получателей.
Сейчас программа сама сбрасывает модем, если ошибка отправки повторяется 2 раза.
Nik-An писал(а):по п.5 - как понял, переменные в скриптах можно использовать только для входящих sms.
Исходящие я раньше (для архива) писал в "SmsFileOnComplete="append","Incoming\sent.txt",auto".
Как скриптом их сохранить в таком виде "C:\ARH_SMS\ГГГГ-ММ\ДД.txt", рассортировывая по месяцам?
В режиме БД (т.е. начиная с v3), SmsFileOnComplete не используется, потому что отправка делается не из файла, поэтому сохранение отправленных смс возможно через Команды обработки отправленных сообщений.

Закрыто