[OpenSIPS-Users] drouting module - dr_gateways table attrs field

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Jan 22 16:57:36 CET 2009


Hi Ibrahim,

I found a bug related to what you described - I made a fix on SVN - 
please update and test again.

Thanks and regards,
Bogdan

ibrahim tunali wrote:
> Hi Bogdan,
>
> I have already set attr avp like you sent. The problem occured when
> fill the attr field. If I leave blank attr field in DB it starts but
> when i set something like "gw1" it crashed.
>
> My db row;
>
> +------+------+-------------------+-------+------------+-------+-------------+
> | gwid | type | address           | strip | pri_prefix | attrs | description |
> +------+------+-------------------+-------+------------+-------+-------------+
> |    1 |    1 | XX.XX.XXX.XX:XXXX |     0 | NULL       | gw1   | main GW     |
> +------+------+-------------------+-------+------------+-------+-------------+
>
> Crash dump;
>
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: 6
> columns returned from the query
> /usr/sbin/opensips[10261]: DBG:core:db_allocate_columns: allocate 48
> bytes for result names at 0x76a570
> /usr/sbin/opensips[10261]: DBG:core:db_allocate_columns: allocate 24
> bytes for result types at 0x76a5b0
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: allocate
> 16 bytes for RES_NAMES[0] at 0x76a5d8
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns:
> RES_NAMES(0x76a5d8)[0]=[gwid]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: use
> DB_INT result type
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: allocate
> 16 bytes for RES_NAMES[1] at 0x76a5f8
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns:
> RES_NAMES(0x76a5f8)[1]=[address]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: use
> DB_STRING result type
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: allocate
> 16 bytes for RES_NAMES[2] at 0x76a618
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns:
> RES_NAMES(0x76a618)[2]=[strip]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: use
> DB_INT result type
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: allocate
> 16 bytes for RES_NAMES[3] at 0x76a638
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns:
> RES_NAMES(0x76a638)[3]=[pri_prefix]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: use
> DB_STRING result type
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: allocate
> 16 bytes for RES_NAMES[4] at 0x76a658
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns:
> RES_NAMES(0x76a658)[4]=[type]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: use
> DB_INT result type
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: allocate
> 16 bytes for RES_NAMES[5] at 0x76a678
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns:
> RES_NAMES(0x76a678)[5]=[attrs]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_get_columns: use
> DB_STRING result type
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_fetch_result:
> converting row 0 of 1 count 1
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_convert_row: allocate
> 192 bytes for row values at 0x76a6b8
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_str2val: converting INT [1]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_str2val: converting
> STRING [69.XX.XXX.55:XXXX]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_str2val: converting INT [0]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_str2val: converting INT [1]
> /usr/sbin/opensips[10261]: DBG:db_mysql:db_mysql_str2val: converting
> STRING [gw1]
> /usr/sbin/opensips[10261]: DBG:drouting:dr_load_routing_info: 1
> records found in dr_gateways
> /usr/sbin/opensips[10261]: DBG:drouting:add_dst: new gw ip addr
> [69.XX.XXX.55:XXXX]
> /usr/sbin/opensips[10249]: INFO:core:handle_sigs: child process 10261
> exited by a signal 11
> /usr/sbin/opensips[10267]: DBG:core:init_mod_child: type=CHILD,
> rank=4, module=registrar
> /usr/sbin/opensips[10249]: INFO:core:handle_sigs: core was not generated
> /usr/sbin/opensips[10267]: DBG:core:init_mod_child: type=CHILD,
> rank=4, module=group
> /usr/sbin/opensips[10249]: INFO:core:handle_sigs: terminating due to SIGCHLD
> /usr/sbin/opensips[10267]: INFO:core:sig_usr: signal 15 received
> /usr/sbin/opensips[10267]: Memory status (pkg):
> /usr/sbin/opensips[10273]: INFO:core:sig_usr: signal 15 received
> /usr/sbin/opensips[10273]: Memory status (pkg):
> /usr/sbin/opensips[10267]: fm_status (0x72bbe0):
>
> Regards,
>
> Ibrahim TUNALI
>
>
> On Thu, Jan 22, 2009 at 17:20, Bogdan-Andrei Iancu
> <bogdan at voice-system.ro> wrote:
>   
>> Hi Ibrahim,
>>
>> have you set the attr avp? Something like:
>>   modparam("drouting", "attrs_avp", '$avp(s:dr_attrs)')
>>
>> Then after do_routing() or use_next_gw(), do :
>>  xlog("-----gw attr is $avp(s:dr_attrs)\n");
>>
>> the value of the attr is whatever you want - the module does not interpret it - it is just reading it from DB and pass it to the AVP when you use the GW. It is your decision what to put there and how to use the value.
>>
>>
>> Regards,
>> Bogdan
>>
>> ibrahim tunali wrote:
>>     
>>> Hello,
>>>
>>> I'm playing with the new module drouting on svn trunk and i need to
>>> get "which gateway is used on last request". I might be able to get it
>>> with "attrs_avp" and "attrs" field on dr_gateways table, i guess. I
>>> try some values to attrs but opensips crashed.
>>>
>>> Could you give an example to use attrs_avp and what is the value
>>> format of "attrs" fields.
>>>
>>> Regards,
>>>
>>> Ibrahim TUNALI
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>       
>
>   




More information about the Users mailing list