[SR-Users] Parsing Contact Port Field

Michael Iedema michael at kapsulate.com
Tue Nov 12 14:31:16 CET 2019


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 at 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




More information about the sr-users mailing list