CentOS7環境編譯python3.9版本pjsua

2023-06-09 06:00:41

環境: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 獲取。