[SR-Users] kamailio presence server using db_mongodb as database

José Seabra joseseabra4 at gmail.com
Tue Aug 18 15:26:23 CEST 2015


Hello,

It is working now, so summarizing  about what we need to do in mongodb to
kamailio starts up is:

Access to Mongodb cli

Create databases kamailio

> use kamailio
switched to db kamailio
>
> db
kamailio


create collection named version

> db.createCollection("version")
> show collections
system.indexes
version
>

Add the records for the tables version

> db.getCollection("version").insert({table_name: "presentity",
table_version: NumberInt(4) })
WriteResult({ "nInserted" : 1 })

> db.getCollection("version").insert({table_name: "watchers",
table_version: NumberInt(3) })
WriteResult({ "nInserted" : 1 })

db.getCollection("version").insert({table_name: "active_watchers",
table_version: NumberInt(11) })
WriteResult({ "nInserted" : 1 })

Thank you for your help
Best Regards
José Seabra

2015-08-18 13:10 GMT+01:00 Daniel-Constantin Mierla <miconda at gmail.com>:

> Hello,
>
> if I remember correctly, the default type for numbers is float/double. You
> have to use a special form/function in mongo client when inserting a record
> to force the type of the value to be integer.
>
> Perhaps searching on the web of how to insert an integer value in mongodb
> will give you the proper hings.
>
> Cheers,
> Daniel
>
> On 18/08/15 13:17, José Seabra wrote:
>
> Hi,
> Well i didn't noticed before, but after create a document in mongodb the
> error that kamailio gives now is different but it still  related with table
> version check.
>
> Seems that kamailio can query the document successfully and get the
> table_version field.
>
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:671]:
> db_mongodb_convert_result(): selected document: { "_id" : { "$oid" :
> "55d2fc84b04c015195aee4b2" }, "table_version" : 4 }
>  0(3068) DEBUG: <core> [db_row.c:117]: db_allocate_row(): allocate 32
> bytes for row values at 0x7fe6fee76390
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:522]:
> db_mongodb_convert_bson(): looking for field[0] named: table_version
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:610]:
> db_mongodb_convert_bson(): RES_NAMES(0x7fe6fee72490)[0]=[table_version] (1)
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:682]:
> db_mongodb_convert_result(): retrieved number of rows: 1
>  *0(3068) ERROR: <core> [db.c:414]: db_table_version(): invalid type (2)
> or nul (0) version columns for presentity*
>
>
>
> ALL Log:
>
> Listening on
>              udp: 10.0.20.100:5080
> Aliases:
>
>  0(3066) DEBUG: <core> [cfg/cfg.c:176]: cfg_declare(): DEBUG:
> register_cfg_def(): new config group has been registered: 'core' (num=50,
> size=200)
>  0(3066) DEBUG: <core> [cfg/cfg.c:176]: cfg_declare(): DEBUG:
> register_cfg_def(): new config group has been registered: 'tcp' (num=26,
> size=104)
>  0(3066) DEBUG: <core> [timer.c:255]: init_timer(): starting with
> *ticks=1210106959
>  0(3066) DEBUG: <core> [timer.c:297]: init_timer(): timer_list between
> 0x7fe6ebf85728 and 0x7fe6ebfc9728
>  0(3066) INFO: <core> [tcp_main.c:4656]: init_tcp(): using epoll_lt as the
> io watch method (auto detected)
>  0(3068) DEBUG: <core> [daemonize.c:207]: enable_dumpable(): trying enable
> core dumping...
>  0(3068) DEBUG: <core> [daemonize.c:225]: enable_dumpable(): core dumping
> is enabled now (1)...
>  0(3068) DEBUG: <core> [daemonize.c:583]: set_core_dump(): core dump
> limits set to 18446744073709551615
>  0(3068) DEBUG: <core> [async_task.c:88]: async_task_init(): start
> initializing asynk task framework
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): db_text
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): db_mysql
>  0(3068) DEBUG: db_mysql [km_db_mysql.c:86]: kam_mysql_mod_init(): MySQL
> client version is 5.1.73
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): db_mongodb
>  0(3068) DEBUG: db_mongodb [db_mongodb_mod.c:98]: mod_init(): module
> initializing
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): sl
>  0(3068) DEBUG: <core> [md5utils.c:67]: MD5StringArray(): MD5 calculated:
> f452807bca511b98621cbbe6e749d8ef
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <load_tm> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) ERROR: tm [tm_load.c:37]: load_tm(): tm:load_tm: Module not
> initialized yet, make sure that all modules that need tm module are loaded
> after tm in the configuration file
>  0(3068) INFO: sl [sl.c:157]: mod_init(): could not bind tm module - only
> stateless mode available during modules initialization
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): maxfwd
>  0(3068) DEBUG: <core> [cfg/cfg.c:176]: cfg_declare(): DEBUG:
> register_cfg_def(): new config group has been registered: 'maxfwd' (num=1,
> size=4)
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): textops
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): tm
>  0(3068) DEBUG: tm [tm.c:756]: mod_init(): TM - (sizeof cell=488,
> sip_msg=1768) initializing...
>  0(3068) DEBUG: tm [callid.c:101]: init_callid(): Call-ID initialization:
> '76bf762544f60619'
>  0(3068) DEBUG: tm [lock.c:74]: lock_initialize(): DEBUG: lock_initialize:
> lock initialization started
>  0(3068) DEBUG: tm [timer.c:199]: tm_init_timers(): tm: tm_init_timers:
> fr=480 fr_inv=1920 wait=80 delete=4 t1=500 t2=4000 max_inv_lifetime=2880
> max_noninv_lifetime=512
>  0(3068) DEBUG: <core> [cfg/cfg.c:176]: cfg_declare(): DEBUG:
> register_cfg_def(): new config group has been registered: 'tm' (num=36,
> size=168)
>  0(3068) DEBUG: <core> [md5utils.c:67]: MD5StringArray(): MD5 calculated:
> eabd4dc455c32eca91da2be9405373ce
>  0(3068) DEBUG: <core> [md5utils.c:67]: MD5StringArray(): MD5 calculated:
> 176231eb72a239b3e7f931a1ef6c4100
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): rr
>  0(3068) DEBUG: <core> [sr_module.c:678]: find_mod_export_record():
> find_export_record: <bind_ob> not found
>  0(3068) INFO: rr [../outbound/api.h:54]: ob_load_api(): Failed to import
> bind_ob
>  0(3068) INFO: rr [rr_mod.c:174]: mod_init(): outbound module not available
>  0(3068) DEBUG: <core> [sr_module.c:942]: init_mod(): presence
>  0(3068) DEBUG: presence [presence.c:274]: mod_init():
> db_url=mongodb://localhost/kamailio/28/0x7fe6fee55608
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <bind_sl> in module sl
> [/usr/local/lib64/kamailio/modules/sl.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <load_tm> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <t_newtran> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <t_relay_to_tcp> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <t_relay_to_udp> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <t_relay> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <t_forward_nonack> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <t_release> in module tm
> [/usr/local/lib64/kamailio/modules/tm.so]
>  0(3068) DEBUG: <core> [sr_module.c:672]: find_mod_export_record():
> find_export_record: found <db_bind_api> in module db_mongodb
> [/usr/local/lib64/kamailio/modules/db_mongodb.so]
>  0(3068) DEBUG: <core> [db.c:205]: db_bind_mod(): using db bind api for
> db_mongodb
>  0(3068) DEBUG: <core> [db.c:310]: db_do_init2(): connection
> 0x7fe6fee72190 not found in pool
>  0(3068) DEBUG: db_mongodb [mongodb_connection.c:55]:
> db_mongodb_new_connection(): connection open to:
> mongodb://localhost/kamailio
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:851]: db_mongodb_query():
> query to collection [version]
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:885]: db_mongodb_query():
> query filter: { "table_name" : "presentity" }
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:904]: db_mongodb_query():
> columns filter: { "table_version" : 1 }
>  0(3068) DEBUG: <core> [db_res.c:116]: db_new_result(): allocate 56 bytes
> for result set at 0x7fe6fee72338
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:349]:
> db_mongodb_get_columns(): 1 columns returned from the query
>  0(3068) DEBUG: <core> [db_res.c:154]: db_allocate_columns(): allocate 8
> bytes for result names at 0x7fe6fee72410
>  0(3068) DEBUG: <core> [db_res.c:165]: db_allocate_columns(): allocate 4
> bytes for result types at 0x7fe6fee72450
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:377]:
> db_mongodb_get_columns(): Found a field[0] named: table_version
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:396]:
> db_mongodb_get_columns(): allocate 16 bytes for RES_NAMES[0] at
> 0x7fe6fee72490
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:416]:
> db_mongodb_get_columns(): use DB1_DOUBLE result type
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:460]:
> db_mongodb_get_columns(): RES_NAMES(0x7fe6fee72490)[0]=[table_version] (1)
>  0(3068) DEBUG: <core> [db_res.c:184]: db_allocate_rows(): allocate 16000
> bytes for rows at 0x7fe6fee724d8
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:671]:
> db_mongodb_convert_result(): selected document: { "_id" : { "$oid" :
> "55d2fc84b04c015195aee4b2" }, "table_version" : 4 }
>  0(3068) DEBUG: <core> [db_row.c:117]: db_allocate_row(): allocate 32
> bytes for row values at 0x7fe6fee76390
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:522]:
> db_mongodb_convert_bson(): looking for field[0] named: table_version
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:610]:
> db_mongodb_convert_bson(): RES_NAMES(0x7fe6fee72490)[0]=[table_version] (1)
>  0(3068) DEBUG: db_mongodb [mongodb_dbase.c:682]:
> db_mongodb_convert_result(): retrieved number of rows: 1
>  0(3068) ERROR: <core> [db.c:414]: db_table_version(): invalid type (2) or
> nul (0) version columns for presentity
>  0(3068) DEBUG: <core> [db_res.c:79]: db_free_columns(): freeing 1 columns
>  0(3068) DEBUG: <core> [db_res.c:83]: db_free_columns(): freeing
> RES_NAMES[0] at 0x7fe6fee72490
>  0(3068) DEBUG: <core> [db_res.c:92]: db_free_columns(): freeing result
> names at 0x7fe6fee72410
>  0(3068) DEBUG: <core> [db_res.c:97]: db_free_columns(): freeing result
> types at 0x7fe6fee72450
>  0(3068) DEBUG: <core> [db_res.c:52]: db_free_rows(): freeing 1 rows
>  0(3068) DEBUG: <core> [db_row.c:95]: db_free_row(): freeing row values at
> 0x7fe6fee76390
>  0(3068) DEBUG: <core> [db_res.c:60]: db_free_rows(): freeing rows at
> 0x7fe6fee724d8
>  0(3068) DEBUG: <core> [db_res.c:134]: db_free_result(): freeing result
> set at 0x7fe6fee72338
>  0(3068) ERROR: <core> [db.c:432]: db_check_table_version(): querying
> version for table presentity
> * 0(3068) ERROR: presence [presence.c:358]: mod_init(): error during table
> version check*
> * 0(3068) ERROR: <core> [sr_module.c:945]: init_mod(): Error while
> initializing module presence
> (/usr/local/lib64/kamailio/modules/presence.so)*
> ERROR: error while initializing modules
>  0(3068) DEBUG: <core> [db_pool.c:100]: pool_remove(): removing connection
> from the pool
>  0(3068) DEBUG: tm [t_funcs.c:86]: tm_shutdown(): DEBUG: tm_shutdown :
> start
>  0(3068) DEBUG: tm [t_funcs.c:89]: tm_shutdown(): DEBUG: tm_shutdown :
> emptying hash table
>  0(3068) DEBUG: tm [t_funcs.c:91]: tm_shutdown(): DEBUG: tm_shutdown :
> removing semaphores
>  0(3068) DEBUG: tm [t_funcs.c:93]: tm_shutdown(): DEBUG: tm_shutdown :
> destroying tmcb lists
>  0(3068) DEBUG: tm [t_funcs.c:96]: tm_shutdown(): DEBUG: tm_shutdown : done
>  0(3068) DEBUG: db_text [dbtext.c:106]: destroy(): destroy ...
>  0(3068) INFO: <core> [sctp_core.c:53]: sctp_core_destroy(): SCTP API not
> initialized
>  0(3068) DEBUG: <core> [mem/shm_mem.c:232]: shm_mem_destroy():
> shm_mem_destroy
>  0(3068) DEBUG: <core> [mem/shm_mem.c:235]: shm_mem_destroy(): destroying
> the shared memory lock
>
>
> Best regards
>
>
> --
> Daniel-Constantin Mierlahttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
> Book: SIP Routing With Kamailio - http://www.asipto.com
>
>


-- 
Cumprimentos
José Seabra
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20150818/d21339ff/attachment.html>


More information about the sr-users mailing list