Symbian OS GNU/Linux Connectivity How To

Mal Minhas

Copyright © 2002 by Mal Minhas

This document is distributed under the terms of the GPL (GNU Public License).


Table of Contents

  1. Introduction
  2. Symbian OS
  3. IrDA Connectivity
  4. Bluetooth Connectivity
  5. PC Connectivity
  6. Further Information

1. Introduction

1.1 Aims and objectives

The Symbian OS GNU/Linux How To is intended to operate as a public resource to comprehensively document connectivity between Symbian OS smartphones and GNU/Linux software. Currently only smartphones based on Symbian OS v6.1 and v7.0 are covered.


1.2 Who is this document aimed at?

This How To is primarily aimed at technically-minded users of Nokia 7650 and Sony Ericsson P800 smartphones who would like to know how they can get their devices to communicate wirelessly with Linux based PCs using Bluetooth and Infrared (IrDA). The good news for you is that there is excellent wireless comms protocol interoperability between these Symbian OS devices and Linux. This is certainly not the case for smartphones powered by other operating systems we could mention.

In this guide, basic use cases such as beaming of vCards, general file beaming and IP connectivity are covered. In addition, where appropriate, suggestions are made regarding useful software that could be developed on top of the existing connectivity. It's worth noting that there is considerable scope for innovation here.


1.3 Scope of testing

The use cases in this How To have been fully tested using a PIII desktop and a Dell Latitude CPx laptop both running Mandrake 8.2 (kernel 2.4.18). Infrared has been tested with both built-in SIR hardware on the laptop as well as an Extended Systems Jeteye serial dongle on the desktop. irda-utils-0.9.15 was used for user-side IrDA utilities. Bluetooth was tested using a TDK USB dongle and v1.2.3 of Nokia's GPL Affix stack for Linux.

The Linux IrDA stack and irda-utils are relatively mature and so the IrDA use cases described below are liable to work on wide range of Linux configurations.

The Affix Bluetooth stack is not as mature as IrDA so you may experience problems particularly with bleeding edge configurations. You should check the Affix home page for information about configuration. Having said that, you should not encounter too many problems with Affix on Mandrake 8.2.

This section will be used to document working configurations and problem areas so please contact us if you have any information regarding Symbian OS IrDA and Bluetooth interop with other distros.



2. Introduction to Symbian OS

2.1 A brief history of Symbian OS

Symbian OS is an evolution of Psion's 32-bit EPOC platform that debuted in 1997 in the Psion Series 5 PDA. The Psion Series 5 was a landmark device in many ways. The story of how EPOC was conceived and implemented is covered in greater detail in the Professional Symbian Programming book. It is beyond the scope of this How To to go through the various bits of Symbian terminology (e.g., Psion's EIKON UI framework) covered in that book.

The first release of EPOC in the Psion Series 5 was referred to as "EPOC Release 1". Subsequent revisions of the platform incremented this version number at the rate of approximately one a year. In 1998, Symbian was created as a spin-off from Psion Software Ltd co-owned by Psion, Nokia, Ericsson and Motorola. The purpose of the spin-off was to develop an advanced software platform for a new combination of consumer products called smartphones which would combine telephony and computing capability. This represented a change in direction for the EPOC platform from its origin as a PDA platform. Accordingly around a year later, the platform officially became Symbian OS rather than EPOC.

The first platform release of Symbian OS was v5.0 which was used in the Psion Series 5mx and Psion Revo PDAs. The Ericsson R380 was built on Symbian OS v5u. The Nokia 9210 Communicator was built on Symbian OS v6.0 and the Nokia 7650 imaging phone is built on Symbian OS v6.1. This platform constitutes the core of the Nokia Series 60 platform which has itself been licenced to a number of handset manufacturers. The latest incarnation of Symbian OS is v7.0 which is at the core of the UIQ platform used in the Sony Ericsson P800 smartphone. The exact API changes in Symbian OS from v5.0 through to v7.0 are not really documented anywhere. There is some material on the Symbian web site describing v6.1 functionality and also v7.0 functionality but it doesn't go into great details regarding differences. In practice, you should find that although many APIs have evolved and new components such as Bluetooth added to the platform, the Symbian OS architecture and programming paradigms remain close to that of Psion's original EPOC platform.

Today, Symbian is co-owned by Psion, Nokia, Sony Ericsson, Motorola, Matsushita (Panasonic), Samsung and Siemens.


2.2 Symbian OS devices

There have been a number of key Symbian OS devices shipped since 1998:


2.3 Symbian OS Developer Resources

Symbian's web site hosts a useful resource page holding information about Symbian OS SDKs for each of the platforms from Symbian OS v5 to Symbian OS v7.0. You can freely download both the Series 60 SDK and the UIQ SDK for Symbian OS v7.0 once you register with Nokia and Sony Ericsson respectively.

Symbian OS SDKs are designed for Windows only. However, those of you who are interested in developing Symbian OS software on Linux will be pleased to know that thanks to the gnupoc initiative, it is now possible to install and use these SDKs on your favourite development platform. Unfortunately, the Symbian OS tool chain still contains a small number of binaries which are not yet free software so gnupoc is currently forced to maintain an awkward unnecessary dependency on the wine Windows emulator. Hopefully, this situation will change once the handset manufacturers realise the benefits of having a viable Symbian OS development platform on Linux.

This HowTo does not cover gnupoc any further though it can be read as a useful companion for developers using gnupoc who wish to figure out how to get files on and off Symbian OS devices from their Linux PCs.



3. Infrared Connectivity

3.1 IrDA support on Symbian OS

The IrDA (Infrared Data Association) protocol specifications are available at IrDA's official web site. The IrDA protocol suite is well supported on Symbian OS. A core IrDA stack protocol module (irda.prt) provides socket access to the IrMUX and IrTinyTP protocols and also encapsulates the IrLAP link layer and the IAS query layer.

Most IrDA interoperability use cases revolve around two protocol layers called IrCOMM and IrOBEX built on top of the core IrDA protocols. IrCOMM specifies a virtual serial port emulation that can be used by a PPP connection to enable IP connectivity. IrOBEX is an object exchange (or "beaming") protocol closely related to HTTP that is the recommended way to transfer data between IrDA-compliant devices. IrOBEX is an important connectivity protocol since it has been reused as the basis of the Bluetooth generic object exchange profile (GOEP). Symbian OS has excellent IrCOMM and IrOBEX support. IrCOMM is supported through a core virtual serial port module (ircomm.csy). IrOBEX is supported through a client side library (obex.dll) that is also used for OBEX over Bluetooth use cases. Both modules lie above the core IrDA stack.


3.2 Linux IrDA installation and configuration

