日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入浅出asterisk(一):asterisk通道(Channels)

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出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時的情景:

  • 呼叫的抵達被某一類通道驅動的接口感知,比如SIP socket;
  • 通道驅動為其創建一個PBX通道并且為這個通道開啟一個PBX線程;
  • 執行撥號方案;
  • 在這個時候至少發生下面其中之一:
  • a.Asterisk應答這個呼叫并且播放媒體數據或者讀取媒體數據,比如IVR業務

    b.撥號方案促使asterisk通過dial應用(dial application)創建一個對外呼叫,比如呼叫固定電話或移動電話時將連接落地網關。(具體見app_dial.c)

    ?

    橋接通道(Bridging channels)

    下面為當asterisk往外撥號時的情景:

  • Dial創建一個outbound PBX通道并且要求對應的通道驅動創建一個呼叫
  • 當電話被接通,asterisk橋接媒體流,使得第一個通道的呼叫者能夠與第二路通道的被呼叫者進行通話
  • 有些情況下,呼入和呼出的通道使用相同的技術方案和兼容的編解碼技術,這時候就會使用本地橋接。這種本地橋接方案中,通道驅動在內部直接傳送到來的語音數據到對外的流中,而不通過PBX發送語音幀。
  • 如果是SIP協議,將會有一個"external native bridge",asterisk重定向端點,使得語音直接在呼叫者和被呼叫者之間傳送。信號被保存下來以方便提供正確的CDR記錄。
  • ?

    植入通道(Masquerading channels)

    有些情形下,一個通道可能植入到另一個通道中。這種情景在呼叫轉移中比較常見,新的通道植入并且接管橋接的工作,舊的通道就成了僵通道而被掛起。

    轉載于:https://www.cnblogs.com/einyboy/archive/2012/10/23/2735252.html

    總結

    以上是生活随笔為你收集整理的深入浅出asterisk(一):asterisk通道(Channels)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。