我有一个Kannel启动并运行在一个Ubuntu16.04盒上,带有本地MySQL DLR存储。我想添加sqlbox来在同一个数据库中对输入的短消息进行排队。
当我尝试启动sqlbox sqlbox.conf时,我得到的就是这个。
2017-08-03 14:02:21 [55982] [0] INFO: Starting to log to file /var/log/kannel/kannel-sqlbox.log level 0
2017-08-03 14:02:21 [55982] [0] INFO: Added logfile `/var/log/kannel/kannel-sqlbox.log' with level `0'.
2017-08-03 14:02:21 [55982] [0] PANIC: SQLBOX: MSSql: connection settings for id 'sqlbox-db' are not specified!
2017-08-03 14:02:21 [55982] [0] PANIC: sqlbox(gw_backtrace+0xce) [0x42d07e]
2017-08-03 14:02:21 [55982] [0] PANIC: sqlbox(gw_panic+0x16f) [0x42d1ff]
2017-08-03 14:02:21 [55982] [0] PANIC: sqlbox(sqlbox_init_mssql+0x11e) [0x40dffe]
2017-08-03 14:02:21 [55982] [0] PANIC: sqlbox(sqlbox_init_sql+0x9) [0x413239]
2017-08-03 14:02:21 [55982] [0] PANIC: sqlbox(main+0x31d) [0x40c24d]
2017-08-03 14:02:21 [55982] [0] PANIC: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7fbb36421830]
2017-08-03 14:02:21 [55982] [0] PANIC: sqlbox(_start+0x29) [0x40c4d9]下面是两个配置文件sqlbox.conf
group = sqlbox
id = sqlbox-db
smsbox-id = sqlbox-db
global-sender = "My Sender"
bearerbox-host = "192.168.1.2"
bearerbox-port = 14001
smsbox-port = 14005
#smsbox-port-ssl = false
sql-log-table = sent_sms
sql-insert-table = send_sms
log-file = "/var/log/kannel/kannel-sqlbox.log"
log-level = 0
group = mysql-connection
id = sqlbox-db
host = localhost
username = "user"
password = "pwd"
database = "kannel"和kannel.conf
group = core
admin-port = 14000
admin-password = pwd
status-password = pwd
# admin-deny-ip = "*.*.*.*"
admin-allow-ip = 192.168.1.2
access-log = "/var/log/kannel/access/log"
log-file = "/var/log/kannel/kannel.log"
box-allow-ip = 192.168.1.2
log-level = 0
smsbox-port= 14001
dlr-storage = mysql
# SMSBOX SETUP
group = smsbox
smsbox-id = sqlbox-id
bearerbox-host = 192.168.1.2
sendsms-port = 14002
global-sender = My Sender
sendsms-chars = "0123456789 +-"
log-file = "/var/log/kannel/smsbox.log"
# SENDING SMS
group = sendsms-user
username = test
password = test
concatenation = true
max-messages = 1
# SMSC
#The sms part
# SQL BOX CONFIG
group = mysql-connection
id = sqlbox-db
host = localhost
username = user
password = pwd
database = kannel
# DLR SETUP
group = mysql-connection
id = mydlr
host = localhost
username = user
password = pwd
database = kannel
group = dlr-db
id = mydlr
table = dlr
field-smsc=smsc
field-timestamp=ts
field-destination=destination
field-source=source
field-service=service
field-url=url
field-mask=mask
field-status=status
field-boxc-id=boxc诀窍是什么?谢谢
使用:kannel 1.4.4-2build1和kannel-sqlbox 0.7.2-4build1都是通过apt安装的。
发布于 2017-10-13 09:49:10
问题
日志中描述的主要问题是:
2017-08-03 14:02:21 [55982] [0] PANIC: SQLBOX: MSSql: connection settings for id 'sqlbox-db' are not specified!
事实上,在您使用的版本中有一个问题(apt-get包是旧版本,您不能在那里使用),我在年初遇到了同样的问题。
我就是这么做的。
解决方案
步骤1-卸载所有以前的Kannel包,清理所有东西。
如果您已经安装了带有apt-get软件包的Kannel,您必须首先清理您的机器。
这里有一些线索,可以找到你必须移除的物品。我首先检查了发现"kannel“的每一个地方:
sudo find / -name "*kannel*"
sudo find / -name "*Kannel*"然后,我运行了以下命令(根据设置等,其中一些命令可能对您没有用处):
sudo apt-get autoremove --purge kannel
sudo rm -rf /etc/kannel/
sudo apt-get autoremove --purge kannel-sqlbox
sudo rm /var/cache/apt/archives/kannel-sqlbox_0.7.2-4build1_amd64.deb
sudo rm /var/cache/apt/archives/kannel-extras_1.4.4-2build1_amd64.deb
rm /home/nico/www-dev/kannelStore/kannel.store*
sudo rm -rf /usr/local/include/kannel
sudo rm -rf /usr/local/kannel
sudo rm -rf /usr/local/lib/kannel
rm /var/tmp/kannel.swp
sudo rm /usr/local/share/man/man8/kannel.8
sudo rm /usr/local/share/man/man8/run_kannel_box.8还有sudo rm -rf /usr/local/sbin/ (但是这里要小心,这取决于您在文件夹中已经拥有了什么!)
步骤2-从源代码安装最新的Kannel版本
注意:您必须使用1.5.0版本
获取依赖关系
首先,添加未来命令所需的所有包:
sudo apt-get install libxml2-dev (步骤./configure所需,否则您将得到“配置:错误:您必须安装libxml2 (又名gnome)库”))sudo apt-get install libmysqlclient-dev (./configure --with-mysql所需)sudo apt-get install bison (make所需)sudo apt-get install libssh-dev libssl-dev ( make需要避免此错误:"collect2: error: ld返回一个退出状态:* test/test_http Error 1 ")获取Kannel源
您必须从svn存储库中获取源代码。所以:
sudo apt install subversion如果您还没有subversion (您可以通过运行svn --version来检查:如果没有回复,请使用命令)然后:
cd ~/www-dev/nicopushkannel/Kannel/Kannel-Sourcesvn co https://svn.kannel.org/gateway/trunk构建和安装Kannel
从上一步开始,您应该在Kannel源根目录上查找。如Kannel文档所述,运行:
cd trunk
./bootstrap
./configure --with-mysql --with-mysql-dir=/var/lib/mysql
make这里,重要的事情是添加到./ --with-mysql --with-mysql-dir=/var/lib/mysql中的参数:
然后安装:
sudo make bindir=/usr/local/kannel install运行Kannel
完成之后,您可以尝试从命令行运行Kannel:
cd /usr/local/sbin
./bearerbox -v 0 /etc/kannel/kannel.conf步骤3-从源代码安装最新的Kannel-sqlbox版本
注意:您需要安装Kannel (步骤2)来编译sqlbox。
sqlbox包含在Kannel主干中:导航到文件夹:
cd addons/sqlbox补丁引导文件
您可能必须修补引导文件以匹配您的autoconf版本(对我来说是1.15 ),因为代码不知道1.15大于1.11.
更改以下值以匹配自动your的计算机版本:
if automake-1.11 --version >/dev/null 2>&1; then
amvers="-1.11"所以对我来说它变成了:
if automake-1.15 --version >/dev/null 2>&1; then
amvers="-1.15"构建和安装sqlbox
./bootstrap
./configure
make
sudo make install我们完蛋了!
还有一件事:如果您想在Kannel启动时添加Sqlbox启动:
sudo gedit /etc/default/kannel
Add "START_SQLBOX=1" line at the endhttps://stackoverflow.com/questions/45486238
复制相似问题