oFono是一个开源免费的电话协议栈软件,它遵循3GPP27.007等通信标准,通过AT命令与2G/3G modem进行交互,以实现各种电话功能(Voicecall, GPRS, SMS, Stk等等)。在oFono的基础上,很容易开发用Qt,Gtk,Clutter等API编写的用户界面。oFono一般作为守护进程运行在移动终端(如手机,平板电脑)上,扮演着与3G模块通信的角色。在上网本上,你可以把外置式上网卡插在USB口上,用oFono控制它来访问GPRS网络。
oFono遵循GNU GPL v2 license,你可以下载最新的源码并免费使用。oFono作为Intel与Nokia联合开发Meego平台的一部分,目前还处在快速开发阶段。
oFono结构图
从上图我们可以看出,oFono有着一套良好的体系架构。最上层通过D-Bus接口跟UI通信,中间的oFono core负责处理Call, Network等核心业务,下层的plugin负责和不同种类的modem通信。这保证了oFono具有良好的可扩展性,目前支持和Nokia isimodem, STE, TI calypso, huawei, zte等多种不同的modem通信。
同时oFono还带有一个phonesim电话模拟器,它通过socket模拟出一个电话模块和oFono进行交互。即使手上没有硬件modem,同样可以进行oFono的开发。
oFono源码: git clone git://git.kernel.org/pub/scm/network/ofono/ofono.git
phonesim源码: git clone git://git.kernel.org/pub/scm/network/ofono/phonesim.git
网站: http://ofono.org