Greetings! I'm about to embark on a journey to implement an Asterisk
solution for providing VoIP telephony to a large number of locations
for a client. The idea is to have a central server(s) accepting IAX2
registrations from remote Asterisk boxes and then routing calls via an
upstream ITSP using SIP trunking. As you can imagine, I have a few
questions..
Is there a limit or recommended amount of registration traffic (IAX2)
that should be allowed per server? I understand there can be
limitations to these numbers due to keepalives, inherent software
architecture, etc. On a brand new dual or quad core xeon type
system(quite likely multiple physical CPUs, each with multiple cores),
how many registrations could comfortably be accepted on that box? 100?
1000? Is there a limit or a concern? These boxes will be used to
switch traffic only. There will be no voicemail, conferencing,
transcoding, etc.
Also, I'm looking at the possibility of using Asterisk realtime for
configuration and ease of replication. Are there any caveats to this?
For HA, it seems quite a bit more robust to replicate a database to
another host than to use DRBD or something similar, especially since
I'll have equipment in multiple physical locations. Ideas?
The primary idea is to have two servers/switches each in a separate
datacenter with each CPE device registering to both systems so that if
one is down/unavailable/etc, calls can still be routed inbound
properly (carrier failover) and outbound properly (outbound routes as
set in CPE web interface... likely FreePBX). While this certainly
covers failover, what about capacity? Again, this probably goes back
to my prior question about the number of registered CPE per server...
And finally, are there any hard or soft limits to be concerned about
in regards to the number of simultaneous calls a system can handle? As
mentioned, the server function will be purely routing, no other
services available. Can each server handle 500 simultaneous calls?
More?
I'm planing to use Asterisk 1.4.x for this project as it's stable and
works very nicely in my existing systems. 1.6.x seems to be a bit too
bleeding edge... If there are specific examples why 1.6.x would be a
better choice, I'm all ears. Or, is 1.2.x or 1.0.x the way to go? :-)
I look forward to hearing your suggestions and thoughts!
Marshall