We’ve deployed an autoscaling solution with a shared database which adds additional servers on demand, with a UDP load balancer in front of our domain. We’ve ran into the road block of our different servers not being able to dial to each other extension - extension.
We utilize chan_sip and our provider is Twilio. The domain name is all the same for the different servers, through a load balancer.
Does anyone have experience / advice on managing a solution like this? We’re looking for a forward facing approach with the hopes that this system can exist for a long time.
It sounds like your phones are registering to different machines and not sharing contact information between machines.
You might consider updating from chan_sip to chan_pjsip and storing the contacts into a shared realtime backend database. Then each machine can update the database independently upon each new extension registration, and with the right dial plan, including some extra database logic, failed calls can be re-Dialed() via the new machine where the destination extension is currently registered.
Caveat: This approach could result in a lot more calls between machines, which could be problematic if you are processing RTP.
Do you have all the proper dial plan in your boxes? Does each box have unique users on it? For example Box A has 100 while Box B also has 100. How will Box A know if it needs to call Box B if the user on Box A is just dialing 100 since it lives on both? If you have unique peers on each box it goes back to dialplan. Do you have the proper dialplan that sends 100 to Box B?
This is sounding like a proxy/SBC is needed to put these boxes behind to handle this type of routing. Trying to peer multiple boxes together for “intra-call” setups is going to be a real pain on each box.