環境: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:
這裡記錄下centos7環境編譯pjsua的過程及注意事項,並提供預編譯二進位制檔案下載,可通過如下途徑獲取:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 20230608 獲取。
這裡使用 Python 3.9.12 版本,具體編譯過程可參考這篇文章:
官方給的程式碼不支援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
編譯pjsip時需要新增 -fPIC 選項
目錄:pjproject-2.13
編譯pjsip命令:
./configure CFLAGS="$CFKAGS -fPIC" make dep && make
目錄: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 獲取。
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
匯入測試成功:
範例程式碼路徑:
pjproject-2.13/pjsip-apps/src/python/samples
範例檔案:registration.py
修改埠及註冊資訊:
完整原始碼獲取途徑:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 20230608 獲取。
註冊測試:
本文涉及原始碼和檔案,可以從如下途徑獲取:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 20230608 獲取。