Конфигурация Kannel для нескольких smsc - PullRequest
7 голосов
/ 22 января 2011

Я создал несколько соединений SMSC SMPP.

после настройки я отправил смс, но смс отправляется со случайной смс.отправить.

Ответы [ 2 ]

7 голосов
/ 16 апреля 2012

По умолчанию Kannel маршрутизирует сообщение в циклическом порядке между всеми подключенными SMSC.

Существует три параметра SMSC, которые управляют маршрутизацией к определенному SMSC:

  • denied-smsc-id SMS-сообщения с идентификатором SMSC, равным любому из идентификаторов в этом списке, никогда не направляются в этот SMSC.Несколько записей разделяются точкой с запятой (';')

  • allow-smsc-id Этот список противоположен предыдущему: в этом списке только SMS-сообщения с идентификатором SMSC IDкогда-либо направляются в этот SMSC.Несколько записей разделяются точкой с запятой (';')

  • предпочитаемый-smsc-id SMS-сообщения с идентификатором SMSC из этого списка отправляются в этот SMSC, а не вSMSC без этого идентификатора в качестве предпочтительного.Несколько записей разделяются точкой с запятой (';')

Жонглирование этими переменными позволяет создавать сценарии маршрутизации от очень простых до очень сложных.

Здесьочень простой пример:

Предположим, у нас есть 2 SMSC, smsc1 и smsc2, и мы хотим направить SMS-сообщения на один из этих 2 SMSC.В нашем конфигурационном файле kannel мы добавляем следующие строки:

group = smsc
smsc-id = smsc1
allowed-smsc-id = smsc1

group = smsc
smsc-id = smsc2
allowed-smsc-id = smsc2

Теперь мы можем указать, через какой smsc отправлять запросы в интерфейсе kannel sendms:

GET /kannel/sendsms?smsc=SMSC_ID&to=TO&text=TEXT

, где SMSC_ID можетбыть одним из smsc1 или smsc2.

В этом примере, если мы не указываем smsc в запросе GET, sms не будет соответствовать ни одному из правил для smsc1 или smsc2 и не будет отправлено.Этого можно избежать, установив SMSC по умолчанию, который будет использоваться всеми исходящими сообщениями со следующей групповой переменной sendms-user :

  • default-smsc stringЕсли для запроса HTTP не указан идентификатор SMSC, используйте его в качестве маршрута по умолчанию для всех push-сообщений.
group = sendsms-user
default-smsc = smsc1

Другой вариант - использовать переменную denied-smsc-id:

group = smsc
smsc-id = smsc1
denied-smsc-id = smsc2

group = smsc
smsc-id = smsc2
denied-smsc-id = smsc1

При такой конфигурации, когда мы указываем smsc в HTTP-запросе, sms будет перенаправляться на smsc с этим идентификатором, но если мы этого не сделаем, Kannel переключится на циклический перебор между smsc1и smsc2.

Для более сложных применений:

Для более глубокого понимания маршрутизации Kannel и более сложных сценариев вы также можете проверить эту тему:

http://old.nabble.com/Routing-of-outgoing-sms-td19723248.html

0 голосов
/ 23 января 2011

Вы можете указать, какой smsc отправлять при отправке на сервер kannel, например:

GET /cgi-bin/sendsms?smsc=$smsc&username=$user&password=$password&to=$receipient&text=$text&dlr-mask=$dlrMask&dlr-url=$dlrUrl

, где $smsc должно соответствовать smsc-id, которое есть в вашем канале.conf

Документация здесь , под "Таблицей 6-16. Переменные CGI SMS Push (send-sms)".

...