Mac平台下编译PJSIP Android端 实现VoIP通话

官方文档:Getting-Started/Android – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones

环境:

macos 12.1

pjsip版本为最新:2.11.1

ndk版本:21(sdk自带的,位于sdk安装目录下ndk-bundle),如果没有自己下载即可

编译步骤:

1.PJSIP源码:

https://www.pjsip.org/download.htm

2.config_site.h

该文件位于:pjlib/include/pj目录下,没有则新建该文件,并配置如下:

/* Activate Android specific settings in the 'config_site_sample.h' */
#define PJ_CONFIG_ANDROID 1
#include 

3.开始编译

$ cd /path/to/your/pjsip/dir   #cd到源码根目录
$ export ANDROID_NDK_ROOT=/path_to_android_ndk_dir  #ndk设置
$ ./configure-android
$ make dep && make clean && make

4.构建Android代码

cd pjsip-apps/src/swig
$ make

此步骤需要安装swig,mac下使用homebrew直接安装,brew install swig

生成的项目代码位于:

pjsip-apps/src/swig/java/android

Mac平台下编译PJSIP Android端 实现VoIP通话_第1张图片

  •  java和kotlin版本的调用demo
  • pjsua2下是生成的核心java代码
  • jnjLibs下为生成的so库

5.生成不同CPU架构so库

$ cd /path/to/your/pjsip/dir   #cd到源码根目录
$ make clean

# cleanup pjsua sample app
$ cd pjsip-apps/src/pjsua/android/jni  
$ make clean

# also cleanup pjsua2 sample app (SWIG)
$ cd /path/to/your/pjsip/dir
$ cd pjsip-apps/src/swig
$ make clean

# armeabi-v7a x86 x86_64
$ TARGET_ABI=arm64-v8a ./configure-android --use-ndk-cflags

$ make dep && make clean && make

$ cd pjsip-apps/src/swig
$ make

每次执行如上步骤,最后生成一套cpu架构的库,位于

pjsip-apps/src/swig/java/android/pjsua2/jniLibs,可以先复制出来,因为make clean之后会删除掉,这样如上步骤如此反复,即可生成多套库。

测试

我只要一部手机,于是我在电脑上安装了Linphone,去官网注册了一个sip account,用手机拨给Linphone。

代码中增加一行配置:

Mac平台下编译PJSIP Android端 实现VoIP通话_第2张图片

先点加号图标,将被叫端SIP ID配置好,在列表中点击该账号,点击电话图标进行呼叫。 

Mac平台下编译PJSIP Android端 实现VoIP通话_第3张图片Mac平台下编译PJSIP Android端 实现VoIP通话_第4张图片Mac平台下编译PJSIP Android端 实现VoIP通话_第5张图片

Mac平台下编译PJSIP Android端 实现VoIP通话_第6张图片Mac平台下编译PJSIP Android端 实现VoIP通话_第7张图片

编译后的代码,不想费劲编译的朋友可以直接下载使用:

https://download.csdn.net/download/always_and_forever_/81128075

你可能感兴趣的:(Android,android,java,apache)