IrDA support is a standard part of the Linux 2.4 kernel series and many modern distributions offer support for the IrDA stack and IrCOMM serial port emulation. If you have built-in IrDA hardware then it's quite likely that it will be automatically picked up during a Linux distribution installation - this is certainly the case with Mandrake.

If you do not have Linux IrDA support enabled, you will need to rebuild your kernel to include it. The official Linux Infrared HowTo available here covers how to build IrDA and IrCOMM support into a Linux kernel. If you are not familiar with Linux kernel building, you should also read the Linux Kernel HowTo before attempting anything else. The key steps required to build IrDA support into a Linux kernel are outlined in the next subsection.

3.2.1 Building IrDA support into a Linux kernel

You can build IrDA support statically into a Linux kernel or in the form of kernel modules. You should opt for kernel module support unless you have a specific reason not to. Before you begin building your kernel, you need to su to root. Then you need to ensure that you have kernel sources available under /usr/src/linux. Now you can cd to this directory:

     
     cd /usr/src/linux

At this point you are ready to begin. For Mandrake kernels, you need to do a make mrproper if it is the first time you have built a kernel. Note that this call will remove any existing .config files:

     make mrproper

Now you can invoke make xconfig to fire up the X Kernel Configurator which gives you a graphical (X) interface to the contents of the .config file:

     make xconfig

Under this UI, you should see a button titled "IrDA (infrared) support". Selecting this will allow you to choose which IrDA kernel modules you want to build. On clicking the button you should see this dialog window:


Kernel Configurator: main IrDA options


In the above diagram, we have selected IrDA module support (m) in the kernel and we have elected for IrCOMM support only as IrLAN, IrNET and the IrDA Ultra protocol are not supported on Symbian OS. The IrDA device drivers should be selected through the embedded "Infrared-port device drivers" button which brings up this dialog window:


Kernel Configurator: IrDA driver options


In this case, we have selected modules for both native IrDA driver (irport) and serial driver (irtty) support for IrDA. It is a good idea to select both if you aren't sure how to access IrDA support on your PC. irtty support is required for all serial IrDA dongles. We have also selected driver modules for the popular Extended Systems Jeteye serial IrDA dongle and generic USB IrDA dongles. The latter is an example of a FIR (Fast InfraRed) driver module.

Once you've finished with the Kernel Configurator you can save your changes and proceed with building the kernel and corresponding IrDA modules using the following commands:

     make dep
     make clean
     make bzImage
     make modules
     make modules_install

At the end of this, the new kernel bzImageshould be in /usr/src/linux/arch/i386/boot and the corresponding kernel modules should be in /lib/modules/2.4.n where n is the version of the kernel you have. A uname -a will tell you what your current kernel is. Once you have built your kernel, you need to update /boot/grub/menu.lst if you are using the GRUB bootloader and /etc/lilo.conf if you are using LILO.

It's worth noting that the Kernel HowTo covers common problems that you might hit with Linux kernel building and installation.

3.2.2 IrDA kernel modules and serial dongles

Assuming you have IrDA support enabled in your kernel and the appropriate module has been built for your serial dongle, you are in a position to test that IrDA is working correctly. To do this, you first need to invoke lsmod as root to see whether you have the appropriate kernel modules loaded. If you have a Jeteye dongle, you should see the following in the list of currently loaded modules:

     Module                  Size  Used by    Not tainted
     esi                      928   1  (autoclean)
     irtty                   5920   2  (autoclean)
     irda                   90508   1  (autoclean) [esi irtty]

If these modules are not present, you could try loading them manually by invoking modprobe <module>. Here's an example showing how to load the esi and irda modules:

     modprobe esi irda
The kernel modules to be aware of for Jeteye serial dongle support are as follows:

Provided you can load the IrDA kernel modules, you should be able to start IrDA services using the irattach utility which comes as part of the irda-utils package described in more detail in section 3.2.4. Here is an example use of irattach from a working system enabling Jeteye dongle support on COM1 with discovery enabled:

     irattach /dev/ttyS0 -d esi -s1 

You can use irattach to establish the key configuration information you need and then use it to set up an IrDA config file which you should find here: /etc/sysconfig/irda
This config file needs to contain the right dongle (esi) and the right serial port used by the dongle (/dev/ttyS0 for COM1). Note that IrDA support seems to work only if discovery is set to "yes". Here's a /etc/sysconfig/irda corresponding to the earlier irattach command:

     IRDA=yes
     DEVICE=/dev/ttyS0
     DONGLE=esi
     DISCOVERY=yes

Now you can start IrDA services at any time as follows:

     /etc/init.d/irda start 

and stop them using:

     /etc/init.d/irda stop 

The /etc/init.d/irda script is a copy of the /etc/rc.d/init.d/irda system start up script so once you have correctly set up the /etc/sysconfig/irda config file, IrDA support will also be automatically enabled at boot time.

3.2.3 IrDA kernel modules and built-in infrared hardware

Setting up IrDA support with a serial dongle is relatively straightforward. If you need to set up built-in IrDA support on a laptop, then you may need to go into the laptop's BIOS to find out which physical serial port IrDA is configured to use. You may also need to enable SIR mode in BIOS and then use irattach to ensure that everything is working. Here is an example from a working config with IrDA support enabled on COM4:

     irattach /dev/ttyS3 -s 

Note that you do not need to pass in any dongle module. Other than that, the same kernel modules highlighted in the previous section (i.e., irtty.o, irda.o, ircomm.o and ircomm-tty.o) are used to provide built-in IrDA support.

FIR mode is also supported with some built-in IrDA ports but it depends on the particular chipset. More information on Linux FIR support is available here

3.2.4 User-side IrDA support: irda-utils

Linux IrDA support can be enhanced with the user side irda-utils package. Assuming you have built and tested the IrDA kernel modules OK, you can install irda-utils. The latest version is irda-utils-0.9.15.tar.gz which should work on 2.4.x and 2.5.x series kernels. It's available from Jean Tourrilhes site where you can also find a really useful Linux-IrDA quick tutorial.

Useful irda-utils programs include:

