Monday, December 11, 2006

Step by step configuration of the SIP stack on the Nokia N93

Now that I finally found a free screen capture program that supports the Nokia N93 (thanks to the excellent 3lib page and to Antony Pranata for his free tool which really works on S60 3rd edition), I can finally include screen shots of the N93 to support this step by step guide.

Before jumping into the SIP stack configuration, I am using WiFi to provide the IP connectivity for the SIP stack and therefore a WLAN access point needs to be configured. This procedure is pretty straightforward once you know where to start :)

ConnectivityConn. mgr.Avail. WLAN

  1. Go into the "Connectivity" screen and select the "Conn. mgr."
  2. Select "Avalab. WLAN" to browse the available WLAN access points
  3. Select the WLAN access point you would like to configure and then select the menu option "Define access point" to configure that access point and make it available to applications requiring a data connection.
Once the access point is configured, Go to the "tools->Settings" application to setup the SIP stack.


  1. Select "Connection"
  2. Select "SIP settings"
  3. Select menu "Options->Add new" to create a new SIP configuration either using the default profile or an existing profile. This should open the configuration settings for the new profile where we will setup the stack parameters as well as the proxy and registrar servers.


  1. Give a name to the profile, select IETF as a service profile for the SIP stack and select an access point to be used for the data connection. This could be the WLAN access point configured just before.
    Setup the public user name of the SIP user that will be used in sessions created via the SIP stack. This public user is in the form of a SIP URI (sip:user@domain).
  2. Do not use compression or security as this will activate SIP header compression and secure connections which require special features in the SIP stack on the other side (network) unless of course you need them and you are sure that the servers on the other side support them.
    Leave the "Registration" option as is for now.
  3. Select the "Proxy server" option to setup the proxy.


  1. This will open a new screen that allows to setup the parameters for the SIP proxy available in the network.
    Setup the proxy address using a SIP URI in the form of "sip:hostname|address" where the host name or the IP address refer to the proxy server.
    Setup the real name for SIP authentication. This is in general the same thing than the domain name for simplification but can be different.
    Configure the user name and password used for the SIP authentication. The user name can be the same than the user part of the public identity or a completely different name. Just make sure that this corresponds to the user configured at the proxy level or at the HSS in an IMS network.
  2. Set the "Allow loose routing" to "Yes".
    Make sure you use the "TCP" transport for the SIP connection and set the port number according to what the proxy/CSCF configuration. The UDP transport has problems and does not work. If you find out why or how it make it work, please let me know.



  1. When done with the proxy configuration, select "Back" and then "Registrar server" to also setup the registrar. Without that, the SIP stack will not be usable.
  2. Setup the registrar address using a SIP URI in the form of "sip:domain" where the domain corresponding to the domain name/security real for the SIP servers. Note that contrarily to the proxy server, you do not need (and it will not work if you do so) to specify the server address. The reason is that the REGISTER messages sent by the stack will actually go through the proxy and not directly to the registrar. Traffic routing rules (like Initial Filter Criteria in the CSCF) will proxy that message to the appropriate registrar.
  3. Configure the user name and password used for the SIP registration. This is in general the same name used for the SIP authentication.
  4. Make sure you use the "TCP" transport for the SIP connection and set the port number according to the proxy/CSCF configuration (see step 8 above).


When done with the proxy and the registrar configurations, the stack is ready to use and we can test that by requesting an immediate registration with the SIP network. To do so, you can go back to the SIP profile configuration and change the "Registration" option to "Always on". That will have the effect of immediately attempting to register with the network.

If things go wrong, check again the proxy address, port number and that it does support the TCP transport. Check the user name and password used for the proxy authentication and the registration and that the user is actually configured at the proxy/registrar/HSS.

When nothing helps, there is still ethereal (wireshark as it is called now) that can be run at the CSCF/proxy level to capture the traffic and analyze the SIP messages sent by the N93 to the proxy.

This will still not allow you to make VoIP calls with the N93 unless of course you have a SIP phone client that runs on the S60 3rd edition, but that will be another story...