深入浅出asterisk(一):asterisk通道(Channels)
由于工作上的VOIP項目需要,最近親密接觸了一下asterisk工程代碼。關于asterisk在VOIP上的偉大地位和作用,俺就不絮叨了,請看前作:Astersik+Radius簡易攻略
??? 國內對于asterisk的資料介紹,更別說對asterisk的源碼分析了,因此我把平時記的一些資料與大家分享一下,希望對同行能有幫助。第一篇就翻譯一下Asterisk里的通道的概念,英文原文見于:http://www.asterisk.org/doxygen/1.4/
什么是asterisk通道?
Asterisk通道是指通過asterisk建立起來的一路通話。這類通話都包含一個incoming連接和一個outbound連接。每個電話都是通過一種通道驅動程序建立起來的,比如SIP,ZAP,IAX2等等。每一類的通道驅動,都擁有自己私有的通道數據結構,這些私有的結構從屬于一個通用的Asterisk通道數據結構中,具體定義在channel.h和channel.c中。
?
呼叫情景(call scenario)
下面為當一個呼入電話抵達asterisk時的情景:
a.Asterisk應答這個呼叫并且播放媒體數據或者讀取媒體數據,比如IVR業務
b.撥號方案促使asterisk通過dial應用(dial application)創建一個對外呼叫,比如呼叫固定電話或移動電話時將連接落地網關。(具體見app_dial.c)
?
橋接通道(Bridging channels)
下面為當asterisk往外撥號時的情景:
?
植入通道(Masquerading channels)
有些情形下,一個通道可能植入到另一個通道中。這種情景在呼叫轉移中比較常見,新的通道植入并且接管橋接的工作,舊的通道就成了僵通道而被掛起。
轉載于:https://www.cnblogs.com/einyboy/archive/2012/10/23/2735252.html
總結
以上是生活随笔為你收集整理的深入浅出asterisk(一):asterisk通道(Channels)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 枚举举例
- 下一篇: 实现库函数strlen和strcpy