a级片网址,www.一级毛片,日批国产,中文字幕日韩精品有码视频,黄色毛片免费网站,久久久精品午夜免费不卡,天堂福利视频

 首頁 > 新聞 > 國內(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)進行集成。

分享到: 收藏

專題

黑水县| 平谷区| 望谟县| 通海县| 兰坪| 屏东市| 吉安县| 万盛区| 抚顺市| 内江市| 贵州省| 青龙| 平山县| 鞍山市| 滨州市| 朔州市| 蓝田县| 永清县| 民和| 三明市| 旺苍县| 保德县| 高台县| 宣汉县| 勃利县| 新化县| 长白| 淅川县| 通州区| 社旗县| 玛沁县| 莒南县| 霸州市| 雅江县| 板桥市| 宁海县| 澎湖县| 德昌县| 十堰市| 寿光市| 萝北县|