If IrDA support is correctly set up on Linux, the irdadump command should show trailing IrLAP discovery sequences every 2-3 seconds. Each sequence consists of 7 XID frames separated by approximately 90ms. The following log shows two discovery sequences:

     15:40:43.272951 xid:cmd cf8d16da > ffffffff S=6 s=0 (14) 
     15:40:43.362939 xid:cmd cf8d16da > ffffffff S=6 s=1 (14) 
     15:40:43.452928 xid:cmd cf8d16da > ffffffff S=6 s=2 (14) 
     15:40:43.542931 xid:cmd cf8d16da > ffffffff S=6 s=3 (14) 
     15:40:43.632933 xid:cmd cf8d16da > ffffffff S=6 s=4 (14) 
     15:40:43.722936 xid:cmd cf8d16da > ffffffff S=6 s=5 (14) 
     15:40:43.812930 xid:cmd cf8d16da > ffffffff S=6 s=* malm hint=0400 [ Computer ] (20) 
     15:40:46.272952 xid:cmd cf8d16da > ffffffff S=6 s=0 (14) 
     15:40:46.362940 xid:cmd cf8d16da > ffffffff S=6 s=1 (14) 
     15:40:46.452930 xid:cmd cf8d16da > ffffffff S=6 s=2 (14) 
     15:40:46.542929 xid:cmd cf8d16da > ffffffff S=6 s=3 (14) 
     15:40:46.632930 xid:cmd cf8d16da > ffffffff S=6 s=4 (14) 
     15:40:46.722937 xid:cmd cf8d16da > ffffffff S=6 s=5 (14) 
     15:40:46.812931 xid:cmd cf8d16da > ffffffff S=6 s=* malm hint=0400 [ Computer ] (20)
     ... 

Below is some irdadump output from a Nokia 7650 with Infrared enabled.

     15:30:16.272952 xid:cmd cf8d16da > ffffffff S=6 s=0 (14) 
     15:30:16.362934 xid:cmd cf8d16da > ffffffff S=6 s=1 (14) 
     15:30:16.452929 xid:cmd cf8d16da > ffffffff S=6 s=2 (14) 
     15:30:16.542933 xid:cmd cf8d16da > ffffffff S=6 s=3 (14) 
     15:30:16.542925 xid:rsp cf8d16da < 4ef47f8f S=6 s=2 Nokia 7650 hint=9225 [ PDA/Palmtop Modem Telephony IrCOMM IrOBEX ] (28) 
     15:30:16.632931 xid:cmd cf8d16da > ffffffff S=6 s=4 (14) 
     15:30:16.722956 xid:cmd cf8d16da > ffffffff S=6 s=5 (14) 
     15:30:16.812931 xid:cmd cf8d16da > ffffffff S=6 s=* malm hint=0400 [ Computer ] (20) 
     15:30:17.422925 xid:cmd ffffffff < 4ef47f8f S=1 s=0 (14) 
     15:30:17.422956 xid:rsp cf8d16da > 4ef47f8f S=1 s=0 malm hint=0400 [ Computer ] (20) 
     15:30:17.542925 xid:cmd ffffffff < 4ef47f8f S=1 s=* Nokia 7650 hint=9225 [ PDA/Palmtop Modem Telephony IrCOMM IrOBEX ] (28) 
     15:30:17.592925 snrm:cmd ca=fe pf=1 cf8d16da < 4ef47f8f new-ca=5c 
	     LAP QoS: Baud Rate=115200bps Max Turn Time=500ms Data Size=2048B Window Size=1 Add BOFS=0 Min Turn Time=1000us Link Disc=20s (32) 
     15:30:17.592967 ua:rsp ca=5c pf=1 cf8d16da > 4ef47f8f 
	     LAP QoS: Baud Rate=115200bps Max Turn Time=500ms Data Size=2048B Window Size=7 Add BOFS=0 Min Turn Time=10000us Link Disc=12s (31) 
     15:30:18.132933 rr:cmd < ca=5c pf=1 nr=0 (2) 
     15:30:18.132961 rr:rsp > ca=5c pf=1 nr=0 (2) 
     15:30:18.152929 i:cmd  < ca=5c pf=1 nr=0 ns=0 LM slsap=54 dlsap=00 CONN_CMD (6) 
     15:30:18.152969 i:rsp  > ca=5c pf=1 nr=1 ns=0 LM slsap=00 dlsap=54 CONN_RSP (6) 
     15:30:18.212928 rr:cmd < ca=5c pf=1 nr=1 (2) 
     15:30:18.212943 rr:rsp > ca=5c pf=1 nr=1 (2) 
     15:30:18.232933 i:cmd  < ca=5c pf=1 nr=1 ns=1 LM slsap=54 dlsap=00 GET_VALUE_BY_CLASS: "mRouter" "IrDA:TinyTP:LsapSel" (33) 
     15:30:18.232958 i:rsp  > ca=5c pf=1 nr=2 ns=1 LM slsap=00 dlsap=54 GET_VALUE_BY_CLASS: No such class (11) 
     15:30:18.292931 rr:cmd < ca=5c pf=1 nr=2 (2) 
     15:30:18.292954 rr:rsp > ca=5c pf=1 nr=2 (2) 
     15:30:18.312933 i:cmd  < ca=5c pf=1 nr=2 ns=2 LM slsap=54 dlsap=00 GET_VALUE_BY_CLASS: "IrDA:IrCOMM" "Parameters" (28) 
     15:30:18.312960 i:rsp  > ca=5c pf=1 nr=3 ns=2 LM slsap=00 dlsap=54 GET_VALUE_BY_CLASS: No such class (11) 
     15:30:18.372927 rr:cmd < ca=5c pf=1 nr=3 (2) 
     15:30:18.372943 rr:rsp > ca=5c pf=1 nr=3 (2) 
     15:30:18.392932 i:cmd  < ca=5c pf=1 nr=3 ns=3 LM slsap=54 dlsap=00 GET_VALUE_BY_CLASS: "IrModem" "IrDA:TinyTP:LsapSel" (33) 
     15:30:18.392952 i:rsp  > ca=5c pf=1 nr=4 ns=3 LM slsap=00 dlsap=54 GET_VALUE_BY_CLASS: No such class (11) 
     15:30:18.452927 rr:cmd < ca=5c pf=1 nr=4 (2) 
     15:30:18.452941 rr:rsp > ca=5c pf=1 nr=4 (2) 
     15:30:18.472932 i:cmd  < ca=5c pf=1 nr=4 ns=4 LM slsap=54 dlsap=00 GET_VALUE_BY_CLASS: "IrLPT" "IrDA:IrLMP:LsapSel" (30) 
     15:30:18.472955 i:rsp  > ca=5c pf=1 nr=5 ns=4 LM slsap=00 dlsap=54 GET_VALUE_BY_CLASS: No such class (11) 
     15:30:18.542928 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:18.542948 rr:rsp > ca=5c pf=1 nr=5 (2) 
     15:30:18.562929 i:cmd  < ca=5c pf=0 nr=5 ns=5 LM slsap=54 dlsap=00 DISC (6) 
     15:30:18.572932 i:cmd  < ca=5c pf=1 nr=5 ns=6 LM slsap=01 dlsap=02 CONN_CMD (6) 
     15:30:18.572950 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:18.632928 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:18.632943 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:18.702929 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:18.702947 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:18.762934 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:18.762963 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:19.012932 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:19.012956 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:19.302934 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:19.302965 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:19.652930 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:19.652950 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:20.042934 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:20.042965 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:20.492932 rr:cmd < ca=5c pf=1 nr=5 (2) 
     15:30:20.492955 rr:rsp > ca=5c pf=1 nr=7 (2) 
     15:30:20.992933 disc:cmd < ca=0x5c pf=1 (2) 
     15:30:20.992958 ua:rsp ca=5c pf=1 cf8d16da > 4ef47f8f (10) 
     15:30:22.272946 xid:cmd cf8d16da > ffffffff S=6 s=0 (14) 
     15:30:22.362931 xid:cmd cf8d16da > ffffffff S=6 s=1 (14) 
     15:30:22.452928 xid:cmd cf8d16da > ffffffff S=6 s=2 (14) 
     15:30:22.542931 xid:cmd cf8d16da > ffffffff S=6 s=3 (14) 
     15:30:22.632929 xid:cmd cf8d16da > ffffffff S=6 s=4 (14) 
     15:30:22.722932 xid:cmd cf8d16da > ffffffff S=6 s=5 (14) 
     15:30:22.812940 xid:cmd cf8d16da > ffffffff S=6 s=* malm hint=0400 [ Computer ] (20) 
     ...

