亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

 首頁 > 新聞 > 專家觀點 >

FreeSWITCH小結(jié):呼叫的發(fā)起與跟蹤

2014-11-12 09:04:11   作者:   來源:CTI論壇   評論:0  點擊:


  需求描述

  雖然現(xiàn)有的FreeSWITCH功能已經(jīng)很強大,但是很多情況下,為了配合業(yè)務上的功能,還需要做一些定制開發(fā)。

  有一個基本需求是:如何控制fs外呼,并跟蹤外呼后的一系列狀態(tài)。

  解決方案
  
  下面我就把自己現(xiàn)有的解決方案跟大家分享下,以便拋磚引玉,引出大家更好的方案。

  我的方案也簡單,在呼叫之前,指定呼叫的uuid,然后根據(jù)該uuid跟蹤呼叫到完整狀態(tài)。

  1.獲取可用的通道UUID

  所以說FreeSWITCH考慮比較周到,連獲取uuid的方法都提供了!

  當然,你也可以使用自己到方式來生成uuid。不過,一旦uuid出現(xiàn)重復,可是會出現(xiàn)比較麻煩的問題,所以還是使用FreeSWITCH的官方提供的方法比較靠譜。

  命令如下:

  create_uuid
  該命令會返回一個可用的uuid。

  2.發(fā)起呼叫

  無需多說,此處originate命令登場,不過和平時使用區(qū)別的地方是需要指定呼叫的uuid。

  下面是兩種指定方法,可選擇性試用:

  方案一:在呼叫時,指定A腿uuid
  originate {origination_uuid=xxxxx}user/60401 60402

  方案二:在呼叫時,同時指定A腿和B腿的uuid
  originate {origination_uuid=xxxxx}user/60401 &bridge({origination_uuid=yyyyy}user/60402)

  在使用該命令后,通過命令show channels就可看到兩個新創(chuàng)建的通道和指定的通道uuid,xxxxx和yyyyy。

  此處留給大家自己去驗證了!

  同時也感謝杜老大的書,這條命令是從他的書上學來的。

  3.跟蹤呼叫

  跟蹤呼叫,說白了,其實很簡單,只是有的人可能沒留意到而已,就是利用FreeSWITCH的事件機制進行跟蹤。關(guān)于事件如何訂閱,不是這里的重點,略去不說。

  下面先說說一些基本常識:

  1、跟呼叫相關(guān)的通道事件有如下幾個:

  Channel _ Create:通道創(chuàng)建事件
  Channel _ Progress:通道振鈴事件
  Channel _ Answer:通道應答事件
  Channel _ Bridge:通道橋接事件
  Channel _ Hangup:通道掛斷事件

  2、通道事件的Unique_ID字段與我們呼叫前指定的uuid相同,這個也是我們能跟蹤的前提。

  有了上面兩個條件之后,跟蹤就變得簡單和美妙起來!在呼叫開始前,將呼叫對象與uuid的對應關(guān)系存到數(shù)據(jù)庫中,在收到不同的事件后,根據(jù)事件的Unique_ID找到對應的呼叫對象,然后更新它的呼叫狀態(tài)即可。

  4.注意事項

 1、Channel _ Create事件比較特殊,含有的內(nèi)容比較少,所以處理起來要特別注意。

  該事件是在呼叫開始Routing之前就被拋出來,換句話說,你在dialplan中定義的任何變量都不會被讀取到。如果這點沒注意到的話,會導致判斷邏輯出現(xiàn)問題。

  2、Channel _ Bridge事件中同時含有A腿和B腿的uuid,具體字段我是不打了,感興趣的可以自己看看。

相關(guān)閱讀:

分享到: 收藏

專題

纳雍县| 新邵县| 巴林左旗| 敦化市| 清新县| 莎车县| 大兴区| 绥棱县| 新野县| 安达市| 荆门市| 通海县| 宜阳县| 衡阳县| 绵阳市| 武山县| 横峰县| 苏尼特右旗| 黄石市| 吉首市| 萨迦县| 共和县| 石狮市| 新巴尔虎左旗| 白山市| 阿拉善右旗| 渝中区| 鹤壁市| 崇州市| 永寿县| 南陵县| 宜春市| 四子王旗| 若尔盖县| 沛县| 墨竹工卡县| 靖安县| 内江市| 和龙市| 天等县| 马鞍山市|