Hi Daniel,
I used the regexp sub, and it works!
If anyone is interested, here is the code:
$var(p_asserted_identity) = $(hdr(P-Asserted-Identity)[*]);
xlog("L_INFO", "P-Asserted-Identity: $var(p_asserted_identity) \r\n");
$var(caller_id) = $(var(p_asserted_identity){re.subst,/.*tel:(\+?[[:digit:]]+).*/\1/});
xlog("L_INFO", "Retrieved CallerId ($var(caller_id)) from P-Asserted-Identity header \r\n");
Debug log:
P-Asserted-Identity: "Grant" <sip:grant@domain.com>,tel:+3101234567
Retrieved CallerId (+3101234567) from P-Asserted-Identity header
Regards,
Grant
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com]
Sent: Monday, April 11, 2016 11:25 AM
To: Grant Bagdasarian <gb@cm.nl>; Kamailio (SER) - Users Mailing List <sr-users@lists.sip-router.org>
Subject: Re: [SR-Users] Extracting P-Asserted-Identity value
Hello,
there is a transformation for regexp substitutions, see the transformations cookbook on kamailio.org/wiki.
Also, if you just want everything after 'tel:', then you can use string transformations like substring or select.
Cheers,
Daniel
On 11/04/16 11:13, Grant Bagdasarian wrote:
Hi Daniel,
Yes, you are absolutely right! Thank you for pointing that out!
Is it possible to use regex inside the cfg script and use groups to extract the value?
Quick regex example (needs tweaking): tel:(\+\d{1,20}) and then use a pseudo-variable to get the first group?
https://regex101.com/r/dN7bY8/1
P-Asserted-Identity: "Cullen Jennings" <sip:fluffy@cisco.com>
P-Asserted-Identity: tel:+14085264000
Regards,
Grant
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla
Sent: Monday, April 11, 2016 9:07 AM
To: Kamailio (SER) - Users Mailing List <sr-users@lists.sip-router.org>
Subject: Re: [SR-Users] Extracting P-Asserted-Identity value
Hello,
this should work unless there are parameters with the same name in userpart, or uri part or header body part.
Perhaps the safest mode is to apply first the tobody transformation to extract the part you want then apply the params transformation.
Cheers,
DanielOn 08/04/16 17:41, Grant Bagdasarian wrote:
To answer my own question.
This does parse:
$var(p_asserted_identity) = $(hdr(P-Asserted-Identity)[*]);
$var(caller_id) = $(var(p_asserted_identity){param.value,'tel',:});
But, I’m not sure if this is the correct way to do this. Maybe someone else has a more elegant solution?
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Grant Bagdasarian
Sent: Friday, April 8, 2016 5:38 PM
To: Kamailio (SER) - Users Mailing List (sr-users@lists.sip-router.org) <sr-users@lists.sip-router.org>
Subject: [SR-Users] Extracting P-Asserted-Identity value
Hello,
How do I extract the value of “tel” from multiple P-Asserted-Identity headers?
Example:
P-Asserted-Identity: "Cullen Jennings" <sip:fluffy@cisco.com>
P-Asserted-Identity: tel:+14085264000
What I got so far is:
$var(p_asserted_identity) = $(hdr(P-Asserted-Identity)[*]);
$var(caller_id) = $var(p_asserted_identity){param.value,'tel',':'};
But this does not work. I keep getting parser errors when doing the transformation (2nd line of code example):
I’m not sure how to format the line of code. I tried multiple ways, but none work.
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 47: syntax error
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 47: bad command
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 47: bad command
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 53: '('')' expected (function call)
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 53: bad command: missing ';'?
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 59: '('')' expected (function call)
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 59: bad command: missing ';'?
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3365]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 60-64: bad command
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 65: bad command
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3365]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 400, column 66-68: bad command
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 408, column 6: syntax error
Apr 8 18:35:20 kamailio: : <core> [cfg.y:3368]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 408, column 6:
Regards,
Grant
_______________________________________________SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing listsr-users@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--Daniel-Constantin Mierlahttp://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/micondaKamailio World Conference, Berlin, May 18-20, 2016 - http://www.kamailioworld.com
--
Daniel-Constantin Mierla
http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, Berlin, May 18-20, 2016 - http://www.kamailioworld.com