Тут я не могу вас обрадовать тем что это так просто.
Это PR-проект Мегафона, которому предшествовали долгие годы сотрудничества организаторов и местного филиала Мегафон.
Поэтому я не знаю сколько бы стоило подключение и выделение короткого номера, но я думаю, что у всего есть своя цена.
Да достаточно много реселлеров с низкими ценами и с ними можно вполне адекватно работать на первом этапе, чтобы не связываться с каждым опсосом в отдельности. Я знаю фирмы, которые работают по 8коп/смс с подменой номера при достаточно больших объемах. В случае небольших объемов или тестирования можно банально купить 3g-донгл и отправлять-принимать через него (тарифы в лучшем случае 11-20 коп/sms в зависимости от оператора). Такой случай как раз описан в предыдущей статье.
Попробую я рассказать) В свое время просто заполнил на сайте Мегафона форму обратной связи. Перезвонили через 2-3 суток. Услуга тогда называлась «ИнтраЛинк», актуальна или нет сейчас у них такая — не в курсе.
Году в 2009, писали на PHP подключение через SMPP к операторам большой тройки.
Мало того что сами версии SMPP были разные и реализованы не в полном соответствии с протоколом, так еще были отличия не отраженные даже во внутренней документации.
Приятно слышать что сейчас все проще.
sqlbox упомянули. Однако же не показали как с ним работать.
Зато привели рассово неверный store-file = "/var/log/kannel/store_sms", при котором прошедший через вас смс-трафик не хранится, и не всегда получается получить корректный отчет провайдера о доставке (ибо отчет то пришел, а kannel к тому времени ничего не знает об этой смски, т.к. она стерта из store-file).
Я не пользуюсь sqlbox, это нестандартное средства, но пробовал и, если интересно, могу привести конфиги для этого.
DST не используется в данной системе. И безусловно в случае когда нужно хранить DST и обеспечивать более надежный прием/доставку, то можно осуществлять хранение временной информации в MySQL.
Я использую именно те параметры, которые указаны. Те параметры, которые вы привели являются необязательными и не нужны в данном случае, по умолчанию равны 0.
А как правильно?
sqlbox, если я правильно понимаю, умеет хранить только DLR.
У меня, например, пока не получилось настроить его аналогично store-file.
Единственное, что я нашёл — это запуск внешней команды для сохранения СМС в БД, но kannel дальше с этой информацией работать не будет.
Выйдем на Кавказ – будем настраивать для Кавказа. Эти специфичные для конкретных SMPP серверов параметры стоит настойчиво требовать от технарей по ту сторону баррикад, а не выдумывать самостоятельно. В данном случае с самарским(Поволжье) и кемеровским(Сибирь) всё работает. Если происходят какие-то косяки, ставим log-level=0 и пересылаем им непонятки из bearerbox.log.
>> Это демон-надзиратель, который нужно дополнительно прописать в стартовые сценарии
Вот это место не особо понял :-S Парашют — это просто флажок -P в строке запуска.
А маршрутизировать по smsc, имхо, проще на уровне групп sendsms-user. В этом случае в строке запроса smsc фигурировать не будет, а всё будет рулиться автоматом smsbox'ом. По крайней мере мне так показалось настраивать удобнее.
Всё верно, и как это расходится с тем, что я сказал? :-)
Я просто уточнил, что ваше " демон-надзиратель, который нужно дополнительно прописать в стартовые сценарии", которое произносится с таинственным придыханием — это всего лишь маленький ключик в команде запуска :-))
Я пользуюсь своими скриптами, в которых использую задокументированный параметр -P и в случае падения дочернего процесса (специально, через kill -9) я не успеваю выполнить ps ax до того, как парашют его поднимет заново.
Всё таки парашют — это -P. А отдельные скрипты — это отдельные скрипты.
Пожалуй вы правы, то что описано в статье — это не парашют, уберу сейчас.
Но это не отменяет того что в комплекте kannel идет отдельное приложение сделанное для того чтобы присматривать за падающими процессами.
Я не знаю чем они лучше/хуже, я использую стандартный сценарий rc и доверяю разработчикам в этом вопросе. Если вы говорите, что параметр -P запускает мгновенно, то, пожалуй, он лучше, т.к. в run_kannel_box просто каждые --min-delay секунд проверяется, запущен ли дочерний процесс и перезапускается, если не запущен. А по умолчанию это 10 секунд для каждого демона, что может потенциально привести к даунтайму до 20 секунд (запуск bearerbox + запуск smsbox). В моем случае с --min-delay 1 — даунтайм до 2 секунд. В принципе, тоже не успею проверить ps -A.
А на счет маршрутизации — можно вообще создать несколько smsboxов и прописывать роутинг, но это уже, пожалуй, более продвинутое использование. В принципе там можно делать весьма крутые штуки в зависимости от конктеста, почти так же как в asterisk для звонков.
Настройка SMS-шлюза Kannel