• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     首頁(yè) > 新聞 > 國內 >

    FreeSWITCH&潮流IP電話(huà)高性?xún)r(jià)比企業(yè)通信解決方案

    2014-11-27 14:29:16   作者:   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      我們來(lái)練習配置一種最簡(jiǎn)單的情形。當有電話(huà)呼入時(shí),會(huì )播放:“您好,歡迎致電某某公司,請直撥分機號,查號請撥0”。然后,來(lái)話(huà)用戶(hù)就可以輸入1000~1019之間的分機號,也可以直接按0轉到人工臺(如分機1000)進(jìn)行查號,或要求轉接其他分機。

      IVR系統默認的配置文件為conf/autoload_configs/ivr.conf.xml,它裝入conf/ivr_menus/目錄下所有的XML文件。系統有一個(gè)示例的IVR配置,叫demo_ivr,也就是我們剛才撥5000聽(tīng)到的那個(gè)。為了實(shí)現我們的目標菜單,我們創(chuàng )建一個(gè)XML配置文件conf/ivr_menus/welcome.xml,內容如下:

      <include>
      <menus>
      <menu name="welcome"
      greet-long="welcome.wav"
      greet-short="welcom_short.wav"
      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
      exit-sound="voicemail/vm-goodbye.wav"
      timeout="15000"
      max-failures="3"
      max-timeouts="3"
      inter-digit-timeout="2000"
      digit-len="4">
      <entry action="menu-exec-app" digits="0" param="transfer 1000 XML default"/>
      <entry action="menu-exec-app" digits="/^(10[01][0-9])$/"
      param="transfer $1 XML default"/>
      </menu>
      </menus>
      </include>

      在上述配置中,首先,我們指定菜單的名字(name)是welcome,其他各項的含義如下:

      1.greet-long:指定最開(kāi)始的歡迎音,即為最開(kāi)始播放的“您好,歡迎致電某某公司,請直撥分機號,查號請撥0”的語(yǔ)音,該語(yǔ)音文件默認的位置應該是在/usr/local/freeswitch/sounds目錄下。
      2.greet-short:該項指定一個(gè)簡(jiǎn)短的提示音。
      3.invalid-sound:如果用戶(hù)按錯了鍵,則會(huì )使用該提示。如果你安裝時(shí)使用了“make sounds-install”命令安裝了聲音文件,則該文件應該是默認存在的。
      4.exit-sound:該項指定最后菜單退出時(shí)(一般是超時(shí)沒(méi)有按鍵)的聲音,默認會(huì )提示“Good Bye”。
      5.timeout:指定超時(shí)時(shí)間(毫秒),即多長(cháng)時(shí)間沒(méi)有收到按鍵就超時(shí),播放其他提示音。
      6.max-failures:為容忍用戶(hù)按鍵錯誤的次數。如果用戶(hù)的按鍵與下面配置的正則表達式不匹配(即沒(méi)有找到相關(guān)的菜單項),就認為是錯誤。
      7.max-timeouts:即最大超時(shí)次數。
      8.inter-digit-timeout:為兩次按鍵的最大間隔(毫秒)。如用戶(hù)撥分機號1001時(shí),假設撥了10,等3秒,然后再按01,這時(shí)系統實(shí)際收到的號碼為10(后面的01超時(shí)后沒(méi)有收到),則會(huì )播放invalid-sound指定的聲音文件以提示錯誤。
      9.digit-len:說(shuō)明菜單項的長(cháng)度,即最大收號位數。在本例中,用戶(hù)分機號長(cháng)度為4位,因此我們使用4。

      以上菜單設定好后,需要在控制臺中執行reloadxml(或按F6鍵)使配置生效。

      配置完成后就可以在控制臺上進(jìn)行如下測試(呼叫1001,接聽(tīng)后進(jìn)入ivr菜單):

      freeswitch> originate user/1001 &ivr(welcome)

      測試成功后,你就可以配置Dialplan把并戶(hù)來(lái)話(huà)轉接到菜單了,在Dialplan中加入一個(gè)extension(請注意,你需要加到正確的Dialplan Context中,如果不確定應該加到哪個(gè)Context中的話(huà),在default和public中都加上會(huì )比較保險。):

      <extension name="incoming_call">
      <condition field="destination_number" expression="^1234$">
      <action application="answer" data=""/>
      <action application="sleep" data="1000"/>
      <action application="ivr" data="welcome"/>
      </condition>
      </extension>

      接下來(lái)呼叫1234進(jìn)行測試,就可以聽(tīng)到我們剛才配置的IVR菜單了。注意,在實(shí)際應用中,為了能接受外部來(lái)的呼叫,你可能要把這里的1234改成你實(shí)際的DID(Direct Inbound Dial)號碼。

      添加一個(gè)賬號

      在實(shí)現應用中,FreeSWITCH默認提供的20個(gè)賬號可能不夠用;或者,我們需要不同的號碼段(如使用600~699號碼段)作為分機號。這時(shí),就需要添加一個(gè)新的賬號。

      我們已經(jīng)了解現有的用戶(hù)配置文件是存放在FreeSWITCH安裝目錄的conf/directory/default目錄下,每個(gè)用戶(hù)對應一個(gè)XML配置文件,如1000.xml即包含了1000這個(gè)用戶(hù)的配置文件。例如我們要添加6001這個(gè)用戶(hù),只需以1000.xml為模板,將該文件中的內容復制為6001.xml,然后把6001.xml文件中的所有出現1000的地方全部替換成6001即可。

      當然,除了手工的復制和替換外,上述步驟可以在UNIX系統上的Shell中使用下列命令完成:
      # sed -e "s/1000/6001/" 1000.xml > 6001.xml

      批量添加賬號

      如果需要添加很多賬號,很顯然一個(gè)一個(gè)的添加是不現實(shí)的。

      其實(shí)也很簡(jiǎn)單,如果在Linux系統下,我們只需要用一下Shell中的for循環(huán)就可以了。比如我們要創(chuàng )建6020~6039這20個(gè)用戶(hù),具體的Shell命令如下:
      # for i in `seq 6020 6039`; do sed -e "s/1000/$i/" 1000.xml > $i.xml ; done

      使用Windows平臺的人,可以安裝UnxUtils,就可以使用大部分的UNIX命令了。如我們可以使用如下“。bat”腳本完成同樣的添加用戶(hù)的功能(將下列內容存到與1000.xml相同的目錄下的擴展名為“。bat”的文件中,用鼠標雙擊即可執行):
      for /L %%i in (6020, 1 6039) do sed -e "s/1000/%%i" 1000.xml > %%i.xml

      創(chuàng )建完用戶(hù)配置文件后就可以在FreeSWITCH中使用reloadxml命令使之生效了。配置生效后,使用這些用戶(hù)注冊和呼出都沒(méi)有問(wèn)題,如果這些用戶(hù)也需要做被叫的話(huà),那就需要修改Dialplan,增加到這部分用戶(hù)的路由。如,我們增加了6020~6039這20個(gè)用戶(hù)后,可以簡(jiǎn)單地將默認的Dialplan中的正則表達式“10[01][0-9]$”改為“60[0-3][0-9]$”,就可以包含我們新創(chuàng )建的用戶(hù)了。更改后的部分內容如下:

      <extension name="Local_Extension">
      <condition field="destination_number"
      expression="^(60[0-3][0-9])$">

      視頻通話(huà)

      FreeSWITCH也支持基于SIP的視頻通話(huà),潮流有很多型號的視頻話(huà)機如GXV3275,下面我們來(lái)看一看基本的設置,以及視頻轉碼與錄像等高級話(huà)題。

      1) 配置視頻通話(huà):

      FreeSWITCH默認的配置文件中并沒(méi)有對視頻編解碼的相關(guān)項,因而默認不支持視頻呼叫。如果需要支持視頻呼叫,只需要在配置文件中增加相關(guān)的視頻編解碼就可以了。

      目前FreeSWITCH支持的視頻編解碼有H261、H263、H263-1998(H263+)、H263-2000(H263++)、H264、VP8等。具體應該使用哪種或哪幾種編解碼需要看SIP終端的支持。需要注意的是,與音頻編解碼不同,FreeSWITCH中的視頻編解碼目前僅支持透傳,即FreeSWITCH僅將通話(huà)中一方的視頻原樣送到另一方去,而不做任何編碼轉換。這就要求進(jìn)行視頻通信的雙方要使用一致的編解碼。

      FreeSWITCH支持的媒體編碼默認是在conf/vars.xml中定義的,讀者可以在該文件中找到類(lèi)似下面的配置:

      <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
      <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/>

      以上兩行分別定義了兩個(gè)全局變量,它們的字面意思分別是全局的和出局的編解碼首選項。假設我們增加H264編碼支持,配置如下:

      <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM,GSM,H264"/>
      <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM,GSM,H264"/>

      修改完上述配置文件后,由于它實(shí)際修改的是全局變量,一般來(lái)說(shuō)需要重啟FreeSWITCH才能使之生效(當然也有不重啟FreeSWITCH使之生效的方法,但由于操作比較復雜,在此就不多介紹了)。

      配置完畢后可以使用如下命令查看是否生效(其中“CODECS IN”和“CODECS OUT”分別代表入局和出局時(shí)使用的編解碼):

      freeswitch> sofia status profile internal
      =====================================================================
      ======================================
      Name                internal
      CODECS IN           G722,PCMU,PCMA,GSM,G729,H264
      CODECS OUT          PCMU,PCMA,GSM,G729,H264

      配置了正確的視頻編解碼后,就可以在視頻話(huà)機之間進(jìn)行視頻通話(huà)了。

      2) 視頻錄像與回放

      FreeSWITCH中支持錄音,有了視頻通話(huà)后,大家就希望支持錄像。與錄音相比,錄像要復雜一些。錄像數據要按一定的格式存儲在文件中,而這些文件格式有好多種。不同的文件格式稱(chēng)為不同的容器(Container),在這些容器中,通常會(huì )包含多個(gè)音頻軌道(Track)和視頻軌道,有的還含有同步信息。

      目前,處理視頻格式最好的開(kāi)源軟件就是ffmpeg,暫時(shí)還沒(méi)有人將它與FreeSWITCH集成(這樣說(shuō)也不全對,因為筆者已經(jīng)在做了)。FreeSWITCH中實(shí)現了一個(gè)簡(jiǎn)單的mod_fsv模塊,提供FreeSWITCH中的錄像及回放支持。它不依賴(lài)于任何其他的視頻處理庫,而是自己定義了一種私有的格式,將音頻軌道用L16編碼的數據保存,視頻軌道則將整個(gè)RTP原始包都保存進(jìn)去。

      在默認的Dialplan中,也提供了錄像與回放的例子。撥打9193可以通過(guò)record_fsv App進(jìn)行錄像,Dialplan的設置如下:

      <action application="record_fsv" data="/tmp/testrecord.fsv"/>

      錄像過(guò)程中,用戶(hù)可以看到自己的視頻也被原樣echo了回來(lái)。

      錄制完成后,就可以撥打9194播放剛剛錄制的錄像了,它是使用play_fsv App實(shí)現的:

      <action application="play_fsv" data="/tmp/testrecord.fsv"/>

      小結:

      從上面我們可以看出, FreeSWITCH與潮流IP電話(huà)組合部署提供了很好的的企業(yè)通信解決方案。 FreeSWITCH是開(kāi)源的軟交換軟件,不僅配置非常靈活,而且在性?xún)r(jià)比方面也有非常好的優(yōu)勢。對于最終用戶(hù)來(lái)說(shuō),FreeSWITCH的默認配置就已經(jīng)包含了非常實(shí)用的功能,基本不用太多的配置。對于集成商或開(kāi)發(fā)人員來(lái)說(shuō),FreeSWITCH提供了非常豐富靈活的開(kāi)發(fā)接口,因而也能很容易的與業(yè)務(wù)系統進(jìn)行集成。

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 安福县| 绥化市| 长顺县| 大城县| 汽车| 深水埗区| 唐河县| 溧水县| 岳池县| 高碑店市| 武冈市| 娱乐| 柘城县| 双桥区| 凯里市| 乐山市| 乃东县| 陕西省| 东兰县| 崇左市| 乌兰察布市| 乾安县| 邮箱| 威海市| 准格尔旗| 湟源县| 沅江市| 庆城县| 绍兴县| 泾川县| 敖汉旗| 天全县| 永清县| 闸北区| 康乐县| 长阳| 平泉县| 湄潭县| 城市| 马关县| 古蔺县| http://444 http://444 http://444 http://444 http://444 http://444