Oops. No, it’s not a bug, it’s just that the URI isn’t the only value present
in $ct.
Try $(ct{nameaddr.uri}{uri.host})
—
Sent from mobile, with due apologies for brevity and errors.
> On Nov 18, 2019, at 9:44 AM, Michael Iedema <[email protected]> wrote:
>
> Thanks for the pointers on recency and deprecation.
>
> I converted my logic to use the transforms and now see an error when
> evaluating the URI:
>
> ```
> 0(7) ERROR: pv [pv_trans.c:1312]: tr_eval_uri(): invalid uri ["Test Test"
> <sip:[email protected]:63258;ob>]
> ```
>
>
> FWIW this was being handled correctly by the selects framework. The log line
> which triggered this action and error is:
>
> ```
> xlog("L_INFO", "contact uri.host = $(ct{uri.host})\n”);
> ```
>
>
> I can provide more debug info if this looks like a valid bug.
>
>
>
>
>> On Nov 18, 2019, at 15:12, Alex Balashov <[email protected]> wrote:
>>
>> Ah, okay. Sorry, I didn’t know!
>>
>> And yes, the select docs are in the wiki, but they are not linked from
>> /w/documentation, right? I took that to insinuate deprecation.
>>
>> —
>> Sent from mobile, with due apologies for brevity and errors.
>>
>>>> On Nov 18, 2019, at 9:07 AM, Henning Westerholt <[email protected]> wrote:
>>>
>>>
>>> Hello Alex,
>>>
>>> this was one of the topics we discussed (in general terms) last week in our
>>> development meeting.
>>>
>>> No decision to deprecate the select framework has been done so far. You are
>>> right in noticing that the pseudo-variables are more used and also
>>> frequently extended, the select framework does not get extended since some
>>> time. But bugs that are reported in this area should be fixed as well.
>>>
>>> Before deprecating the selects, a review needs to be done if the
>>> functionality can be completely replaced by PVs/transformations, some
>>> migration guide would be probably also necessary.
>>>
>>> You are somehow wrong about the documentation, it is also in the wiki, but
>>> documented without much explanations. 😉
>>>
>>> https://www.kamailio.org/wiki/cookbooks/devel/selects
>>>
>>> Cheers,
>>>
>>> Henning
>>>
>>> --
>>> Henning Westerholt – https://skalatan.de/blog/
>>> Kamailio services – https://gilawa.com
>>> Kamailio Merchandising – https://skalatan.de/merchandising
>>>
>>> From: sr-users <[email protected]> On Behalf Of Alex
>>> Balashov
>>> Sent: Monday, November 18, 2019 2:37 PM
>>> To: Kamailio (SER) - Users Mailing List <[email protected]>
>>> Subject: Re: [SR-Users] Parsing Contact Port Field
>>>
>>> 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
>
>
> _______________________________________________
> 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