- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號:asterisk-cn
- Asterisk課堂-如何通過源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統(tǒng)部署環(huán)境要求
- Asterisk課堂-Asterisk技術(shù)架構(gòu)
- Asterisk課堂-撥號規(guī)則基礎(chǔ)
- 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é)議所支持的設(shè)備終端,SIP的存在的問題,Asterisk在SIP實現(xiàn)中扮演的角色,SIP技術(shù)細(xì)節(jié)(SIP,SDP,RTP)。視頻中我們簡單介紹了以上幾個方面的要點:
現(xiàn)在我們簡單介紹一下這幾個方面的內(nèi)容:
SIP協(xié)議是標(biāo)準(zhǔn)通信協(xié)議,當(dāng)初設(shè)計的目的不僅僅是實現(xiàn)對語音通信的支持,更多是為了一般標(biāo)準(zhǔn)通信協(xié)議所設(shè)計,支持的媒體類型包括了文本,語音和視頻。
SIP在Asterisk中或者其他的軟交換中扮演著非常重要的角色,支持很多設(shè)備類型,基本上在目前市場上主流軟交換都支持了SIP協(xié)議。支持SIP協(xié)議的周邊終端設(shè)備包括了物理SIP話機(jī),基于PC的軟電話,手機(jī)APP,電話會議系統(tǒng),對講系統(tǒng),物理服務(wù)器,語音網(wǎng)關(guān),當(dāng)然還有Asterisk本身。通過不同類型的設(shè)備互相通信,把整個Asterisk周邊接口都連接在了一起。
SIP 在OSI 模型中的使用和存在的問題,因為SIP設(shè)計采用了應(yīng)用層和網(wǎng)絡(luò)層來控制整個呼叫流程,所以在實際使用過程中需要借助很多第三方來實現(xiàn)完整的語音驗證,端口轉(zhuǎn)發(fā),媒體通信。用戶在公網(wǎng)實現(xiàn)中可能需要考慮很多專業(yè)的設(shè)備或者軟件來解決SIP NAT問題,例如SBC。SBC不僅僅支持了拓?fù)潆[藏,防攻擊,編碼轉(zhuǎn)換,同時支持了PSTN逃生功能,支持了模擬和數(shù)字接口。
Asterisk是一個SIP的背靠背代理,不是一個proxy。這一點大家要非常注意。這也是很多人通常犯的最基本的錯誤。簡單來說,就是通過背靠背的方式,把兩個SIP終端連接到了一起,并且通過Asterisk實現(xiàn)一些對呼叫的業(yè)務(wù)控制。為了實現(xiàn)對呼叫復(fù)雜的業(yè)務(wù)控制,Asterisk必須分別創(chuàng)建兩個通道來響應(yīng)兩個不同的SIP終端。所以Asterisk可以對SIP終端實現(xiàn)號碼變換,實現(xiàn)呼叫錄音或者通過應(yīng)用模塊來終止這個呼叫流程(例如簡單播放IVR,直接hangup)。這樣,asterisk就會實現(xiàn)非常復(fù)雜的業(yè)務(wù)功能。相對Proxy來說,它基本上不會對終端進(jìn)行處理,僅僅是簡單的轉(zhuǎn)發(fā)功能。這里關(guān)于背靠背代理和proxy,我們不做更加深入的解釋,用戶可以從互聯(lián)網(wǎng)獲得很多資料。
SIP技術(shù)細(xì)節(jié)包括了SIP控制協(xié)議本身,SDP協(xié)議,和RTP協(xié)議。它們分別控制著呼叫發(fā)起,呼叫描述和語音傳輸?shù)墓δ。在這三個協(xié)議中,經(jīng)?赡苄枰獧z查SIP端口,RTP端口,語音編碼類型。這些因素影響語音的正常通話。另外,注意的是,Asterisk-12以上版本,用戶會切換到PJSIP協(xié)議,所以端口配置文件發(fā)生了變化。另外,如果要解決公網(wǎng)注冊的問題,路由器需要開啟的RTP端口范圍。
在以上的內(nèi)容中,我們簡單描述了SIP的基本概念,SIP在使用環(huán)境中的問題,還有所支持的SIP設(shè)備,Asterisk是一個SIP背靠背代理,在業(yè)務(wù)處理方面發(fā)揮的作用,最后介紹了三個基本協(xié)議SIP本身,SDP,RTP所各自負(fù)責(zé)的工作和端口設(shè)置。