在Kannel中实现优先级队列

时间:2011-12-10 17:48:01

标签: php mysql sms kannel

我希望有人与kannel一起体验,请开心。

我目前运行的是一个围绕发送和接收短信的小网站。我使用Kannel作为短信网关,我喜欢的一个功能是基于优先级的队列发送我的短信。

我和我的同事提出的工作是编写一个中间程序,我们将发送短信发送到中间程序,它将管理它自己的队列,并将依次处理它们到kannel优先级。

它将SMS存储到MySQL数据库以保持持久性,并将在PHP中完成。

我只是想确定这是解决问题的好方法,我想开源,以便其他人可以受益。

非常感谢。

2 个答案:

答案 0 :(得分:2)

Kannel本身不支持内部队列中的消息优先级。

但是,您可以使用 sqlbox 插件(包含在Kannel 1.5.0版本中 - 请参阅“ addons / sqlbox ”目录)。

在这种情况下,您可以通过以下方式进行简单的更改:

  1. 将“my_prio”字段添加到表格结构中。
  2. 更改原始提取SQL查询以按此字段对消息进行排序(SELECT ... ORDER BY my_prio)。
  3. 使用此“my_prio”字段的相应值插入MT消息。
  4. 所有提到的更改都可以在“ addons / sqlbox / gw / sqlbox_mysql.h ”文件中完成。

答案 1 :(得分:0)

我在Kannel-dev邮件列表上发布了这个问题,我发现Kannel确实在外发短信上实施了基本的优先级安排。很难找到,因为,我们都知道一个易于理解的“用户指南”并不是kannel的力量。

但是,如果您转到Kannel User Guide并阅读“使用HTTP界面发送短信”部分,您会发现可以设置一个可选参数 “priority” ,同时向kannel发送GET请求以发送短信:

  

优先|号码|可选的。设置优先级值(范围0-3为   允许)。 (默认为0,这是最低优先级)。

我希望这有帮助,但是,我还不知道它是如何在内部工作的,它是否实现了老化,所以低优先级的消息不会饿死等等。我已经在邮件列表上提出了问题,但仍然没有回复,如果有的话有关此的更多信息,请更新我们。