Carbider | 07 December, 2007 15:57
I've spent some time to examine the Symbian's networking architecture.
Since the TCP/IP connection should be established over Bluetooth® the new entry to CommDB database should be entered.
This can be performed by CCommsDatabase class.
After user selects the PAN record, all TCP traffic should be encapsulated into BNEP packets and transmitted over wireless link.
Inside the application, the IAP (internet access point) is selected by RConnection class with RConnection::Start() or RConnection::Attach() methods.
This methods associate the connection with underlying interface.
But no documents can be found about creating those underlying interfaces.
In my mind that should be something like
device or DLL library.
I asked for help from expert on FN Discussion Boards. This method was recently introduced. And now wait with the impatience.
Carbider | 21 December, 2007 13:57
Continuing the last blog entry I can say it is impossible attach to an existing interface (with help of RConnection) in such a way that I can listen to all passing packets (or rather those sockets that I don’t own).
What is keeping me busy is creating Bluetooth® IAP (internet access point) after what I can get all the TCP/IP packets incoming to that IAP. As you read my blog I need this to transfer TCP packets over Bluetooth.
As I try to create BT IAP I mostly face with articles and forums related to distant 6th and 7th versions of Symbian.
Like this one.

Figure 1 – list of IAPs.
In Symbian_OS_Overview_To_Networking I’ve read that on Symbian OS there are Serial Protocol Modules (CSY) that are used to implement software serial port services. The Serial Protocol Module API (cs_port.h) allows developing new CSY modules.
Theoretically one can substitute the already existing BTCOMM.CSY with new module.
So current questions are:
And yes, have a nice Holidays!
Carbider | 10 January, 2008 14:55
So yes.
I've stand on the way of creating my own CSY module.
It is some kind of a reckless scheme for me. I have no any assurance it will help me in my researches. Furthermore, the web-search on "create custom CSY module" brings me back to my own blog post about serial protocols. Cool.
I call this adventure as a crazy attempt because it demands to throw together a lot of components without strong hope it will bring to essential result.
But the rays of hope are:
1. When creating new IAP, one of the Data Base fields is: "MODEM_CSY_NAME".
Some previous adventurers used it to set as "BTCOMM". Hmm good.
2. It is possible to create new serial modules. How? The search returns me back to my posts. The discussion boards speak only about connecting to modules.
3. There is a framework on Symbian OS called "Ecom". Ecom provides interaction between clients and polymorphic DLLs, which CSY modules, at my sight, are.
The Ecom's (symbian.com/../v9.2docs/../EcomArch) so-called plug-ins are polymorphic DLLs. Those DLLs provide the interface, the implementation and the factory functions (which instantiate concrete classes).
As it is said here, Serial protocol modules also have Service providers (interface implementations), Protocol Factories (that are called to instantiate serial service provider) as well.
Looks pretty familiar to understand the serial modules are finally polymorphic DLLs too.
Thus let’s try to accommodate my own DLL instead of BTCOMM.CSY.
By these conditions I've imported the Ecom example from SDK to launch and explore.
The example is situated in SDK folder:
/Symbian/9.2/S60_3rd_FP1/Examples/SysLibs/ECom/
and has 3 sub-folders:
-» InterfaceClient
-» InterfaceDefinition
-» InterfaceImplementation
After unsuccessful build I’ve noticed the given project depends on extra sources at the 'examples' folder.
It was 'CommonFramework' situated at '/Symbian/9.2/S60_3rd_FP1/Examples/'.
So I’ve copied entire 'CommonFramework' inside ‘Ecom’ and modified some paths.
In '/InterfaceClient/InterfaceClient.mmp'
USERINCLUDE ../..CommonFramework
to
USERINCLUDE ../CommonFramework
The familiar change at file: 'Ecom/.cdtproject'
So to be exact with my creepy idea we need:
-» Create new IAP,
-» Go to CommDB database and change this IAP record field 'MODEM_CSY_NAME' to newly-fledged polymorphic DLL.
-» See if there is any way DLL can be launched after user picks hackneyed IAP.
-» Maybe to rename DLL to CSY as well.
-» Of course, the final goal is that DLL to start working as serial module plug-in.
Besides there is work to divine the appropriate entry point to serial module DLL.
Meanwhile the project was built successfully and I've got two DLLs as a result.
The 'ExampleResolver.dll' and the 'EComExample.dll'.
As expected, they are not extension ".csy" provided.
The 'ExampleResolver.dll' is an Interface Definition.
The 'EComExample.dll' is an Interface Implementation.
Putting their names to CommDB records didn’t bring any results.
Even giving them 'csy' extension wouldn't help.
Being on this stage I'm still wondering if anybody knows:
1. How to write a proper CSY module.
2. How to create a Bluetooth Access Point. Which tables and rows of CommDB should be affected for this purpose.
I'll appreciate any comments on this subjects.
Konstantine Voytenko
BluSPAN project coordinator
Fishnest Ltd.
bluspan@gmail.com