盛世宏图 发表于 2023-6-9 01:11:59

CentOS7环境编译python3.9版本pjsua

环境:CentOS 7.6_x64   
Python版本 :3.9.12
pjsip版本:2.13
 一、背景描述

 pjsip地址:https://www.pjsip.org/
GitHub地址:https://github.com/pjsip/pjproject
pjsip文档地址:https://docs.pjsip.org/en/latest/
最新版本:2.13
pjsip是一个功能强大的sip协议栈和媒体处理库,MicroSIP软电话就是基于pjsip实现的,功能很强大。
其中的pjsua可以实现软电话的基础功能,在日常开发中可以作为uas或uac辅助开发,但pjsua默认绑定的python版本是python 2.4,使用起来有诸多限制,希望可以使用python3调用pjsua库。
之前写过在windows10环境下编译python3版本的pjsua:
windos10环境下编译python3版pjsua库
这里记录下centos7环境编译pjsua的过程及注意事项,并提供预编译二进制文件下载,可通过如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230608 获取。 
这里使用 Python 3.9.12 版本,具体编译过程可参考这篇文章:
CentOS7环境源码安装python3.9
二、具体实现

 1、替换文件

官方给的代码不支持python3,需要使用第三方代码:
https://github.com/mgwilliams/python3-pjsip.git
下载之后,替换该目录 pjsip-apps/src/python,或使用软链接:
cp python3-pjsip.tar.gz pjproject-2.13/pjsip-apps/src/
cd pjproject-2.13/pjsip-apps/src/
mv python python_bak
tar zxvf python3-pjsip.tar.gz
ln python3-pjsip -s pythonhttps://img2023.cnblogs.com/blog/300959/202306/300959-20230609004749275-42074239.png
2、编译pjsip

编译pjsip时需要添加 -fPIC 选项
目录:pjproject-2.13
编译pjsip命令:
./configure CFLAGS="$CFKAGS -fPIC"
make dep && make3、编译python3版本pjsua

目录:pjproject-2.13/pjsip-apps/src/python
编译脚本:
vim doBulild.sh
https://img2023.cnblogs.com/blog/300959/202306/300959-20230609004849523-2135162745.png
 执行如下命令:
chmod a+x doBuild.sh
./doBulild.sh
ls build/lib.linux-x86_64-cpython-39/
https://img2023.cnblogs.com/blog/300959/202306/300959-20230609004923516-776886227.png
 编译过程视频获取途径:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023060801 获取。 
三、运行效果

1、环境准备

python3.9的env.sh文件,位置:/root/py39env/env.sh
内容:
#! /bin/bash

pydir=/root/py39env
export CFLAGS="-I$pydir/include"
export LDFLAGS="-L$pydir/lib"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$pydir/lib执行如下命令:
source /root/py39env/env.sh
2、导入测试

导入测试成功:
https://img2023.cnblogs.com/blog/300959/202306/300959-20230609005026856-224396571.png
3、注册测试

示例代码路径:
pjproject-2.13/pjsip-apps/src/python/samples
示例文件:registration.py
修改端口及注册信息:
https://img2023.cnblogs.com/blog/300959/202306/300959-20230609005038939-902715559.png
 完整源码获取途径:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230608 获取。 
注册测试:
https://img2023.cnblogs.com/blog/300959/202306/300959-20230609005205416-494656293.png
四、资源下载

本文涉及源码和文件,可以从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230608 获取。 
https://img2023.cnblogs.com/blog/300959/202306/300959-20230609005223069-1809609949.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: CentOS7环境编译python3.9版本pjsua