Python知識分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
python3使用pjsua進行呼叫測試
匿名網(wǎng)友發(fā)布于:2023-06-26 12:02:16
(侵權(quán)舉報)

一、關(guān)鍵點描述

 1、音頻設(shè)備設(shè)置

CentOS7虛擬機沒有音頻設(shè)備,可以通過set_null_snd_dev來避免pjsua模塊報錯。

python3使用pjsua進行呼叫測試 圖1

2、編碼設(shè)置

可以通過set_codec_priority函數(shù)來設(shè)置編碼的優(yōu)先級,避免編碼問題導(dǎo)致呼叫失敗。

pjsua支持的編碼列表如下:

 

speex/8000/1
speex/32000/1
iLBC/8000/1
GSM/8000/1
PCMU/8000/1
PCMA/8000/1
G722/16000/1
opus/48000/2
G729/8000/1
L16/44100/1
L16/44100/2

 

具體可參考如下文檔:

https://docs.pjsip.org/en/latest/api/generated/pjsip/group/group__PJSUA__LIB__MEDIA.html#group__PJSUA__LIB__MEDIA

python3使用pjsua進行呼叫測試 圖2

3、自動播放聲音文件

1)通過 create_player 函數(shù)創(chuàng)建playerId;

2)通過player_get_slot函數(shù)獲取slot;

3)通過call對象獲取呼叫的slot;

4)然后conf_connect進行連接兩個slot連接,進而實現(xiàn)音頻播放。

 

具體參考這里:

https://docs.pjsip.org/en/latest/api/generated/pjsip/group/group__PJSUA__LIB__MEDIA.html#group__PJSUA__LIB__MEDIA


python3使用pjsua進行呼叫測試 圖3

 

二、具體實現(xiàn)

 1、作為uac進行測試

需要作為分機注冊到FreeSWITCH,示例如下:

 

acc = lib.create_account(pj.AccountConfig("192.168.137.32:5060", "1012", "0000"))

 

代碼如下:

python3使用pjsua進行呼叫測試 圖4

 完整代碼獲取途徑:關(guān)注微信公眾號(聊聊博文,文末可掃碼)后回復(fù) 20230622 獲取。 

2、作為uas進行測試

1)編寫UAS腳本

需要指定sip服務(wù)端口,示例如下:

 

tp= lib.create_transport(pj.TransportType.UDP,pj.TransportConfig(55081))
lib.start()

代碼如下:

python3使用pjsua進行呼叫測試  圖5

2)編寫撥號方案

 

<extension name="pjsua_uas_test">
    <condition field="destination_number" expression="^123$">
         <action application="set" data="hangup_after_bridge=true"/>
         <action application="bridge" data="sofia/external/123@192.168.137.32:55081"/>
    </condition>
</extension>

 

三、運行效果

1、uac測試效果

1)啟動FreeSWITCH;

2)運行uac腳本注冊分機;

source /root/py39env/env.sh
/root/py39env/bin/python3.9 uac.py

3)使用軟電話注冊分機;

4)使用軟電話撥打uac分機;  

預(yù)期效果:

軟電話可聽到uac分機播放的音頻。

python3使用pjsua進行呼叫測試 圖6

運行效果視頻獲取途徑:

2、uas測試效果

1)啟動FreeSWITCH;

2)編寫撥號方案;

3)運行uas腳本啟動服務(wù);

source /root/py39env/env.sh
/root/py39env/bin/python3.9 uas.py

4)使用軟電話注冊分機;

5)使用軟電話撥打接入號驗證;

預(yù)期效果:

軟電話可聽到uas播放的音頻。

python3使用pjsua進行呼叫測試 圖7

 

轉(zhuǎn)載自:https://www.cnblogs.com/MikeZhang/p/pyPjsuaExample20230623.html