Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kannel Sqlbox不工作(尝试连接到SQL Server而不是MySQL)?_Mysql_Sms Gateway_Smpp_Kannel - Fatal编程技术网

Kannel Sqlbox不工作(尝试连接到SQL Server而不是MySQL)?

Kannel Sqlbox不工作(尝试连接到SQL Server而不是MySQL)?,mysql,sms-gateway,smpp,kannel,Mysql,Sms Gateway,Smpp,Kannel,我有一个Kannel安装并运行在Ubuntu 16.04机器上,带有本地MySQL DLR存储。我想添加sqlbox,以便在同一数据库中对传入的SMS进行排队 当我尝试启动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]

我有一个
Kannel
安装并运行在Ubuntu 16.04机器上,带有本地MySQL DLR存储。我想添加
sqlbox
,以便在同一数据库中对传入的SMS进行排队

当我尝试启动
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-08-03 14:02:21[55982][0]紧急:SQLBOX:MSSql:未指定id“SQLBOX db”的连接设置

事实上,您正在使用的版本中有一个问题(apt get软件包是旧版本,您不能在那里使用),我在年初遇到了同样的问题

下面是我如何让它工作的


解决方案 第1步-卸载所有以前的Kannel软件包,清理所有内容 如果您已经使用apt get软件包安装了Kannel,则必须首先清洁您的机器

这里有一些线索可以帮助你找到需要移除的物品。 我首先检查了所有发现“kannel”的地方:

sudo find / -name "*kannel*"
sudo find / -name "*Kannel*"
然后我运行了以下命令(其中一些命令可能对您没有用处,具体取决于您的设置等):

还有
sudorm-rf/usr/local/sbin/
(但这里要小心,这取决于文件夹中已有的内容!)


步骤2-从源代码安装最新的Kannel版本 注意:您必须使用1.5.0版

获取依赖项 首先添加未来命令所需的所有包:

  • sudo apt get install libxml2 dev
    (步骤
    /configure
    需要,否则您将得到“configure:error:您必须安装libxml2(也称gnome xml)库”)

  • 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返回1退出状态make:**[test/test\u-http]error 1”)

  • 获取Kannel来源 您必须从svn存储库获取源代码。因此:

    • sudo apt install subversion
      如果您还没有subversion(您可以通过运行
      svn--version检查:如果没有回复,请使用命令)
    然后:

    • 转到将在本地承载源的文件夹。例如在m端:
      cd~/www-dev/nicopushkannel/Kannel/Kannel-Source

    • 从存储库获取Kannel源代码:
      svn cohttps://svn.kannel.org/gateway/trunk

    构建并安装Kannel 从上一步开始,您应该使用Kannel sources root傻瓜。 如Kannel文档中所述,运行:

    cd trunk
    ./bootstrap
    ./configure --with-mysql --with-mysql-dir=/var/lib/mysql
    make
    
    这里重要的是添加到./configure:
    ——with mysql——with mysql dir=/var/lib/mysql

    然后安装:

    sudo make bindir=/usr/local/kannel install
    
    跑卡内尔 完成此操作后,您可以尝试从命令行运行Kannel:

    cd /usr/local/sbin
    ./bearerbox -v 0 /etc/kannel/kannel.conf
    

    步骤3-从源代码安装最新的Kannel sqlbox版本 注意:您需要安装Kannel(步骤2)来编译sqlbox

    sqlbox包含在Kannel trunk中:导航到以下文件夹:

    cd addons/sqlbox
    
    补丁引导文件 您可能需要修补引导文件以匹配您的autoconf版本(我的版本是1.15),因为代码不理解1.15大于1.11

    更改以下值以匹配您的计算机版本的autoconf:

    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 我们完了

    还有一件事:如果要在Kannel启动时添加Sqlbox启动:

    sudo gedit /etc/default/kannel
    Add "START_SQLBOX=1" line at the end
    

    你能添加更多关于你正在使用的kannel和sqlbox版本的详细信息吗(版本号,来源:与apt get一起安装,或者在你这边重新编译?)请查看我的编辑@NicolasRI think
    kannel 0.7.2-4build1
    is
    kannel sqlbox 0.7.2-4build1
    ,对吗?很好,我发布了我冗长的答案。正如你所看到的,今年我花了一些时间来修复它!1.5.0没有问题,问题比1.4.4少!对于任何对automake版本有问题的人:从,安装sqlbox,您不需要引导脚本。只需键入./configure,然后make.Compiled并安装OK,但libgwlib.so被放在/usr/local/lib中,ubuntu 20.04上的可执行文件找不到它。解决
    ./bootstrap
    ./configure
    make
    sudo make install
    
    sudo gedit /etc/default/kannel
    Add "START_SQLBOX=1" line at the end