<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="http://blogs.forum.nokia.com/styles/rss.css" type="text/css"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns="http://purl.org/rss/1.0/"
>
 <channel rdf:about="http://blogs.forum.nokia.com/rss.php?blogId=107609&amp;profile=rss10">
  <title>Open Source Bluetooth PAN&#039;s Forum Nokia Blog</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog</link>
  <description>A Forum Nokia Blog</description>
    <dc:creator>Carbider</dc:creator>
  <dc:date>2009-11-23T22:12:58Z</dc:date>
  <admin:generatorAgent rdf:resource="http://www.lifetype.net" />
  <items>
   <rdf:Seq>
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2009/01/20/symbian-descriptors-and-unicode" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/05/28/pan-service-advertise" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/01/23/reset-s60-3rd-emulator-defaults" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/01/10/attempt-to-create-a-csy-module" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/12/21/serial-protocol-modules" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/12/07/symbian-networking-interface" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/11/19/accomplish-ssl-connection-from-s60v3" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/10/22/bluetooth-driver-for-s60-sdk" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/09/18/the-battle-for-bluez" />
       <rdf:li rdf:resource="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/08/20/bluspan-project-starts" />
      </rdf:Seq>
  </items> 
 </channel>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2009/01/20/symbian-descriptors-and-unicode">
  <title>Symbian, Descriptors and Unicode</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2009/01/20/symbian-descriptors-and-unicode</link>
  <dc:description>&amp;nbsp;&amp;nbsp;&amp;nbsp; While programming Bluetooth data transmission routines I&#039;ve come across an encoding issue at Symbian. The task was to send and receive Unicode strings encoded in UTF-16. The data was moved by &lt;span style=&quot;color: #ff8300&quot;&gt;RSocket&lt;/span&gt; class.&lt;br /&gt;
&lt;br /&gt;
The thing is, the &lt;span style=&quot;color: #ff8300&quot;&gt;RSocket&lt;/span&gt;&#039;s read and write methods are taking the 8 bit descriptors only (representing the binary data), so we need to convert the 8 bit descriptors to 16 bit and vice versa.&amp;nbsp;&lt;br /&gt;
For example, we need to receive some UTF-16 string in Russian language from the server and display it on screen.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Converting_Descriptors&quot; target=&quot;_blank&quot;&gt;Some documents here&lt;/a&gt;
suggest several solutions on converting descriptors, but they don&#039;t work as needed. Let me explain why.&lt;br /&gt;
&lt;br /&gt;
The two common methods of conversion are:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1.&lt;/strong&gt; To use &lt;span style=&quot;color: #ff8300&quot;&gt;Copy()&lt;/span&gt; method of first the descriptor to copy contents of the second one.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-left: 20px; border: 1px solid #9EBBFF; background-color: #F7FCFF&quot;&gt;
&lt;pre&gt;
RBuf8  buf8     ;
RBuf16 buf16    ;
&lt;br /&gt;
buf16.Copy(buf8);
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
As a result, the contents of &lt;span style=&quot;color: #ff8300&quot;&gt;buf8&lt;/span&gt; descriptor would not be simply copied to &lt;span style=&quot;color: #ff8300&quot;&gt;buf16&lt;/span&gt;, but each character would be expanded to 16 bits.&lt;br /&gt;
So the string &amp;ldquo;&lt;span style=&quot;color: #ff8300&quot;&gt;Hello&lt;/span&gt;&amp;rdquo; would become something like &amp;ldquo;&lt;span style=&quot;color: #ff8300&quot;&gt;_H_E_L_L_O&lt;/span&gt;&amp;rdquo; after expanding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://blogs.forum.nokia.com/data/blogs/resources/107609/post_022_i01_descriptor_copy_contents.jpg&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;strong&gt;Image 1&lt;/strong&gt; &amp;ndash; Example of how the &lt;span style=&quot;color: #ff8300&quot;&gt;Copy()&lt;/span&gt; method works, and what we actually need.&lt;br /&gt;
&lt;/center&gt;
&lt;br /&gt;
On the contrary, when converting the 16 bit descriptor to an 8 bit descriptor, the contents of the first would be collapsed.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
That is a behavior of &lt;span style=&quot;color: #ff8300&quot;&gt;Copy()&lt;/span&gt; method.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2.&lt;/strong&gt; The second method is to use a &lt;span style=&quot;color: #ff8300&quot;&gt;CnvUtfConverter&lt;/span&gt; class provided in Symbian.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-left: 20px; border: 1px solid #9EBBFF; background-color: #F7FCFF&quot;&gt;
&lt;pre&gt;
HBufC8 *heap8;
HBufC  *heap16 = &lt;span style=&quot;color: #ff8300&quot;&gt;CnvUtfConverter&lt;/span&gt;::ConvertToUnicodeFromUtf8L(*heap8);
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
This method will convert between the Unicode and UTF-8. That is again is not what I needed. What I need is the conversion between the descriptor classes themselves but not transforming their contents, that should stay without any change.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Solving&lt;/strong&gt;
&lt;br /&gt;
&lt;br /&gt;
So to read the Unicode string presented in binary format from socket and display it on screen, we need to convert the descriptor&#039;s body (8 bit descriptor to 16 bit descriptor) but not the descriptor&#039;s contents.&lt;br /&gt;
&lt;br /&gt;
Here is a method on how can it be done.&lt;br /&gt;
To pass the descriptor&#039;s contents from the descriptor of one type to another, we have to copy contents somehow. I chose the &lt;span style=&quot;color: #ff8300&quot;&gt;memcpy()&lt;/span&gt; function. If you find a better (or safer) way, please submit it here.&amp;nbsp;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
Copy the contents of 8 bit descriptor to the 16 bit one.&lt;br /&gt;
(without memory allocation routines)
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-left: 20px; border: 1px solid #9EBBFF; background-color: #F7FCFF&quot;&gt;
&lt;pre&gt;
TBuf8       sourceBuf8        ;
TBuf16      destBuf16         ;
&lt;br /&gt;
TInt len = sourceBuf8.Length();
&lt;br /&gt;
aOutDest.FillZ(len/2         ); &lt;span style=&quot;color: #808080&quot;&gt;// necessary to set the size&lt;/span&gt;
memcpy((TAny *)destBuf16.Ptr(), (TAny *)sourceBuf8.Ptr(), len);
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works smoothly for S60 3rd FP1, both emulator and Nokia E90 device.&lt;br /&gt;
&lt;br /&gt;
I wrote the &lt;span style=&quot;color: #ff8300&quot;&gt;CBinaryConverter&lt;/span&gt; class that has two methods, doing these operations. It is attached to this post.&lt;br /&gt;
&lt;br /&gt;
Example of using  &lt;span style=&quot;color: #ff8300&quot;&gt;CBinaryConverter&lt;/span&gt; class:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-left: 20px; border: 1px solid #9EBBFF; background-color: #F7FCFF&quot;&gt;
&lt;pre&gt;
RBuf8 source                      ;
RBuf   dest                       ;  &lt;span style=&quot;color: #808080&quot;&gt;// the same as Rbuf16&lt;/span&gt;
TInt destLength                   ;
source.Create(100                );
&lt;br /&gt;
&lt;span style=&quot;color: #808080&quot;&gt;// Receive the 8 bit descriptor from socket that contains 16 bit data&lt;/span&gt;
iActiveSocket-&amp;gt;RecvOneOrMore(source, 0, iStatus, iLen ); 
&lt;br /&gt;
destLength = source.Length() / 2  ;  &lt;span style=&quot;color: #808080&quot;&gt;// 16 bit chars instead of 8 bit&lt;/span&gt;
&lt;br /&gt;
dest.CleanupClosePushL()          ;  &lt;span style=&quot;color: #808080&quot;&gt;// to  Cleanup Stack&lt;/span&gt;
dest.Create( destLength          );
&lt;br /&gt;
&lt;span style=&quot;color: #808080&quot;&gt;//Conversion&lt;/span&gt;
&lt;strong&gt;CBinaryConverter::copy8BitInto16BitDescriptorL(source, dest  );&lt;/strong&gt; 
&lt;br /&gt;
&lt;span style=&quot;color: #808080&quot;&gt;// Show the note&lt;/span&gt;
CAknInformationNote *iInfNote     ;
iInfNote = new (ELeave) CAknInformationNote();
iInfNote-&amp;gt;ExecuteLD(dest         );
&lt;br /&gt;
CleanupStack::PopAndDestroy(&amp;amp;dest); &lt;span style=&quot;color: #808080&quot;&gt;// Pop RBuf from the Cleanup Stack&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Screenshot of the application, that controls Juke Box holding songs in English and Russian languages over Bluetooth:&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;img src=&quot;http://blogs.forum.nokia.com/data/blogs/resources/107609/post_022_i02_baklushi_remote_control_jukebox.jpg&quot; border=&quot;0&quot; /&gt;
&lt;/center&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Download the source code&lt;/strong&gt;
&lt;br /&gt;
&lt;br /&gt;
Download zip package:
&lt;br /&gt;
&lt;a href=&quot;http://blogs.forum.nokia.com/data/blogs/resources/107609/BinaryConverter_class.zip&quot; target=&quot;_blank&quot;&gt;BinaryConverter_class.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
Or view directly:
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;float: left; padding: 5px&quot;&gt;
&lt;div style=&quot;border: 1px solid gray; text-align: center&quot;&gt;
&lt;strong&gt;BinaryConverter.cpp&lt;/strong&gt;
&lt;/div&gt;
&lt;div style=&quot;border: 1px solid gray; text-align: center&quot;&gt;
&lt;a href=&quot;http://blogs.forum.nokia.com/data/blogs/resources/107609/post_22_a02_view_class_BinaryConverter_cpp.txt&quot; target=&quot;_blank&quot;&gt;view&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;float: left; padding: 5px&quot;&gt;
&lt;div style=&quot;border: 1px solid gray; text-align: center&quot;&gt;
&lt;strong&gt;BinaryConverter.h&lt;/strong&gt;
&lt;/div&gt;
&lt;div style=&quot;border: 1px solid gray; text-align: center&quot;&gt;
&lt;a href=&quot;http://blogs.forum.nokia.com/data/blogs/resources/107609/post_22_a01_view_class_BinaryConverter_h.txt&quot; target=&quot;_blank&quot;&gt;view&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--
&lt;br /&gt;
Cheers
&lt;br /&gt;
Konstantine
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
     
    
  <dc:date>2009-01-20T11:41:47Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/05/28/pan-service-advertise">
  <title>PAN service advertise</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/05/28/pan-service-advertise</link>
  <dc:description>&lt;br /&gt;
