If all server configs are the same and your third party PSTN device directs calls to the realm "company.com", how is asterisk to know to which of the 3 servers a certain SIP device is registered? For example, if user A is registered to a1.company.com and user B is registered to a2.company.com, if user A tries to call user B, since user B is not registered to the same asterisk server as user A, the call will be rejected by a1.company.com since user B is registered to a2.company.com, unless you set up the system in such a way that it tries all 3 servers in succession until it finds the extension registered to one of the asterisk servers. If it's not found at all, then hop to voicemail or send a SMS page using the new app_sms or something else useful.
Then you must deal with the case of what happens if your third party PSTN gateway wants to reach user B but pulls the DNS info for asterisk.company.com that points to a1.company.com. Again, a1.company.com knows nothing of user B since this user is registered to a2.company.com.
Also with DNS, you have to remember, once a lookup is done from the SOA, it is cached until the TTL expires. If you have one or more clients sending lots of VoIP traffic to an asterisk server and they happen to all pull the address of a1.company.com, they will continue to use a1.company.com until the TTL of the DNS records expire, usually recommended 6 hours, 21600 sec, therefore throttling the server. This is why round robin is not optimal for load balancing as there is no feedback about the actual load of the individual servers to the one doing the delegating of traffic to the member servers, the DNS server in this case, for the purpose of load balancing.
One thing which comes somewhat closer to actual load balancing for asterisk is LVS, depending upon which of the models is used, http://www.linuxvirtualserver.org/. This still has inherent issues which are tricky, but not impossible to work around with asterisk. You still have the issue of determining which SIP device is registered with which asterisk server but things like app_dbodbc and a little PHP make this lots easier.
-Curt
Let's say I have a third-party device acting as a sip<-->pstn gateway, a cluster of three asterisk servers, and a teensy bit of dns knowledge. Let's now say those asterisk servers are a1.company.com at 192.168.0.1, a2.company.com at 192.168.0.2, and a3.company.com at 192.168.0.3.
1. If I setup round-robin dns like so:
asterisk.company.com. IN A 192.168.0.1 asterisk.company.com. IN A 192.168.0.2 asterisk.company.com. IN A 192.168.0.3
2. and normal A records for the servers like this:
a1.company.com. IN A 192.168.0.1 a2.company.com. IN A 192.168.0.2 a3.company.com. IN A 192.168.0.3
3. and srv records like so:
_sip._udp.company.com IN SRV 20 0 5060 a1.company.com _sip._udp.company.com IN SRV 30 0 5060 a2.company.com _sip._udp.company.com IN SRV 40 0 5060 a2.company.com
4. and configure all my sip clinets to register to asterisk.company.com
5. and tell the 3rd-party sip<-->pstn gateway to use srv records & that all inbound calls from the pstn should go to the realm "company.com"
6. and all the configs on the asterisk servers are identical...
would I have successfully setup load-balancing across my asterisk servers?
Thanks, Jeremy _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
_________________________________________________________________
Best Restaurant Giveaway Ever! Vote for your favorites for a chance to win $1 million! http://local.msn.com/special/giveaway.asp
_______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users