[SR-Users] error using avp_db_load with mongodb

hdssdsdsdsfsdf hdssdsdsdsfsdf hdssdsdsdsfsdf at mail.com
Wed Jul 26 17:19:00 CEST 2017


Hi,

I've problems using avpops and mongodb, resulting in the error: "ERROR: avpops [avpops_impl.c:123]: dbrow2avp(): wrong field types in dbrow"

In the database:

> db.usr_preferences.find()
{ "_id" : ObjectId("5978ab2850d1be89eb15f434"), "uuid" : "", "attribute" : "email", "value" : "sip:555 at sip.bla.bla", "type" : 0, "username" : "555", "domain" : null }
> 

In kamailio.cfg:


...
# ---- avpops params ----
modparam("avpops", "db_url", DBURL)
modparam("avpops", "avp_table", "usr_preferences")


...


                if ($rU=~"^(555|222)$") {
                        xlog("bla01");
                        if (avp_db_load("$to/username", "$avp(s:email)")) {
                                xlog("bla02");
                        }
                }
                xlog("bla03");

...

The result in syslog:

ERROR: <script>: bla01
DEBUG: db_mongodb [mongodb_dbase.c:864]: db_mongodb_query(): query to collection [usr_preferences]
DEBUG: db_mongodb [mongodb_dbase.c:898]: db_mongodb_query(): query filter: { "username" : "555", "attribute" : "email" }
DEBUG: db_mongodb [mongodb_dbase.c:917]: db_mongodb_query(): columns filter: { "value" : 1, "attribute" : 1, "type" : 1 }
DEBUG: <core> [db_res.c:116]: db_new_result(): allocate 56 bytes for result set at 0x7f82c8f4ae30
DEBUG: db_mongodb [mongodb_dbase.c:349]: db_mongodb_get_columns(): 3 columns returned from the query
DEBUG: <core> [db_res.c:154]: db_allocate_columns(): allocate 24 bytes for result names at 0x7f82c8f4fd40
DEBUG: <core> [db_res.c:165]: db_allocate_columns(): allocate 12 bytes for result types at 0x7f82c8f70df0
DEBUG: db_mongodb [mongodb_dbase.c:377]: db_mongodb_get_columns(): Found a field[0] named: value
DEBUG: db_mongodb [mongodb_dbase.c:403]: db_mongodb_get_columns(): allocate 16 bytes for RES_NAMES[0] at 0x7f82c8f70e48
DEBUG: db_mongodb [mongodb_dbase.c:438]: db_mongodb_get_columns(): use DB1_STRING result type
DEBUG: db_mongodb [mongodb_dbase.c:467]: db_mongodb_get_columns(): RES_NAMES(0x7f82c8f70e48)[0]=[value] (2)
DEBUG: db_mongodb [mongodb_dbase.c:377]: db_mongodb_get_columns(): Found a field[1] named: attribute
DEBUG: db_mongodb [mongodb_dbase.c:403]: db_mongodb_get_columns(): allocate 16 bytes for RES_NAMES[1] at 0x7f82c8f4abc8
DEBUG: db_mongodb [mongodb_dbase.c:438]: db_mongodb_get_columns(): use DB1_STRING result type
DEBUG: db_mongodb [mongodb_dbase.c:467]: db_mongodb_get_columns(): RES_NAMES(0x7f82c8f4abc8)[1]=[attribute] (2)
DEBUG: db_mongodb [mongodb_dbase.c:377]: db_mongodb_get_columns(): Found a field[2] named: type 
DEBUG: db_mongodb [mongodb_dbase.c:403]: db_mongodb_get_columns(): allocate 16 bytes for RES_NAMES[2] at 0x7f82c8f4aeb0
DEBUG: db_mongodb [mongodb_dbase.c:423]: db_mongodb_get_columns(): use DB1_DOUBLE result type
DEBUG: db_mongodb [mongodb_dbase.c:467]: db_mongodb_get_columns(): RES_NAMES(0x7f82c8f4aeb0)[2]=[type] (1)
DEBUG: <core> [db_res.c:184]: db_allocate_rows(): allocate 16000 bytes for rows at 0x7f82c8f80820
DEBUG: db_mongodb [mongodb_dbase.c:684]: db_mongodb_convert_result(): selected document: { "_id" : { "$oid" : "5978ab2850d1be89eb15f434" }, "attribute" : "email", "value" : "sip:555 at sip.bla.bla", "type" : 0.000000 }
DEBUG: <core> [db_row.c:117]: db_allocate_row(): allocate 96 bytes for row values at 0x7f82c8f4af08
DEBUG: db_mongodb [mongodb_dbase.c:529]: db_mongodb_convert_bson(): looking for field[0] named: value
DEBUG: db_mongodb [mongodb_dbase.c:623]: db_mongodb_convert_bson(): RES_NAMES(0x7f82c8f70e48)[0]=[value] (2)
DEBUG: db_mongodb [mongodb_dbase.c:529]: db_mongodb_convert_bson(): looking for field[1] named: attribute
DEBUG: db_mongodb [mongodb_dbase.c:623]: db_mongodb_convert_bson(): RES_NAMES(0x7f82c8f4abc8)[1]=[attribute] (2)
DEBUG: db_mongodb [mongodb_dbase.c:529]: db_mongodb_convert_bson(): looking for field[2] named: type
DEBUG: db_mongodb [mongodb_dbase.c:623]: db_mongodb_convert_bson(): RES_NAMES(0x7f82c8f4aeb0)[2]=[type] (1)
DEBUG: db_mongodb [mongodb_dbase.c:695]: db_mongodb_convert_result(): retrieved number of rows: 1
ERROR: avpops [avpops_impl.c:123]: dbrow2avp(): wrong field types in dbrow
DEBUG: avpops [avpops_db.c:265]: db_close_query(): close avp query
DEBUG: <core> [db_res.c:79]: db_free_columns(): freeing 3 columns
DEBUG: <core> [db_res.c:83]: db_free_columns(): freeing RES_NAMES[0] at 0x7f82c8f70e48
DEBUG: <core> [db_res.c:83]: db_free_columns(): freeing RES_NAMES[1] at 0x7f82c8f4abc8
DEBUG: <core> [db_res.c:83]: db_free_columns(): freeing RES_NAMES[2] at 0x7f82c8f4aeb0
DEBUG: <core> [db_res.c:92]: db_free_columns(): freeing result names at 0x7f82c8f4fd40
DEBUG: <core> [db_res.c:97]: db_free_columns(): freeing result types at 0x7f82c8f70df0
DEBUG: <core> [db_res.c:52]: db_free_rows(): freeing 1 rows
DEBUG: <core> [db_row.c:95]: db_free_row(): freeing row values at 0x7f82c8f4af08
DEBUG: <core> [db_res.c:60]: db_free_rows(): freeing rows at 0x7f82c8f80820
DEBUG: <core> [db_res.c:134]: db_free_result(): freeing result set at 0x7f82c8f4ae30
DEBUG: avpops [avpops_impl.c:415]: ops_dbload_avps(): loaded avps = 0
ERROR: <script>: bla03


Does anyone know what I'm doing wrong here?



More information about the sr-users mailing list