&lt;p&gt;
It is interesting the PAN (Bluetooth Personal Area Networking) profile is listed at Symbian 9.2 abilities.&lt;br /&gt;
The PAN overview is here:&lt;br /&gt;
&lt;a href=&quot;http://www.symbian.com/developer/techlib/v9.2docs/doc_source/guide/Bluetooth-subsystem-guide/Bluetooth/ShortLinkServices/ShortLink/BluetoothProfiles/BluetoothPAN/BTPANProfileOverview.html&quot; target=&quot;_blank&quot;&gt;...symbian.com/developer/techlib/v9.2docs/...&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
And a small API mention is here:&lt;br /&gt;
&lt;a href=&quot;http://www.symbian.com/developer/techlib/v9.2docs/doc_source/reference/reference-cpp/BLUETOOTH_PAN/index.html&quot; target=&quot;_blank&quot;&gt;...symbian.com/developer/techlib/v9.2docs/...&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Despite the fact that there is no completely ready PAN API in S60 3rd there are some type definitions and constants related to the deal. They are defined at &lt;strong&gt;&lt;em&gt;btsdp.h&lt;/em&gt;&lt;/strong&gt; header file here:&lt;br /&gt;
&lt;a href=&quot;http://www.symbian.com/developer/techlib/v9.2docs/doc_source/reference/reference-cpp/BLUETOOTH_SDP/btsdp.hVariables.html&quot; target=&quot;_blank&quot;&gt;...symbian.com/developer/techlib/v9.2docs/...&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here are some constants that seem to be tempting for my Bluetooth inquisitive mind: 
&lt;/p&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
Listing - 1 
&lt;/div&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
/** PAN Service Class UUID */&lt;br /&gt;
static const TInt KPanUUUID = 0x1115;&lt;br /&gt;
/** PAN NAP Service Class UUID */&lt;br /&gt;
static const TInt KPanNapUUID = 0x1116;&lt;br /&gt;
/** PAN GN Service Class UUID */&lt;br /&gt;
static const TInt KPanGnUUID = 0x1117; 
&lt;/div&gt;
&lt;p&gt;
&lt;br /&gt;
These values represent identifiers of Bluetooth(c) services that could be advertised by device. 
&lt;/p&gt;
&lt;p&gt;
There is a Chat example that advertises the Serial Port service. I decided to try one&#039;s luck with PAN. 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;const TInt KServiceClass = 0x1101;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; SerialPort&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
Chat example supplies the service&#039;s identifier constant by returning this value from function below: 
&lt;/p&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
Listing - 2 
&lt;/div&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
TInt CChatServiceAdvertiser::ServiceClass()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return KServiceClass;&lt;br /&gt;
} 
&lt;/div&gt;
&lt;p&gt;
The &lt;em&gt;KServiceClass&lt;/em&gt; constant is assigned to &#039;&lt;em&gt;0x1101&lt;/em&gt;&#039; by default. I&#039;ve changed the function to this manner: 
&lt;/p&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
Listing - 3 
&lt;/div&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
TInt CChatServiceAdvertiser::ServiceClass(TInt aAttemptNumber)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; switch(aAttemptNumber) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;case 0 : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0x1115; // PAN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;case 1 : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0x1116; // PAN NAP&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;case 2 : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0x1117; // PAN GN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
} 
&lt;/div&gt;
&lt;p&gt;
&lt;br /&gt;
This gives me a possibility to supply the &lt;em&gt;AttemptNumber&lt;/em&gt; parameter to the function - so to test all 3 service classes by turns. 
&lt;/p&gt;
&lt;p&gt;
In the similar manner I had rewritten the function that returns the service&#039;s symbolic name. 
&lt;/p&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
Listing - 4 
&lt;/div&gt;
&lt;div style=&quot;border: black 1px solid&quot;&gt;
const TDesC&amp;amp; CChatServiceAdvertiser::ServiceName(TInt aAttemptNumber)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;switch(aAttemptNumber) {&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;case 0 : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return _L(&amp;quot;PAN&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&amp;nbsp; //&amp;nbsp; PAN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;case 1 : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return _L(&amp;quot;PAN NAP&amp;quot;);&amp;nbsp; //&amp;nbsp; PAN NAP&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;case 2 : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return _L(&amp;quot;PAN GN&amp;quot; );&amp;nbsp; //&amp;nbsp; PAN GN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
} 
&lt;/div&gt;
&lt;p&gt;
Each time I&#039;ve started the chat server I&amp;rsquo;ve outputted the qualifying message in this way: 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;iLog.LogL( _L(&amp;quot;Attempt#&amp;quot;), iAttemptNumber );&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
After building the application under &lt;strong&gt;Phone release (GCCE)&lt;/strong&gt; I had signed it myself and sent to my device.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Wiki_Contributor_of_the_Month&quot; target=&quot;_blank&quot;&gt;As a Contributor of the Month&lt;/a&gt; I have got one. It&#039;s a &lt;strong&gt;Nokia N95 8GB&lt;/strong&gt;.&lt;br /&gt;
With that one I can test a lot. It really helps in development. And also that multimedia computer is cool one ;) 
&lt;/p&gt;
&lt;p&gt;
Then I started the app on the phone and turned on the PAN search service on the WinXP SP2 machine.&lt;br /&gt;
However after all three service classes were advertised one by one, the XP machine did not detect any. 
&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
     
    
  <dc:date>2008-05-28T14:47:37Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/01/23/reset-s60-3rd-emulator-defaults">
  <title>Reset S60-3rd emulator defaults</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/01/23/reset-s60-3rd-emulator-defaults</link>
  <dc:description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;While pushing more and more Internet Access Points on the emulator, the CommDB database appeared to malfunction.&lt;/p&gt;&lt;p&gt;First of all, when deleted temporary IAP, some others have disappeared too.&lt;br /&gt;Next, when creating new entry, those which were gone can suddenly appear.&lt;br /&gt;In conclusion, after system attempts to retrieve connection data, it returns &amp;ldquo;General error -19&amp;rdquo; and &amp;ldquo;General error -20&amp;rdquo;&lt;/p&gt;&lt;p&gt;Undoubtedly the reason was in wrong DB&amp;rsquo;s records manipulation. During debug, some tables could be filled in, while the rest are untouched if the debug is stopped.&lt;/p&gt;&lt;p&gt;While searching for a method to reset the CommDB on emulator I&amp;rsquo;ve looked through an amount of posts and articles: &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://symbian-freak.com/forum/viewtopic.php?t=6400&amp;amp;start=30&quot;&gt;symbian-freak.com/...&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://newlc.com/topic-7653&quot;&gt;newlc.com/topic-7653&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.sonyericsson.com/thread.jspa?&amp;amp;threadID=2991&amp;amp;start=0&quot;&gt;developer.sonyericsson.com/...&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://discussion.forum.nokia.com/forum/showthread.php?t=117443&quot;&gt;discussion.forum.nokia.com/...&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.simplysymbian.com/2007/05/22/how-to-improve-the-nokia-n95-memory-issue/&quot;&gt;simplysymbian.com/...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;One can reset a real phone softly by combination: #*7870#&lt;br /&gt;And hardly (full) by combination: #*7370#&lt;br /&gt;Also one can go to main menu, select settings, general, factory settings.&lt;/p&gt;&lt;p&gt;After all this methods fail to function at win emulator, I was ready (with a heavy heart) to reinstall the SDK.&lt;/p&gt;&lt;p&gt;Mine is S60 3rd FP1 (Symbian 9.2).&lt;/p&gt;&lt;p&gt;But fortunately I&amp;rsquo;ve remembered that I have a backup copy of &amp;ldquo;Epoc32&amp;rdquo; folder stored when migrated from one machine to another. From one of the articles above I&amp;rsquo;ve learned that someone have installed the SDK to a different folder, then replaced old &amp;ldquo;Ecpoc32&amp;rdquo; with the fresh one.&lt;/p&gt;&lt;p&gt;So did I with backup&amp;rsquo;ed one. &lt;/p&gt;&lt;p&gt;With a sinking heart I was waiting while the emulator is starting again. After that I&amp;rsquo;ve unexpectedly found out former &amp;ldquo;cold&amp;rdquo; blue theme.&lt;br /&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_020_i01_themes.gif&quot; border=&quot;0&quot; width=&quot;299&quot; height=&quot;206&quot; /&gt;&lt;br /&gt;That was good. Emulator can start.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;All previously installed apps were not there. But CommDB database works fine now and the whole behavior is quite adequate.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Testing</dc:subject>
     
    
  <dc:date>2008-01-23T10:35:42Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/01/10/attempt-to-create-a-csy-module">
  <title>Attempt to create a CSY module</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2008/01/10/attempt-to-create-a-csy-module</link>
  <dc:description>&lt;p&gt;So yes.&lt;br /&gt;I&amp;#39;ve stand on the way of creating my own &lt;a href=&quot;http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/testing/2007/12/21/serial-protocol-modules&quot;&gt;CSY&lt;/a&gt; module.&lt;/p&gt;&lt;p&gt;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 &amp;quot;create custom CSY module&amp;quot; brings me back to my own blog post about serial protocols. Cool.&lt;br /&gt;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.&lt;/p&gt;&lt;p&gt;But the rays of hope are:&lt;/p&gt;&lt;p&gt;1. When creating new IAP, one of the Data Base fields is: &amp;quot;&lt;em&gt;MODEM_CSY_NAME&lt;/em&gt;&amp;quot;.&lt;br /&gt;Some previous adventurers used it to set as &amp;quot;BTCOMM&amp;quot;. Hmm good.&lt;br /&gt;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.&lt;br /&gt;3. There is a framework on Symbian OS called &amp;quot;&lt;strong&gt;Ecom&lt;/strong&gt;&amp;quot;. Ecom provides interaction between clients and polymorphic DLLs, which CSY modules, at my sight, are.&lt;/p&gt;&lt;p&gt;The Ecom&amp;#39;s (&lt;a href=&quot;http://www.symbian.com/developer/techlib/v9.2docs/doc_source/guide/System-libraries-subsystem-guide/ecom/EcomArchitecture/index.html&quot; target=&quot;_blank&quot; title=&quot;http://www.symbian.com/../v9.2docs/../EcomArch&quot;&gt;symbian.com/../v9.2docs/../EcomArch&lt;/a&gt;) so-called plug-ins are polymorphic DLLs. Those DLLs provide &lt;span style=&quot;color: #99cc00&quot;&gt;&lt;strong&gt;the interface&lt;/strong&gt;&lt;/span&gt;, &lt;span style=&quot;color: #ffcc00&quot;&gt;&lt;span style=&quot;color: #666699&quot;&gt;&lt;strong&gt;the implementation&lt;/strong&gt;&lt;/span&gt; &lt;/span&gt;and&amp;nbsp;&lt;span style=&quot;color: #800000&quot;&gt;&lt;strong&gt;the factory&lt;/strong&gt;&lt;/span&gt; functions (which instantiate concrete classes).&lt;/p&gt;&lt;p&gt;As it is said &lt;a href=&quot;http://www.forum.nokia.com/info/sw.nokia.com/id/c4536832-3dd0-45af-94be-1c4289cc3003/Symbian_OS_Overview_To_Networking_v1_0_en.pdf.html&quot;&gt;here&lt;/a&gt;, Serial protocol modules also have Service providers (interface &lt;span style=&quot;color: #333399&quot;&gt;&lt;strong&gt;implementations&lt;/strong&gt;&lt;/span&gt;), Protocol &lt;span style=&quot;color: #800000&quot;&gt;&lt;strong&gt;Factories&lt;/strong&gt;&lt;/span&gt; (that are called to instantiate serial service provider) as well.&lt;/p&gt;&lt;p&gt;Looks pretty familiar to understand the serial modules are finally polymorphic DLLs too.&lt;/p&gt;&lt;p&gt;Thus let&amp;rsquo;s try to accommodate my own DLL instead of &lt;strong&gt;BTCOMM.CSY&lt;/strong&gt;.&lt;br /&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_019_i01_mydll.gif&quot; border=&quot;0&quot; width=&quot;571&quot; height=&quot;188&quot; /&gt;&lt;/p&gt;&lt;p&gt;By these conditions I&amp;#39;ve imported the Ecom example from SDK to launch and explore.&lt;br /&gt;The example is situated in SDK folder:&lt;br /&gt;&lt;em&gt;/Symbian/9.2/S60_3rd_FP1/Examples/SysLibs/ECom/&lt;/em&gt;&lt;/p&gt;&lt;p&gt;and has 3 sub-folders:&lt;br /&gt;-&amp;raquo;&amp;nbsp;&lt;em&gt;InterfaceClient&lt;/em&gt;&lt;br /&gt;-&amp;raquo;&amp;nbsp;&lt;em&gt;InterfaceDefinition&lt;/em&gt;&lt;br /&gt;-&amp;raquo;&amp;nbsp;&lt;em&gt;InterfaceImplementation&lt;/em&gt;&lt;/p&gt;&lt;p&gt;After unsuccessful build I&amp;rsquo;ve noticed the given project depends on extra sources at the &amp;#39;examples&amp;#39; folder. &lt;br /&gt;It was &amp;#39;&lt;em&gt;CommonFramework&lt;/em&gt;&amp;#39; situated at &lt;em&gt;&amp;#39;/Symbian/9.2/S60_3rd_FP1/Examples/&amp;#39;&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;So I&amp;rsquo;ve copied entire &amp;#39;&lt;em&gt;CommonFramework&lt;/em&gt;&amp;#39; inside &amp;lsquo;&lt;em&gt;Ecom&amp;rsquo;&lt;/em&gt; and modified some paths.&lt;/p&gt;&lt;p&gt;In &lt;u&gt;&amp;#39;/InterfaceClient/InterfaceClient.mmp&amp;#39;&lt;/u&gt; &lt;br /&gt;&lt;em&gt;USERINCLUDE&amp;nbsp;&amp;nbsp; ../..CommonFramework&lt;/em&gt;&lt;br /&gt;to &lt;br /&gt;&lt;em&gt;USERINCLUDE&amp;nbsp;&amp;nbsp; ../CommonFramework&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The familiar change at file: &lt;u&gt;&amp;#39;Ecom/.cdtproject&amp;#39;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;So to be exact with my creepy idea we need:&lt;br /&gt;-&amp;raquo; Create new IAP, &lt;br /&gt;-&amp;raquo; Go to CommDB database and change this IAP record field &amp;#39;MODEM_CSY_NAME&amp;#39; to newly-fledged polymorphic DLL.&lt;br /&gt;-&amp;raquo; See if there is any way DLL can be launched after user picks hackneyed IAP.&lt;br /&gt;-&amp;raquo; Maybe to rename DLL to CSY as well.&lt;br /&gt;-&amp;raquo; Of course, the final goal is that DLL to start working as serial module plug-in.&lt;/p&gt;&lt;p&gt;Besides there is work to divine the appropriate entry point to serial module DLL.&lt;/p&gt;&lt;p&gt;Meanwhile the project was built successfully and I&amp;#39;ve got two DLLs as a result.&lt;br /&gt;The &lt;u&gt;&amp;#39;ExampleResolver.dll&amp;#39;&lt;/u&gt; and the &lt;u&gt;&amp;#39;EComExample.dll&amp;#39;&lt;/u&gt;.&lt;br /&gt;As expected, they are not extension &amp;quot;.csy&amp;quot; provided.&lt;br /&gt;The &lt;em&gt;&amp;#39;ExampleResolver.dll&amp;#39;&lt;/em&gt; is an Interface Definition.&lt;br /&gt;The &lt;em&gt;&amp;#39;EComExample.dll&amp;#39;&lt;/em&gt; is an Interface Implementation.&lt;/p&gt;&lt;p&gt;Putting their names to CommDB records didn&amp;rsquo;t bring any results.&lt;br /&gt;Even giving them &amp;#39;&lt;em&gt;csy&lt;/em&gt;&amp;#39; extension wouldn&amp;#39;t help.&lt;/p&gt;&lt;p&gt;Being on this stage I&amp;#39;m still wondering if anybody knows:&lt;br /&gt;1. How to write a proper CSY module.&lt;br /&gt;2. How to create a Bluetooth Access Point. Which tables and rows of CommDB should be affected for this purpose.&lt;/p&gt;&lt;p&gt;I&amp;#39;ll appreciate any comments on this subjects.&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
      
    <dc:subject>Testing</dc:subject>
     
    
  <dc:date>2008-01-10T14:55:52Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/12/21/serial-protocol-modules">
  <title>Serial protocol modules</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/12/21/serial-protocol-modules</link>
  <dc:description>&lt;p&gt;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&amp;rsquo;t own). &lt;/p&gt;&lt;p&gt;What is keeping me busy is creating Bluetooth&amp;reg; 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.&lt;/p&gt;&lt;p&gt;As I try to create BT IAP I mostly face with articles and forums related to distant 6th and 7th versions of Symbian.&lt;br /&gt;Like &lt;a href=&quot;http://discussion.forum.nokia.com/forum/showthread.php?t=33667&quot;&gt;this&amp;nbsp;one&lt;/a&gt;.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_018_i01_btcomm.gif&quot; border=&quot;0&quot; alt=&quot;Figure 1 &amp;ndash; list of IAPs.&quot; title=&quot;Figure 1 &amp;ndash; list of IAPs.&quot; width=&quot;240&quot; height=&quot;334&quot; /&gt;&lt;/p&gt;&lt;p&gt;Figure 1 &amp;ndash; list of IAPs.&lt;/p&gt;&lt;p&gt;In &lt;a href=&quot;http://www.forum.nokia.com/info/sw.nokia.com/id/c4536832-3dd0-45af-94be-1c4289cc3003/Symbian_OS_Overview_To_Networking_v1_0_en.pdf.html&quot;&gt;Symbian_OS_Overview_To_Networking&lt;/a&gt;&amp;nbsp;I&amp;rsquo;ve read that on Symbian OS there are &lt;strong&gt;&lt;span style=&quot;color: #666699&quot;&gt;Serial Protocol Modules&lt;/span&gt;&lt;/strong&gt; (CSY) that are used to implement software serial port services. The &lt;span style=&quot;color: #666699&quot;&gt;&lt;strong&gt;Serial Protocol Module API&lt;/strong&gt;&lt;/span&gt; (cs_port.h) allows &lt;strong&gt;developing new CSY modules&lt;/strong&gt;.&lt;br /&gt;Theoretically one can substitute the already existing &lt;em&gt;BTCOMM.CSY&lt;/em&gt; with new module.&lt;/p&gt;&lt;p&gt;So current questions are:&lt;/p&gt;&lt;ol start=&quot;1&quot;&gt;&lt;li&gt;&lt;div&gt;Is it really possible (I didn&amp;rsquo;t find yet) to create new serial protocol modules (CSY). And how-to.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;How to bind new IAP (see figure 1) with a new CSY so one can listen to all it&amp;rsquo;s packets.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And yes, have a nice Holidays!&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
      
    <dc:subject>Testing</dc:subject>
     
    
  <dc:date>2007-12-21T13:57:36Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/12/07/symbian-networking-interface">
  <title>Symbian Networking interface</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/12/07/symbian-networking-interface</link>
  <dc:description>&lt;p&gt;I&amp;#39;ve spent some time to examine the Symbian&amp;#39;s networking architecture.&lt;br /&gt;Since the TCP/IP connection should be established over Bluetooth&amp;reg; the new entry to CommDB database should be entered.&lt;br /&gt;This can be performed by &lt;em&gt;CCommsDatabase&lt;/em&gt; class.&lt;br /&gt;After user selects the PAN record, all TCP traffic should be encapsulated into BNEP packets and transmitted over wireless link.&lt;/p&gt;&lt;p&gt;Inside the application, the &lt;em&gt;IAP&lt;/em&gt; (internet access point) is selected by RConnection class with &lt;em&gt;RConnection::Start()&lt;/em&gt; or &lt;em&gt;RConnection::Attach()&lt;/em&gt; methods.&lt;br /&gt;This methods associate the connection with &lt;strong&gt;underlying interface&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;But no documents can be found about creating those &lt;u&gt;underlying interfaces.&lt;/u&gt;&lt;br /&gt;In my mind that should be something like &lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_017_i01_device.gif&quot; border=&quot;0&quot; width=&quot;94&quot; height=&quot;70&quot; /&gt;&amp;nbsp;device or DLL library.&lt;/p&gt;&lt;p&gt;I asked for help from &lt;a href=&quot;http://discussion.forum.nokia.com/forum/showthread.php?p=366874&quot;&gt;expert on FN Discussion Boards&lt;/a&gt;. This method was recently introduced. And now wait with the impatience.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
      
    <dc:subject>Testing</dc:subject>
     
    
  <dc:date>2007-12-07T15:57:38Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/11/19/accomplish-ssl-connection-from-s60v3">
  <title>Accomplish SSL connection from S60v3</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/11/19/accomplish-ssl-connection-from-s60v3</link>
  <dc:description>&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-indent: 9pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;The PAN profile defines how to enable Bluetooth devices to participate in a personal area network.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;One of the roles in PAN profile is a &lt;strong&gt;Network Access Point &lt;/strong&gt;(&lt;strong&gt;NAP&lt;/strong&gt;) that provides an Ethernet bridge to support network services to the PAN user. Read about it here: &lt;/span&gt;&lt;a href=&quot;http://www.bluetooth.com/NR/rdonlyres/279DC460-295E-42ED-8952-61B723620884/9%2084/PAN_SPEC_V10.pdf&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;PAN specification&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;For now I will try to simulate connection to a NAP from my phone. Why simulate? Because to achieve the real connection I need realization of &lt;strong&gt;BNEP&lt;/strong&gt; protocol class which will transmit Ethernet payloads via Bluetooth. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;Since Bluetooth can be eavesdropped in on, we want to use SSL as David said &lt;/span&gt;&lt;a href=&quot;http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/testing/2007/08/23/start-of-development-on-carbide#comments&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;here in comments&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;So the goal for now is to connect to some server using secure internet connection on my phone.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;I chose the &lt;/span&gt;&lt;a href=&quot;https://www.mozilla.org/&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;www.mozilla.org&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;SSLv3 site as a server to connect to.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;I found the CSecureSocket example at &lt;/span&gt;&lt;a href=&quot;http://www.symbian.com/developer/techlib/v9.2docs/doc_source/examples/NetworkingEx/SSLExampleCode.guide.html#NetworkingEx%2eSSLExampleCode&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;symbian.com/.../v9.2docs/.../&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt; but not everything went of smoothly rather the connection was not established and system was completed with panics. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;It seems that that example is pretty old even not for 3&lt;sup&gt;rd&lt;/sup&gt; edition. But I can&amp;rsquo;t assert so.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;However I scoped the similar problems and documents over &lt;/span&gt;&lt;a href=&quot;http://kerncomputing.blogspot.com/2006_01_01_archive.html&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt; and &lt;/span&gt;&lt;a href=&quot;http://www.google.com/codesearch?hl=en&amp;amp;q=+CSecureSocket::NewL+show:EdUbb5Jsy2s:JmFNWp2ckDk:gpW0gb_U01s&amp;amp;sa=N&amp;amp;cd=3&amp;amp;ct=rc&amp;amp;cs_p=ftp://tent.xs4all.nl/pys60-1_3_12_src.zip&amp;amp;cs_f=src/ext/socket/e32socketmodule.cpp#first&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;When got tangled I used some parts of S60v3 Chat code example with insecure internet connection.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;The &amp;ldquo;&lt;span style=&quot;color: #666699&quot;&gt;guiSetBluspan&lt;/span&gt;&amp;rdquo; application that was initiated at previous posts looks like this now: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;you need to click &amp;ldquo;&lt;em&gt;Options&lt;/em&gt;&amp;rdquo; menu then pick &amp;ldquo;&lt;em&gt;Connect/Disconnect&lt;/em&gt;&amp;rdquo; item and then pick &amp;ldquo;&lt;em&gt;NAP&lt;/em&gt;&amp;rdquo; item.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_015_i01_connecting.png&quot; border=&quot;0&quot; width=&quot;525&quot; height=&quot;324&quot; align=&quot;middle&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;Diagram 1 &amp;ndash; Connecting from application&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;After some seconds server will send SSL certificate. You need answer &amp;ldquo;&lt;span style=&quot;color: #666699&quot;&gt;Continue&lt;/span&gt;&amp;rdquo;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_015_i02_certificate.png&quot; border=&quot;0&quot; width=&quot;240&quot; height=&quot;323&quot; align=&quot;middle&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;Diagram 2 &amp;ndash; Certificate question&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;After all steps of connection, handshaking, page request, getting server response and closing connection the notification will appear about successful operation.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/107609/post_015_i03_connection_finished.png&quot; border=&quot;0&quot; width=&quot;242&quot; height=&quot;322&quot; align=&quot;middle&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt; text-align: center&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;Diagram 3 &amp;ndash; Connection finished&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;The objects of these routines were to establish connection to secure HTTPS connection where NAP&amp;rsquo;s authorization page will be. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;At next researches I need to connect to NAP server, provide user&amp;rsquo;s login and password. NAP is connected to Radius server which will verify user existence and will start accounting on him.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;The source codes of application above are provided by this link: &lt;/span&gt;&lt;a href=&quot;http://wiki.forum.nokia.com/images/b/b6/GuiSetBluspan.zip&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;&lt;span style=&quot;font-size: small&quot;&gt;guiSetBluspan Zip archive &lt;/span&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;v 0.003&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt;(Nokia&amp;rsquo;s wiki)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;See &lt;/span&gt;&lt;a href=&quot;http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/general/2007/11/02/get-project-from-cvs-to-carbide-c&quot;&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;this posts here&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-family: Times New Roman&quot;&gt; to know how to use sources.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 0pt&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt; font-family: &#039;Times New Roman&#039;&quot;&gt;The Secure Connection engine in focused in /&lt;em&gt;Core&lt;/em&gt;/ folder and is called from &amp;ldquo;&lt;em&gt;guiSetBluspanSettingItemListView.cpp&amp;rdquo;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size: small; font-family: Times New Roman&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
      
    <dc:subject>Testing</dc:subject>
     
    
  <dc:date>2007-11-19T09:47:24Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/10/22/bluetooth-driver-for-s60-sdk">
  <title>Bluetooth Driver for S60 SDK</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/10/22/bluetooth-driver-for-s60-sdk</link>
  <dc:description>&lt;div style=&quot;text-indent: 36pt&quot;&gt;&lt;span&gt;To use Bluetooth in S60 emulator you have to install BT driver.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;After some customizing emulator will use your hardware - Bluetooth Dongle.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;If you try to customize it by yourself (without installing driver) in purpose to use Bluetooth Dongle, than, for sure, emulator will die.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;If you have S60 SDK FP2, the BT driver will be located at &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;span&gt;&amp;ldquo;&amp;lt;S60_SDK_installation_directory&amp;gt;S60Tools&lt;/span&gt;&lt;/em&gt;&lt;span&gt;S60Bt&amp;rdquo;&lt;/span&gt;&lt;span&gt; directory.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;But I have S60 FP 1, so I&amp;#39;ve downloaded it from &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;a href=&quot;http://www.forum.nokia.com/info/sw.nokia.com/id/9d50801f-1f95-4c83-87bc-cb83d4a21bef/S60_SDK_BT_Driver.zip.html&quot; target=&quot;undefined&quot;&gt;http://www.forum.nokia.com/info/sw.nokia.com/id/9d50801f-1f95-4c83-87bc-cb83d4a21bef/S60_SDK_BT_Driver.zip.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;The installation procedure is described in this distribution package as &lt;/span&gt;&lt;em&gt;&lt;span&gt;*pdf&lt;/span&gt;&lt;/em&gt;&lt;span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;After that you need to start emulator, and at &lt;/span&gt;&lt;em&gt;&lt;span&gt;PAN&lt;/span&gt;&lt;/em&gt;&lt;span&gt; tab set &lt;/span&gt;&lt;em&gt;&lt;span&gt;HCI&lt;/span&gt;&lt;/em&gt;&lt;span&gt; to &lt;/span&gt;&lt;em&gt;&lt;span&gt;USB&lt;/span&gt;&lt;/em&gt;&lt;span&gt;, then restart it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Everything is described in detail in previous guide.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;As I restarted it, I&amp;#39;ve immediately got an advertisement message :) from the juke-box which is assembled in our office.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Now I can play with Bluetooth examples which are provided with SDK.&lt;/span&gt;&lt;/div&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>S60</dc:subject>
      
    <dc:subject>Symbian C++</dc:subject>
     
    
  <dc:date>2007-10-22T12:45:02Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/09/18/the-battle-for-bluez">
  <title>The Battle for BlueZ</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/09/18/the-battle-for-bluez</link>
  <dc:description>&lt;p&gt;&amp;#160;Last week I asked Kostya to install Fedora 7 and BlueZ. We have a big pile of parts so when ever &lt;br /&gt;
