pjsip开发(android 网络电话开发,VOIP/SIP 那么多开源选哪个好)

本文目录
android 网络电话开发,VOIP/SIP 那么多开源选哪个好
觉得好用的是linphone 和csipsimple,linphone的最大优势在于全平台支持,android,ios,winphone,windows,linux,mac osx,web 全都支持,但是质量上还是欠火候,改过他的库,添加过g.729的支持,他的c 代码,命名和缩进都觉得乱。
可能是看过pjsip 的代码,有些情有独钟吧,总之咱非常喜欢pjsip的简洁,高效,代码的设计非常赞,注释文档也很棒,直接用doxygen生成文档。所以自然特别关注了一些csipsimple。
UI上,csipsimple基本就是提取android原生的拨号程序,然后用swig生成的接口。功能的完整性,还是UI都胜过其他那几个开源。所以在android开发上,主要基于csipsimple 做了很多改进。
如何在 android 设备上使用 pjsip G.729 编解码的功能
第一步是生成 pjsip 为 Android (步骤为 Ubuntu Linux) 的源代码:
1.设置 ANDROID_NDK_ROOT 环境变量设置为您 NDK 根文件夹。
2.转到 pjsip 2.x 文件夹并创建 pjlib/include/pj/config_site.h 包括 config_site_sample.h ( #include 《pj/config_site_sample.h》 )
3.运行./configure-android
4.运行make clean && make depend && make
之后这些步骤,将有几个静态库中的几个文件夹。建议将它们分组相同的文件夹 (最好在您的项目中) 中的:
mkdir 《your_project_path》/pjsip_libs
find . -name *.a | xargs -I % cp % 《your_project_path》/pjsip_libs/
一旦自己的所有库,您需要将这些库添加到您的项目 Android.mk 文件,这是由包括一个新的模块节每个图书馆。此模块部分应该是一样的东西:
include $(CLEAR_VARS)
LOCAL_MODULE := pjsua-arm-unknown-linux-androideabi
LOCAL_SRC_FILES := $(MY_PJLIB_PATH)/libpjsua-arm-unknown-linux-androideabi.a
include $(PREBUILT_STATIC_LIBRARY)
,其实是一节中构建您的 JNI 项目的源代码,所有模块都添加到您的静态库的引用:
LOCAL_STATIC_LIBRARIES := pjsua-arm-unknown-linux-androideabi ...
这将包括 pjsip 的引用加入您的 JNI 库。现在,您需要配置 pjsip UA 实例。
有一个关于 init 和开始的解释 pjsip 的 UA (pjsua) 在 pjsip/include/pjsua-lib/pjsua.h 但要遵循的主要步骤是:
1.创建一个具有 UA 实例pjsua_create
2.创建一个工作线程与pj_thread_create
3.UA 实例的设置的默认配置:
pjsua_config cfg 桩 ;pjsua_logging_config log_cfg ;pjsua_media_config media_cfg ;
pj_cli_cfg_default(&app_config.cli_cfg.cfg) ;pjsua_logging_config_default(&log_cfg) ;pjsua_media_config_default(&media_cfg) ;
4.初始化堆栈与pjsua_init
5.启动与堆栈pjsua_start
从这里,有充足的配置选项 (日志、 媒体、 交通工具等)
您可以找到基本 PJSIP 教程在这里,和里面 pjsip 的源的根路径,有一个基本 (但不够完整,基本的 SIP 使用情况) 在:pjsip-apps/src/samples/simple_pjsua.c
:在生成时在 pjsip 应用程序的 android 项目,可以面临一个问题,因为 pjsua app 不生成默认情况下,对一般生成 (更具体地说,pjsua: 目标不包括所有上: 在 pjsip-应用程序/生成/生成文件的目标)。若要修复这只是转到 pjsip-应用程序/创建和运行:
使 pjsua
这将创建在正确的对象文件: pjsip-apps/build/output/pjsua-arm-unknown-linux-androideabi/ (需要构建 android 样本时)。
一旦所有相应的对象文件,您可以在 pjsip-应用程序/src/pjsua/android 系统再次运行 ndk 生成

更多文章:
session已过期重新授权(苹果手机session过期怎么恢复啊)
2026年3月8日 10:00
scrapy中间件(scrapy框架中setting中中间件数字大的先执行么)
2026年8月22日 13:45
matlab定义变量并赋初值(在matlab中用输入量给变量赋值)
2026年6月11日 15:00
程序设计语言是如何通过a b+1的(C语言中c=(a+b,a++,b+1);什么意思)
2026年6月29日 19:30
apache中国官网(中国sns交友网站排行前十名分别是什么)
2025年6月30日 20:45
eclipse创建的项目在哪里(Eclipse的src文件在哪里啊)
2026年8月31日 03:15
什么是函数?js正则查找match()与替换replace()用法实例
2025年9月29日 19:00
frameset标签的属性(在html标签中的frameset是什么标签 又有哪些属性和值)
2025年12月6日 02:15
translate最新消息(‘请以最新的信息为准’ 怎么翻译)
2026年6月5日 08:00
thymeleaf使用ajax(如何在Thymeleaf中实现ajax请求url的可靠构造)
2025年6月24日 09:00