Note that the 7650 attempts to connect to Linux and sends out a series of IrDA IAS service queries starting with one on mRouter. The mRouter query attempts to locate a remote mRouter service which is employed by the Windows Connectivity Suite software to provide a conduit for backup/restore and Contacts/Agenda synchronisation on the PC. PC Connectivity and mRouter are covered in greater detail in a separate section of this HowTo.

3.2.5 Installing IrOBEX support

OBEX support for Linux must be downloaded separately from the OpenOBEX site Two packages are required, openobex and openobex-apps - we used version 0.9.8. You need to ensure that you do a ./configure --prefix=/usr to get the openobex-0.9.8 libs in the right directory.


3.3 Infrared beaming between Linux and Symbian OS smartphone

Infrared beaming between Linux and Symbian OS uses IrOBEX. The type of data that can be beamed between the two platforms includes:

The ability to beam Contacts entries is useful if you want to transfer vCards between the platforms. The ability to beam files is useful if you want to use your Symbian OS smartphone to double up as a convenient file storage device. Don't expect much in the way of data interoperability, however, as Symbian OS data files are generally of proprietory format. The basics of beaming are covered in this section. Contacts and Agenda synchronisation are covered separately in the section 5 of this HowTo (PC Connectivity).

3.3.1 IrOBEX beaming from Symbian OS smartphone to Linux

The appropriate command to use for infrared beaming from Linux to a Symbian OS smartphone is somewhat ironically:

     irobex_palm3

Since no file is named, the program will wait for incoming data. All incoming files are stored in /tmp. Contacts and Agenda entries come over as .vcf and .vcs files and are beamed from these respective applications. In order to beam files, you will need to have a Symbian OS file browser present. The P800 has a built-in file browser but the 7650 does not. Dominique Hugo has written a comprehensive freeware 7650 file browser which you can download here. Alternatively, you can use the GPL forward application to inspect and selectively beam file attachments lying in the 7650 Messaging Inbox to Linux.

3.3.2 IrOBEX beaming from Linux to Symbian OS smartphone

The appropriate command to use for beaming a file from Linux is:

     irobex_palm3 <file>

This will transfer a vCard, vCalendar entry or a file to any Symbian OS device with Infrared enabled. Files appear in the Messaging Inbox and if they are recognised by Symbian OS they are imported into the relevant applications. This is the case for Contacts and Agenda with correctly formatted .vcf and .vcs files. The P800 has a file browser which allows you to locate beamed files. The 7650 has no file browser but files sitting as attachments in the Messaging Inbox can be taken off it using the forward application. In both cases, the Symbian OS device can be used for general purpose file storage.


3.4 Dialup networking from Linux using smartphone as infrared modem

It is straightforward to set up dial-up networking (DUN) over infrared from a Linux device acting as a terminal (DTE) to a Symbian OS smartphone acting as an infrared modem. In order to do so, it's worth gaining some familiarity with the Linux PPP daemon (pppd) and with dial-up chat scripts. The PPP HowTo and pppd man page are important resources in this regard.

In order to begin, you need to ensure that you have switched on IR modem functionality on the phone. On Symbian OS devices, this is generally enabled separately from general IR receive functionality and may only allow connection for a limited duration. On the 7650 you enable infrared modem using the Modem control applet under the main system Connectivity folder. On the P800 you enable infrared modem using the Infrared settings in the Control Panel. In both cases, IR modem functionality and general IrDA functionality (which includes PC Connectivity) are mutually exclusive because they both require the single Symbian OS IrCOMM port.

Once you've enable IR modem on your Symbian OS device, you need to ensure that you have set up your chat script correctly before attempting to connect as a PPP client over IrCOMM. Note that on Linux, IrCOMM support should be available on the /dev/ircomm0 virtual serial port. Assuming all this is in place and you have aligned your IrDA ports, invoking the following on Linux should establish a dial-up connection over infrared:

     pppd -d -detach call ppp0 /dev/ircomm0

Note that for pppd 2.4.1 the corresponding chat command that this invokes is held in /etc/ppp/peers/ppp0 which on Mandrake 8.2 consists of a single pppd option:

     connect "/usr/sbin/chat -f /etc/sysconfig/network-scripts/chat-ppp0"

This invokes the chat script /etc/sysconfig/network-scripts/chat-ppp0 which you will need to edit appropriately if you have never set it up before. In particular, you will need to fill in the relevant ISP specific details. Here is a basic version of this chat script that works for dial-up connection to Freeserve (a UK ISP) over GSM:

     ABORT 'BUSY'
     ABORT 'ERROR'
     ABORT 'NO CARRIER'
     ABORT 'NO DIALTONE'
     ABORT 'Invalid login'
     ABORT 'Login incorrect'
     ECHO OFF
     '' 'ATZ'
     SAY "Dialling Freeserve...\n"
     'OK' 'ATDT08450796699'
     TIMEOUT 30
     SAY "Waiting for connection\n'"
     CONNECT ''
     SAY "Connected to FreeServe, logging in...\n"
     ogin: <myusername>
     assword: <mypassword>
     TIMEOUT 50
     '~--' ''
     SAY "Successfully logged into FreeServe, starting pppd.\n"

It is also possible to establish a connection over GPRS for which you need to replace the dial string ATDT command with the following sequence in your chat script:

     '' AT*99***n#

where n corresponds to your GPRS profile (typically 1). You also need to remove the username and password strings.

