When a customer purchases a certain quantity of DID numbers associated with external PBX phone lines, all of the DIDs are provisioned as accounts in PortaBilling. Then the accounts are properly managed and charged for receiving calls.
However, depending on the PBX features your customer operates, there are several ways to configure it in PortaBilling to deliver incoming calls to it from the PortaSIP server:
- The PBX registers each phone line separately with its corresponding account on the PortaSIP server. Then an incoming call to any of the DIDs is routed directly to that number. However, not all PBXs support such multiple registrations.
- In case a PBX is located at a static IP address, calls must be delivered to this IP address. Therefore, you can create an account (the Account ID can be a DID number used for forwarding calls to the PBX) and specify the IP address in the SIP Static Contact field. Incoming calls will then be routed to the IP address of the PBX and delivered to the corresponding DID. This way each account (e.g., a PBX phone line being, as a rule, a DID number) can have its own configuration (e.g., follow-me lists, voicemail, etc.).
- Usually, however, PBXs can only register their main phone lines on the PortaSIP server. In this case, this phone line is provisioned as the registration account (e.g., the account used for registration on the PortaSIP server) in PortaBilling, and all incoming calls to any of the DIDs are forwarded to this account. This configuration method is frequently used for PBXs with dynamic IP addresses.
This last case requires special attention. Using call forwarding for incoming call delivery has some side-effects (it prevents the use of individual forwarding lists for accounts and increases the number of xDRs for a single incoming call). Therefore, it is desirable to directly route all incoming calls to a PBX.
This is done by routing incoming calls to a PBX with a dynamic IP address via another account (e.g., the registration account). The registration information (IP:port) is taken from the registration account and used by the PortaSIP server to deliver incoming calls to a PBX (e.g., a customer has DID number 44048882113 and another one, 12065558741, used as a PBX registration account. The PBX is registered on the PortaSIP server with IP address 10.254.203.5. A call to number 44048882113 is delivered to IP address 10.254.203.5).
- When a PBX registers with account 12065558741, it sends (1) the REGISTER request to the PortaSIP server. This request contains the current registration information (IP:port) in its SIP contact header.
- The IP:port information is taken from the SIP contact header and stored (2) in the database of IP device registrations.
- Someone makes an incoming call (3) to a DID number (44048882113). This call arrives at the PortaSIP server.
- The PortaSIP server sends an authorization request to the billing engine. After the usual authorization checks, the billing engine returns the authorization response with instructions to the PortaSIP server to route this call to the PBX (4).
- The PortaSIP server takes the IP:port information (from PBX’s registration account 12065558741) and routes the call to the PBX (5).
Whenever an IP address changes, the PBX re-registers with it. Thus, this updated registration information is used for routing incoming calls to the PBX on all of the accounts.
To specify which PBX account to use for registration, select it on the customer site. All accounts belonging to this customer site inherit the defined settings.
Consider the following example:
A customer has a PBX that uses a dynamic IP address for registration and has 10 DID numbers assigned to it from the range 16045552400 – 16045552409. The administrator configures the PBX to register with registration account 55587412700 and then creates a customer site for the DID numbers and specifies account 55587412700 in the Account field of the SIP Contact service feature.
The PBX receives IP address 18.104.22.168 from the DHCP server. With this address, it registers on the PortaSIP server by sending a registration request with the SIP contact header email@example.com:5060. IP address 22.214.171.124 and port 5060 are taken from the header and saved in the database so that when a call arrives to number 16045552401, it is routed to the following destination firstname.lastname@example.org:5060.
Later on the PBX is given a new IP address: 20.415.65.4. The PBX re-registers with it and sends the new registration request with SIP contact header email@example.com:5060 to the PortaSIP server. Upon successful re-registration, a call arriving at number 16045552401 is now routed to the following destination firstname.lastname@example.org:5060.
Then suppose the administrator decides to use the number 16045552404 on a separate SIP phone. He disables the SIP contact feature for account 16045552404 and provisions a SIP phone with this account.
Finally, the PBX is allocated static IP address 126.96.36.199. The administrator defines the registration with the static address and specifies IP address 188.8.131.52 as a host.
Upon registering the PBX, all incoming calls to DIDs are routed to IP address 184.108.40.206:5060.
Thus, delivery of incoming calls via the registration information of an account simplifies the configuration of a PBX with dynamic IP address, significantly decreasing the administrative load.
ITSPs can provide their customers with SIP trunking services regardless of the way the PBX acquires the IP address for registration.