多个smsc的Kannel配置

Rah*_*iya 7 sms bulksms smpp kannel

我创建了多个SMSC SMPP连接.

配置后我发送短信但短信是随机发送smsc.

我怎样才能控制kannel发送带有smpp的短信我想发送.

Rad*_*ler 7

默认情况下,Kannel将在所有连接的SMSC之间以循环方式路由邮件.

有三个SMSC参数控制到特定SMSC的路由:

  • denied-smsc-id SMSC ID等于此列表中任何ID的 SMS消息永远不会路由到此SMSC.多个条目用分号分隔(';')

  • allowed-smsc-id此列表与之前的列表相反:此列表中只有SMSC ID的SMS消息才会路由到此SMSC.多个条目用分号分隔(';')

  • 来自此列表的具有SMSC ID的preferred-smsc-id SMS消息被发送到该SMSC而不是没有该ID作为首选的SMSC.多个条目用分号分隔(';')

利用这些变量,您可以创建从非常简单到非常复杂的路由方案.

这是一个非常基本的例子:

假设我们有2个SMSC,smsc1并且smsc2我们想要将SMS消息路由到这两个SMSC中的一个.在我们的kannel配置文件中,我们添加以下行:

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

group = smsc
smsc-id = smsc2
allowed-smsc-id = smsc2
Run Code Online (Sandbox Code Playgroud)

现在,我们可以在请求中指定要通过kannel transmitms接口发送的smsc:

GET /kannel/sendsms?smsc=SMSC_ID&to=TO&text=TEXT
Run Code Online (Sandbox Code Playgroud)

其中SMSC_ID可以是smsc1或之一smsc2.

在此示例中,如果我们未在GET请求中指定任何smsc,则短信将不匹配smsc1smsc2将不会发送任何规则.我们可以通过设置一个默认的SMSC来避免这种情况,所有的外发消息都使用以下的sendsms-user组变量:

  • default-smsc string如果HTTP请求没有给出SMSC ID,请将此一个用作所有推送消息的默认路由.
group = sendsms-user
default-smsc = smsc1
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用denied-smsc-id变量:

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

group = smsc
smsc-id = smsc2
denied-smsc-id = smsc1
Run Code Online (Sandbox Code Playgroud)

使用此配置,当我们在HTTP请求中指定smsc时,sms将被路由到具有该id的smsc,但是当我们不这样做时,Kannel将回退到smsc1和之间的循环smsc2.

对于更高级的用途:

要更深入地了解Kannel的路由和更复杂的场景,您还可以查看此主题:

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


Fan*_*nis 0

您可以指定在提交到kannel服务器时通过什么smsc发送,例如:

GET /cgi-bin/sendsms?smsc=$smsc&username=$user&password=$password&to=$receipient&text=$text&dlr-mask=$dlrMask&dlr-url=$dlrUrl
Run Code Online (Sandbox Code Playgroud)

哪里$smsc应该匹配smsc-id你在 kannel.conf 中的a

文档位于“表 6-16. SMS 推送 (send-sms) CGI 变量”下。

  • 答案并不完整。smsc-id 和 $smsc 变量不一定相关。按照 smsc-id 的 Kannel 文档:“请注意,如果 SMS Center 连接具有分配的 SMSC ID,则不会自动意味着具有相同 SMSC ID 的消息将路由到该连接;而是配置变量拒绝-smsc-id、允许-smsc -id 和 Preferred-smsc-id 用于此目的。” (2认同)