Часть первая (или готовим свой SMS-сервер)

+20
8.96K
Всем привет!
Много вопросов возникает по поводу интеграции InstantCMS с любым SMS-сервисом. Именно поэтому я решил заняться этим вопросом и написать несколько блогов по этой теме.
Использование короткого номера — это прикольно, но платить какому-либо контент-провайдеру я не намерен, поэтому я расскажу как я делал такую интеграцию собственными силами.
В этом блоге мы подготовим платформу для обработки SMS.
Что нам потребуется:
1. Любой компьютер с доступом в интернет (лично я использовал wi-fi роутер с linux прошивкой) и ОС Ubuntu
2. Любой USB-модем марки Huawei
3. Apache, MySQL, PHP, PHP_CURL
Итак, приступим.
1. На наш комп устанавливаем веб-сервер Apache, интерпретатор PHP и СУБД MySQL. Сделать это можно командой sudo apt-get install ИМЯ ПАКЕТА.
2. Устанавливаем SMS-gate KANNEL. (входит в репозитории, но можно скачать и с сайта разработчиков)
3. Ниже приведены настройки KANNEL для работы с БД и модемом Huawei E1550
  1.  
  2. #KANNEL CONFIG FILE
  3. group = core
  4. admin-port = 13000
  5. admin-password = playsms
  6. status-password = playsms
  7. smsbox-port = 13001
  8. log-file = /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/KANNEL/kannel.log
  9. log-level = 0
  10. access-log = /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/KANNEL/access_kannel.log
  11. store-type = spool
  12. store-location = /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/KANNEL/spool
  13. dlr-storage = mysql
  14.  
  15. group = smsc
  16. smsc = at
  17. smsc-id = vodamodem
  18. modemtype = auto
  19. device=/dev/ttyUSB_utps_modem (здесь порт вашего модема)
  20. sms-center= "+7904" (здесь номер SMS-центра Вашего операторА)
  21. my-number = "+7908" (здесь Ваш номер телефона)
  22. log-level = 0
  23. sim-buffering = true
  24. keepalive = 5
  25.  
  26. group = modems
  27. id = huawei_e1550_00
  28. name = "Huawei E1550"
  29. name = "Generic Modem"
  30. detect-string = "huawei"
  31. init-string = "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
  32. #sim-buffering = true
  33. message-storage = "SM"
  34. need-sleep = true
  35. speed = 9600
  36.  
  37. group = smsbox
  38. bearerbox-host = localhost
  39. bearerbox-port = 13001
  40. sendsms-port = 13131
  41. log-file = /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/KANNEL/smsbox_log
  42. log-level = 0
  43. mo-recode = 1
  44. sendsms-port = 13003
  45.  
  46. group = sendsms-user
  47. default-smsc = default
  48. username = playsms
  49. password = playsms
  50. max-messages = 3
  51. concatenation = true
  52.  
  53. group = sms-service
  54. keyword =
  55. omit-empty = true
  56. max-messages = 3
  57. get-url = "http://localhost/plugin/gateway/kannel/geturl.php?t=%t&q=%q&a=%a&unicode=1"
  58.  
  59. group = mysql-connection
  60. id = mydlr
  61. host = 127.0.0.1
  62. username = ПОЛЬЗОВАТЕЛЬ (имя пользователя для доступа к БД)
  63. password = ПАРОЛЬ (пароль доступа к БД)
  64. database = БАЗА_ДАННЫХ (имя БД, в которой хранятся отчеты о доставке)
  65. max-connections = 1
  66.  
  67. group = dlr-db
  68. id = mydlr
  69. table = dlr
  70. field-smsc = smsc
  71. field-timestamp = ts
  72. field-destination = destination
  73. field-source = source
  74. field-service = service
  75. field-url = url
  76. field-mask = mask
  77. field-status = status
  78. field-boxc-id = boxc
  79.  
  80.  
4. Теперь устанавливаем web-интерфейс управления нашим SMS-сервисом. Для этого используем PlaySMS. Инструкции по настройке данной системы Вы найдете в архиве. Чтобы не было ошибок, заранее предупрежу: что необходимо БД для web-сервиса устанавливать в туже БД, где и KANNEL. А также необходимо будет поправить файл PLAYSMS, который вы должны будете скопировать в /etc/default/
5. После всех подготовок запускаем наш сервис:
а) подключаем модем
б) запускаем основной модуль обработчика смс: bearerbox /путь к/конфигурационному/файлу/kannel.conf
в) запускаем скрипт чтения/отправки смс: smsbox /путь к/конфигурационному/файлу/kannel.conf
Наш обработчик готов.

