2017-02-13 5 views
0

mongodbをバックエンドとしてkamailio dialplanモジュールを設定しようとしています。この設定は、バックエンドとしてmysqlを使用していました。私が使用する他のモジュール(subscriber、location)はmongodbとうまく動作します。mongodbでkamailio dialplanモジュールを使用する

kamailio.cfgの関連する設定:

#!define DBURL "mongodb://localhost/kamailio" 
loadmodule "dialplan.so" 
modparam("dialplan", "db_url", DBURL) 

そして、私が使用して、メインルートに:MongoDBので

if (dp_translate("100")) { 
     xlog("dialplan: translation succeeded\n"); 
} 
else { 
     xlog("dialplan: translation failed\n"); 
} 

、私が得た:

> 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 

私は間違っていますか?

答えて

0

問題は、値の一部がints(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 
} 
関連する問題