實(shí)現目標:
FreePBX創(chuàng )建pjsip分機,WebRTC客戶(hù)端可以使用pjsip分機賬號登陸,同時(shí)實(shí)現WebRTC內部分機語(yǔ)音溝通,對接網(wǎng)關(guān)后,可以使用WebRTC客戶(hù)端與運營(yíng)商號碼的雙向語(yǔ)音呼叫。
相對比與asterisk搭建,FreePBX有著(zhù)可視化頁(yè)面,可以方便管理員對分機賬號的創(chuàng )建和管理,同時(shí)和asterisk的管理難度相比,操作難度減低,方便用戶(hù)使用WebRTC集成其他企業(yè)業(yè)務(wù)實(shí)現IPPPBX的WebRTC業(yè)務(wù)支持和擴展。
測試環(huán)境:
- FreePBX版本SNG7-FPBX-64bit-1805-2
- WebRTC客戶(hù)端sipML5客戶(hù)端
- 語(yǔ)音網(wǎng)關(guān):sangoma vega50模擬網(wǎng)關(guān)
- 火狐瀏覽器68.0.1 (64 位)
- SIP軟電話(huà)eyeBeam軟電話(huà)
配置完整拓撲圖:

配置步驟:
首先需要到官方下載FreePBX,安裝配置以后,可以通過(guò)界面登錄FreePBX系統。然后,再進(jìn)行以下流程配置。其流程包括:創(chuàng )建證書(shū),創(chuàng )建WebRTC分機,創(chuàng )建SIP分機,使用webrtc客戶(hù)端登錄WebRTC分機,配置網(wǎng)關(guān),配置FreePBX呼入呼出路由。下面,我們會(huì )通過(guò)一步步配置來(lái)告訴大家如何實(shí)現WebRTC和網(wǎng)關(guān)呼入呼出的對接呼叫。
創(chuàng )建證書(shū):
在WebRTC中,需要證書(shū)的支持才能支持登陸,在本次測試環(huán)境中為內網(wǎng)環(huán)境,沒(méi)有公網(wǎng)證書(shū),所以需要自己在FreePBX中創(chuàng )建證書(shū)。供測試使用,創(chuàng )建證書(shū)導航為“管理員>>證書(shū)管理”進(jìn)入頁(yè)面之后,按下圖所指示進(jìn)入證書(shū)創(chuàng )建頁(yè)面

創(chuàng )建證書(shū)模板為

配置完成后記得在左下角點(diǎn)擊提交,提交之后在右上角更新配置

關(guān)注知識星球,獲取更多關(guān)于SIP應用場(chǎng)景技術(shù)SIP相關(guān)技術(shù)方案
證書(shū)的默認路徑為“/etc/asterisk/keys/”使用遠程軟件連接到freepbx后臺查看你所創(chuàng )建的證書(shū)

證書(shū)頁(yè)面:
在配置http守護進(jìn)程完成之后,現在我們進(jìn)入證書(shū)頁(yè)面,驗證配置是否成功,在火狐瀏覽器中輸入“https://192.168.1.31:8089/httpstatus”出現該頁(yè)面時(shí),配置完成

PJSIP分機創(chuàng )建:
接下來(lái)需要創(chuàng )建PJSIP分機,供sipML5客戶(hù)端以及eyeBeam軟電話(huà)注冊,進(jìn)行通訊的測試,最先的就是將sip通道設置為僅僅pjsip,使用auto模式時(shí),pjsip分機登陸可能會(huì )走到sip通道,導致登陸失敗,設置路徑為“設置>>高級設置”找到“撥號規則和操作”這一板塊下,修改為下圖中的設置。

配置完成后,進(jìn)入“設置>>Asterisk SIP設置”在通用設置頁(yè)面下,修改一下參數,開(kāi)啟RTP的功能,同時(shí),在下面的語(yǔ)音編碼中,記得添加好opus模塊

現在修改PJISP設置,設置如下

PJSIP分機創(chuàng )建及屬性修改,在測試中,需要創(chuàng )建3臺分機 ,2臺為sipML5使用的分機,一臺為eyeBeam軟電話(huà)登陸分機。設置路徑為“應用配置>>分機”添加PJSIP分機

設置為

現在創(chuàng )建一臺eyebeam軟電話(huà)登陸的PJSIP分機僅僅修改密碼就好,其余使用默認設置。

