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


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/554679.html
標籤:其他
上一篇:C++面試八股文:C++中,設計一個類要注意哪些東西?
下一篇:返回列表
