Recommend way to connect three Elastix Servers

Greetings to everyone.

I have a customer who has three sites, located in three different cities. Each site has a dedicated VPN between each other (Mesh VPN Topology) and I'd like to know which is the recommended way of interconnecting these sites between each other.

It is best to create MESH IAX trunks between each Elastix server or assign one as a the Master Elasix server and connect the other two sites to it?

Looking forward to your suggestions.

Many thanks in advanced.
Who is Participating?
raysonleeConnect With a Mentor Commented:
As you already have a mesh network, why bother to go through the central site for communication between the other two sites?
kosmasAuthor Commented:

True, I am asking this question because I currently have the three Elastix servers connected in a mesh topology using IAX2 trunks, however for some unknown reason, the AIX trunks are loosing connectivity between each other, so I am wondering if there is a better suggestion - maybe what I am trying to achieve is best done with SIP trunks instead of IAX?  

Thank you.
kosmasAuthor Commented:
A quick update on this thread.

I have proceeded with the setup of IAX2 trunks, however I am experiencing problems.

I have three sites:  hq, remote1 & remote2.

To breakdown the issue, I am focusing on one leg ( hq --- remote 1).

Here, I have created a iax2 trunk between them, however it is showing unreachable from both sides.  I have verified ip connectivity between the two and followed bob's article precisely (

Further IAX2 debugging shows the following:

HQ side:
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: POKE  
   Timestamp: 00004ms  SCall: 02139  DCall: 00000 []
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: POKE  
   Timestamp: 00004ms  SCall: 02139  DCall: 00000 []

Remote1 Side:
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: POKE
   Timestamp: 00004ms  SCall: 02139  DCall: 00000 []
Tx-Frame Retry[001] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: POKE
   Timestamp: 00004ms  SCall: 02139  DCall: 00000 []

There is no PONG or ACK sent from Remote 1 to HQ and therefore the trunk is not working.

Are the any suggestions for this behaviour?

Many thanks in advanced!
I think that was caused by the underlying network. Do you connect the sites via VPN? Have you define keepalive parameter in your routers? Do you have NAT enabled? If yes, please refer to General NAT Issues stated here
raysonlee is correct. This is an underlying network issue. Double check your NAT settings, and while you're at it, you probably want to make sure you directmedia=no (you'll have to find this in Elastix, since I only code Asterisk and don't use GUIs). This keeps asterisk in the loop for all calls, which makes life easier when NAT is involved.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.