Hello.
I believe that Wensong has the right idea here. Although SIP does
support TCP the vast majority of SIP endpoints ony support UDP.
As someone mentioned, Asterisk can be used for a SIP application
server but it's not geared/written to be a SIP proxy. For this you
need something like SER, SIP Express Router.
When correctly configured, SER acting as a SIP proxy does support the
distributing of calls to Asterisk boxes acting as media/application
servers. The issue becomes how to load balance/distribute calls to
multiple SER boxes, based on SIP call-id, so that the same SIP call-id
always goes to the same SER box. Once you've statefully routed a
call, based on call-id, to a particular SER box, SER can take over and
ensure that things go to the correct Asterisk media/application server
or endpoint based on its routing configuration. The director nodes
just need to be smart enough to send the right call to the right SIP
proxy residing in the LVS cluster.
If anyone has ideas on how to implement such a SIP UDP scheduling
module for IPVS or how it would work, I'd be interested in discussing,
and even sponsoring its development.
As far as NAT goes, I've found though lots of experience that you'll
never be able to penetrate every NAT implementation out there when it
comes to SIP/UDP, you can only hope to get 99% of them as many of them
don't fully conform to the RFC.
-Curt
|