一种基于Linux的MID平台下的电话系统及其实现方法

文档序号:7751935阅读:187来源:国知局
专利名称:一种基于Linux的MID平台下的电话系统及其实现方法
技术领域
本发明涉及一种应用于Linux移动平台的智能手机系统,具体地说,是一种基于 Linux的MID平台下的电话系统的实现方法。
背景技术
在当今智能型手机的应用领域颇受瞩目的嵌入式系统(embeddedsystem)。将 移动系统上嵌入电话亦是Linux的一种趋势,其中比较具有代表性有LIMO、LIPS以及 OpenMoko LiMo是Linux+Mobile的简写。这是一个产业联盟。LiMo的发起会员是美国摩 托罗拉,日本NEC,日本NTT DoCoMo,日本松下移动通信,韩国三星电子,英国沃达丰。LiPS代表Linux Phone Standards Forum。LiPS论坛是法国电信主导的一个行业 联盟,目前有33个成员。LiPS论坛的目标也是规范Linux手机软件的开发,它的思路是制 定Linux电话终端标准。LiPS的目标就是指定一套开放、统一的Linux手机API。最具有代表性电话解决方案是OpenMoko,所谓OpenMoko平台采用了许多原本就 存在的free software,而这正是FOSS开发模式的最大优势。OpenMoko平台采用知名的 OpenEmbedded 专案,OpenEmbedded 是一种更先进高阶的 build system。OpenMoko 专案最 主要是提供「UIFramework」,称为 OpenMoko framework,现阶段的 OpenMokoframework 提供 的程序库分别是Iibmokocore核心程序库,用以提供OpenMoko应用程序间通讯;1 ibmokocore透过D-Bus来整合应用程序;Iibmokonet通讯程序库,用以提供GSM、GPS、Bluetooth等功能;libmokopim :PIM (Personal Information Management)程序库,用以提供个人资 料管理功能;libmokoui =UI (user interface)程序库,用以提供OpenMoko主要的界面设计,包 含:containers> widgets 与 dialogs。目前通用Linux平台下相应的电话系统开源解决方案有Openm0k0、LiM0、LIPS。其 最具有代表性是OpenMoko,但是代码冗余,内部关联库冗余以及开发进度缓慢,且目前此方 案已经处于停滞状态,OpenMoko把主要精力放在了整机软硬件设计上,对统一的API接口 没有给予充分的重视且文档太少;而LiMO仅发布一个应用软件平台,至今还没有发布任何 东西;LIPS则力图以标准来规范Linux手机,但其想法与实践很难同一。综上事实,一个优秀的、开放的参考设计应当比文档更能吸引人,更有可能成为事 实标准。

