Just be careful with selects as they are a construct imported from SER as part of the
sip-router integration of 2010 (what a fascinating time to have been alive!)
Like some other SER constructs, they are not widely used and so I am not sure what the
maintenance and support commitment to them is on a go-forward basis. I’m not saying it’s
not there or that nobody uses selects—others can clarify—but it’s notable that they are
not in the core docs (as far as I know). For trivial operations which do not require the
more extensive and nuanced flexibility of selects, you might consider a more
“Kamailio-native” way: transformations.
That is to say:
$(ct{uri.host})
— Alex
—
Sent from mobile, with due apologies for brevity and errors.
On Nov 18, 2019, at 8:27 AM, Michael Iedema
<michael(a)kapsulate.com> wrote:
Hi Sergiu,
@contact.uri.hostport might be what you are
looking for.
For more:
http://www.kamailio.org/wiki/cookbooks/devel/selects
That worked perfectly, thanks!
For the other beginners out there, here are two snippets for posterity:
== TO LOG ==
xlog("L_INFO", "contact.uri.host = $sel((a)contact.uri.xn--host)\n-b46c);
xlog("L_INFO", "contact.uri.port = $sel((a)contact.uri.xn--port)\n-b46c);
== TO COMPARE ==
#!define PORT_SERVICE_A 5062
if ( @contact.uri.port == PORT_SERVICE_A ) {
xlog(“L_INFO", “Service A: sent $rm\n");
}
Regards,
-Michael
> On Nov 12, 2019, at 14:50, Sergiu Pojoga <pojogas(a)gmail.com> wrote:
>
> Hi Michael,
>
@contact.uri.hostport might be what you are
looking for.
For more:
http://www.kamailio.org/wiki/cookbooks/devel/selects >
> Cheers.
> --Sergiu
>
> On Tue, Nov 12, 2019 at 8:32 AM Michael Iedema <michael(a)kapsulate.com> wrote:
> Hello everyone,
>
> I have a potentially silly beginners question: how can I parse the contact port field
and act on it in my routing logic?
>
>
> I know that the $ct variable contains the entire contact header and I can print it in
an xlog() call. However, I’d like to do something like the following in my routing logic:
>
>
> . . . SIP CONTENT
>
> Contact: <sip:someaccount@192.168.86.104:5062>;expires=1800
>
>
> . . . CONFIG LOGIC
>
> #!define PORT_SERVICE1 5061
> #!define PORT_SERVICE2 5062
>
> route {
> if ( src_port == PORT_SERVICE1 ) {
> xlog(“L_INFO”, “Received $rm from SERVICE1\n”);
> } else if ( src_port == PORT_SERVICE2 ) {
> xlog(“L_INFO”, “Received $rm from SERVICE2\n”);
> }
> }
>
>
> I realize that src_port is not the correct value to compare against. I want to
compare against the originating contact’s port value.
>
> How can I extract the port field from $ct?
>
>
> Many thanks in advance and apologies for the beginners question. I’ve googled for
what I think I’m trying to do without any real results on functions or tokenizers, etc.
I’m using Kamailio 5.3.0.
>
> Regards,
> -Michael
>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users