我正在使用PJSIP为Android,iOS等开发Softphone拨号器应用程序。我需要知道如何将G.729 Codec与项目集成。我在PJSIP网站上看到了与使用英特尔IPP构建G.729编解码器相关的文章。但是,当我联系英特尔支持团队时,他们告诉我,它只支持旧版本的IPP。现在他们不支持arm处理器,G.729 Codec也没有提供样本项目。有没有其他方法可以将编解码器与PJSIP项目集成。
提前致谢
答案 0 :(得分:4)
我对我的一个VOIP应用程序有同样的要求。但是没有找到任何解决方案或堆栈溢出答案很长一段时间。所以最后我才知道还有另一个与g729codec集成的开源“linphone”(不是pjsip堆栈)。
所以我从linphone单独使用g729编解码器库并为pjsip创建了一个补丁。此外,我已经测试了我的iOS应用程序,它运作良好。您可以从我的git repo https://github.com/saravanandm/pjsip-g729codec
下载补丁答案 1 :(得分:1)
首先,您需要从pjsip-android-builder库https://github.com/VoiSmart/pjsip-android-builder/tree/master/g729_patch下载g729补丁
下载pjsip,解压缩;把g729_patch文件夹和pjsip文件夹放到一个文件夹中。 在编辑器install.sh中打开g729_patch并编辑第5行(用pjsip放置文件夹的正确名称),对我来说是: PJPROJECT_BASE_FOLDER =" ../ pjproject-2.7.2"
在终端cd到g729_patch目录并运行./install.sh(你需要安装autoconf实用程序);补丁也可以手动应用,请参阅自述文件中的说明。
使用以下内容创建文件config_site.h:
#define PJ_CONFIG_ANDROID 1
#define PJMEDIA_HAS_G729_CODEC 1
#define PJMEDIA_HAS_G7221_CODEC 1
#include <pj/config_site_sample.h>
对我而言,它适用于Android但可以用于其他平台,因此第一行可以变化,也可以添加其他选项。 将此文件放入/ pjlib / include / pj。
cd到你的pjsip目录并运行:
./ configure-android --enable-g729-codec
对我来说它是android所以我跑了./configure-android但可能是其他的。 在此步骤中,可以应用任何其他配置标志,例如对我来说 NDK_TOOLCHAIN_VERSION = 4.9 TARGET_ABI = armeabi-v7a ./configure-android --use-ndk-cflags --enable-g729-codec
然后运行:
制作dep&amp;&amp;使干净&amp;&amp;使
它是 - pjsip是用g729编解码器编译的。
答案 2 :(得分:0)
似乎PJSIP已经支持G.729
http://www.pjsip.org/pjmedia/docs/html/group__PJMED__IPP__CODEC.htm
http://trac.pjsip.org/repos/wiki/FAQ#g729-g723
请按照此处的说明操作:
https://github.com/chakrit/gossip/issues/6
在这里你找到了针对linux的istruction,也许还有一些修复:
How to use pjsip on android device in order to have G.729 codec functionality
答案 3 :(得分:0)
对我来说,使用IPP会有点矫枉过正。 AFAIR它也不是免费的。
使用GSM编解码器模块作为模板,修改它并将开源G.729 / a(asterisk,freeswitch)实现添加为第三方库。
答案 4 :(得分:0)
您可以查看CSipSimple项目(https://code.google.com/p/csipsimple/),他们使用pjsua和G729编解码器可以包含在应用程序中。