[Serusers] How SER communicate to other SIP server

roayu roayu at ctisys.net
Tue Jul 3 10:07:20 CEST 2007


Hi, Olaf!

Oops, I accidentally deleted the semi-colon(;) at the closing of the IF
statement. I know that the SIP messages are routed according to the URI and
that's the reason why I need to change the URI (of the TO header). But I
just failed to change the uri at the TO header. Therefore, it couldn't route
to another SIP server. 

Current FROM/TO uri that I get,
	From 	: <sip:12345 at mySER.net:5060>
 	To	: <sip:88888888 at anotherSIP.net:5060>

The actual FROM/TO uri that I WANT will be,
	From 	: <sip:12345 at mySER.net:5060>
 	To	: <sip:88888888 at anotherSIP.net:5060>

I've checked on the regular expression, and it's fine with that. Am I using
the correct function - rewritehostport()?


Thanks.

Best regards,
Roa Yu


-----Original Message-----
From: Olaf Bergmann [mailto:Olaf.Bergmann at freenet-ag.de] 
Sent: Tuesday, July 03, 2007 3:07 PM
To: roayu
Cc: serusers at lists.iptel.org
Subject: Re: [Serusers] How SER communicate to other SIP server

roayu wrote:
> Hi, Olaf!
> 
> I've used 'rewritehostport("sipB.net:5060")' under the INVITE message
> handler.
> 
> The following are my configuration, pls correct me if I'm wrong.
> 	if(uri =~ "^sip:[0-9{8}@.*") {
> 		if(!proxy_authorise("","subscriber")){
> 			proxy_challenge("","0");
> 			break;
> 
> 		}else if(!check_from()) {
> 			sl_send_reply("403","Use From ID");
> 			break;
> 		};
> 		
> 		consume_credentials();
> 		rewritehostport("sipB.net:5060");
> 		setflag(1);
> 		route(1);
> 		break;
> 	}
> 
> When I dialed 8-digit of the number, it will pass to another SIP
> server(sipB.net). But on the TO header, I still found that the TO address
> still under the sipSER.net. You may refer to the following.
> 	From 	: <sip:12345 at sipSER.net:5060>
> 	To	: <sip:88888888 at sipSER.net:5060>
> Does that means that it's still looping inside sipSER.net instead of
routing
> to sipB.net? If yes, how do I change the TO header or make it route to
> sipB.net?

No, SIP messages are routed according to their request URI. I am not
sure if the regular expression in your if-clause was corrupted by
the E-Mail service (if not, at least a closing bracket is missing).
I suggest, you start with a simplified version of this regexp to be
sure that the then-part is evaluated at all. Use xlog() to add a
couple of debug messages to find out which routing blocks are evaluated.

Regards,
Olaf



More information about the sr-users mailing list