HowTo configure sipXphone with sipX

From SIPfoundry sipXecs IP PBX, The Open Source SIP PBX for Linux - Calivia

Jump to: navigation, search

sipXPhone is the SIP softphone client from SIPfoundry and part of the sipX open source PBX suite. Additional user agent technology from SIPfoundry includes sipXezPhone and the sipXtapi User Agent SDK.

Contents

Introduction

Image:Ver2.8.png The sipX configuration server allows fully automated remote management of supported phones and gateways using a Web UI or SOAP access (Simple Object Access Protocol, part of Web Services). On the SIP phone side, this feature is currently (release 2.8.1) available for Cisco 79xx SIP phones, Polycom SIP phones, the sipXphone softphone, and the Pingtel xpressa phone. Additional phones are being added and if you would like to have a particular phone supported, please have a look at:

  1. Adding Support for Managed Phones
  2. Adding Support for Managed Gateways
  3. The sipX Config Server project at SIPfoundry

Image:Ver3.0.png The Version 3.0 removes remote configuration support for sipXphone but adds management support for Cisco ATA, Grandstream Budgetone and Handytone, kphone, as well as the Audiocodes gateway. Support for SNOM phones is planned for the near future.

Image:Ver3.2.png The development code adds SOAP back in and many improvements to currently suppported list of phones including more models and firmware upgrade support.

(sipX 2.8 only!!!) Steps to Configure sipXphone with sipX Config Server

Follow the simple steps described in more detail below:

  1. Create a new device for the phone in sipX Config Server
  2. Assign this new device to a user (this creates a line)
  3. Start sipxphone

sipXphone is setup to automatically find and register with sipX and pull down the corresponding profile, provided DSN is setup correctly.

Note: in version 2.6.0.27 for Microsoft Windows there is a bug when using DNS SRV that prevents sipXphone from registering properly with the sipX server (see XPH-118).

Create a new device

Navigate to Endpoints - Devices and click on Add Device. Enter parameters as follows:

Image: AddSoftphone.png

Note: The phones serial number can be found in its local-config configuration file.

On windows Operating Systems
\Program Files\SIPfoundry\sipxphone\meta\local-config


Assign the device to a user

We assume here that you already created a user who will be using this instance of sipXphone.

Navigate to User Settings - Users. Pick the action Assign Devices for the user you want to assign to the new sipXphone and click Go.

Note: We recommend to initially letting the phone register and pull down its profile based on default settings. Therefore, other than creating the device and assigning the device to a user, you should not configure any additional parameters at this point. Once the phone is registered, you can go back and change parameters as needed. Make sure you push the profile to the phone after a change and reboot the phone.

Initial Registration of sipXphone with sipX Configuration Server

After starting, the softphone will by default attempt to find a machine called sipuaconfig configured to handle the SIP protocol in your DNS server (See sipX DNS setup for details). sipxphone should automatically pull down its profile and prompt you to get permission to re-start. Please be patient, this might take a little while.

Note: Make sure that the DHCP server assigns the correct domain name to clients who register for an IP address.

Note: In version 2.6.0.27 for Windows sipXphone can only register with the primary domain (the domain your host is in) and ignores a connection specific DNS suffix assigned by DHCP (refer to XPH-119).


Changing the default server to contact:

If you would like to override this default you can explicitly configure your softphone to contact a specific machine by creating and / or editing the following file.

NOTE: Your path may differ depending on your softphone version, operating system or installation directory.

File: C:\Program Files\SIPfoundry\sipXsoftphone\meta\local-config
CONFIG_ENROLLMENT_HOST : example.domainname.com

Now restart your phone. When the phone starts up it send a SIP SUBSCRIBE to the machine with the newly specified name.

Troubleshooting

Accessing the phone's configuration through the phone's Web UI

sipXphone comes with a built in Web server used for manual configuration of the phone. If using sipX to remotely manage sipXphone, direct access and manipulation of the phone's configuration should be avoided. However, the built-in Web server allows to debug configuration data received from sipX. Below the procedure on how to enable the built-in Web server.

Image:Pingtel-phonetop ui-screen-only.gif

Press More
Click on Prefs
Double-click on mysip softphone Web
Press OK (empty admin password)
Enable Web Server: Yes
HTTP Port: 80
Click OK
Restart sipXphone

Access the WebUI using http://sipxphone/
User: admin, password: empty

Debugging SIP messages

The parameter SIP_LOG controls logging of SIP messages by sipXphone. It is set by adding the following line to "Additional Parameters" on the sipX configuration server screen where sipXphone is configured.

 SIP_LOG : ENABLE

When set this will log all SIP messages from start-up time. Although you can also enable this from the "SIP Log" web page of the phone's Web UI after the phone starts you may miss some of the early SIP messages. Early SIP messages include subscribing to profilepublisher for configuration information or even the initial SIP registration.

Debugging sipXphone registration issues

First, there is a good reason for setting sipXphone to default config. The easiest way to do this is delete the phone's config files.

Troubleshooting registration problems can be done in different ways:

  1. Enable logging on sipXphone: SIP_LOG : ENABLE logs all SIP messages into a file located in the phone's installation directory. sipX logs are in /var/log/sipxpbx
  2. Trace packets using Ethereal:

You should see the phone send a REGISTER message to the server, the server should respond to the phone with a 401, the phone should send another REGISTER with proper credentials and then the server should respond with a 200. You can see this with Ethereal and then check each step, including the credentials.

Personal tools