- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號:asterisk-cn
- Asterisk課堂-如何通過源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統(tǒng)部署環(huán)境要求
- Asterisk課堂-Asterisk技術架構
- Asterisk課堂-撥號規(guī)則基礎
- Asterisk課堂-創(chuàng)建第一個撥號規(guī)則
- Asterisk課堂-撥號規(guī)則中的Contexts
- Asterisk課堂-撥號規(guī)則中變量的使用
- Asterisk課堂-撥號規(guī)則中的Extensions用法
- Asterisk課堂-撥號規(guī)則中匹配模式
- Asterisk課堂-IAX2 介紹
- Asterisk課堂-IAX2 呼叫流程
- Asterisk課堂-SIP介紹

本章節(jié)主要介紹asterisk中經(jīng)常使用的SIP協(xié)議,包括SIP協(xié)議的基本概念,SIP協(xié)議所支持的設備終端,SIP的存在的問題,Asterisk在SIP實現(xiàn)中扮演的角色,SIP技術細節(jié)(SIP,SDP,RTP)。視頻中我們簡單介紹了以上幾個方面的要點:
現(xiàn)在我們簡單介紹一下這幾個方面的內容:
SIP協(xié)議是標準通信協(xié)議,當初設計的目的不僅僅是實現(xiàn)對語音通信的支持,更多是為了一般標準通信協(xié)議所設計,支持的媒體類型包括了文本,語音和視頻。

SIP在Asterisk中或者其他的軟交換中扮演著非常重要的角色,支持很多設備類型,基本上在目前市場上主流軟交換都支持了SIP協(xié)議。支持SIP協(xié)議的周邊終端設備包括了物理SIP話機,基于PC的軟電話,手機APP,電話會議系統(tǒng),對講系統(tǒng),物理服務器,語音網(wǎng)關,當然還有Asterisk本身。通過不同類型的設備互相通信,把整個Asterisk周邊接口都連接在了一起。

SIP 在OSI 模型中的使用和存在的問題,因為SIP設計采用了應用層和網(wǎng)絡層來控制整個呼叫流程,所以在實際使用過程中需要借助很多第三方來實現(xiàn)完整的語音驗證,端口轉發(fā),媒體通信。用戶在公網(wǎng)實現(xiàn)中可能需要考慮很多專業(yè)的設備或者軟件來解決SIP NAT問題,例如SBC。SBC不僅僅支持了拓撲隱藏,防攻擊,編碼轉換,同時支持了PSTN逃生功能,支持了模擬和數(shù)字接口。


Asterisk是一個SIP的背靠背代理,不是一個proxy。這一點大家要非常注意。這也是很多人通常犯的最基本的錯誤。簡單來說,就是通過背靠背的方式,把兩個SIP終端連接到了一起,并且通過Asterisk實現(xiàn)一些對呼叫的業(yè)務控制。為了實現(xiàn)對呼叫復雜的業(yè)務控制,Asterisk必須分別創(chuàng)建兩個通道來響應兩個不同的SIP終端。所以Asterisk可以對SIP終端實現(xiàn)號碼變換,實現(xiàn)呼叫錄音或者通過應用模塊來終止這個呼叫流程(例如簡單播放IVR,直接hangup)。這樣,asterisk就會實現(xiàn)非常復雜的業(yè)務功能。相對Proxy來說,它基本上不會對終端進行處理,僅僅是簡單的轉發(fā)功能。這里關于背靠背代理和proxy,我們不做更加深入的解釋,用戶可以從互聯(lián)網(wǎng)獲得很多資料。

SIP技術細節(jié)包括了SIP控制協(xié)議本身,SDP協(xié)議,和RTP協(xié)議。它們分別控制著呼叫發(fā)起,呼叫描述和語音傳輸?shù)墓δ。在這三個協(xié)議中,經(jīng)常可能需要檢查SIP端口,RTP端口,語音編碼類型。這些因素影響語音的正常通話。另外,注意的是,Asterisk-12以上版本,用戶會切換到PJSIP協(xié)議,所以端口配置文件發(fā)生了變化。另外,如果要解決公網(wǎng)注冊的問題,路由器需要開啟的RTP端口范圍。

在以上的內容中,我們簡單描述了SIP的基本概念,SIP在使用環(huán)境中的問題,還有所支持的SIP設備,Asterisk是一個SIP背靠背代理,在業(yè)務處理方面發(fā)揮的作用,最后介紹了三個基本協(xié)議SIP本身,SDP,RTP所各自負責的工作和端口設置。