发明内容
本发明旨在提供一种基于Linux的MID平台下的电话系统及其实现方法,由该方 法可以解决现有Linux平台下整体开发进度缓慢,整体架构复杂,代码冗余,库关联复杂,
3兼容网络制式差等现状。为此,本发明解决所述问题的技术方案是一种基于Linux的MID平台下的电话系 统,所述电话系统具有底层模块单元、服务程序与自定义库层单元、应用层单元、插件层单 元,其中,所述服务与自定义层单元包括后台程序服务模块单元、自定义单元,所述的底层 模块单元与后台服务程序模块单元交互连接,所述的应用层单元与插件层单元交互连接, 所述的自定义封装库单元包括电话后台程序封装库、电话记录自定义库、短信存储自定义 库、通讯录存储自定义库,其中,所述后台程序封装库与所述后台服务程序模块单元交互连 接,所述电话记录自定义库、短信存储自定义库、通讯录存储自定义库分别与所述后台服务 程序模块单元中的数据库交互库相连接。优选的,所述底层模块单元包括协议实现模块、数据库模块、声音架构模块。优选的,所述后台服务程序模块单元至少包括由彼此关联的电话后台服务程序、 RIL无线接口模块、AT协议实现库模块、数据库交互库模块、声音架构交互库模块。优选的,所述应用层单元包括电话单元、短信单元、电话簿单元。优选的,所述插件层单元包括状态栏插件、电话设置插件、铃声设置插件。一种基于Linux的MID平台下电话系统的生成接口,所述接口包括dbus自动生 成工具模块、网络模块、电话模块、短信模块、设备模块、显示模块、Sim卡模块,其中,所述 dbus自动生成工具模块分别与所述网络模块、电话模块、短信模块、设备模块、显示模块、 Sim卡模块交互连接。一种基于Iinux的MID平台下电话系统的网络协议与移动终端通信的系统,所述 系统包括与应用层交互连接移动终端,与网络交互连接的网络端,其中,所述的移动终端与 所述网络端之间具有相互通信关联的AT指令、响应、信息反馈链路。一种基于Linux的MID平台下电话系统的电话后台服务程序的生成方法,包括步 骤(1)初始化,首先由所述的后台程序服务单元中的电话后台服务程序模块初始化 modem协议实现模块;(2)对所述dbus设置,防止多个请求同时访问modem协议实现模块;(3)对所述生成接口的六个模块进行初始化;(4)由所述电话后台服务模块对系统的RIL层所有方法和信号回调函数进行初始 化;(5)对AT协议实现库模块进行加载;(6)进入主循环进行事件的发生;(7)当应用程序发起一个请求时,进入相应模块的回调函数,执行相应的对modem 的操作。相比现有技术,本发明具有的积极效果是电话系统整体结构简洁,有效地避免了 目前电话系统的冗余性,能够很好的兼容各种制式的网络,通过其电话服务程序模块解决 了协议层和接口层的分离,并根据不同的网络制式可以记载不同的atril动态链接库;在 处理消息队列里采用了多线程和线程锁的方式,保证了程序的可靠性。尤其是针对在后台程序服务单元采用了 RIL无线接口模块,以便电话系统目后的接口扩展,实现 了 UI与server的全分离,可进行UI定制,存储方面采取数据库最小化设计,且给出系统整体声音设计架构。


