SaRP is a SIP and RTP proxy designed specifically to handle the problems inherit in NAT and SIP.
The current implementation is written in Perl but a cross-platform C++ version is being worked on.
- Allow hosts behind a NATing firewall/router to make and receive SIP calls. (done)
- Allow more than on phone/computer/user to receive SIP calls on one real world IP. (done)
- Be compatible with as many SIP implementations as possible. (work in progress)
- Hide any internal IP addresses from the outside world. (done)
- Avoid as much as possible the interia of a SIP call to allow as direct as possible communication between the UAs.
- Completely define and control all ports used so as to allow easy configuration of firewalls, etc. (done)
- Security! (i.e. by default drop any packets that aren’t recognised instead of replying and leaking information.) (will never be finished 🙁 )
- Be cross-platform to allow Windows users access to a simple SIP proxy. (functional but no fancy gui or config)
Okay, this is the simple plan for starters.
                   External
                   networks         Preferably has
                      |          .- Dynamic DNS entry
              .--     |         /   for real world IP
              |   NAT router <-'
  Optional -->|       |
              |       | <---- DNAT of ports to proxy
              `--     |
                      |      --.
                SIP/RTP proxy  |
                   /  |  \     |    Must have ability
                  /   |   \    |<-- to talk directly
                 UA1 UA2 UAn   |    without NAT or firewall
                             --'
UA  = User Agent
SIP = control channel
RTP = data channel
Required configuration for SIP proxy:
* DNS name / real world IP for external traffic
* Specific list of ports that it will listen/send on
* address of Internal network
 
					 
			 
					