2011-01-22 3 views
7

Я создал несколько соединений SMSC SMPP.Конфигурация Kannel для нескольких smsc

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

Как я могу управлять каналом для отправки sms с smpp, который я хочу отправить.

+0

Может ли я знать, как сделал вы настраиваете 'kannel' для нескольких подключений' smsc'? – Kulasangar

ответ

0

Вы можете указать, что SMSC для отправки через в представлении к серверу Каннель, например:

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

где $smsc должно соответствовать smsc-id у вас в kannel.conf

Documentation here под «Таблица 6-16. Переменные CGI для SMS (send-sms)».

+2

Ответ не завершен. Smsc-id и переменная $ smsc не обязательно связаны между собой. Следуя документации Kannel для smsc-id: «Обратите внимание, что если соединение SMS Center имеет назначенный ID SMSC, это НЕ означает, что сообщения с идентичным ID SMSC направляются на него, вместо этого конфигурируются переменные denied-smsc-id, разрешенные -smsc-id и preferred-smsc-id. " –

6

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

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

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

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

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

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

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

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

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

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

Теперь мы можем определить, что SMSC для отправки через в запросе на Каннель SendSMS интерфейса:

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

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

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

  • по умолчанию-SMSC строки Если нет SMSC ID не даются с запросом HTTP, используйте этот маршрут по умолчанию для всех 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 смс будет перенаправлен на SMSC с этим идентификатором , но когда мы этого не сделаем, Kannel вернется к круговому повороту между smsc1 и smsc2.

Для более продвинутых применений:

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

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

+1

Ужасно, но нет содержания по выставленному URL – ghost28147