3.5 Two box LAN access for smartphone over infrared using Linux

It is possible to set up Symbian OS devices to connect to a pppd server instance on Linux directly over IR via PPP. In order to do this, however, it is necessary to configure the relevant PPP settings on both your Symbian OS device and Linux.

In order to set up the Linux side of the link, you need to prepare pppd for incoming connections. There are some security issues here relating to the setuid root nature of pppd and you will need to su to root in order to proceed. You could make things work by changing the global pppd options file /etc/ppp/options but it's better to set up incoming pppd connections with separate pppd peer scripts. The pppd man pages cover this in some detail. First you need to create (as root) an appropriate file in /etc/ppp/peers (e.g., /etc/ppp/peers/incomingIrda) which contains information about the serial port for incoming pppd service plus information on link authentication, DNS and IP settings like this:

     noauth
     local
     modem
     proxyarp
     /dev/ircomm0
     ms-dns <mydnsserveripaddress >
     192.168.0.3:192.168.0.4
Then you can invoke pppd as follows:
     pppd -d -detach call incomingIrda

In order to set up the Symbian OS device, you will need to manipulate the CommDB (Comms Internet Database) on the Symbian OS device which holds information relating to phone and modem settings. It used to be possible to do this manually on the Psion 5 and Revo devices using the Modem control panel applet but this functionality has been obfuscated in Symbian OS 6.0 and beyond. For 7650 users, the GPL gnubox application should offer some pointers as to how you could proceed. Gnubox will turn your 1-box 7650 into a 2-box you can use with Linux and provides IP connectivity to your 7650 over infrared (and Bluetooth) through Linux. You will need to ensure that you switch on IP forwarding in order to get gnubox to work:

     echo "1" > /proc/sys/net/ipv4/ip_forward

Please note that at the time of writing, the gnubox application is of experimental status.

The advantage of 2-box operation is that it means you're able to get IP connectivity without paying a netop for the privilege. If you have ADSL, you'll get this additional IP connectivity for free with your 7650 connected through proxyarp as a capillary of the Internet:

                                                         192.168.0.x
      Nokia						 LAN segment
       7650						 (ethernet)
                                         IP forward
                                         + proxyarp          |
           |                              enabled           |
        ---                             -----------        |
       |   |                           |           |      |
       |   | <- - - - - - - - - - - -> | Linux box |------ 
       |   |         PPP link          |           |      | 
        ---                             -----------        | 
     192.168.0.7               192.168.0.8    192.168.0.2   |
                                                             | IP gateway
                                                               --------
                                                              | ADSL   |            
							      | router |======>  Internet
                                                              | + NAT  |            
							       --------
						       192.168.0.1

3.6 IrDA interoperability with older Symbian OS devices

There is good infrared interoperability between Linux and older Symbian OS devices, particularly the Psion Series 5mx and Revo. A very useful resource for all Linux-Psion interoperability issues is the existing Linux and Psion How To.

3.6.1 Support for infrared beaming

The Psion Series 5/5mx, Psion Revo and Psion Netbook all use a proprietory beaming protocol called eikirda for beaming. Support for this protocol was dropped after Symbian OS 5u in favour of the now standard IrOBEX protocol. However, support for the old eikirda protocol is provided on Linux in the form of the handy irpsion5 utility that comes as part of the Linux irda-utils package. irpsion5 can be used to rescue files stranded on an old Psion device. It also allows you to use the Psion device as a file storage facility.

3.6.2 Support for PC Connectivity over infrared

plptools.org.

3.6.3 Support for LAN access over IR

The older kit used to allow you to configure direct PPP connections over IR using the control panel "Internet" wizard. This functionality is still in place today but has been obscured in the smartphone-centric Symbian OS releases 6.1 and 7.0 leading to the requirement for tools like gnubox to open up the underlying support to users.

3.6.4 Other uses for IrCOMM

IrCOMM can be used to or PPP clients by invoking /dev/ircomm0
For example, minicom can be invoked and you can use it to talk to /dev/ircomm0. And also getty stuff. All handy for Series 5/5mx/Revo owners.



4. Bluetooth Connectivity

4.1 Bluetooth support on Symbian OS

The Bluetooth hardware and software specifications are only available to members of the Bluetooth Consortium at the Bluetooth SIG's official web site www.bluetooth.org. For users and developers wishing to gain a good understanding of the Bluetooth specification and architecture, Bluetooth Explained. is a handy resource. The Bluetooth specification goes one stage further than the IrDA specs in that it comprehensively covers both protocols and use cases. The key Bluetooth protocols are HCI for access to the Bluetooth radio (which operates in the 2.4GHz ISM band), L2CAP for basic data services, SDP for service discovery and RFComm for serial emulation. The Bluetooth use cases are formalised through the a collection of profiles such as the Serial Port Profile (SPP), the Dial-Up Networking Profile (DUNP) and the File Transfer Profile (FTP). The Bluetooth profiles build upon each other from the mandatory GAP (Generic Access Profile) which covers inquiry, connection, device pairing, data transfer and disconnection.

4.5.1 Bluetooth Protocol and Profile support on Symbian OS

The Bluetooth protocols and profiles are well supported on Symbian OS. A core Bluetooth stack protocol module (bt.prt) provides socket access to the L2CAP and RFComm protocols and also encapsulates HCI access. SDP and security are managed through separate APIs. Profiles are woven into the Symbian OS system architecture. For example, DUNP support requires the use of the TCPIP networking subsystem.

Symbian OS Bluetooth stack architecture


4.5.2 Bluetooth Profile support on Nokia 7650

The Nokia 7650 supports the following profiles: GAP, SPP, FAXP, DUNP, LANP, OPP, FTP. Below is a listing of the output of an SDP service record browse of a 7650. Note that DUNP and FTP are both supported on RFComm channel 1, SPP is supported on channel 2 and OPP and FTP are supported on RFComm channels 9 and 10 respectively.

     ==============================
     Service Name: Fax
     ------------------------------
     SvcRecHdl: 0x10000
     Service Class ID List:
       "Fax" (0x1111)
       "Generic Telephony" (0x1204)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 1
     Profile Descriptor List:
       "Fax" (0x1111)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: Dial-up Networking
     ------------------------------
     SvcRecHdl: 0x10001
     Service Class ID List: 
       "Dialup Networking" (0x1103)
       "Generic Networking" (0x1201)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 1
     Profile Descriptor List: 
       "Dialup Networking" (0x1103)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: OBEX Object Push
     ------------------------------
     SvcRecHdl: 0x10003
     Service Class ID List: 
       "Obex Object Push" (0x1105)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 9
       "OBEX" (0x0008)
     Profile Descriptor List: 
       "Obex Object Push" (0x1105)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: Bluetooth Serial Port
     ------------------------------
     SvcRecHdl: 0x10035
     Service Class ID List: 
       "Serial Port" (0x1101)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 2
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: OBEX File Transfer
     ------------------------------
     SvcRecHdl: 0x10039
     Service Class ID List: 
       "Obex File Transfer" (0x1106)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 10
       "OBEX" (0x0008)
     Profile Descriptor List: 
       "Obex File Transfer" (0x1106)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)

