По умолчанию 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