Comments 26
Вы не описали самый интересный вопрос, как пробиться через первые линии техподдержки мегафона к технарям и сколько стоит доступ к провайдерскому SMPP.

Расскажете?
Тут я не могу вас обрадовать тем что это так просто.
Это PR-проект Мегафона, которому предшествовали долгие годы сотрудничества организаторов и местного филиала Мегафон.
Поэтому я не знаю сколько бы стоило подключение и выделение короткого номера, но я думаю, что у всего есть своя цена.
У каждого из операторов свои цены на вход в контент-провайдерский бизнес.
Но они не столь высоки, как может показаться на первый взгляд
Контакты технарей в процессе тестирования дадут.
Да, у каждого из четверки раньше были свои особенности реализации smpp.
Не сочтите за рекламу, но есть такая фирмочка как citinet mobile. Ценники у них вполне адекватные и проблем с технарями нет :)
Да достаточно много реселлеров с низкими ценами и с ними можно вполне адекватно работать на первом этапе, чтобы не связываться с каждым опсосом в отдельности. Я знаю фирмы, которые работают по 8коп/смс с подменой номера при достаточно больших объемах. В случае небольших объемов или тестирования можно банально купить 3g-донгл и отправлять-принимать через него (тарифы в лучшем случае 11-20 коп/sms в зависимости от оператора). Такой случай как раз описан в предыдущей статье.
Попробую я рассказать) В свое время просто заполнил на сайте Мегафона форму обратной связи. Перезвонили через 2-3 суток. Услуга тогда называлась «ИнтраЛинк», актуальна или нет сейчас у них такая — не в курсе.
Году в 2009, писали на PHP подключение через SMPP к операторам большой тройки.
Мало того что сами версии SMPP были разные и реализованы не в полном соответствии с протоколом, так еще были отличия не отраженные даже во внутренней документации.
Приятно слышать что сейчас все проще.
sqlbox упомянули. Однако же не показали как с ним работать.
Зато привели рассово неверный store-file = "/var/log/kannel/store_sms", при котором прошедший через вас смс-трафик не хранится, и не всегда получается получить корректный отчет провайдера о доставке (ибо отчет то пришел, а kannel к тому времени ничего не знает об этой смски, т.к. она стерта из store-file).
И да, с трудом верится что мегафоновский SMPP-сервер пропускал трафик без указания вами в конфиге kannel параметров bind-addr-ton и bind-addr-npi.
Я не пользуюсь sqlbox, это нестандартное средства, но пробовал и, если интересно, могу привести конфиги для этого.
DST не используется в данной системе. И безусловно в случае когда нужно хранить DST и обеспечивать более надежный прием/доставку, то можно осуществлять хранение временной информации в MySQL.
Я использую именно те параметры, которые указаны. Те параметры, которые вы привели являются необязательными и не нужны в данном случае, по умолчанию равны 0.
А как правильно?
sqlbox, если я правильно понимаю, умеет хранить только DLR.
У меня, например, пока не получилось настроить его аналогично store-file.
Единственное, что я нашёл — это запуск внешней команды для сохранения СМС в БД, но kannel дальше с этой информацией работать не будет.
Выйдем на Кавказ – будем настраивать для Кавказа. Эти специфичные для конкретных SMPP серверов параметры стоит настойчиво требовать от технарей по ту сторону баррикад, а не выдумывать самостоятельно. В данном случае с самарским(Поволжье) и кемеровским(Сибирь) всё работает. Если происходят какие-то косяки, ставим log-level=0 и пересылаем им непонятки из bearerbox.log.
>> Это демон-надзиратель, который нужно дополнительно прописать в стартовые сценарии

Вот это место не особо понял :-S Парашют — это просто флажок -P в строке запуска.

А маршрутизировать по smsc, имхо, проще на уровне групп sendsms-user. В этом случае в строке запроса smsc фигурировать не будет, а всё будет рулиться автоматом smsbox'ом. По крайней мере мне так показалось настраивать удобнее.
--parachute
-P
Start watcher process. This process watch a child process and if child process crashed will restart them automatically.
Всё верно, и как это расходится с тем, что я сказал? :-)

Я просто уточнил, что ваше " демон-надзиратель, который нужно дополнительно прописать в стартовые сценарии", которое произносится с таинственным придыханием — это всего лишь маленький ключик в команде запуска :-))
Посмотрите официальные rc(init) сценарии. Там действительно отдельный демон — run_kannel_box.
/usr/local/sbin/run_kannel_box --pidfile /var/run/kannel/kannel_bearerbox.pid --min-delay 1 /usr/local/sbin/bearerbox /usr/local/etc/kannel.conf

А параметр --min-delay очень хорош при перезапуске, он заставляет запускаться значительно быстрее, в том числе при смерти дочернего процесса.
Я пользуюсь своими скриптами, в которых использую задокументированный параметр -P и в случае падения дочернего процесса (специально, через kill -9) я не успеваю выполнить ps ax до того, как парашют его поднимет заново.

Всё таки парашют — это -P. А отдельные скрипты — это отдельные скрипты.
Пожалуй вы правы, то что описано в статье — это не парашют, уберу сейчас.
Но это не отменяет того что в комплекте kannel идет отдельное приложение сделанное для того чтобы присматривать за падающими процессами.
А вот этого, кстати, я не знал. Завтра как выйду на работу — нужно подробнее вопрос изучить.

ps: а чем они принципиально лучше парашютов?

pps: и вы кстати не обратили внимания на роутинг через логины. Параметр smsc в запросе — не айс ведь, согласитесь? :-)
Я не знаю чем они лучше/хуже, я использую стандартный сценарий rc и доверяю разработчикам в этом вопросе. Если вы говорите, что параметр -P запускает мгновенно, то, пожалуй, он лучше, т.к. в run_kannel_box просто каждые --min-delay секунд проверяется, запущен ли дочерний процесс и перезапускается, если не запущен. А по умолчанию это 10 секунд для каждого демона, что может потенциально привести к даунтайму до 20 секунд (запуск bearerbox + запуск smsbox). В моем случае с --min-delay 1 — даунтайм до 2 секунд. В принципе, тоже не успею проверить ps -A.
А на счет маршрутизации — можно вообще создать несколько smsboxов и прописывать роутинг, но это уже, пожалуй, более продвинутое использование. В принципе там можно делать весьма крутые штуки в зависимости от конктеста, почти так же как в asterisk для звонков.
можно менеджерский вопрос — имея этот гейтвей, компания все равно должна платить деньги операторам сотовой связи?
Only those users with full accounts are able to leave comments. Log in, please.