Hello,
In my script I've had to test for the user=phone parameter in URIs. I thought uri_param() from siputils would be handy for this operation on the RURI, so I did:
if ( !uri_param("user","phone") ) { add_uri_param("user=phone"); }
Unfortunately this wouldn't work (uri_param returns -1), and I end up with double user=phone params in the RURI.
I was able to work around this by changing the test to:
if ( !($(ru{uri.uparam}) == "phone") ) { add_uri_param("user=phone"); }
But I wanted to ask if this is intentional or if I should file a bug or something. Thanks. George
Hello,
On 13.10.17 17:25, George Diamantopoulos wrote:
Hello,
In my script I've had to test for the user=phone parameter in URIs. I thought uri_param() from siputils would be handy for this operation on the RURI, so I did:
if ( !uri_param("user","phone") ) { add_uri_param("user=phone"); }
Unfortunately this wouldn't work (uri_param returns -1), and I end up with double user=phone params in the RURI.
I was able to work around this by changing the test to:
if ( !($(ru{uri.uparam}) == "phone") ) { add_uri_param("user=phone"); }
But I wanted to ask if this is intentional or if I should file a bug or something. Thanks.
according to the docs, uri_param() should work for this case. Can you paste the first line of the request that fails with uri_param() function so I can look at the code and see if there is any issue there?
Cheers, Daniel
Hello Daniel!
Thanks for the reply. Here's the first line of a request where uri_param() fails to detect user=phone is already present. IPs, phone numbers and domains have been censored, but most properties (number of parts, length etc) have been preserved where possible:
INVITE sip:+306974000000@2.2.2.2;user=phone SIP/2.0
The example code in my original message results in the following (the script also replaces the domain part and adds the npdi username parameter):
INVITE sip:+306974000000;npdi@my.domain.tld;user=phone;user=phone SIP/2.0
BR, George
On 23 October 2017 at 10:22, Daniel-Constantin Mierla miconda@gmail.com wrote:
Hello,
On 13.10.17 17:25, George Diamantopoulos wrote:
Hello,
In my script I've had to test for the user=phone parameter in URIs. I thought uri_param() from siputils would be handy for this operation on the RURI, so I did:
if ( !uri_param("user","phone") ) { add_uri_param("user=phone"); }
Unfortunately this wouldn't work (uri_param returns -1), and I end up with double user=phone params in the RURI.
I was able to work around this by changing the test to:
if ( !($(ru{uri.uparam}) == "phone") ) { add_uri_param("user=phone"); }
But I wanted to ask if this is intentional or if I should file a bug or something. Thanks.
according to the docs, uri_param() should work for this case. Can you paste the first line of the request that fails with uri_param() function so I can look at the code and see if there is any issue there?
Cheers, Daniel
-- Daniel-Constantin Mierla www.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio Advanced Training, Nov 13-15, 2017, in Berlin - www.asipto.com Kamailio World Conference - www.kamailioworld.com
George, Daniel: please have a look here: https://github.com/kamailio/kamailio/issues/953 Could it be an answer to the George's issue? I didn't check this deeper but maybe adding the npdi parameter is changing the parser behavior as pointed on this issue, would have to see the config file to confirm it.
BR, Andrew
George Diamantopoulos wrote:
Hello Daniel!
Thanks for the reply. Here's the first line of a request where uri_param() fails to detect user=phone is already present. IPs, phone numbers and domains have been censored, but most properties (number of parts, length etc) have been preserved where possible:
INVITE sip:+306974000000@2.2.2.2 mailto:sip%3A%2B306974000000@2.2.2.2;user=phone SIP/2.0
The example code in my original message results in the following (the script also replaces the domain part and adds the npdi username parameter):
INVITE sip:+306974000000;npdi@my.domain.tld mailto:npdi@my.domain.tld;user=phone;user=phone SIP/2.0
BR, George