首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在kamailio中的acc表中插入新的时间戳值

问在kamailio中的acc表中插入新的时间戳值
EN

Stack Overflow用户
提问于 2020-06-05 22:33:04
回答 2查看 89关注 0票数 0

我想向acc表中添加一个新列。我在acc表中创建了一个类型为timestamp的新列,并将其命名为ring_time。在每个调用中,我将振铃时间设置为如下所示的$dlg_var:

代码语言:javascript
复制
$dlg_var(ringtime) = $Ts;

然后我在config中添加一个额外的列,如下所示:

代码语言:javascript
复制
modparam("acc", "log_extra", "src_user=$fU;src_domain=$fd;src_ip=$si;" "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;ring_time=$dlg_var(ringtime)")

但当我尝试测试它时,我总是得到:

代码语言:javascript
复制
db_mysql [km_dbase.c:122]: db_mysql_submit_query(): driver error on query: Incorrect datetime value: '1591361996' for column kamailio.acc.ring_time at row 1 (1292) 
Jun 5 17:29:59 kamailio /usr/sbin/kamailio[22901]: ERROR: {2 102 INVITE 105a0f4a3d99a0a5558355e54b43f4e1@192.168.1.121:5060} <core> [db_query.c:244]: db_do_insert_cmd(): error while submitting query
Jun 5 17:29:59 kamailio /usr/sbin/kamailio[22901]: ERROR: {2 102 INVITE 105a0f4a3d99a0a5558355e54b43f4e1@192.168.1.121:5060} acc [acc.c:477]: acc_db_request(): failed to insert into database
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-06 07:21:21

听起来像是SQL INSERT查询的错误,如果必须猜测,我会说您被SQL表中的日期格式与您推送的日期格式不匹配所发现。

我不知道你的数据库的结构,但我有一个简单的技巧,当我看不到SQL查询正在运行时,我可以用它来调试SQL查询;

在机器上启动Wireshark/TCPdump并捕获所有SQL流量的数据包(MySQL是端口3306),然后复制错误。从数据包捕获中,您将能够看到查询Kamailio的数据库引擎正在运行。

票数 0
EN

Stack Overflow用户

发布于 2020-06-12 23:29:10

如果出现错误"db_mysql km_dbase.c:122: db_mysql_submit_query():driver error on query: it value:'1591361996‘for column kamailio.acc.ring_time at row 1 (1292)",则'1591361996’看起来就像是$dlg_var(ringtime)的一个时期。错误中的“不正确的DateTime值”部分看起来像是数据库试图以datetime数据类型存储该值,因此数据类型不匹配。仔细检查,您可能需要更改ringtime以转换为datetime,或者将数据库列更改为需要使用纪元的类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62217772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档