2011-01-22 35 views
7

我已經創建了多個SMSC SMPP連接。用於多個SMS的Kannel配置

配置後我有發送短信,但短信發送隨機短信。

我怎樣才能控制kannel發送smp我想發送的短信。

+0

可我知道該怎麼做你爲多個`smsc`連接配置`kannel`? – Kulasangar 2016-06-16 09:41:45

回答

0

您可以通過指定在提交給服務器Kannel的送什麼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。短信推送(send-sms)CGI變量」。

+2

答案不完整。 smsc-id和$ smsc變量不一定相關。 關於smsc-id的關鍵文件: 「請注意,如果SMS中心連接有一個指定的SMSC ID,它並不自動意味着具有相同SMSC ID的消息被路由到它;而是允許配置變量denied-smsc-id,允許-smsc-id和preferred-smsc-id用於此。「 – 2013-08-27 14:13:32

6

默認情況下,Kannel將以循環方式在所有連接的SMSC之間路由消息。

有三個SMSC參數,這些參數控制路由到特定SMSC:等於任何在此列表中的ID的

  • 否認,SMSC-ID短信與SMSC ID永遠不會被路由到這個SMSC。多個條目與分號分隔(「;」)

  • 允許-SMSC-ID這個列表是相反以前:在該列表與SMSC ID僅SMS消息是不斷路由到SMSC此。多個條目與分號分隔(「;」)

  • 優選-SMSC-ID從該列表與SMSC ID SMS消息爲優選被髮送到這個SMSC代替比SMSC不該ID。多個條目之間用分號分隔(「;」)

玩弄這些變量可以讓你從非常簡單到非常複雜的路由方案創建。

這是一個非常簡單的例子:

假設我們有2 SMSC,smsc1smsc2,我們要路由SMS消息的SMSC 2之一。在我們的Kannel配置文件中添加下面幾行:

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

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

現在,我們可以指定通過在請求發送到的Kannel sendsms接口什麼SMSC:

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

其中SMSC_ID可以是smsc1一個或smsc2

在這個例子中,如果我們沒有在GET請求指定任何SMSC,短信將不符合任何規則smsc1smsc2並不會被髮送。我們可以通過設置一個默認SMSC避免此所使用的所有傳出消息具有以下sendsms用戶組變量:

  • 默認SMSC串如果沒有SMSC ID與HTTP請求給出使用這個作爲所有推送消息的默認路由。
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 

利用這種配置,當我們可以在HTTP請求中的短信將被路由到SMSC與該ID的SMSC ,但是當我們不這樣做時,Kannel會回落到smsc1smsc2之間的循環。

對於更高級的用途:

有關的Kannel的路由和更復雜的場景更深入的瞭解,您還可以檢查出這個線程:

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

+1

很傷心,但沒有內容顯示的URL – ghost28147 2016-02-18 04:03:59