we need some cheesy unix box (no xwindows etc) we just make one from the parts lying around.&lt;/p&gt;
&lt;p&gt;Kostya is fresh out of college and hadn&#039;t really worked on UNIX that much, if at all, so, I figured &lt;br /&gt;
I&#039;d go ahead and work on the same task and play with it a bit.&lt;/p&gt;
&lt;p&gt;The last thing I wanted to do is get into a big argument with the programmers in the office &lt;br /&gt;
as to which *nix is better, besides, the whole idea was a simple machine that might work like &lt;br /&gt;
an out of the box bluetooth NAP, with the addition of radius.&amp;#160;&lt;/p&gt;
&lt;p&gt;My project was a $200-300 machine, booting from USB flash, no monitor, running BlueZ and SLAX &lt;a href=&quot;http://www.slax.org&quot;&gt;http://www.slax.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you haven&#039;t checked out SLAX, check it out. I have a couple machines in the office that run it, burn an ISO, &lt;br /&gt;
pop it in the CDrom and wala you are rolling.&lt;/p&gt;
&lt;p&gt;If you unpack that ISO onto a USB MSD, then write the boot sector using a utility called syslinux, you can &lt;br /&gt;
do without the cdrom and boot right from USB with a motherboard that supports it.&lt;/p&gt;
&lt;p&gt;pretty cool eh?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
In one of my emails to Kevin, I wrote that I started working on the NAP side to which he replied &lt;br /&gt;
&quot;Hey post about it&quot; mentioning that the road there is often as interesting as the destination and &lt;br /&gt;
part of the S2F blogs nature is the public display of trials and tribulations in the process of development.&lt;/p&gt;
&lt;p&gt;More likely this will be a post on how not to develop.&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
So, down to the store for some parts, I&#039;d need a motherboard (FOXCONN WINFAST), memory (256), a CPU(AMD SEMPERON), &lt;br /&gt;
and some cheesy case w/ PSU.&amp;#160; Grand total $150 or so in the local currrency.&lt;/p&gt;
&lt;p&gt;I took the base installation of SLAX as my starting point, I figured what i&#039;d wind up with in the end of it &lt;br /&gt;
all was a machine that would only be accessed via telnet and never rebooted. With Bluetooth, figure you can &lt;br /&gt;
connect any 7 devices so I was hoping that the machine I built would be enough.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Downloaded SLAX, unpacked it, installed it, sys&#039;ed it and set the bios up for booting from USB.&amp;#160; This should have given &lt;br /&gt;
me a nice little UNIX environment that would let me configure a little OS that I could later pack back into an &lt;br /&gt;
ISO and distribute as a bootable CD or use in a virtual machine (like virtual box).&lt;/p&gt;
&lt;p&gt;SLAX uses a UNION file System, located in ramdisk. All the changed you make are saved to a second file system&lt;br /&gt;
and before you shut the system down, you can issue the command &#039;configsave&#039; which takes all your changes and &lt;br /&gt;
puts them in a special module file. Next time you boot, SLAX looks for this file in the root directory of all &lt;br /&gt;
your mounted drives and if it fonds it, loads it. Alternatively, you can save the file to the /modules directory&lt;br /&gt;
and have it loaded during boot.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://pendrivelinux.com&quot;&gt;http://pendrivelinux.com&lt;/a&gt; is a good site for reference.&lt;/p&gt;
&lt;p&gt;everything up to this point was as advertised.&lt;/p&gt;
&lt;p&gt;You can make a module by installing software, then saving the changes. BlueZ, the Official Linux Bluetooth stack&lt;br /&gt;
has a module, so I used it, there were a few dependancies and some functionality added by these modules:&lt;/p&gt;
&lt;p&gt;blueproxy_1_13.mo&lt;br /&gt;
Bluetooth_1_1.mo&lt;br /&gt;
bluez_mo_1_0.mo&lt;br /&gt;
dbus_0_61.mo&lt;br /&gt;
gtk_2_10_6_i386.mo&lt;br /&gt;
PyGTK_2_6_2.mo&lt;br /&gt;
Python_2_4_3.mo&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
All of which you can get on the get on the SLAX repository.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
The PIN helper application complained a bit about not finding a library, got around that with&lt;/p&gt;
&lt;p&gt;&#039;ln /usr/lib/libbluetooth.so.1.0.25 /usr/liblibbluetooth.so.2&#039;&lt;/p&gt;
&lt;p&gt;BNEP is loaded in the kernel at runtime with&lt;/p&gt;
&lt;p&gt;&#039; modprobe bnep &#039;&lt;/p&gt;
&lt;p&gt;which I stuck in /etc/rc.local along with&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&#039; hciconfig hci0 up &#039;&lt;/p&gt;
&lt;p&gt;which turns on the USB Bluetooth DOngle and the service discovery protocol deamon&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&amp;#160;&#039; sdpd &#039;&lt;/p&gt;
&lt;p&gt;and last but not least&lt;/p&gt;
&lt;p&gt;&#039; pand --listen --role NAP &#039;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bluez.sourceforge.net/contrib/HOWTO-PAN&quot;&gt;http://bluez.sourceforge.net/contrib/HOWTO-PAN&lt;/a&gt; is a good link for explaining the actual workings.&lt;/p&gt;
&lt;p&gt;so far so good, I could see the SLAX machines from a windows notebook, SDP returned the existence of a NAP but when I tried to pair, nothing,.. a long timeout.&lt;/p&gt;
&lt;p&gt;Tried switching the PIN helper but that didn&#039;t seem to do much and further investigation revealed it was looking for x windows and couldn&#039;t open a window so it died.&lt;/p&gt;
&lt;p&gt;There is another version SLAX with X windows, but by the time I tried to connect with the new SLAX it seems my windows had been poisened with ad information or something, Couldn&#039;t ever get a connect from my notbook although from other machines, it connected but failed to give an IP address. I hadn&#039;t actually&amp;#160; considered the system fully configured, DHCP hadn&#039;t been turned on for BNEP0 nor had I set up any hotplug scripts yet.&lt;/p&gt;
&lt;p&gt;Prior to this, I had been booting the machine pretty regularly, changing the config, saving a module and rebooting to ensure the changes I made where being included in the regular boot. With the advent of a connection and the knowledge that&#039;s need to script hotplug for the devices, I went to lunch. Upon return - the machine had hung. Completely dead, no signs of life, and since everything is going on it a ramdisk, nothing to read later after a hard boot to give clues as to what had actually happened.&lt;/p&gt;
&lt;p&gt;Futher testing showed that the machine would hang regularly, often within an hour. Not very interesting for our purposes since a big part of the idea to set up the whole thing from boot to operation on a &quot;diskless&quot; system was to make it somewhat &quot;foolproof&quot; and reliable. Download, make a flash, or boot the ISO in a virtual machine.&lt;/p&gt;
&lt;p&gt;My first though was maybe the whole boot from a flash idea wasn&#039;t the best way.. Second thought was maybe SLAX wasn&#039;t the best solution, I grabbed the machine, grabbed a copy of Fedora-7-i386-DVD.ISO and went home figured I&#039;d have a project for the weekend, back in the office Monday to show my tricks to the boys.&lt;/p&gt;
&lt;p&gt;Back to the computer store, to pick up a hard drive to install Fedora on. Once you get a Linux installation you want, you can use the Linux Live scripts to make a ISO and that was my plan. ( &lt;a href=&quot;http://www.linux-live.org/&quot;&gt;http://www.linux-live.org/&lt;/a&gt; )&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
I burned a DVD with the ISO I had, installed the hardrive and a DVD in my &quot;diskless&quot; machine&quot; and set off to install.&lt;/p&gt;
&lt;p&gt;&quot; INSERT BOOT DISK and PRESS ENTER &quot;&lt;/p&gt;
&lt;p&gt;Hmm, read the forums - &quot;Me too! and me, and me too&quot; I wasn&#039;t the only one not booting from the Fedora ISO, yet most of the suggestions where along the lines &quot;probably a bad disk try to burn another one&quot; or &quot;you should stop smoking crack and try again&quot;&lt;/p&gt;
&lt;p&gt;After 3 attempts on 2 different burners I finally figured out the software I was using was not writing the&amp;#160; El Torito boot system in sector 17 of the last session of the ISO.&lt;/p&gt;
&lt;p&gt;4th time was a charm, downloaded deepburner pro, it worked fine.&lt;/p&gt;
&lt;p&gt;Fedora wants some memory for it&#039;s GUI setup, with 256 MBs it whined and gave me text mode - fine with me, I didn&#039;t grab a mouse anyways. Obviously not your father&#039;s UNIX.&lt;/p&gt;
&lt;p&gt;A quick run through the standard options, pick a keyboard, pick a language, config your NIC, give a name and slice your disk into partitions. I didn&#039;t really expect to use 500 GB, I just wanted a big disk for my music collection later. I broke the disk up, gave myself 100 mb and mounted /boot there, and another 5 GB on / and 300 MB for swap.&lt;/p&gt;
&lt;p&gt;The system complained I didn&#039;t have enough ram and asked if it was alright if it turned on swap right away. I was suprised actually, gee, I didn&#039;t want X windows and didn&#039;t realy expect the text based installation to be memory intensive.&amp;#160; I clicked YES, and the set up went on execute the changes to the partition and format the disk.&lt;/p&gt;
&lt;p&gt;46% through the format, I got a red screen with a bunch of garbage and the hard drive was making terrible noises.&amp;#160;&lt;/p&gt;
&lt;p&gt;Hmm, ok, reboot, do it all again, this time, let it take the defaults for the partitions. No luck, same red screen,&amp;#160; same 46%.&lt;/p&gt;
&lt;p&gt;A friend of mine who had stopped watched the machine booting said, Gee, &quot;how can you read that fast&quot; I chuckled and answered &quot;That&#039;s why we make the big money. When he saw the red screen with all the garbage he asked, &quot;how can anyone understand what that means?&quot;&lt;/p&gt;
&lt;p&gt;By now the Seagate Barracuda 500GB SATA hard drive was making chirping and cracking sounds as if it was about to explode. I answered my friend, &quot;it means the drive is dead&quot;&lt;/p&gt;
&lt;p&gt;I figured i&#039;d found a bad sector and the OS wasn&#039;t dealing with it. Google noisy seagate and saw quite a bit about it, a few people had suggested adjusting some of the SMART settings, others just sent the drives back.&lt;/p&gt;
&lt;p&gt;Figured try that on a fresh head (err) and a another hard drive. &quot;Vodka - Connecting people&quot; was the motto for the rest of the night as I left my cyber endevors for the evening. The next morning I went down the the computer store and picked a $50 samsung 80G SATA drive. Nope, same red screen at 46%.&lt;/p&gt;
&lt;p&gt;By now, my cheesy $150 machine was already in the $500 range and things still didn&#039;t look any better. Checked the net for bios updates and when I couldn&#039;t find any I becames convinced I had been stuck with a cheap immitation chinese motherboard.&lt;/p&gt;
&lt;p&gt;Back to the computer store. ANother motherboard (ASUS), 512 MB of RAM, and promises that the board would boot from USB. Tried the Seagate, still chirped. tried to boot from USB, nope, and settled in on the 80 GB drive.&lt;/p&gt;
&lt;p&gt;Back to square one. I&#039;m going to still try to do it on SLAX, get the smallest ISO I can, and go from there. I learned some lessons:&lt;/p&gt;
&lt;p&gt;* Never trust a salesman, I don&#039;t care if the guy says the machine will boot from USB, &quot;Prove it&quot; will be my answer.&lt;/p&gt;
&lt;p&gt;* If your UNIX is flaking out, you can probably get it to fit on your system, recompile the kernel, nifty boot tricks etc,..&amp;#160; but why mess with it. My mistake was trying to get everything under a couple hundred bucks and picking a less than friendly motherboard in the process.&lt;/p&gt;
&lt;p&gt;* SLAX is plenty stable, if you boot it on a decent machine.&lt;/p&gt;
&lt;p&gt;* If your weekend project lasts until Thursday you are doing something wrong.&lt;/p&gt;
&lt;p&gt;* Even if you have been working on UNIX since 1989 you&#039;ll never know it all and sometimes the only way you&#039;ll find out is by actually doing it. UNIX is amazing, it&#039;s like you can do anything.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
I wouldn&#039;t write that it was a complete loss. I know everything that needs to be done and how to do it. I don&#039;t have the biggest choice of parts here in Ukraine, so, I&#039;m going to spend a little time shopping around for a decent motherboard and I&#039;m going to try again when I find it.&amp;#160; BTW, the CHillispot.org site is down, and has been for at least 2 weeks, anyone that has any suggestions for another NAS, please let me know. with so many WiFi Hotspots using it, I&#039;m hard pressed to believe that project is dead.&lt;/p&gt;
&lt;p&gt;Ohh and if you have read this far, please save the internet at &lt;a href=&quot;http://www.savetheinternet.org&quot;&gt;http://www.savetheinternet.org&lt;/a&gt; You really have to wonder what will happen to the open source world if you and millions like you don&#039;t do something to keep the internet free. Thanks in Advance.&lt;/p&gt;
&lt;p&gt;Kevin thought it would be interesting to know the behind the scenes, if S2F blogs where about the HOW-to&#039;s of development - let this be a how-not-to :)&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
David Stickney&lt;br /&gt;
Fishnest Ukraine&lt;/p&gt;</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>Testing</dc:subject>
     
    
  <dc:date>2007-09-18T13:14:01Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
  <item rdf:about="http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/08/20/bluspan-project-starts">
  <title>BluSPAN project starts</title>
  <link>http://blogs.forum.nokia.com/blog/open-source-bluetooth-pans-forum-nokia-blog/2007/08/20/bluspan-project-starts</link>
  <dc:description>&lt;strong&gt;Hi, my name is Konstantine!&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
As you see I&#039;m going to initiate the development and coordinate the &lt;font color=&quot;#0159ff&quot;&gt;BluSPAN (&lt;strong&gt;Blu&lt;/strong&gt;_etooth &lt;strong&gt;S&lt;/strong&gt;_ymbian &lt;strong&gt;PAN&lt;/strong&gt;) &lt;/font&gt;project. &lt;br /&gt;
BluSPAN will be a client/server suite to allow bluetooth PAN in Symbian OS. &lt;br /&gt;
&lt;br /&gt;
One of the more interesting parts and what makes this effort different is we will use Radius for accounting access and authorization. So that you can use what we will develop we will distribute a class for much of the functions. &lt;br /&gt;
&lt;br /&gt;
But before all of that, I&#039;ll tell couple words about me. &lt;br /&gt;
&lt;br /&gt;
I&#039;m &lt;strong&gt;novice &lt;/strong&gt;at cell phone and wireless programming. I&#039;m 22 years old. I got my degree Information systems and technology expert from the Sevastopol National Technical University in Sevastopol, Ukraine. During education I had taken part in several projects, some RTS games, some math applications, AI and some web. Most of them were developed with C++. &lt;br /&gt;
&lt;br /&gt;
Fishnest ltd, is my first full time job. Here I have done some work with wireless using OPENWRT. My Boss got the idea of developing bluetooth PAN with Radius over Symbyan OS and at the same time to find out how novice engineer can process a task that he never touched before. Nokia also found the idea of a newbie writing for the first time interesting to give us one of the first Start to Finish Blogs. &lt;br /&gt;
&lt;br /&gt;
There is no doubt that this project would be useful and exciting. If you want to provide some help and comments, you are welcome and I will be grateful. All this project will be open source so you will help everyone! &lt;br /&gt;
&lt;br /&gt;
Yours sincerely, Konstantine Voytenko &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Good morning, Mr. Konstantine. Your mission, should you choose to accept it, involves the development of a Nokia Bluetooth Personal Area Network / Radius Client - Server suite. You may select any team members, but it is essential that one member of your team be Kevin Sharp of Nokia. He is a civilian, and a highly capable professional Nokia Forum Technical Editor. You have forty-eight hours to recruit Mr. Sharp and begin posting on the Start 2 Finish Blog regarding your assignment. As always, should any member of your team be caught or killed, the Fishnest will disavow all knowledge of your actions. &lt;br /&gt;
&lt;br /&gt;
Your client should fit in the &quot;other protocols&quot; section of the Symbian OS Bluetooth networking implementation. You will be required to develop a class for encapsulating serial communications from the TCP/IP stack of the device in the Ethernet and BNEP frames for further transport by L2CAP / Bluetooth &lt;br /&gt;
&lt;br /&gt;
More information regarding the encapsulation mission can be found &lt;a href=&quot;http://forum.nokia.com/info/sw.nokia.com/id/c4536832-3dd0-45af-94be-1c4289cc 3003/Symbian_OS_Overview_To_Networking_v1_0_en.pdf.html &quot;&gt;here: Symbian_OS_Overview_To_Networking &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.bluetooth.com/Bluetooth/Learn/Works/Core_System_Architecture.htm&quot;&gt;and here: Core_System_Architecture&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://standards.ieee.org/getieee802/802.3.html &quot;&gt;and here: 802.3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://grouper.ieee.org/groups/802/15/Bluetooth/BNEP.pdf &quot;&gt;and here: BNEP&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In the Blue Envelope, you will find Several SDKs and the Carbide C++ IDE. In the envelope, you will also find Nokia&#039;s Launchpad Program ( &lt;a target=&quot;undefined&quot; href=&quot;https://pro.forum.nokia.com&quot;&gt;https://pro.forum.nokia.com/&lt;/a&gt; ) a plethora of resources enabling you to complete your mission with the least amount of collateral damage. &lt;br /&gt;
&lt;br /&gt;
Upon completion of the Encapsulation class, you will be charged with the task of creating a PAN client for the S60 / S80 operating system &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.bluetooth.com/NR/rdonlyres/279DC460-295E-42ED-8952-61B723620884/9 84/PAN_SPEC_V10.pdf &quot;&gt;and here: PAN_SPEC_V10&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To prevent rogue acquisition of network resources that client must contain support for Radius Authentication, Accounting and Access. Generation of the authorization packet on the device is desired see &lt;a target=&quot;undefined&quot; href=&quot;http://www.ietf.org/rfc/rfc2865.txt&quot;&gt;http://www.ietf.org/rfc/rfc2865.txt&lt;/a&gt; and &lt;a target=&quot;undefined&quot; href=&quot;http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/intwork/inbc_ias_wfwi.mspx?mfr=true&quot;&gt;http://www.microsoft.com/ inbc_ias_wfwi.mspx&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Our informants suggest you handle authentication with extreme caution and advise the use of SSL for all user/password pairs &lt;font color=&quot;#000000&quot;&gt;&lt;a target=&quot;undefined&quot; href=&quot;http://www.pcworld.com/article/id,121180-c,cellphones/article.html &quot;&gt;http://www.pcworld.com/article/id,121180-c,cellphones/article.html&lt;/a&gt; &lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
The roadmap provided to you will lead you into undocumented and perhaps unfriendly territory as you attempt to debug your application to work with the Windows XP PAND. Whilst pleasing millions of already satisfied Nokia users and undoubtedly achieving great fame by allowing them to use their favorite applications over Bluetooth on their XP machine - your mission will not be complete. &lt;br /&gt;
&lt;br /&gt;
The implementation of a Network Access Server will be required to handle network Access and provide concurrent information to a Radius Server. Again, unchartered territory. Slight modification to Chillispot &lt;a target=&quot;undefined&quot; href=&quot;http://www.chillispot.org/&quot;&gt;http://www.chillispot.org/&lt;/a&gt; may be possible allowing it to handle pseudo Ethernet devices (bnep0, etc) You should attempt this ONLY under a 2.6 Kernel with BlueZ and Affix as your Bluetooth stacks. The stock FreeRadius will be ideal. &lt;br /&gt;
&lt;br /&gt;
A windows implementation of a network access server should also be developed. Codename WIN-PAND-RADIUS You must ensure it&#039;s downloadable, foolproof and just like the rest of your mission OPEN SOURCE - We suggest GPL. The free world as we know it depends on you. &lt;br /&gt;
&lt;br /&gt;
And Mr. Konstantine, the next time you go on holiday, please be good enough to let us know where you&#039;re going. This message will self-destruct in five seconds. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mission Commander David &lt;br /&gt;
Fishnest Ukraine</dc:description>
      
    <dc:subject>Connectivity</dc:subject>
      
    <dc:subject>General</dc:subject>
     
    
  <dc:date>2007-08-20T16:41:15Z</dc:date>
    <dc:creator>Carbider</dc:creator>
 </item>
 </rdf:RDF>