Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Introduction

(VoIP, Instant Messaging and Presence)
Line 1: Line 1:
= Introduction =
= Introduction =
-
For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.  
+
The following code examples are used in this chapter:
 +
 
 +
* [https://garage.maemo.org/svn/maemoexamples/trunk/maemo-examples/example_bluetooth.c example_bluetooth.c]
 +
* [https://garage.maemo.org/svn/maemoexamples/trunk/maemo-examples/example_gps.c example_gps.c]
 +
 
 +
 
 +
For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.
 +
 
==Acquiring Internet Access==
==Acquiring Internet Access==
 +
All applications must use the ''LibConIC'' library for Internet connectivity. LibConIC takes care of e.g. scanning of available WLAN networks and sets up the IP network after the user selects a connection. The LibConIC API works together with the maemo connectivity daemon (''ICd'') that handles both WLAN and Bluetooth connections. For more information on LibConIC and ICd, see section [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity|Maemo Connectivity]].
-
''LibConIC'' is the library that must be used by all applications wanting to use Internet connectivity. It takes care of e.g. scanning of available WLAN networks, and setting up the IP network after the user has selected a connection. LibConIC API works together with the maemo connectivity daemon (''ICd'') that handles both WLAN and Bluetooth connections. LibConIC and ICd are described more deeply in the topic [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity|Maemo Connectivity]].
 
==VoIP, Instant Messaging and Presence==
==VoIP, Instant Messaging and Presence==
The ''[http://telepathy.freedesktop.org/ Telepathy]'' communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-BUS for communication. Telepathy usage in maemo is described in more detail in section [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Implementing_Custom_Connection_Managers|Implementing Custom Connection Managers]].
The ''[http://telepathy.freedesktop.org/ Telepathy]'' communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-BUS for communication. Telepathy usage in maemo is described in more detail in section [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Implementing_Custom_Connection_Managers|Implementing Custom Connection Managers]].
 +
==Bluetooth==
==Bluetooth==
-
A high level API for Bluetooth is offered as part of the maemo connectivity subsystem. Using its D-BUS API, a program can find remote Bluetooth devices, such as phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, it is recommended for an application to use this framework, as it not only has a lot simpler API, but makes the applications look and behave consistently.
+
A high level API for Bluetooth is offered as part of the maemo connectivity subsystem. Using its D-BUS API, a program can find remote Bluetooth devices, for example, phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, this framework is recommended because it has a much simpler API and makes the applications look and behave consistently.
For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-BUS API, which is also the main Bluetooth interface for all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.
For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-BUS API, which is also the main Bluetooth interface for all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.
-
Section [localhost#sec:maemo_connectivity 9.2] describes the high level D-BUS API and its use. More information about the BlueZ API can be found at [http://www.bluez.org/BlueZ web site]. The maemo-example package also includes example code about both libraries.
+
Section [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity|Maemo Connectivity]] describes the high level D-BUS API and its use. For more information on the BlueZ API, see the [http://www.bluez.org/BlueZ BlueZ web site]. The maemo example package also includes example code about both libraries.
==OBEX==
==OBEX==
-
Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is ''libgwobex'', which GnomeVFS uses in its implementation, and an even more low level interface can be found in the OpenOBEX library.
+
Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is ''libgwobex'', which GnomeVFS uses in its implementation. The OpenOBEX library provides an lower-level interface.
-
More about GnomeVFS is written in the GnomeVFS section of this document. Section [localhost#sec:maemo_connectivity 9.2] contains separate subsections for libgwobex and ''OpenOBEX''. For libgwobexAPI, see [http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo API Reference]. Lots of information about OpenOBEX can be found at the [http://dev.zuckschwerdt.org/openobex/ project's web site].
+
For more information about GnomeVFS, see the dedicated section of this document. For more information on libgwobex and ''OpenOBEX'', see section [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity|Maemo Connectivity]]. For libgwobexAPI, see Maemo API Reference[http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo API Reference]. For more information on OpenOBEX, see the [http://dev.zuckschwerdt.org/openobex/ project's web site].

Revision as of 07:54, 19 August 2009

Contents

Introduction

The following code examples are used in this chapter:


For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.


Acquiring Internet Access

All applications must use the LibConIC library for Internet connectivity. LibConIC takes care of e.g. scanning of available WLAN networks and sets up the IP network after the user selects a connection. The LibConIC API works together with the maemo connectivity daemon (ICd) that handles both WLAN and Bluetooth connections. For more information on LibConIC and ICd, see section Maemo Connectivity.


VoIP, Instant Messaging and Presence

The Telepathy communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-BUS for communication. Telepathy usage in maemo is described in more detail in section Implementing Custom Connection Managers.


Bluetooth

A high level API for Bluetooth is offered as part of the maemo connectivity subsystem. Using its D-BUS API, a program can find remote Bluetooth devices, for example, phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, this framework is recommended because it has a much simpler API and makes the applications look and behave consistently.

For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-BUS API, which is also the main Bluetooth interface for all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.

Section Maemo Connectivity describes the high level D-BUS API and its use. For more information on the BlueZ API, see the BlueZ web site. The maemo example package also includes example code about both libraries.


OBEX

Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is libgwobex, which GnomeVFS uses in its implementation. The OpenOBEX library provides an lower-level interface.

For more information about GnomeVFS, see the dedicated section of this document. For more information on libgwobex and OpenOBEX, see section Maemo Connectivity. For libgwobexAPI, see Maemo API ReferenceMaemo API Reference. For more information on OpenOBEX, see the project's web site.