Hello,
here is the situation :
one openSER statefull and one openSER registrar on different ports; both db_mode are DB_ONLY.
when a UAC A rings UAC B, everything's fine until openSER statefull receives ACK message :
as a matter of fact, the domain name was changed before receiving ACK message, therefore, openSER needs to do
/lookup("location");
/Unfortunately, openSER could not find the UAC A in database.
i had a look to the mysql query made while ACK is treated and actually the username part of address_of_record disappeared :
/select ... from location where username='';
/It seems that when /print_where/ (modules/mysql/dbase.c) writes "where" part in mysql query, this function calls /val2str/ (modules/mysql/val.c) which will translate the value to a string. Until this call, everything's just fine, but when /val2str /calls _/mysql_real_escape_string/_, this last function returns an empty string.
Any clue? Has anyone already face this problem?
Thanks for your help,
Hi,
you do not need to do lookup for ACK since the ACK is a within the dialog method and it must be routed based on Route hdr (via loose_route() - see the default cfg coming with OpenSER).
please keep the topic on users mailing list only - is not a devel issue.
regards, bogdan
Jean-Michel Foucher wrote:
Hello,
here is the situation :
one openSER statefull and one openSER registrar on different ports; both db_mode are DB_ONLY.
when a UAC A rings UAC B, everything's fine until openSER statefull receives ACK message :
as a matter of fact, the domain name was changed before receiving ACK message, therefore, openSER needs to do
/lookup("location");
/Unfortunately, openSER could not find the UAC A in database.
i had a look to the mysql query made while ACK is treated and actually the username part of address_of_record disappeared :
/select ... from location where username='';
/It seems that when /print_where/ (modules/mysql/dbase.c) writes "where" part in mysql query, this function calls /val2str/ (modules/mysql/val.c) which will translate the value to a string. Until this call, everything's just fine, but when /val2str /calls _/mysql_real_escape_string/_, this last function returns an empty string.
Any clue? Has anyone already face this problem?
Thanks for your help,
Bogdan-Andrei Iancu wrote:
Hi,
you do not need to do lookup for ACK since the ACK is a within the dialog method and it must be routed based on Route hdr (via loose_route() - see the default cfg coming with OpenSER).
Well, because of a SIP Proxy that is not rfc-compliant on my platform, unfortunately, i do need to do a lookup for ACK and BYE messages.
please keep the topic on users mailing list only - is not a devel issue.
Sorry about that.
Here's a solution :
revert_uri(); if (!lookup("location")) { sl_send_reply("404","User not found"); };
This way, new_uri will be empty and lookup will use ruri.
Thank you for your help, regards,