4.5.3 Bluetooth Profile support on Sony Ericsson P800

The P800 supports GAP, SPP, DUNP and OPP as well as the Bluetooth Headset Profile. Note that the Headset Profile uses audio routing hardware in the P800 to handle the audio stream. The Headset Profile is not supported on the 7650. Below is a corresponding listing of the output of an SDP service record browse of a P800:

     ==============================
     Service Name: Voice gateway
     Service Description: Voice gateway
     Service Provider: Sony Ericsson
     ------------------------------
     SvcRecHdl: 0x10000
     Service Class ID List: 
       "Headset Audio Gateway" (0x1112)
       "Generic Audio" (0x1203)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 8
     Profile Descriptor List: 
       "Headset" (0x1108)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: OBEX Object Push
     ------------------------------
     SvcRecHdl: 0x10001
     Service Class ID List: 
       "Obex Object Push" (0x1105)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 1
       "OBEX" (0x0008)
     Profile Descriptor List: 
       "Obex Object Push" (0x1105)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: Bluetooth Serial Port
     Service Description: Bluetooth Serial Port
     Service Provider: Symbian Ltd.
     ------------------------------
     SvcRecHdl: 0x10002
     Service Class ID List: 
       "Serial Port" (0x1101)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 2
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)
     ==============================
     Service Name: Dial-up Networking
     Service Description: Dial-up Networking
     Service Provider: Sony Ericsson
     ------------------------------
     SvcRecHdl: 0x10003
     Service Class ID List: 
       "Dialup Networking" (0x1103)
     Protocol Descriptor List: 
       "L2CAP" (0x0100)
       "RFCOMM" (0x0003)
         Port/Channel: 3
     Profile Descriptor List: 
       "Dialup Networking" (0x1103)
         Version: 0x0100
     Browse Group List: 
       "PublicBrowseGroup" (0x1002)

4.2 Linux Bluetooth installation and configuration

The official Linux Bluetooth stack is BlueZ (bluez.sourceforge.net). BlueZ consists of a number of kernel modules that provide basic Bluetooth stack support for the HCI and L2CAP layers of the Bluetooth protocol stack. User side daemons provide RFComm and SDP support. BlueZ is not well integrated with the OpenObex implementation which limits it's scope for interoperability with Symbian OS based smartphones. If you want good Bluetooth interop between Linux and Symbian OS you need to install Nokia's GPL Affix Bluetooth stack for Linux rather than BlueZ.

4.2.1 Uninstalling BlueZ

Note that if you previously installed BlueZ, you need to remove it and its accompanying user side utilities before you can install Affix. To remove user installed BlueZ user side utilities and libraries:

Now you just need to remove the BlueZ kernel modules and kernel source in order to . It's worth As BlueZ is the official Linux Bluetooth stack, it's quite possible that your distribution already installed various BlueZ specific kernel modules even if you didn't.

USB should now be working OK. Main module that interfaces hci with USB is hci_usb. With just the USB dongle plugged in, lsmod (as root) should show:

     bluez [hci_usb]
     usbcore [hci_usb usb-uhci]
     hci_usb
     usb-uhci (unused)

hci_uart.o, hci_usb.o, hci_vhci.o in /lib/modules/2.4.18/kernel/drivers/bluetooth and bluez.o, bnep.o, l2cap.o and sco.o in /lib/modules/2.4.18/kernel/net/bluetooth

Uninstalling the BlueZ drivers involves removing the relevant modules from /lib/modules and source from /usr/src/linux directories and comment out /etc/modules.conf entries for BlueZ. Also need to remove the Bluetooth USB driver.

Set up /etc/modules.conf:

     alias net-pf-31 hci
     alias bt-proto-0 l2cap
     alias bt-proto-2 sco 
     # for PCMCIA?? 
     alias tty-ldisc-15 hci_uart

Now do depmod -a to see.

If you want to, you can opt to rebuild kernel modules at this stage rather than manually delete the BlueZ modules in /lib/modules. The commands to do this (as root) are:

     make modules
     make modules_install

4.2.2 Affix Bluetooth kernel modules

In order to install the Affix Bluetooth stack, you need to install the affix-kernel modules first:

     make config
     make all
     make install

Provided everything works OK, you should see affix.o, affix_pan.o and affix_rfcomm.o go into /lib/modules/2.4.18/kernel/net/bluetooth and affix_uart.o and affix_usb.o go into /lib/modules/2.4.18/kernel/drivers/bluetooth.

To complete the installation you need to install the affix package itself which contains all the profile support. The ? package uses existing OpenObex implementation.

     ./configure
     make
     make install

You need to ensure that openobex-0.9.8 is installed or else the Affix installation will fail. It is needed for FTP and OPP support.

4.2.3 User side Bluetooth support: btctl and btsrv

btctl and btsrv are the two main user side utilities for controlling the Affix Bluetooth stack. btctl is used to manage all outgoing connections and btsrv to handle services for incoming connections. Below are a collection of ways of invoking btctl to illustrate the sort of things you can do with it. You should familiarise yourself with this powerful Bluetooth management tool.

To display status:

    
     btctl

To change name of device to "My Linux Box":

    
     btctl name "My Linux Box"

To discover Bluetooth devices (4 sec timeout):

     btctl discovery 4 

To list current devices:

 
     btctl list

To browse the SDP service records on device 3 in this list:

    
     btctl browse 3

To make discoverable and connectable (the default mode for Affix):

    
     btctl scan + conn

To set the PIN for device 3 to "1234":

     btctl addpin 3 1234

To connect to the remote Serial Port service running on device 1 in the list:

    
     btctl connect 1 SER

Invoking btctl status will give you the currently active lines (ie. RFComm connections). To disconnect line 0:

     btctl disconnect 0

To fire up incoming service handlers:

     btsrv --debug

<Discuss pairing and bonding at this point and how you can set up connection between your 7650 and Linux PC to come on without any authorisation being required each time. You will need to re-establish the bonding on reboot of Linux.>

<Discuss the GTK+ 1.2 graphical front end (afe) for btctl and btsrv.>

4.2.4 Logging support

Ethereal plugin: patch available from affix.sourceforge.net for ethereal-0.9.7. To apply patch:

     patch -i <patchfile>

