Configuring IP phones as Asterisk PBX extensions
A first look at the SIP.CONF file
|
It is assumed here that your IP phones all use the SIP protocol to register, make and receive calls.
Before an IP phone can connect to Asterisk and operate as an extension, it is necessary to
configure user account details on the Asterisk server. The configuration file of greatest relevance
in this process is SIP.CONF. In this file you define some general server related settings - such as
the port that your Asterisk server will listen on - and the user accounts and
other details for each IP phone. It is worth noting that Asterisk also allows user settings to be defined in the configuration file called USERS.CONF, but the format of the user data in both SIP.CONF and USERS.CONF is largely identical so the descriptions that follow only refer to SIP.CONF. You may find that some Asterisk GUI interfaces actually make updates to SIP.CONF for the general server settings and to USERS.CONF for the users and their telephone extensions. For the impatient...Try scrolling to the bottom of the sample SIP.CONF file where you should find some example configurations (commented out) for about four different types of IP phone or softphone. Take a copy of the definition for [polycom] including all the entries down to but not including "progressinband", and paste it into the bottom of the file. Uncomment it, and change the device name from [polycom] to whatever extension number you want to use - for example [4001]. Now adjust the settings for username and secret - set username to the same extension number as the device name. Set secret to any password you like, (you will need to put the same one into the phone in a moment).
Save the changes to SIP.CONF, open the Asterisk CLI and enter the command "sip reload". On the IP phone, you will need to configure the default SIP account - depending on the make and model of phone, this may be called "Account 1", "Identity 1", "Line 1", "User 1" or sometimes "Global SIP Account". Set the account password to the same one that you just used for the "secret" parameter above. The extension number (4001 in the example above) should be given for all and any fields called "Username", "Authentication name", "Authentication number", "Phone number", "Account", "SIP User ID" or "Authenticate ID". Set the field called "SIP Domain", "Registrar", "SIP Server" or "Proxy Server" to the IP address of your Asterisk server; do the same for the "Outbound Proxy"/"Outbound Proxy Server" field. Reboot the phone. If you are lucky, the IP phone will now register with Asterisk. To be able to make and receive calls you will need to configure appropriate dial plan contexts, but that is not explained here. ...and beyondThat was the quick-start guide and while it might be enough to get one extension phone registered, it is unlikely to be adequate over the longer term. Certainly, if you want to get the most out of Asterisk and avoid future problems it is much better that you get a more fundamental understanding of the way Asterisk supports IP phones. The text that follows identifies those elements within SIP.CONF that are most relevant to IP phone registrations on an Asterisk PBX. We also provide information and examples for the settings on some commonly used IP phones. |
A more leisurely look at the SIP.CONF file
General settingsAt the beginning of the SIP.CONF file you will find a large section that starts with the line [general]. Within this section, various server related parameters are set and also some system-wide defaults can be defined that are used in later sections. We are not going to attempt to describe every setting here, but will take a look at some of the settings most relevant to the successful integration of IP phones as local extensions.port and bindaddr The settings for the parameters "port" and "bindaddr" are used to tell Asterisk which port and which ethernet interface to listen on. The default port for SIP is 5060 and unless you have a good reason to change it, just leave it as 5060. The "bindaddr" can be set to 0.0.0.0 if you want Asterisk to listen on all interfaces/IP addresses. SIP Domains Asterisk allows you the option to support or not support SIP domains. If you are trying to get an IP phone to register with Asterisk and the registration is being rejected, it may be because the SIP domain being used by the phone does not match any of the SIP domains defined for Asterisk. Even if the phone is configured to register at an IP address rather than a host or domain name, you may still need to add the IP address as a SIP domain in Asterisk (unless SIP domains are completely disabled). Asterisk SIP domains are explained in detail here. We recommend the use of a proper SIP domain name when registering IP phones on Asterisk rather than the lazy option of using the IP address of the Asterisk server. Named SIP domains have the following advantages:
SIP Peer and User settings for IP phones on the local networkThe definitions for IP phones are generally located towards the end of the SIP.CONF file. It is usual to set the peer type to "friend" and the value for "host" to dynamic. This allows an IP phone with the correct user credentials to register on the Asterisk server from any IP address.A typical definition for an IP phone being used as a local extension would be similar to this - in this example the extension number is 4001:
Some of the settings given here will need to match settings that you program into the IP phone. |
Configuring IP phones that are on the local network
Here we describe how to connect an IP phone to Asterisk as a local extension, assuming
that the IP phone and Asterisk are on the same subnet or at least are on subnets that can easily
reach each other without having to pass through a firewall or NAT.Setting the SIP Domain name on the IP phoneDifferent makes of IP phone use different names for the SIP user account settings.Please click here (opens a new window) to view a list of the settings on various makes of IP phone. Find the setting that is used on your IP phone for the following: SIP Server/Proxy Server/Proxy/Registrar If your Asterisk server is using SIP Domains, then this field must be set to a value that matches one of the SIP Domains known to Asterisk. You can check what domain names Asterisk is using by typing the command "sip show domains" at the Asterisk CLI. If your Asterisk server is not using SIP Domains, then you may set this field to the IP address of the Asterisk server. Setting the location of the Asterisk serverThis should already have been achieved when you set the value for "SIP Server" above. However, if for some reason you were unable to define a domain name that could be resolved to an IP address, then it is also possible to force the phone to send all SIP requests to a particular network location by entering the IP address in the "Outbound Proxy" field.Setting the User Account ID and PasswordFind the fields on your IP phone where you can set the "Authentication Username", "Password" and "Main Account ID" - it may help to re-open the page on this link again to see what the field is called on your make of IP phone.Set the password to the same value that you assigned to the "secret" parameter in SIP.CONF. Set both the "Account ID" and the "Authentication Username" to the extension number that you set in SIP.CONF. If you are uncertain about the values you used when configuring Asterisk, these can be checked easily by typing "sip show users" at the Asterisk CLI. Save settings and force the IP phone to registerMost IP phones require a Save button to be clicked (assuming you are using the web interface). The new settings do not usually take effect immediately - for most makes of IP phone a reboot is needed, but the Snom phones are more advanced and can be re-registered by clicking the appropriate button on the web interface.Now check if the IP phone has registered with Asterisk - go to the Asterisk CLI and type "sip show peers". You should see a list of all the extensions you defined in SIP.CONF. If a phone has registered correctly, then it will have an IP address in the column "Host". |
![]() |
Note: The information in this article is essentially original material prepared by the author based on research and practical tests using various Asterisk servers running software versions between 1.2 and 1.4. IP phones used for testing included Grandstream Budgetone, Grandstream GXP-2000, X-Lite softphone, Aastra 53i, Snom 360 and Linksys SPA-941. The information on this web page is freely offered as guidance and advice for other Asterisk users. The author cannot accept responsibility for any errors or omissions within this article, but if you want to send feedback to info(at)smartvox.co.uk please do so and I will do my best to incorporate any suggestions or correct any errors. The text of this article is copyright © 2009 Smartvox Limited. Do not copy this text or any substantive part of it to other web sites or documents. If you want to refer to it please use a link.
Last updated on Sunday 22nd February 2009.


