Серверная часть
Программа Сервер ProfiSMS предназначена для отправки-приема смс сообщений и записи всей этой информации в базу данных. Именно эта программа “общается” с сотовым телефоном.
Справедливости ради, стоит отметить, что Клиентская программа ProfiSMS может прекрасно работать и без Серверной части, за исключение функций приема и отправки смс. Т.е. без серверной части можно вести справочник клиентов, создавать смс рассылки и выгружать эти рассылки в текстовые файлы, а отправлять какой-нибудь другой программой - например, более простой программой отправки смс сообщений. Но понятно, что это не так удобно и главное не будут использованы все возможности ведения смс рассылок, да и приема смс.
Итак, что делает программа Сервер ProfiSMS:
1. отправка смс через сотовый телефон
2. прием смс с сотового телефона
3. прием отчетов о статусе доставки смс с сотового телефона
4. проверка отправляемых смс на разрешенные и запрещенные (справочник разрешенных/запрещенных номеров)
5. контроль по времени разрешенному для отправки конкретной смс
6. контроль по запланированной дате-времени отправки смс
7. слежение за выбранным каталогом файлов и при появлении новых файлов - отправка из них смс
8. запись принятых смс сообщений в БД и (или) файлы
9. сортировка принятых смс по пользователям БД
10. подсчет статистики отправленных-принятых смс именно сотовым
11. отображение текущих параметров сотового (уровень заряда, качество сигнала)
12. отображение хода работы программы в специальном окне журнала работы
Это по выполняемым функциям. А если описать это проще, то Вы запускаете программу Сервер ProfiSMS, один раз настраиваете ее на работу с БД и с сотовым телефоном. Потом сворачиваете ее в “трей” и программа работает сама по себе. Т.е. она раз в минуту опрашивает сотовый - “есть ли новые смс?”, проверяет есть ли в БД новые смс для отправки, может попутно проверить файловый каталог - “может там есть файлы с смс для отправки?”.
Апрель 18th, 2009 at 23:08
Все же неплохо было бы научить ее работать по POP с E-Mail. т.е. опрос какого-то почтового ящика где скажем из сабжика брался номер телефона или тела письма (лучше если этот параметр будет настраиваемым, Sabject: or Body:) ну и обработка согласно хидеров письма KOI8R или Win1251. Отправка соответственно либо 7 бит или USC2.
Апрель 20th, 2009 at 10:59
Игорь, если я верно понял, то это функция пересылки емайл на сотовый? Только как бы расширенная, т.к. текст письма может пересылаться на любой указанный в этом письме номер сотового. Сервер ProfiSMS забирает почту из “системного” почтового ящика, а в этом емайл содержится:
1) ключ доступа - просто символьная строка, чтобы кто-угодно не мог этим воспользоваться;
2) номер телефона для отправки смс
3) текст смс для отправки
Такой алгоритм?
Апрель 20th, 2009 at 15:56
В принципе все верно. Только 1 пункт опционально. Безопасность это кто как желает.
Апрель 20th, 2009 at 16:05
Понятно, Игорь, сделаем :) Может и на этой неделе.
Апрель 20th, 2009 at 16:24
там бы еще к серверной части прикрутить время опроса директорий, ящиков, базы. Не раз в минуту, а задаваемое от секунд. а не минимально как сейчас минута.
Апрель 20th, 2009 at 16:34
Уже прикручено :) От 1 секунды идет таймер.
Просто не обновляю текущую “инсталляшку”. Накапливаю нововведения.
Единственный момент, чтобы не одно-другому не мешало, идет общий таймер на обработку и каталогов и БД, проверка идет последовательно.
Апрель 20th, 2009 at 19:16
Еще такой ньюанс. Предположим что на симкарте закончились деньги или какая то из баз стала недоступна. (директория удалена например или просто не создана, отвалился POP сервер, или проблема с Firebird) произошел некий сбой доступа к телефону или к базам. Если есть такая возможность вывода информации о таком событии ввиде окна на рабочий стол, звуковое событие или еще как либо. (Аларм в общем об аварии) что бы было как то оперативно замечено. Иначе юзер может не заметить о произошедшей аварии и среагировать намного позже.
Апрель 20th, 2009 at 20:31
Да, насчет “аларма” это точно надо реализовать. Пока идет простая констатация факта в журнал. Наиболее критичные события это пожалуй “неотправка” смс и проблемы с БД. С mail-серверами тоже в принципе можно. А директории вещь постоянная - в крайнем случае заново создастся. Но по сути, все это “флажками” через настройки - кому и что захочется контролировать.
Тут ньюанс может выйти в том, что каким способом оповестить, если и баланс на нуле и Инет “отвалился”… Значит насчет баланса надо устанавливать минимальный порог срабатывания сигнала.
Апрель 20th, 2009 at 21:22
ну как правило когда не отправляются СМС в силу каких то причин типа нет денег на телефоне, или сеть перегружена (празничные дни к примеру), антенна отвалилась или телефон перестал отвечать по порту или еще какая проблема. Не факт что USSD запрос, который и не пройдет к тому же, нам поможет. Отсюда пляшем что если у нас образовывается N количество bad sms срабатывает аларм который подсвечивает строку отвечающую за данное событие или флажок с указанием количества этих “плохих” смс.
Это что касается отправки через телефон. Окончание денег на телефоне это просто одна из причин была.
Если у нас не работает POP то через несколько реконнектов выкидываем тоже флажок, который будет тут же снят как только соединение с сервером появится и ящик будет нормально опрашиваться.
Сам по себе аларм может выглядеть как короткий звуковой сигнал повторяющийся через некоторое время после возникновение проблем (опционально, ночью может и раздражать) и мигание красным светом или подсвечивание строки той функции которая не работает. Оповещение на сотовый думаю ни к чему. Хотя как вариант может у кого-то и есть такая потребность.
По поводу USSD запроса баланса нужно учитывать что он может быть и сильно отрицательный (корпоративные тарифы)
Апрель 21st, 2009 at 18:17
Да :) с “алармами” надо не увлекаться это точно :) В течении часа-полутора будет обновление:
1) произвольная установка интервала приема-отправки смс
2) возможность установки автоповторяемых смс (интервал в сек. + дата-время окончания) + макрос счетчика
3) возможность экспорта отправленных и принятых смс в CSV-файл
4) скорректирована возможность перевода строк при вводе новой смс
5) переадресация POP3->смс (subject=номер телефона в межд.формате, body=текст сообщения)
Апрель 21st, 2009 at 18:28
Здорово и очень оперативно. :) Респект!
Апрель 21st, 2009 at 18:46
Спасибо, Игорь :) “Инсталляшку” можно забирать.
У кого стояла старая версия - формат БД немного поменялся (автоповторы смс добавились) и если в Вашей БД толком ничего нет, то удалите вручную старый файл БД (по умолчанию это C:\Program Files\profisms\db\smserv.fdb) и только после этого установите новую версию. А если в БД уже есть данные, которые жалко терять - пришлите на email файл БД, мы внесем изменения вручную и вышлем его назад.
Апрель 21st, 2009 at 21:22
Замечания: Опрос почтового ящика (Интервал автопроверки)нельзя сделать не поминутно, по секундно? Как сделано к базе. По поводу алармов может просто в трее показывать всплывающую подсказку? Насчет неподключения сотовых дополнительные строку(и) инициализации? На все модели все равно не угодить.
Апрель 21st, 2009 at 21:35
1) по интервалу - Игорь, это лично Вам надо или гипотетически кому-нибудь пригодится? :) У меня в Bat-е стоит 5-мин. интервал, я чисто на основе этого и сделал поминутный - зачем лишняя нагрузка.
2) алармы - на трей я подумывал, но как правило серверную часть ставят на сервер - а за ним никто не сидит постоянно. Я думаю тема “алармов” сейчас более четко продумается и можно будет уже вставить.
3) а не, это не строка инициализации, это я до сих пор не могу сообразить как правильно СОМ-порт открыть :) Хотя вроде уже по шагам все расписал, все разложил по полочкам - нет времени взять и разобраться “от и до”. Хотя вопрос спорный - в 95% случаев используется эмуляция COM-порта, а уж как там очередной драйвер его эмулирует…
Апрель 21st, 2009 at 22:14
По поводу опроса ящика: Если используется рассылка или какой либо аларм извещающий о тревожном событии тогда есть срочность, а когда мы просто получаем стандартные письма, то нет смысла в столь быстром реагировании. Нагрузка на сервер, особенно по локальной сети в 10 скажем секунд не “напряжет” его. В моем случае, не буду лукавить, стоит вариант в 5 секунд. Потому как за минуту может 10 сообщений накопится.
Согласен что серверную часть оптимально ставить на сервер и тут надо действительно продумать как извещать юзера или админа.
По поводу инициализации Вам видней конечно. Но пока подключить через Вашу программу свой модем я не смог. Хотя IMEI получаю без проблем, а определение модема не работает. Отсюда и пожелание.
Апрель 22nd, 2009 at 4:36
Игорь, я просто не понял сразу кто Вы - на емайл-то мне письма приходили с другого адреса и там только позывной :) Я вчера Вам скинул новую simplesms - проверьте на TEST. А с ProfiSMS - там по логам дело до строки инициализации модема не доходит, но кстати, лог от ProfiSMS, Вы пока не прислали - если можно, пришлите сегодня. И по результатам всего этого сделаю обновление и насчет секунд, и насчет подключения MC35i.
Апрель 22nd, 2009 at 9:57
Simplesms scanport и test отработала порт замечательно. :) Лог по Profisms отправил по E-Mail.
Апрель 22nd, 2009 at 15:47
Благодарю, Игорь! Лог получил, внес коррективы в серверную часть - сделал Вам секунды :) , да из SimpleSMS взял процесс открытия порта. Новую версию пока на сайт не выкладывал, скинул Вам на емайл “на пробу”.
Июль 17th, 2010 at 9:41
Вопрос - как реализовать при приеме почты (если программа используется как шлюз), правила отправки - это сообщение одному пользователю, это другому, это третьему. Например для каждого пользователя кому нужно смс с текстом из почты, я делаю ящики, настраиваю дублирование писем на общий ящик, который поверяет программа. А как сделать обработку - это письмо Иванову, это Петрову, это Сидорову.
Спасибо.
Май 15th, 2011 at 21:37
Здравствуйте!Было бы хорошо добавить фукционал поддержки нескольких телефонов, тогда этот софт станет гораздо лучше, даже если эта функция повлияет на стоимость