in the ethereal-0.9.7 source directory.


4.3 Bluetooth beaming between Linux and Symbian OS smartphone

There are two Bluetooth beaming specific profiles, OPP and FTP. OPP is generally used to beam vCards and vCalendar entries via OBEX. FTP is used to beam files.

4.3.1 Bluetooth beaming from Symbian OS smartphone to Linux

Under Affix, both are supported through service handlers managed through btsrv. Pushed files go to ~/Inbox for users or /var/spool/affix for root. These files can be imported into the Evolution mail client but with the proviso that the vCards do not contain picture information. On the P800 you can additionally beam all your vCards in on embedded vCard which serves as a handy way of backing up the data. For incoming OBEX connections on Linux, you need to fire up the Affix OPP and FTP services. In order to do file beaming from the 7650, however, you need a file browser application as was highlighted in Section 3.3.1. You can download a comprehensive freeware 7650 file browser that supports Bluetooth beaming here. Effectively this means you get a view on the 7650's underlying file system as the file transfer is done using FTP. Alternatively, you can use the GPL forward application to inspect and selectively beam file attachments lying in the 7650 Messaging Inbox to Linux.

4.3.2 Bluetooth beaming from Linux to Symbian OS smartphone

The 7650 supports both FTP and OPP services. P800 only supports OPP. In order to send objects or files from Linux to these smartphones you use btctl ftp. To send object.vcf to device 1 in the discovered list:

     btctl ftp
     > push 1 object.vcf

Something?

4.4 Dialup networking from Linux using Symbian OS smartphone as Bluetooth modem

It is straightforward to set up DUN over Bluetooth from a Linux device acting as a DTE to a Symbian OS smartphone acting as a Bluetooth modem. First you need to use btctl to establish a connection to the DUN service running on the smartphone:

     btctl connect n DUN

where n is number of the Symbian OS device in the listing given by btctl list. If you have problems establishing a pairing between Linux and the smartphone, you should reset the PIN for the Symbian OS device as follows:

     btctl addpin n 1234

Again, replace n with the number for your device in btctl list. The PIN here has been set to "1234". Now when you try to btctl connect you will need to enter the PIN you added in the 7650 when prompted. To avoid the annoying additional "Accept connection request from <remote Linux PC>" prompt on the 7650 you can set your Linux box as authorised by going into the system Connectivity->Bluetooth->Paired Devices panel and selecting Options->Set as authorised. Now you will be able to automatically connect to DUN with the btctl connect n DUN command

Invoking btctl status at this point should show the active Bluetooth RFComm connection on /dev/bty0:

     Connected lines:
     line: 0 [/dev/bty0], bda: 00:02:ee:4d:8c:9f, channel: 1

It is possible to disconnect this connection at any stage as follows:

     btctl disconnect 0

Once you've established the DUN connection, you need to invoke pppd to run a chat script over the connection before you can connect as a PPP client over /dev/bty0. The following command will do this for you:

     pppd -d -detach call ppp0 /dev/bty0

Note that for pppd 2.4.1 the corresponding chat command that this invokes is held in /etc/ppp/peers/ppp0 and on Mandrake 8.2 this invokes the chat script /etc/sysconfig/network-scripts/chat-ppp0. Here is a basic version of this chat script that works for dial-up connection to Freeserve over GSM:

     ABORT 'BUSY'
     ABORT 'ERROR'
     ABORT 'NO CARRIER'
     ABORT 'NO DIALTONE'
     ABORT 'Invalid login'
     ABORT 'Login incorrect'
     ECHO OFF
     '' 'ATZ'
     SAY "Dialling Freeserve...\n"
     'OK' 'ATDT08450796699'
     TIMEOUT 30
     SAY "Waiting for connection\n'"
     CONNECT ''
     SAY "Connected to FreeServe, logging in...\n"
     ogin: <myusername>
     assword: <mypassword>
     TIMEOUT 50
     '~--' ''
     SAY "Successfully logged into FreeServe, starting pppd.\n"

It is also possible to establish a connection over GPRS for which you need to replace the dial string ATDT command with the following sequence in your chat script:

     '' AT*99***n#

where n corresponds to your GPRS profile context ID (typically 1). You also need to remove the username and password strings.

4.5 Two box LAN access for smartphone over Bluetooth using Linux

It is possible to set up Symbian OS devices to connect to a pppd instance on Linux directly over Bluetooth via PPP. In order to do this, however, it is necessary to configure the PPP settings on both your Symbian OS device and Linux.

In order to set up the Linux side of the link, you need to prepare pppd for incoming connections. There are some security issues here relating to the setuid root nature of pppd and you will need to su to root in order to proceed. You could make things work by changing the global pppd options file /etc/ppp/options but it's better to set up incoming pppd connections with separate pppd peer scripts. The pppd man pages cover this in some detail. First you need to create (as root) an appropriate file in /etc/ppp/peers (e.g., /etc/ppp/peers/myBluetooth7650) which contains information about the serial port for incoming pppd service plus information on link authentication, DNS and IP settings like this:

     noauth
     local
     modem
     proxyarp
     /dev/bty0
     ms-dns <mydnsserveripaddress>
     192.168.0.5:192.168.0.6
Then you can invoke pppd as follows:
     pppd -d -detach call myBluetooth7650

In order to set up the Symbian OS device, you will need to manipulate the CommDB (Internet settings database) on the Symbian OS device which holds information relating to phone and modem settings. Specifically you need to set an empty ISP dial string. This will force a direct PPP connection over the designated virtual serial port which for Bluetooth will correspond to BTCOMM::0 on Symbian OS. It used to be possible to do this manually on the Psion 5 and Revo devices using the Modem control panel applet but this functionality has been obfuscated in Symbian OS 6.0 and beyond. For 7650 users, the GPL gnubox application should offer some pointers as to how to proceed programatically. Gnubox will turn your 1-box 7650 into a 2-box you can use with Linux and provides IP connectivity to your 7650 over Bluetooth (and infrared) through Linux. Gnubox can be used to discover and set up the connection to your Linux LAN access point. You will need to ensure that you switch on IP forwarding in order to get gnubox to work:

     echo "1" > /proc/sys/net/ipv4/ip_forward

Please note that at the time of writing, the gnubox application is approaching beta...

The advantage of 2-box operation is that it means you're able to get IP connectivity without paying an ISP for the privilege. If you have ADSL, you'll get this additional IP connectivity for free with your 7650 is connected through proxyarp as a capillary of the Internet. This is an interesting use case since it constitutes an good example of piranha networking in operation. Furthermore, it is possible to adapt the gnubox utility to set up this connection to be automatically enabled once an authenticated and authorised Symbian OS smartphone comes within range of the Linux LAN access point. An interesting project would be to port a VOIP stack to the 7650 and then you might not need to spend any money on phone calls... What's more, you'd be able to access data and voice functionality simultaneously. This kind of "Bluetooth WLAN" setup could be particularly cost effective for SOHO environments with cheap ADSL connections.



