[SR-Users] Extracting P-Asserted-Identity value

Grant Bagdasarian gb at cm.nl
Mon Apr 11 12:35:21 CEST 2016


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 at domain.com>,tel:+3101234567
Retrieved CallerId (+3101234567) from P-Asserted-Identity header

Regards,

Grant

From: Daniel-Constantin Mierla [mailto:miconda at gmail.com]
Sent: Monday, April 11, 2016 11:25 AM
To: Grant Bagdasarian <gb at cm.nl>; Kamailio (SER) - Users Mailing List <sr-users at 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})<tel:%28%5C+%5Cd%7b1,20%7d%29> and then use a pseudo-variable to get the first group?
https://regex101.com/r/dN7bY8/1

P-Asserted-Identity: "Cullen Jennings" <sip:fluffy at cisco.com><sip:fluffy at cisco.com>
P-Asserted-Identity: tel:+14085264000

Regards,

Grant

From: sr-users [mailto:sr-users-bounces at 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 at lists.sip-router.org><mailto:sr-users at 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,
Daniel
On 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 at 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 at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>) <sr-users at lists.sip-router.org><mailto:sr-users at 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 at 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 list

sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>

http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




--

Daniel-Constantin Mierla

http://www.asipto.com

http://twitter.com/#!/miconda<http://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda

Kamailio 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20160411/918c1fb8/attachment.html>


More information about the sr-users mailing list