Set fixed rport in FreeSWITCH/Sofia subscribe message

The problem is that I know next to nothing about SIP, or FreeSWITCH, yet have been tasked with figuring this out.

The setup: The FreeSWITCH client sends a subscribe to a remote server to receive presence updates. The client is behind a fairly restrictive firewall and NAT.

The server replies with the normal unauthorized, and Sofia replies, and we receive the SIP/2.0 200 OK message, its VIA header contains an rport for a port number we don't have open or forwarding to our FreeSWITCH installation.

We never receive the notify that ought to follow the 200 OK.

Subsequent subscribes returns different rport designations.

Is there a way to configure FreeSWITCH/Sofia to always use a specific port for the rport parameter?

Edit: We never managed to solve it, but the remote service did solve it by adding the correct routes to their firewall.

Answers


Is the far end server setup to allow NOTIFY to be sent to your client? If you receive the 200 OK response to the initial SUBSCRIBE then that sets up the SIP dialog I believe (the dialog is a end-point to end-point association).

BTW you set up FS to be the presence watcher client? Thats cool since I tried doing that but the documentation gave me a headache and moved on to other things.

Since you sent the initial subscribe NAT shouldn't be a problem right? since rport should have the port to use. I would always use port 5060, have your FW people let udp port 5060 port in and out freely, use Fail2ban to filter your traffic.

But have no idea how FS works, and NAT firewalls are the greatest evil :-). Sorry and best of luck.


Need Your Help

What is the best way to detect Internet Explorer 6 using JavaScript?

javascript jquery

What is the best way to detect Internet Explorer 6 using JavaScript?

How to Consume an RPC-Style Web Service with a WCF Service Reference?

c# wcf soap rpc soap-rpc-encoded

I am writing a C# client that calls a web service to authenticate clients. I used add service reference to add the wsdl file to my project and the proxy class generated successfully.