图1是本发明涉及的基于Linux的MID平台下的电话系统结构示意图;图2是关于图1的系统网络协议栈与移动终端之间通信的物理界面结构示意图;图3是关于图1的系统生成接口结构示意图;图4是关于图1的系统生成方法流程示意图;图5是关于图1的系统电话服务程序模块应用的模块界面结构示意图;图6是关于图1的系统电话后台程序封装库设计的一实施例的流程示意图;图7是关于图1的系统模块界面一实施例结构示意图;图8是关于图1的系统声音框架设计流程示意图。
具体实施例方式通过以下实施例并结合附图可以更好地理解本发明,但并不限定本发明。MID (mobile internet device)是一种移动互联网设备的简称,本发明的创作正 是基于Linux的移动互联网设备平台而产生,有如下例所述并参见附图1,本发明提出的一 种针对Linux的MID平台下的电话系统,该电话系统具有底层模块单元、后台服务程序模 块与自定义单元、自定义封装库单元、应用层单元、插件层单元,其中,所述的底层模块单元 与后台程序服务单元交互连接,所述的应用层单元与插件层单元交互连接,所述的自定义 封装库单元包括电话后台程序封装库、电话记录自定义库、短信存储自定义库、通讯录存储 自定义库,其中,所述后台程序封装库与所述电话后台服务程序交互连接,所述电话记录自 定义库、短信存储自定义库、通讯录存储自定义库分别与所述后台程序服务单元中的数据 库交互库相连接。在所述的底层模块单元中还包括了协议实现模块、数据库模块、声音架构 模块。在所述的后台程序服务单元中至少还包括了由彼此关联的电话后台服务程序模块、 RIL无线接口模块、AT协议实现库模块,数据库交互库模块,声音架构交互库模块。在所述 的应用层单元中还包括了电话单元、短信单元、电话簿单元。在所述插件层单元中还包括状 态栏插件、电话设置插件、铃声设置插件。 具体地说,本发明的优选实施例电话系统分为由modem协议实现模块、数据库模 块(Sqlite)、声音架构模块(alsa)构成的底层模块。由At协议实现库(Atril)、数据库交 互库(LibSqlRecord)、声音架构交互库(Iibsoimd)构成的底层模块交互库。而所述的后 台服务程序库单元同时具有电话后台服务程序(Phone-Server);自定义接口封装库包括 电话后台程序封装库(Libphone)、电话记录自定义库(Libchhelper)、短信库存储自定义 库(Libmsghelper)、通讯录存储自定义库(Libabhelper)。在应用层单元则包括了含有电 话程序(Dialer)、短信程序(Mes sager)、电话簿(Contacts)单元的应用软件包。本例中 的插件层单元是与应用层单元之间通过DBUS总线进行进程间通信的物理界面,其插件层 设置有状态栏插件、电话设置插件、铃音设置插件,其中的状态栏插件可实现的功能有(1) 显示短信状态,(2)显示数据连接状态,(3)显示电话功能状;其中的电话设置插件可实现 功能是对整体电话功能(来电转接、来电显示等)选项进行设置;其中的铃音设置插件可 实现的功能分别有设置个性电话铃音、个性短信铃音、电话设置情景等。其中,Modem协议
5模块实现了 Modem的协议栈,Modem的协议栈通过封装的At进行modem的交互,是为串口 通信协议。而所述的At协议实现库Atril封装了目前所有的at指令供phone-server使 用,此即完成了 Modem与后台程序的交互。采用atril层的目的是实现不同制式网络的兼容 性,对于不同制式的网络加载不同的atril的动态连接库,从而完成同一个后台应用兼容 不同网络制式的实现。电话后台程序封装库Libphone为电话后台服务程序phone-server 接口的封装库,其封装了电话后台服务程序phone-server定义的所有交互接口,采用dbus 和电话后台程序phone-server进行交互。电话后台程序封装库Libphone直接被应用层 的电话单元Dialer、短信单元Messager和电话簿单元Contacts直接使用。采用此方法 就避免了 UI应用与后台程序的直接交互,电话后台程序封装库Libphone与电话后台服务 程序phone-server采用了一套统一接口定义,实现完整的UI与Server无关分离,为今后 的扩展性做了充分的准备。本系统的数据库是根据本发明的特点而特置存储的基础库,这 里采用了数据库分层的设计方法,即整体系统采用统一数据库接口。电话记录自定义库 Libchhelper、短信存储自定义库Libmsghelper、通讯录存储自定义库Libabhelper分别用 于电话记录存储、短信库存储、通讯录存储,其针对不同的数据库存储格式定义不用的动态 库服务不同的应用程序。这样可以有效地避免冗余数据库(即每个程序带自己的数据库), 并将所有与数据库交互的程序都写成动态链接库且通过libSqlRecord与Sqlite进行交 互。本系统中的声音架构交互库Iibsoimd库封装了声音架构模块ALSAdinux声音框架) 的接口,其主要功能负责自定义铃音和提示音的设定,其采用了多线程的方法,避免铃音、 提示音与系统声音冲突。实施例2并参见附图2,它是一个本系统的关于网络协议栈与移动终端之间通信 的物理界面,在这个系统中包括与所述应用层交互连接的移动终端,与网络交互连接的网 络端,其中,所述的移动终端与所述网络端之间具有相互通信关联的AT指令、响应、信息反 馈链路;其动态过程是,移动终端向网络端发送AT指令,网络端根据协议进行回复,然后再 发送相应的信息给移动终端。实施例3并参见附图3,它是一种基于Iinux的MID平台下电话系统的生成接口, 所述接口包括dbus自动生成工具模块、网络模块、电话模块、短信模块、设备模块、显示模 块、Sim卡模块,其中,所述dbus自动生成工具模块分别与所述网络模块、电话模块、短信模 块、设备模块、显示模块、Sim卡模块交互连接。其中的dbus自动生成工具模块是一种可以 使dbus实现更加简洁明确效果的工具,只要修改xml文件即可生成相应的网络模块、电话 模块、短信模块、设备模块、显示模块、Sim卡模块的函数且为扩展做好了充分的准备。实施例4并参见附图4,它是一种基于Linux的MI D平台下电话系统的电话后台 服务程序的生成方法,由于本发明所设置的电话系统物理界面的特点以及系统的交互界面 友好,因而在生成并调度本系统的电话后台服务程序时有如下的步骤第一步,初始化首先由所述的后台程序服务单元中的电话后台服务程序模块初 始化modem协议实现模块,亦即由phone-server首先初始化Modem,根据配置文件对Modem 的状态进行设置,如s im卡状态,短信存储位置等;第二步,对所述dbus设置,防止多个请求同时访问modem协议实现模块;也就是说 采用了多线程以及状态锁的方式对dbus进行设置,有了这样的措施就可以避免多个请求 同时访问modem ;
6
第三步,对所述生成接口的网络模块、电话模块、短信模块、设备模块、显示模块、 Sim卡模块这六个模块的接口函数进行初始化;第四步,由所述电话后台服务模块对系统的RIL无线接口层所有方法和信号回调 函数进行初始化,这里所说的RIL层其定义的是google所定义的modem实现通用接口 API ;第五步,对AT协议实现库模块进行加载,为所被加载的atril库其动态链接库的 回调函数接口就是基于ril. h所定义的,因此使用ril. h也是为今后的系统接口扩展打下 基石出;第六步,进入主循环进行事件的发生。这里所述的“发生”要件包括处理方法、处 理信号、上报信号。第七步,当应用程序发起一个请求时,进入相应模块的回调函数,执行相应的对 modem的操作。实施例5-8并参见附图5、6、7、8,在以上实施例中本发明多次强调了电话后台服 务程序模块phone-server的作用;例如附图5的模块界面说明了电话服务程序提供的用户 库程序模块Libphone同时与短消息程序模块message、电话程序模块dalier、通讯录程序 模块contacts相关联又与电话服务程序模块相关联的关系,说明了短信、电话、通讯录等 应用过程是通过使用Libphone定义的且使用规则也得到了相应的值。例如附图7,其模块界面描述了短消息程序模块message、电话程序模块dailer、 通讯录程序模块contacts与通讯记录存储库程序模块Libchhelper、短消息及彩信存储 库程序模块Libmsghelper、通讯录存储库程序模块Libabhelper与电话系统的存储库交 互库模块LibSqlRecord之间的关联关系,且这种关系直接与所述的底层模块的数据库 Sqlite关联,亦即为保证系统的最小性,保证所有的存储接口都具有一直的入口和出口, Libchhelper, Libmsghelper、Libabhelper分别用于电话记录存储、短信库存储、通讯录存 储,其正对不同的数据库存储格式定义不用的动态库服务不同的应用程序。所有与数据库 交互的程序都写成动态链接库,通过IibSqlRecord与Sqlite进行交互。例如附图6,是一个涉及本系统的电话后台程序封装库设计的流程图,该图表明从 建立一个新的数据文件结构通过列表的形式找到与所述dbus自动生成工具模块相关联的 入口并根据函数指针进入到相应的回调函数进行数据处理。例如附图8,是一个涉及本系统的声音框架设计图,该图表明通过所述后台程序模 块中的声音架构交互库与声音架构模块之间的关联关系实现系统整体声音的规划,例如由 tone-manager管理个性铃音,当来电时则需要将正在播放的audio、video停止,然后播放 个性铃音。由于整个系统底层采用的是alsa框架,alsa是单线程的,为避免应用程序的冲 突,Iibsound采用多线程监控,保证alsa的正常运行。
权利要求
一种基于Linux的MID平台下的电话系统,其特征在于,底层模块单元、服务程序与自定义库层单元、应用层单元、插件层单元,其中,所述服务与自定义层单元包括后台程序服务模块单元、自定义单元,所述的底层模块单元与后台服务程序模块单元交互连接,所述的应用层单元与插件层单元交互连接,所述的自定义封装库单元包括电话后台程序封装库、电话记录自定义库、短信存储自定义库、通讯录存储自定义库,其中,所述后台程序封装库与所述后台程序服务单元交互连接,所述电话记录自定义库、短信存储自定义库、通讯录存储自定义库分别与所述后台程序服务单元中的数据库交互库相连接,上述各层之间通过Dbus总线进行通信。
2.根据权利要求1所述的基于Linux的MID平台下的电话系统,其特征在于,所述底层 模块单元包括协议实现模块、数据库模块、声音架构模块。
3.根据权利要求1所述的基于Linux的MID平台下的电话系统,其特征在于,所述后 台服务程序模块单元至少包括由彼此关联的电话后台服务程序模块、RIL无线接口模块、AT 协议实现库模块、数据库交互库模块和声音架构交互库模块。
4.根据权利要求1所述的基于Linux的MID平台下的电话系统,其特征在于,所述应用 层单元包括电话单元、短信单元、电话簿单元。
5.根据权利要求1所述的基于Linux的MID平台下的电话系统,其特征在于,所述插件 层单元包括状态栏插件、电话设置插件、铃声设置插件。
6.一种基于Linux的MID平台下电话系统的生成接口,所述接口包括dbus自动生成工 具模块、网络模块、电话模块、短信模块、设备模块、显示模块、Sim卡模块,其中,所述dbus 自动生成工具模块分别与所述网络模块、电话模块、短信模块、设备模块、显示模块、Sim卡 模块交互连接。
7.一种基于Linux的MID平台下电话系统的网络协议与移动终端通信的系统,所述系 统包括与应用层交互连接移动终端,与网络交互连接的网络端,其中,所述的移动终端与所 述网络端之间具有相互通信关联的AT指令、响应、信息反馈链路。
8.根据权利要求1所述一种基于Linux的MID平台下电话系统的电话后台服务程序的 生成方法,包括步骤(1)初始化,首先由所述的后台程序服务单元中的电话后台服务程序模块初始化 modem协议实现模块;(2)对dbus设置,防止多个请求同时访问modem协议实现模块;(3)对所述生成接口的六个模块网络模块、电话模块、短信模块、设备模块、显示模 块、Sim卡模块进行初始化;(4)由所述电话后台服务程序模块对系统的RIL层所有方法和信号回调函数进行初始化;(5)对AT协议实现库模块进行加载;(6)进入主循环等待进行事件的发生;(7)当应用程序发起一个请求时,系统进入相应模块的回调函数,执行相应的对modem 的操作。
全文摘要
本发明涉及一种基于Linux的MID平台下电话的系统及其实现方法。所述电话系统整体结构简洁,有效地避免了目前电话系统的冗余性,能够很好的兼容各种制式的网络,通过其电话服务程序模块解决了协议层和接口层的分离,并根据不同的网络制式可以记载不同的atril动态链接库;在处理消息队列里采用了多线程和线程锁的方式,保证了程序的可靠性。尤其是针对在后台程序服务单元采用了RIL层,以便电话系统日后的接口扩展,实现了UI与server的全分离,可进行UI定制,存储方面采取数据库最小化设计,且给出系统整体声音设计架构。
文档编号H04M1/725GK101917509SQ201010205700
公开日2010年12月15日 申请日期2010年6月22日 优先权日2010年6月22日
发明者乔警卫, 刘海云, 吴永军, 周宇, 左飞, 张东帆, 沈彬, 王宇冬, 赵姗, 马勇, 黄叶青, 龚文 申请人:中科方德软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1