如何将G.729编解码器与PJSIP项目

时间:2015-06-28 12:36:07

标签: pjsip

我正在使用PJSIP为Android,iOS等开发Softphone拨号器应用程序。我需要知道如何将G.729 Codec与项目集成。我在PJSIP网站上看到了与使用英特尔IPP构建G.729编解码器相关的文章。但是,当我联系英特尔支持团队时,他们告诉我,它只支持旧版本的IPP。现在他们不支持arm处理器,G.729 Codec也没有提供样本项目。有没有其他方法可以将编解码器与PJSIP项目集成。

提前致谢

5 个答案:

答案 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)

答案 3 :(得分:0)

对我来说,使用IPP会有点矫枉过正。 AFAIR它也不是免费的。

使用GSM编解码器模块作为模板,修改它并将开源G.729 / a(asterisk,freeswitch)实现添加为第三方库。

答案 4 :(得分:0)

您可以查看CSipSimple项目(https://code.google.com/p/csipsimple/),他们使用pjsua和G729编解码器可以包含在应用程序中。