• <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>
     首頁 > 新聞 > 國內(nèi) >

    FreeSWITCH&潮流IP電話高性價比企業(yè)通信解決方案

    2014-11-27 14:29:16   作者:   來源:CTI論壇   評論:0  點擊:


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

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

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

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

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

      freeswitch> originate user/1001 &ivr(welcome)

      測試成功后,你就可以配置Dialplan把并戶來話轉(zhuǎn)接到菜單了,在Dialplan中加入一個extension(請注意,你需要加到正確的Dialplan Context中,如果不確定應(yīng)該加到哪個Context中的話,在default和public中都加上會比較保險。):

      <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>

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

      添加一個賬號

      在實現(xiàn)應(yīng)用中,F(xiàn)reeSWITCH默認(rèn)提供的20個賬號可能不夠用;或者,我們需要不同的號碼段(如使用600~699號碼段)作為分機號。這時,就需要添加一個新的賬號。

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

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

      批量添加賬號

      如果需要添加很多賬號,很顯然一個一個的添加是不現(xiàn)實的。

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

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

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

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

      視頻通話

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

      1) 配置視頻通話:

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

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

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

      <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"/>

      以上兩行分別定義了兩個全局變量,它們的字面意思分別是全局的和出局的編解碼首選項。假設(shè)我們增加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"/>

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

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

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

      配置了正確的視頻編解碼后,就可以在視頻話機之間進行視頻通話了。

      2) 視頻錄像與回放

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

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

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

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

      錄像過程中,用戶可以看到自己的視頻也被原樣echo了回來。

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

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

      小結(jié):

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

    分享到: 收藏

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 德兴市| 宽城| 都昌县| 南京市| 石嘴山市| 永州市| 青冈县| 大港区| 山阴县| 雷波县| 海兴县| 房产| 天津市| 屯门区| 桐柏县| 河西区| 景谷| 衡阳县| 五河县| 聂荣县| 上思县| 九江县| 北安市| 万山特区| 平阴县| 泸定县| 财经| 屯门区| 乡宁县| 宾川县| 天气| 内乡县| 汪清县| 辽宁省| 旬阳县| 镇安县| 青田县| 仁怀市| 乳源| 如东县| 安庆市| http://444 http://444 http://444 http://444 http://444 http://444