openSIPS是非常強大的開源SIP 信令伺服器,通過可以實現運營商級的產品支持,同時也可以實現一些基本的IPPBX功能,例如用戶之間的呼叫功能,用戶輪詢振鈴,電話前轉,轉接等。今天,筆者為用戶演示如何通過部署在雲平臺的openSIPS,通過Zopier手機APP和內網部署的鼎信通達SIP話機之間的呼叫。通過這樣的配置方式也可以滿足一些企業的IPPBX一般異地內網互相呼叫的功能。
測試環境:
部署在雲平臺的OpenSIPS-3.1和OpenSIPS-CP界面系統
Zoiper 軟電話app
本地內網鼎信通達SIP 終端(IP63P)
測試前準備說明:
創建一個SIP domain,根據自己的需求設置。
首先創建SIP 帳號,這裡創建的帳號分別是1000和1001。以下示例是通過Zoiper註冊電話1001(關閉wifi內網)。
設置相關的伺服器地址和代理地址。
調整語音編碼支持的優先級。Zoiper免費版默認支持是GSM和Opus優先級,用戶需要自己調整到話機也支持的uLaw和alaw。
登錄鼎信SIP話機界面配置SIP相關信息:
開啟調整話機的編碼優先級,支持PCMU和PCMA,和APP配置對應。
呼叫1000話機,1000呼機接聽。
查看記錄。通過opensips-cp檢查contact的狀態信息,這裡的話機是鼎信的物理SIP話機信息。
手機app註冊以後,opensips-cp 顯示的1001 contact地址。手機app公網地址。
通過OpenSIPS-CP查看CDR呼叫記錄,看到失敗呼叫和成功呼叫的記錄信息。
如果app呼叫顯示Unsupported Media Type錯誤,應該是終端默認的語音編碼設置中的編碼不支持,確認雙方語音編碼一致。調整到終端支持的語音編碼。CDR中顯示的呼叫記錄。
總結
筆者通過雲平臺部署的opensips和CP界面配置了測試終端,通過手機安卓版的SIP帳號和內網本地鼎信通達SIP終端進行呼叫。呼叫測試註冊和呼叫都是成功的。一般比較容易出現的錯誤是語音編碼問題或者NAT問題,在配置中需要根據自己的呼叫或者不同終端的編碼做相應調整。如果NAT問題需要做一個RTPengine的轉發設置或者檢查路由器的ALG配置,或者調整SIP埠避免默認5060來防止ALG檢測。通過opensips和本地終端的連接配置,完全可以實現異地不同地區,不同終端之間的互相免費呼叫,基本上可以滿足一般的企業簡單IPPBX的內部呼叫的功能。
參考資料:
www.opensips.org
www.freesbc.cn
www.asterisk.org.cn