Есть 3 asterisk в одной подсети, как их объеденить?
К примеру:
Для первого сервера номера начинаются с 1, у 2-го сервера - с 2, у 3-го сервера -с 3.
В iax.conf пропишешь номера.
Создаем файл в основном сервере с настройками транка (лучше отдельным файлом).[asterisk2]
host=IP_ADDRESS_1
type=friend
context=from-iax
qualify=yes
disallow=all
allow=alaw
allow=h261
allow=h263
allow=h263p
insecure=invite,port
canreinvite=no
nat=no

[asterisk3]
host=IP_ADDRESS_2
type=friend
context=from-iax
qualify=yes
disallow=all
allow=alaw
allow=h261
allow=h263
allow=h263p
insecure=invite,port
canreinvite=no
nat=no
На серверах 2 и 3 такой же файл но с другим набором соответственно, т.е для 1 сервера транк до 2-го и 3-го, для 2 сервера транк до 1-го и 3-го, для 3 сервера транк до 1-го и 2-го. 
Контекст - from-iax (для примера)
В этом контексте прописываем правило для обработки входящего звонка для каждого сервера.
Для первого сервера extensions.conf: [from-iax]
exten => _1XX,n,DIAL(SIP/${EXTEN},,m)
Для второго сервера extensions.conf: [from-iax]
exten => _2XX,n,DIAL(SIP/${EXTEN},,m)
Для третьего сервера extensions.conf: [from-iax]
exten => _3XX,n,DIAL(SIP/${EXTEN},,m)
Для исходящих 1-го сервера:[external]
exten => _2XX,1,Dial(SIP/asterisk2/${EXTEN},,m)
exten => _3XX,1,Dial(SIP/asterisk3/${EXTEN},,m)
Для исходящих 2-го сервера:[external]
exten => _1XX,1,Dial(SIP/asterisk1/${EXTEN},,m)
exten => _3XX,1,Dial(SIP/asterisk3/${EXTEN},,m)Для исходящих 3-го сервера:[external]
exten => _1XX,1,Dial(SIP/asterisk2/${EXTEN},,m)
exten => _2XX,1,Dial(SIP/asterisk3/${EXTEN},,m)
Если астериски сидят в одном адресном пространстве (между ними нет NAT), все это достигается дописыванием sip.conf и плана нумерации. При наличии NAT все становится чуточку сложнее.
Главный вопрос - выработка плана нумерации, его структуры. Выбор способа звонков в город. Классический вариант на < 500 сотрудников
-трехзначные номера 
-выход в город, начиная городской номер с 9.
Для дальнейших советов нужна структура вашей телефонной сети.