John Breen wrote:
SIP wrote:
Your biggest issue, bar none, is using the loopback address for anything externally-facing. 127.0.0.1 is called a loopback address for a reason -- it never leaves the host itself. Just how do you expect the SIP phones to be able to contact a 127.0.0.1 address when that address is, in essence, themselves?
There's something inherently flawed in your design.
Let's back up and explain, in detail, what it is exactly you're trying to do, and why you feel the 127.0.0.1 address should be part of this equation? Perhaps we can suggest something if we know what you're trying to do.
There's a very simple reason. Asterisk and SER are on the same machine. So the traffic from SER to asterisk doesn't need to leave the box. This is why I'm using the loopback interface - there's no need to use the real world one.
127.0.0.1 is a special address. If MY machine, for instance, tries to connect to 127.0.0.1, it's connecting to itself. If Bob's machine tries to connect to 127.0.0.1, he's connecting to Bob's machine. While, technically, you COULD accomplish having Asterisk on an internal IP address on the local machine, in order for it to actually work, you'd need to turn the computer into a router (start doing RIP or some such), which would immeasurably complicate things.
Remember, a SIP call has two parts. One is the signaling portion (the actual SIP portion of the call) and one is the media portion (RTP -- the voice stuff). SER handles the SIP portion but doesn't do anything with the RTP portion. It can't, itself, 'proxy' that voice portion from the outside world to an internal-only IP on your box, so you won't ever get any audio to your Asterisk server that way. What happens in that scenario is that your softphone calls the SER box. SER tells the softphone that it needs to connect its RTP/audio portion of the call to the IP of the asterisk server directly. If the IP of the asterisk server is internal (or the loopback IP), then the softphone has no way to know how to get to it, so it can't connect the audio properly.
If you were running mediaproxy or RTPproxy on the SAME box, IT could proxy the audio portion from the outside world to the Asterisk server running on the same machine with an internal IP. However, then you're creating an incredibly complex scenario and using even more resources for each call.
Your best bet if you need both servers to run on the same box is simply to run Asterisk on the same external IP as SER but with a different port. That way, the outside world can connect its audio to the Asterisk server and you won't get some of the weird issues you're getting now.
N.