5. PC Connectivity

5.1 PLP

For Symbian OS devices up to Symbian OS 6.1, PC Connectivity is based on the legacy Psion PLP protocol which provides basic peer to peer link connection between Symbian OS and Windows-based EPOC and Symbain Connectivity Suite software. The plptools initiative reverse-engineered this protocol and in the process generated some excellent protocol documentation. The plptools team also figured out the higher level backup/restore protocol that runs over the PLP link and put together a nice KDE utility for backing up Psion 5/5mx and Psion Revo devices over serial cable or infrared.

Apart from the plptools output, there is very little freely available material on the PLP-based PC Connectivity architecture and protocols. However, Symbian have hosted a useful introduction to the general architecture and functionality of the PC side software available here

5.2 mRouter

For Symbian OS 6.1, the PLP protocol has been deprecated in favour of a PPP based peer to peer connection architecture.

Discuss mRouter and the move away from PLPTools for 6.1 and 7.0.
Potential projects relating to synchronisation, backup/restore etc.

Once the mRouter connection is up, backup/restore is accessed through port 3002 and contacts synchronisation through port 3003. Details of the corresponding protocols are not currently available. If the specification for this protocol were to be more opened up, it would allow interested parties to integrate contacts synchronisation support into the Ximian Evolution Workgroup and Personal Information Manager.

5.3 Symbian OS Contacts and Agenda vCard and vCalendar formats

It is possible to import .vcf files from a Nokia 7650 into the Evolution mail client as long as they do not contain photos. Here is a full vCard (with thumbnail photo) beamed from a 7650 to Linux:

BEGIN:VCARD
VERSION:2.1
N:Brent;David
TEL;VOICE:01234567891
TEL;CELL:01234567891
EMAIL:d.brent@wernham-hogg.co.uk 
ADR:;;Slough Trading Estate;Slough;;;U.K.
TITLE:Office Manager
ORG:Wernham-Hogg
NOTE:This is not a real person
PHOTO;TYPE=JPEG;ENCODING=BASE64:
    /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEj
    JR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARES
    EhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
    Y2NjY2NjY2NjY2NjY2P/wAARCABgAFADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA
    AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
    MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6
    Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ
    mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
    8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
    AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
    YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
    anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
    xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp
    DScD2pe9Ia4iUG6qV7qcFop3MC3YCodX1FbOIqpy5HArkZJJbmQnlmJ+taRgrXew
    at2R0Q8RqT/q+KuWuswTj5iFI965qDSLqYZCkA1YGiXaDg4pt0yuRnWR3MUi7lcY
    +tSggjIOa4mb7XZjbJnb2Ird0DUftEPlSv8AMOBnrik4pq8XcTTT1NqjFFFZ7CEp
    rsEQsegGacajnXfC65xkYo6jORud2pakQDxnH4VtWmmwQKDtBaqWlwpbyytIwG04
    yautqVupCq4JNOpduy2NY2S03NGMhcAACnMRWXLeYUsp4HNZ41K4uJCqHYucZPWo
    imy3Se5tXdvHcQlHAORXLw5sdUABwobH4VtwsSQryE596ztbtfLlWVehqqbSlbuT
    KLSszq42DoGBzkZp9UNIcvYxlvSr2abVnYw6CdaRxlTjuKU0dqT3Gc4lqGmnWUng
    5x61UulhjYCNMsfQV0k0Cebv6Fhg+9VpLWLOSoGKHJ3udFNpKxV02AyWr+YOSOKp
    vpzmUgEj6VYudTFs3lxDAx1pLPUGlXfleDg0WlutLmqerT28y3ZWQjUM5OR60uox
    JNEFboDxUi3SzKMYpHUONpPBqG3e99SWm3r9xPprAQ7FGAvAq6KrWcQjjwDnPerO
    e1Wm3qzmnbmdthM0hpaTJoJGSIHGDWZqUrRoQvUitQ9KzNVXaASMgj9aLbGtNpSS
    ZyziS5YiXI2njFLCpgJKHd6jNWoo0ZZNzYJPWoIhBAxLSZrS/Q2ST1ZftLsMOm1h
    1FaMdwHwD3rmnukWctGeKvWd4HcDPeocOqKc4tWbOujAWMAelSZrOhvGcbY0BIHr
    UwmnH/LL9aFHQ429S1SE1G88affcD6mq0mp2ydZBxTUW9ibouEgDJwKztQmjeFlw
    SB1I7Vn3uuxE7UJKjrjvVCbxArRFPLAU8AetUoW1Y09SjqEjq528Ke9ZbOx6mrV1
    P5zEqTjriqDE5Jq/Ipu7JASaswzGDnPNQEgICPSoixY0kF7GzYaxLb3QkJyvQj2r
    oJvEluqDyhuYjp6VxK4Xkmnh8nOelDs9yWrs3ri9ZycuSaovI755PNP2DBJOAOpp
    iRSXsnlQD5R1Y1q2kiUio7Fm2x5JPenCylYgEYz2rS+xxW2FBy3c9qjmuFiBPVjw
    Ki19WVczJYyriJASxOMdSTSvbGAHzRhscCt3T7EQxG7uMbiM89hWLqFz9pnLDhRw
    KQymSW+lKAF60hIXIppOTzRYRJuz0pQwHFRZo3CiwAD/2Q==

END:VCARD

Here is a .vcs Agenda entry beamed over from a Nokia 7650:

BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
UID:5
DESCRIPTION:Office meeting with Gareth
DTSTART:20030107T090000
DTEND:20030107T090000
X-EPOCAGENDAENTRYTYPE:APPOINTMENT
CLASS:PRIVATE
DCREATED:20030107T000000
LAST-MODIFIED:20030107T181100
END:VEVENT
END:VCALENDAR

An interesting project would be put together a Perl script that can translate between Symbian OS vCard format and native Evolution vCard format.



6. Further information

6.1 Revisions

08/12/02 v0.1 Mal Minhas
  • Initial draft of HowTo
02/01/03 v0.2 Mal Minhas
  • First revision of draft
  • Addition of new information on kernel building
07/01/03 v0.3 Mal Minhas
  • Substantial addition of new material relating to infrared
  • Absorbed corrections from dmery
  • Added a table of contents

6.2 Glossary


6.3 Acknowledgements


6.4 References


6.5 Feedback

If you have any feedback or additional information particularly regarding interoperability issues with other Linux distributions, please mail me at: mal@symbianos.org.