语音模块使用说明
一、软件包
gsm-1.0-pl12
GSM编解码库
alsa-lib-1.0.14
ALSA用户层控制函数库,内核语音模块需要支持ALSA
alsa-utils-1.0.14
ALSA工具集,依赖于alsa-lib,该工具集提供amixer进行音量调节
libogg-1.1.4
通用开源语音编解码库
speex-1..2rc1
SPEEX开源语音编码协议库,编译linphone需要该库
live555-20100409
livemedia 多媒体支持库,vlc需要该库支持语音多播功能
ffmpeg-0.5
多媒体编码支持库,支持多种格式语音、视频编解码,本项目中使用到该库的a-law, u-law 语音编解码用于语音多播功能
libosip2-3.3.0
SIP协议库
libeXosip2-3.3.0
基于libosip2的SIP协议扩展库,支持更方便的SIP协议API,编译linphone需要该库
linphone-3.2.1
SIP软件电话,需要语音编解码库libogg,gsm,speex的支持,以及SIP协议库libosip2,libeXosip2的支持
vlc
VLC流媒体软件,支持流媒体播放功能,需要语音编解码库ffmpeg,流媒体广播库live555的支持
net-control
网络控制功能软件包,提供与语音控制相关的网络接口
二、语音功能与软件包对照列表
点对点呼叫功能:
该功能使用linphone软件包提供的linphonec配合linphonecsh命令接口实现,默认情况下所有需要支持该功能的终端在启动时自动运行linphonec,需要呼叫时由网络模块调用linphonecsh命令接口控制linphonec完成相关功能。
点对多点广播功能:
该功能使用vlc软件包提供的vlc完成,默认情况下vlc不运行,在需要进行网络广播时,由网络控制模块调用vlc加入指定的多播组实现语音广播功能,广播完成后网络控制模块终止vlc的运行。
三、语音模块软件包的编译
前置条件:
安装交叉编译工具链
设置编译环境:
根据编译主机目录环境及交叉编译工具链的安装路径,设定sip-phone/目录下的env.sh.sample中的参数,设置完成后使用
$source ./env.sh.sample
导入编译设定参数
开始编译:
完成编译环境的设置后,运行自动编译脚本
$./make_world.sh
将自动编译生成根文件系统
四、编译环境各目录及文件说明
packages/目录中存放语音模块相关软件包的源代码
skeleton/目录中存放参考根文件系统的目录结构框架及基本配置文件
tools/目录中存放编译各软件包以及生成根文件系统的脚本
env.sh.example参考的编译环境设置文件
make_clean.sh清理编译环境的脚本
make_world.sh编译各软件包以及生成根文件系统的入口脚本
编译过程中会产生下列目录:
staging/目录中存放交叉编译过程中生成的目标系统运行库及编译需要运行到的头文件rootfs/目录存放最终目标系统的根文件系统内容
五、版权
本语音模块使用的软件包均遵循开放源代码版权协议,各软件包协议略有不同,请遵循各软件包版权协议发布相关软件。
本语音模块相关工具及脚本文件遵循GPL v2软件许可协议发布,使用及发布时请遵循相关软件许可协议。