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 python

2、編譯pjsip

編譯pjsip時需要添加 -fPIC 選項

目錄:pjproject-2.13

編譯pjsip命令:

./configure CFLAGS="$CFKAGS -fPIC"
make dep && make

3、編譯python3版本pjsua

目錄:pjproject-2.13/pjsip-apps/src/python

編譯腳本:

vim doBulild.sh

 執行如下命令:

chmod a+x doBuild.sh

./doBulild.sh

ls build/lib.linux-x86_64-cpython-39/

 編譯過程視頻獲取途徑:

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 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、導入測試

導入測試成功:

3、註冊測試

示例代碼路徑:

pjproject-2.13/pjsip-apps/src/python/samples

示例文件:registration.py

修改端口及註冊信息:

 完整源碼獲取途徑:

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 20230608 獲取。 

註冊測試:

四、資源下載

本文涉及源碼和文件,可以從如下途徑獲取:

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 20230608 獲取。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章