The multi-site PortaSIP cluster solution enables you to use PortaSIP from each site for improved reliability and/or better network utilization.
Let’s assume you have two geographically separate sites, each with its own PortaSIP cluster. The main one is in New York and the secondary one is in Frankfurt. The Frankfurt site serves most of your European customers (e.g., they connect to it via the fast intra-European IP backbone) and acts as a backup for all other users around the world. Thus, the SIP phone seeks to register there if the New York site is down or for some reason, inaccessible.
In the example above, user A (assigned SIP phone number 12027810003 and registered to PortaSIP in New York) calls user B who has phone number 4981234567, currently registered to PortaSIP in Frankfurt.
- A dials B’s number (4981234567). His SIP user agent sends an INVITE request to PortaSIP #1 (1).
- PortaSIP #1 sends an authorization request to the billing engine (2).
- After all the usual authorization checks, the billing engine determines that the dialed number is one of our SIP accounts and passes this information to PortaSIP #1 (3).
- PortaSIP #1 searches for the account having the dialed number as its ID. This account is currently registered to PortaSIP #2, therefore PortaSIP #1 sends an INVITE request to PortaSIP #2 (4).
- PortaSIP #2 sends an INVITE request to the SIP phone (5).
SIP phone configuration for multi-site PortaSIP
In order to ensure reliable VoIP services, a SIP phone must be able to automatically switch to other available PortaSIPs when the one the SIP phone is currently registered with is not available. How does a SIP phone know about alternative SIP clusters? There are several options:
- Program the virtual IP addresses of all your installation’s PortaSIPs into the SIP phones if this is supported by the IP phone configuration. The main disadvantage of this method is that it only works with certain SIP phone models.
- Instead of programming PortaSIP virtual IP addresses into the SIP phone’s config, use a hostname instead (e.g., sip.supercall.com). This name can be set up to resolve with all your PortaSIP s’ virtual IP addresses (“DNS round-robin”). However, this may not work if the manufacturer of the SIP phone has employed a simplified approach so the phone will not perform DNS resolving if one of the clusters fails.
- Use the DNS SRV records. These records were specifically designed for the purpose of providing clients with information about available servers (including the preferred order in which the servers must be used) in a multi-server environment. This method is currently the most flexible and reliable one; see details below.
Using DNS SRV records for multiple PortaSIP servers – an example
Let’s assume that you provide the VoIP service to customers from the US and Singapore. Thus, you have two sites and consequently, two PortaSIPs: the main one in New York and the other one in Singapore. Both sites are active and running, so your users can use either one of them to register.
For better network utilization, you want to define that the US PortaSIP is the primary server for US customers and that Singapore PortaSIP is the backup. Singapore customers, in turn, must first register with the Singapore PortaSIP. When Singapore PortaSIP is unavailable, they can use the US PortaSIP site.
To implement this, configure the DNS server for each site by using separate domain names. Thus, the mysipcall-us.com domain name will be used for US customers and mysipcall-asia.com domain name for customers from Singapore.
Configure your DNS servers for the mysipcall-us.com and mysipcall-asia.com domains with DNS A-records for PortaSIP clusters:
portasip1 IN A 188.8.131.52 portasip2 IN A 184.108.40.206
After this, you may define SRV records describing the available SIP servers.
The SRV record for the mysipcall-us.com domain is:
_sip._udp.proxy SRV 10 0 5060 portasip1 SRV 60 0 5060 portasip2
and the SRV record for the mysipcall-asia.com domain is:
_sip._udp.proxy SRV 10 0 5060 portasip2 SRV 60 0 5060 portasip1
These domain names are then auto-provisioned to US and Singapore phone users, respectively.
On the SIP phone, specify the following for US customers:
SIP proxy/registrar: proxy.mysipcall-us.com Use DNS SRV: yes DNS SRV Auto Prefix: yes
Therefore, when a SIP phone is switched on, it will first query the DNS database for servers for _sip_udp_.proxy.mysipcall-us.com, and receive a list of recommended servers (portasip1.mysipcall-us.com and portasip2.mysipcall-us.com). After that, it will obtain the IP addresses of these servers from the DNS database and contact them in sequence.