使用 mongodb 的通信拨号方案模块
Use kamailio dialplan module with mongodb
我正在尝试使用 mongodb 作为后端设置 kamailio 拨号方案模块。该配置使用 mysql 作为后端,我使用的其他模块(订阅者、位置)现在可以很好地使用 mongodb。
kamailio.cfg中的相关配置:
#!define DBURL "mongodb://localhost/kamailio"
loadmodule "dialplan.so"
modparam("dialplan", "db_url", DBURL)
在我使用的主要路线中:
if (dp_translate("100")) {
xlog("dialplan: translation succeeded\n");
}
else {
xlog("dialplan: translation failed\n");
}
在mongodb中,我得到:
> db.getCollection("version").find({"table_name":"dialplan"})
{ "_id" : ObjectId("589de6af3d305445959b19d9"), "table_name" : "dialplan", "table_version" : 2 }
> db.dialplan.find()
{ "_id" : ObjectId("589dec2f3d305445959b19db"), "dpid" : 100, "pr" : 50, "match_op" : 1, "match_exp" : "^003$", "match_len" : 0, "subst_exp" : "^003$", "repl_exp" : "11111", "attrs" : "abc" }
但是模块没有应用这个。例如:
$kamcmd dialplan.dump 100
error: 500 - Dialplan ID not matched
我做错了什么?
问题是一些值应该是整数(如 dialplan.json 中指定的),我没有在插入时指定。当我这样做时:
db.dialplan.insert( { "dpid" : NumberInt(100), "pr": NumberInt(1), "match_op" : NumberInt(1), "match_exp" : "^003$", "match_len" : NumberInt(0), "subst_exp" : "^003$", "repl_exp" : "11111", "attrs" : "abc" } )
一切正常:
$kamcmd dialplan.translate 100 s:003
{
Output: 11111
Attributes: abc
}
我正在尝试使用 mongodb 作为后端设置 kamailio 拨号方案模块。该配置使用 mysql 作为后端,我使用的其他模块(订阅者、位置)现在可以很好地使用 mongodb。
kamailio.cfg中的相关配置:
#!define DBURL "mongodb://localhost/kamailio"
loadmodule "dialplan.so"
modparam("dialplan", "db_url", DBURL)
在我使用的主要路线中:
if (dp_translate("100")) {
xlog("dialplan: translation succeeded\n");
}
else {
xlog("dialplan: translation failed\n");
}
在mongodb中,我得到:
> db.getCollection("version").find({"table_name":"dialplan"})
{ "_id" : ObjectId("589de6af3d305445959b19d9"), "table_name" : "dialplan", "table_version" : 2 }
> db.dialplan.find()
{ "_id" : ObjectId("589dec2f3d305445959b19db"), "dpid" : 100, "pr" : 50, "match_op" : 1, "match_exp" : "^003$", "match_len" : 0, "subst_exp" : "^003$", "repl_exp" : "11111", "attrs" : "abc" }
但是模块没有应用这个。例如:
$kamcmd dialplan.dump 100
error: 500 - Dialplan ID not matched
我做错了什么?
问题是一些值应该是整数(如 dialplan.json 中指定的),我没有在插入时指定。当我这样做时:
db.dialplan.insert( { "dpid" : NumberInt(100), "pr": NumberInt(1), "match_op" : NumberInt(1), "match_exp" : "^003$", "match_len" : NumberInt(0), "subst_exp" : "^003$", "repl_exp" : "11111", "attrs" : "abc" } )
一切正常:
$kamcmd dialplan.translate 100 s:003
{
Output: 11111
Attributes: abc
}