maddr patch (was Re: [Serdev] Re: [Sems] Stale CSeq Value with BYE

Ulrich Holeschak ulrich at holeschak.de
Mon May 3 20:57:18 UTC 2004


Hello,
thanks for the hint with subst_uri, i didn't know that this command is
existing.
But i had to modify your regular expression a bit, i think you forgot that
the port is written behind the host name as in this example:

sip:494755 at router.local:14039;maddr=192.168.42.242;transport=tcp

You expression won't match because you don't match the port (:14039) part.

Now i use:

        if
(subst_uri("/(sip:)([a-zA-Z0-9_.!~*'()%&=+$,;?-]+@)?([a-zA-Z0-9.-]+)(:[0-9]+
;.*)(maddr=)([0-9.]{7,15})/\1\2\6\4\5\6/"))
        {
                log("destination replaced with maddr\n");
                route(1);
                break;
        }

this works well ...

This creates:
sip:494755 at 192.168.42.242:14039;maddr=192.168.42.242;transport=tcp
and leaves the port untouched.

In my expression before i have removed the 494755@, i am not sure if this is
a problem.

Thanks,

Ulrich

----- Original Message ----- 
From: "Jiri Kuthan" <jiri at iptel.org>
To: "Ulrich Holeschak" <ulrich at holeschak.de>; "Raphael Coeffic"
<rco at iptel.org>
Cc: <serdev at lists.iptel.org>
Sent: Monday, May 03, 2004 12:12 AM
Subject: maddr patch (was Re: [Serdev] Re: [Sems] Stale CSeq Value with BYE


> At 10:29 PM 5/2/2004, Ulrich Holeschak wrote:
> >Hello,
> >thanks for the modification, i tried the same thing myself, its working
now.
> >
> >But i had to modify my routing script again to let also the BYE get
routed
> >correctly (with maddr present), see here:
> >
> >route{
> >
> >...
> >        # Don't accept messages that are too long. Don't change this
> >setting.
> >        if ( msg:len > max_len ) {
> >                sl_send_reply("513", "Message too big");
> >                break;
> >        };
> >       # for Windows Messenger: if maddres is present route telegranms
there
> >        if(uri=~"sip:.*@.*:[0-9]*;maddr=.*;.*"){
>
>
> FYI: I made my computer's life easier in that I avoided use of per-request
> execs by use of subst_uri, a rough but mostly working (no IPv6, foomaddr
> parameters processed too, etc.)
>
>
subst_uri("/(sip:)([a-zA-Z0-9_.!~*'()%&=+$,;?-]+@)?([a-zA-Z0-9.-]+)(;.*)(mad
dr=)([0-9.]{7,15})/\1\2\6\4\5\6/");
>
> -jiri




More information about the Serdev mailing list