В следующем блоге я расскажу, как "научить" InstantCMS отправлять код подтверждения регистрации по SMS, а также изменять свой статус через SMS.
0
12 лет назад #
Конечно мудрено но полезно. +
0
Blit Blit 12 лет назад #
А какой модем? Обычный билайн или мегафон?
0
Петр Кушиков Петр Кушиков 12 лет назад #
Можно и Билайн, и Мегафон. Главное, чтобы был производитель Huawei
0
reload reload 12 лет назад #
А на сервере там где сайты наши хранятся, можно эту штукенцию устанавливать?
Если да то очень интересует инструкция (хотя так понимаю мало что должно отличаться)!
Если можно использовать на сервере платного хостинга - напишите требования к нему!
зы: или я че то не так понял?)
0
Петр Кушиков Петр Кушиков 12 лет назад #
Если у Вас виртуальный хостинг, то нет. Если у Вас выделенный сервер или VPS, то можно. Главное, чтобы ваш хостинг-провайдер подключил модем к серверу) .
По требованиям могу сказать следующее:
1. Операционная система Ubuntu не ниже 10.04 (сервер: 400MHz Pentium II with 128MB RAM)
2. Apache, MySQL, PHP
3. Kannel, PlaySMS
-1
picaboo picaboo 12 лет назад #
Через агрегатора смс дешевле на порядки, врядли сможете выйти на ту же стоимость с обычным тарифом. Да и платежи через смс принимать не сможем.

В чем практический смысл тогда смс сервиса?

А мануал полезный, спасибо.
-1
Петр Кушиков Петр Кушиков 12 лет назад #
Смысл всей идеи не монетизировать сайт, а использовать еще один канал коммуникации с пользователем, а именно SMS.
Практически, немного доработав мои наработки можно по факту, привязать их к коммерческим SMS-гейтам и гонять платный трафик.

P.S.: по поводу агрегаторов, с Вами не согласен, т.к. агрегаторы дают дешевую стоимость исходящего SMS при условии, что Вы шлете более 100000 смс в месяц. Для небольших проектов подойдет обычная коммерческая сим-карта. У нас в Челябинске, некоторые из операторов предлагаю смс от 5 копеек по области.
0
Vizh Vizh 12 лет назад #
А если сделать так.
Есть SMS-gate, в котором я зарегистрирован как партнер. Для меня цена смс сравнительно небольшая. Нужен модуль привязанный к биллингу InstantCMS, с помощью которого пользователи сайта могут отправлять смс с сайта по своим контактам, ну и естественно приобретать пакеты смс у владельца сайта по назначенной цене. Готов оплатить разработку модуля. Техническая документация для подключения к шлюзу http://www.sms16.ru/4prog.html
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
0
Петр Кушиков Петр Кушиков 12 лет назад #
К сожалению, с компонентом Биллинга не работаю, т.к. использую полностью самописный функционал системы Поинтов. Но все, что будет написано в последующих блогах, знающий человек сможет без проблем привязать к Биллингу.
0
Vizh Vizh 12 лет назад #
Очень надеюсь, что кто нибудь сделает это.
0
12 лет назад #
Здравствуйте !

Вы разбераетесь в компьютере хорошо ?

У Меня всала проблема с настройками в компьютере, чтобы мой сайт грузился не с хостинг компании а с Моего компьютера.

Можете помочь ? Мой скайп - alekseyleks
0
lezginka.ru lezginka.ru 12 лет назад #
Смысл всей идеи не монетизировать сайт, а использовать еще один канал коммуникации с пользователем, а именно SMS.
Петр Кушиков , а примеры удачного использования идеи можете показать?
0
Петр Кушиков Петр Кушиков 12 лет назад #
Описываемый мною SMS-сервис реализован в тестовом режиме в моем проекте http://family.tele2ts.com/. Номер телефона, с которого поступаю SMS - +79517777979. Что уже реализовано мной:
1. Код подтверждения регистрации поступает не на e-mail, а на мобильный телефон в виде SMS
2. Команда "REG" в тексте SMS, отправленном на этот номер, позволяет получить пользователю идентификатор SMS. Он в дальнейшем будет использоваться для отправки личных сообщений через SMS.
3. Команда "BAL" в тексте SMS, отправленном на этот номер, позволяет получить пользователю информацию о состоянии своего личного счета на сайте.
4. Команда "ST текст сообщения" в тексте SMS, отправленном на этот номер, позволяет пользователю изменить свое статусное сообщение.
5. Команда "SYNC" в тексте SMS, отправленном на этот номер, позволяет пользователю провести синхронизацию балансов, т.к. в системе есть пользователи, которые используют только SMS. Если такой пользователь зарегистрируется на сайте, то команда поможет ему перенести накопленные баллы из SMS-аккаунта в аккаунт на сайте.
6. Команда "BUY код товара" в тексте SMS, отправленном на этот номер, позволяет пользователю заказать понравившийся ему товар из Магазина (модуль "Универсальный каталог").
Вот это пока все, что я сделал на текущий момент для своего проекта.
0
12 лет назад #
привет земляк, хотелось бы тоже такое реализоватоь
буду ковырять, если будут вопросы, напишу
0
Lansya Lansya 12 лет назад #
Еще хочу добавить к этому решению что kannel поддерживает SMPP. Провайдеров много на выбор цена смс от 30 копеек, при больших объемах(от 100000 ) до 10 копеек.
0
Vizh Vizh 12 лет назад #
Может кто возьмется привязать. Нужен модуль привязанный к биллингу InstantCMS, с помощью которого пользователи сайта могут отправлять смс с сайта по своим контактам, ну и естественно приобретать пакеты смс у владельца сайта по назначенной цене. Готов оплатить разработку модуля. Техническая документация для подключения к шлюзу http://www.sms16.ru/4prog.html
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст

Еще от автора

Часть вторая (или отправляем код подтверждения по SMS)
В первой части своего блога я рассказал, как нам создать собственный SMS-сервис.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.