注意:創(chuàng )建PJSIP分機時(shí),筆者在點(diǎn)擊更新后,sipML5客戶(hù)端以及軟電話(huà)登陸pjsip分機都出現了forbide的錯誤,這是配置沒(méi)有完全生效,可以重啟asterisk后臺,或者直接putty連接重啟freepbx。
通話(huà)測試
現在進(jìn)行通話(huà)測試,sipML5客戶(hù)端和軟電話(huà)的使用在之前文章有提及,不過(guò)多贅述,在本次測試中為內網(wǎng)環(huán)境,不需要nat以及stun服務(wù)器的配置,因此在專(zhuān)家模式中需要進(jìn)行一些改動(dòng)。
8888分機上線(xiàn)成功

9999分機上線(xiàn)成功

軟電話(huà)上線(xiàn)成功

sipML5客戶(hù)端8888呼叫sipML5客戶(hù)端9999:

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖

sipML5客戶(hù)端8888呼叫軟電話(huà)10000:

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖

軟電話(huà)10000呼叫sipML5客戶(hù)端8888:

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖

軟電話(huà)10000呼叫sipML5客戶(hù)端9999:

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖

sipML5客戶(hù)端9999呼叫sipML5客戶(hù)端8888

通話(huà)建立成功,asterisk后臺日志可查看,下圖

sipML5客戶(hù)端9999呼叫sipML5客戶(hù)端10000

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖

至此,sipML5客戶(hù)端以及到軟電話(huà)的內網(wǎng)通訊全都測試完畢,雙向通訊正常。
接下來(lái)我們進(jìn)行更深一步的測試,讓freepbx對接sangoma的網(wǎng)關(guān)設備,型號為vega50模擬網(wǎng)關(guān),使得內部話(huà)機可以與運營(yíng)商雙向呼叫。
FreePBX配置:
與vega網(wǎng)關(guān)對接,需要一條中繼指向網(wǎng)關(guān),在設置路徑為“通信接口連接>>中繼”

我們在這添加一條sip(chan_pjsip)中繼,默認設置中,將中繼名設置為簡(jiǎn)單易懂的名字

“pjsip配置”中,我們關(guān)閉認證和注冊功能,在SIP服務(wù)器和端口,輸入vega網(wǎng)關(guān)的IP地址和端口

現在配置入局路由。設置路徑為“通信接口連接>>入局線(xiàn)路>>添加呼入路由設置”設置未知目的地為分機 ,同時(shí)指導一個(gè)分機號碼接受運營(yíng)商的呼叫

現在配置出局路由。設置路徑為“通信接口連接>>出局線(xiàn)路>>添加呼出路由設置”在匹配中繼順序中,選擇好之前創(chuàng )建的中繼。

在Dial Patterns設置中,匹配模式設置為X.為匹配所有

現在進(jìn)行網(wǎng)關(guān)側配置
在vega網(wǎng)關(guān)上,建議新手使用快速配置



配置完成后,進(jìn)行呼叫測試
使用sipML5客戶(hù)端8888分機呼叫運營(yíng)商號碼,撥號時(shí)異地號碼前加0

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖


呼入測試,使用手機撥打回PSTN線(xiàn)路號碼,檢查8888分機是否能接受呼叫

通話(huà)建立成功,asterisk后臺日志可查看,下圖為日志部分截圖

注意:
- WebRTC通信對多方環(huán)境的依賴(lài)程度比較高,在本環(huán)境下配置成功不代表環(huán)境
- 在FreePBX配置時(shí),記得使用快照功能,筆者在實(shí)際配置時(shí),由于一些誤操作 導致IP被PBX加入黑名單,無(wú)法遠程訪(fǎng)問(wèn)頁(yè)面,使用快照可還原狀態(tài)
- FreePBX部分配置保持后,沒(méi)有立即生效,需要手動(dòng)重啟PBX,保證配置生效,否則可能會(huì )出現。


SIPlab@知識星球學(xué)習SIP語(yǔ)音相關(guān)技術(shù)
asterisk@知識星球免費獲取關(guān)于A(yíng)sterisk的完整知識資料
關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的Asterisk行業(yè)分享
Asterisk freepbx,FreeSBC技術(shù)文檔: www.freepbx.org.cn
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
Asterisk/FreePBX中國合作伙伴,官方qq技術(shù)分享群(3000人):589995817