Private branch exchange high availability server
A first device transmits an invite message to a first server to establish a call with a second device. The first server modifies the invite message to obtain a modified invite message. The first server simultaneously transmits the modified invite message to a primary server associated with the second device and one or more backup servers associated with the second device. The server receives a response message that indicates successful processing of the modified invite message from a second server. The first server establishes the call via the second server.
1 . A method, comprising:
receiving an invite message from a first device to establish a call with a second device;
modifying the invite message to obtain a modified invite message, wherein modifying the invite message includes updating a header of the invite message to include a parameter that is identifiable by a primary private branch exchange (PBX) server and one or more backup PBX servers associated with the second device;
simultaneously transmitting the modified invite message to the primary PBX server associated with the second device and to the one or more backup PBX servers associated with the second device;
receiving a response message indicating successful processing of the modified invite message from a first PBX server, wherein the first PBX server is the primary PBX server or one of the backup PBX servers; and
establishing the call via the first PBX server.
2 . The method of claim 1 , wherein the second device is registered to the first PBX server.
3 . The method of claim 1 , further comprising:
receiving a delayed negative response from a second PBX server, the delayed negative response indicating that the second device is not registered to the second PBX server.
4 . The method of claim 3 , wherein the second PBX server is one of the backup PBX servers when the second device is registered to the primary PBX server.
5 . The method of claim 3 , wherein the second PBX server is the primary PBX server when the second device is registered to one of the backup PBX servers.
6 . The method of claim 1 , wherein the invite message is received at a PBX server associated with the first device.
7 . The method of claim 1 , wherein modifying the invite message includes updating a header of the invite message such that the header is identifiable by the primary PBX server and the one or more backup PBX servers.
8 . A system, comprising:
a processor configured to:
receive an invite message from a first device to establish a call with a second device;
modify the invite message to obtain a modified invite message that includes a header comprising a parameter that is identifiable by a primary private branch exchange (PBX) server and one or more backup PBX servers associated with the second device;
simultaneously transmit the modified invite message to the primary PBX server associated with the second device and to the one or more backup PBX servers associated with the second device;
receive a response message indicating successful processing of the modified invite message from a first PBX server, wherein the first PBX server is the primary PBX server or one of the backup PBX servers; and
establish the call via the first PBX server.
9 . The system of claim 8 , wherein the second device is registered to the first PBX server.
10 . The system of claim 8 , wherein the PBX server is further configured to:
receive a delayed negative response from a second PBX server, wherein the delayed negative response indicates that the second device is not registered to the second PBX server.
11 . The system of claim 10 , wherein the second PBX server is one of the backup PBX servers.
12 . The system of claim 10 , wherein the second PBX server is the primary PBX server.
13 . The system of claim 8 , wherein the PBX server is further configured to:
transmit option ping requests to the PBX server associated with the second device and to the one or more backup PBX servers associated with the second device; and
receive a health status of the PBX server associated with the second device and each of the one or more backup PBX servers associated with the second device responsive to the option ping request.
14 . The system of claim 13 , wherein the option ping requests are transmitted simultaneously.
15 . A non-transitory computer-readable medium comprising instructions, that when executed by a processor, cause the processor to perform operations comprising:
receiving an invite message from a first device to establish a call with a second device;
modifying the invite message to obtain a modified invite message, wherein modifying the invite message includes updating a header of the invite message to include a parameter that is identifiable by a primary private branch exchange (PBX) server and one or more backup PBX servers associated with the second device;
simultaneously transmitting the modified invite message to the primary PBX server associated with the second device and to the one or more backup PBX servers associated with the second device;
receiving a response message indicating successful processing of the modified invite message from a first PBX server, wherein the first PBX server is the primary PBX server or one of the backup PBX servers; and
establishing the call via the first PBX server.
16 . The non-transitory computer-readable medium of claim 15 , wherein the second device is registered to the first PBX server.
17 . The non-transitory computer-readable medium of claim 15 , further comprising:
receiving a negative response from a second PBX server, the negative response indicating that the second device is not registered to the second PBX server.
18 . The non-transitory computer-readable medium of claim 17 , wherein the negative response is delayed by a predetermined duration of time.
19 . The non-transitory computer-readable medium of claim 17 , wherein the second PBX server is the primary PBX server or one of the backup PBX servers.
20 . The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:
transmitting option ping requests to the PBX server associated with the second device and to the one or more backup PBX servers associated with the second device; and
receiving a registration status of the PBX server associated with the second device and each of the one or more backup PBX servers associated with the second device responsive to the option ping request.