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. https://www.kamailio.org/wiki/cookbooks/5.3.x/transformations#urihost 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 <[email protected]> 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(@contact.uri.host)\n”); > xlog("L_INFO", "contact.uri.port = $sel(@contact.uri.port)\n”); > > > == 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 <[email protected]> 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 <[email protected]> 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:[email protected]: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 >> [email protected] >> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >> _______________________________________________ >> Kamailio (SER) - Users Mailing List >> [email protected] >> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users > > > _______________________________________________ > Kamailio (SER) - Users Mailing List > [email protected] > https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________ Kamailio (SER) - Users Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
