If you provide your VoIP customers with CPE equipment like IP phones, you know how laborious and yet important the task of performing initial configuration is. If the equipment is not configured properly, it will not work after being delivered to the customer. Or, even if it works initially, problems will arise if you need to change the IP address of the SIP server. How can you reconfigure thousands of devices that are already on the customer’s premises? There are two ways to manage the device configuration.
The administrator must login to the device provisioning interface (typically HTTP) and change the required parameters. There are several drawbacks to this method:
- The IP phone must be connected to the Internet when the administrator is performing this operation.
- The administrator must know the device’s IP address.
- The IP phone must be on the same LAN as the administrator, or on a public IP address (if the device is behind a NAT/firewall, the administrator will not be able to access it).
Due to these reasons, and since every device must be provisioned individually, this method is acceptable for a testing environment or small-scale service deployment, but totally inappropriate for ITSPs with thousands of IP phones around the world.
This approach is a fundamentally different one. Instead of attempting to contact an IP phone and change its parameters (pop method), the initiative is transferred to the IP phone itself. The device will periodically go to the provisioning server and fetch its configuration file.
IP phone provisioning
When you use auto-provisioning for an IP phone, instead of entering the same values for codec, server address, and so on into each of a thousand user agents, you can simply create a profile which describes all these parameters. Then PortaBilling can automatically create a configuration file for the SIP phone and place it on the provisioning server.
The only configuration setting which is required on the IP phone side is the address of the provisioning server, i.e. where it should send a request for its configuration file. When the IP phone connects to the Internet, it will retrieve a specific configuration file for its MAC address from the TFTP or HTTP server and adjust its internal configuration.
If you decide later to change the address of the SIP server, you need only update it once in the profile, and new configuration files will be built for all user agents. Each user agent will then retrieve this file the next time it goes online.
The config file is specific to each user agent, as it contains information such as username and password; thus the user agent must retrieve its own designated config file. The following are defined in the billing configuration:
- The CPE profile, so that the system knows which generic properties (e.g., preferred codec) to place in the configuration file.
- An entry about the specific IP phone in the CPE inventory (including the device’s MAC address), with a specific profile assigned to it.
- The IP phone (or, in the case of a multi-line device, a port on the phone) is assigned to a specific account in the billing.
To speed up configuration file generation (e.g., when auto-provisioning large numbers of IP phones (1000 and more)), you can make a parallel processing mode available for this task. To do this, enable the UA_Profiles.Enable_Parallel_Generation option on the Configuration server.
Auto-provisioning will only work if your IP phone knows the address of your provisioning server. If you buy IP phones retail, you will probably have to change the address of the provisioning server on every phone manually. However, if you place a large enough order with a specific vendor, these settings can be pre-configured by him, so that you may deliver an IP phone directly to the end user without even unwrapping it.
Some IP phones can be customized by end users. Thus, end users may wish to configure particular options (e.g., soft keys) according to their preferences. Then, you can perform more specific configurations of IP phone auto-provisioning. In the CPE profiles, you can specify options to be auto-provisioned by PortaSwitch (e.g., the addresses of SIP servers, codecs, passwords, etc.) and exclude options that end users can configure themselves.
For example, when creating a CPE profile for Audio Codes 405HD, remove such personal settings as programmable keys from the list of options to be auto-provisioned. Then, if end-users configure the programmable keys for their IP phones, those changes remain after the IP phone configuration update.
The CPE inventory allows you to keep track of IP devices (SIP phones or adaptors) which are distributed to your customers. The MAC address parameter is essential for every IP phone which is to be automatically provisioned, and so a corresponding entry must be created in the CPE inventory.
Allocate IP phones to customers
PBX customers may prefer purchasing a batch of IP phones in advance to have a reserve for future employees. Now, service providers/resellers can allocate Customer Premises Equipment (CPE), such as IP phones, to a customer. Thus, when a service provider/reseller assigns an IP phone to a customer’s account for automatic provisioning, they can select either a phone allocated to this customer or a phone that doesn’t yet belong to any customer. This avoids human error such as assigning a device sold to one customer to another customer.
Additionally, the PortaBilling API now allows not only creating extensions but also assigning IP phones to extensions by customers themselves. With this feature, service providers can create self-care portals where a customer can provision an IP phone for a new employee’s extension. To do that, the customer simply picks an IP phone from the purchased batch and looks it up by the MAC address.
This is how it works:
For example, the ABC company plans to hire new employees and orders 10 IP phones from their service provider Panda Telecom.
Panda Telecom’s warehouse employee picks 10 phones to be shipped to the ABC company. They scan the phone barcodes and send their MAC addresses to the PortaBilling administrator.
The PortaBilling administrator finds these phones in the Phones/CPEs inventory and allocates them to the ABC company. To do this, the administrator needs to perform the following steps:
- Open Inventory > Phones/CPEs > Phones/CPE list > look up the phones sent to the ABC company by the MAC address.
- Select the checkboxes for the needed phones and click Assign on the toolbar;
- Select the ABC company in the drop-down list and click Apply.
Now the IP phones that are shipped to the ABC company are allocated to this customer in PortaBilling.
When a new employee joins the ABC company, the ABC’s PBX administrator picks an available phone, e.g., with MAC address 00:11:22:FF:13:44, from the purchased batch. On the custom portal that uses PortaBilling API, the PBX administrator creates an extension, finds the needed phone in the list, and assigns it to the extension for automatic provisioning. The custom portal creates the corresponding account with an assigned IP phone in PortaBilling using customer credentials. The PBX administrator turns on the phone. The new employee can now use it to make calls. Note that the PortaBilling API allows the PBX administrator to assign the allocated IP phones to existing extensions as well. The PBX administrator can also unassign an IP phone from any extension.
- Service providers/resellers can avoid human errors when assigning IP phones to accounts;
- Service providers/resellers can track which IP phones are allocated to a specific customer;
- Customers can assign IP phones purchased in advance without contacting the service provider (available via API only);
- Reduced workload for PortaBilling administrators when IP phones are assigned by customers.