Since ser knows both inside and outside addresses, there should be no special check on the IP address if record route is used. Just have to make sure that ser puts the right address on outgoing packets depending on the outgoing interface.
SDP address needs to be changed if a call is forwarded to an outside IP. For intra-office call, nothing needs to be changed, no uac-nat-test(). Presumably RTP packets can be relayed by rtpproxy with no or minimum change.
Since ser can only handle one branch of forking, it would be a real problem on how to handle a call forking to both inside and outside.
This whole setup would be perfect to run on a cheap SBC (single board computer) with very small RAM and flash message, e.g. Linksys wrt54G and rv042. Both are based on linux and have open source code available.
Richard
-----Original Message----- From: Jiang zhou [mailto:zjiang@sipod.com] Sent: Thursday, September 02, 2004 6:06 PM To: Richard; serusers@lists.iptel.org Subject: Re: [Serusers] User ser+nathelper+rtppoxy as outbound server
I think the normal Nathelper+rtpproxy will have a bug for public ua call a nated ua. ua1(pblic ip) ------->ser(nathelper+rtpproxy)----->nat----->ua2
ua2 can call ua1. The ua2's invite sdp can be modified by nathelper and rewrite the ip/port to rtpproxy's ip/port . So ua1 send voice to rtpproxy to ua1
Ua1 can't call ua2. Ua1's Invite message will fail in nat_uac_test("3") test. So ser dos't setflag for this invite and don't use the rtpproxy. Ua2's reply can't be modified by nathelper. So Ua1 find the reply with a private ip. So ua2 can't send voice to ua1, only ua1 send voice to ua2.
Is it right?
If use a ser+rtppoxy as a outbound server, I can resovle this issue.
----- Original Message ----- From: "Richard" richard@o-matrix.org To: "'Zhou Jiang'" zjiang@sipod.com; serusers@lists.iptel.org Sent: Thursday, September 02, 2004 2:52 PM Subject: RE: [Serusers] User ser+nathelper+rtppoxy as outbound server
Hi,
I am looking at the same type of setup too.
A local ser runs on the NAT firewall. A UA behind NAT registers with the local ser. When a SIP message is sent out to outside world, local ser does record route. So it is always in the path and there is not need to change SIP contact field. The only thing which needs mangle is the SDP if calling the outside world. It should be changed to the local ser's outside ip address. Rtpproxy, (if it is capable of doing this), can forward the
traffic
between inside and outside.
The greatest benefit I can see is that traffic for an intra-office call never has to go out. It would be easy to maintain a good quality. Also the phone system is still up even if the outside connection is down. Other benefits include a distributed registration database.
Any comment?
Richard
-----Original Message----- From: serusers-bounces@iptel.org [mailto:serusers-bounces@lists.iptel.org] On Behalf Of Zhou Jiang Sent: Wednesday, September 01, 2004 5:19 PM To: serusers@lists.iptel.org Subject: [Serusers] User ser+nathelper+rtppoxy as outbound server
I want to cofig ser as a outbound server to resolve all nat problem. The follow picture is the system architecture.
uac--nat-->outboud1(ser1+nathelper+rtpproxy)------------->ser(main) uac--nat-->outboud2(ser2+nathelper+rtpproxy)-------------| uac--nat-->outboud3(ser3+nathelper+rtpproxy)-------------|
Can someone know if ser can rewrite the uac's contact as itself ip address and forward to main ser? Nathelper can rewrite sdp ip/port to it own ip/port. But it only rewrite contac with nat's ip and port.
Jiangzhou