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

 首頁(yè) > 新聞 > 國(guó)內(nèi) >

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

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


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

  IVR系統(tǒng)默認(rèn)的配置文件為conf/autoload_configs/ivr.conf.xml,它裝入conf/ivr_menus/目錄下所有的XML文件。系統(tǒng)有一個(gè)示例的IVR配置,叫demo_ivr,也就是我們剛才撥5000聽到的那個(gè)。為了實(shí)現(xiàn)我們的目標(biāo)菜單,我們創(chuàng)建一個(gè)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,其他各項(xiàng)的含義如下:

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

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

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

  freeswitch> originate user/1001 &ivr(welcome)

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

  <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進(jìn)行測(cè)試,就可以聽到我們剛才配置的IVR菜單了。注意,在實(shí)際應(yīng)用中,為了能接受外部來的呼叫,你可能要把這里的1234改成你實(shí)際的DID(Direct Inbound Dial)號(hào)碼。

  添加一個(gè)賬號(hào)

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

  我們已經(jīng)了解現(xiàn)有的用戶配置文件是存放在FreeSWITCH安裝目錄的conf/directory/default目錄下,每個(gè)用戶對(duì)應(yīng)一個(gè)XML配置文件,如1000.xml即包含了1000這個(gè)用戶的配置文件。例如我們要添加6001這個(gè)用戶,只需以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

  批量添加賬號(hào)

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

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

  使用Windows平臺(tái)的人,可以安裝UnxUtils,就可以使用大部分的UNIX命令了。如我們可以使用如下“。bat”腳本完成同樣的添加用戶的功能(將下列內(nèi)容存到與1000.xml相同的目錄下的擴(kuò)展名為“。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命令使之生效了。配置生效后,使用這些用戶注冊(cè)和呼出都沒有問題,如果這些用戶也需要做被叫的話,那就需要修改Dialplan,增加到這部分用戶的路由。如,我們?cè)黾恿?020~6039這20個(gè)用戶后,可以簡(jiǎn)單地將默認(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的視頻通話,潮流有很多型號(hào)的視頻話機(jī)如GXV3275,下面我們來看一看基本的設(shè)置,以及視頻轉(zhuǎn)碼與錄像等高級(jí)話題。

  1) 配置視頻通話:

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

  目前FreeSWITCH支持的視頻編解碼有H261、H263、H263-1998(H263+)、H263-2000(H263++)、H264、VP8等。具體應(yīng)該使用哪種或哪幾種編解碼需要看SIP終端的支持。需要注意的是,與音頻編解碼不同,F(xiàn)reeSWITCH中的視頻編解碼目前僅支持透?jìng)鳎碏reeSWITCH僅將通話中一方的視頻原樣送到另一方去,而不做任何編碼轉(zhuǎn)換。這就要求進(jì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"/>

  以上兩行分別定義了兩個(gè)全局變量,它們的字面意思分別是全局的和出局的編解碼首選項(xiàng)。假設(shè)我們?cè)黾親264編碼支持,配置如下:

  <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í)際修改的是全局變量,一般來說需要重啟FreeSWITCH才能使之生效(當(dāng)然也有不重啟FreeSWITCH使之生效的方法,但由于操作比較復(fù)雜,在此就不多介紹了)。

  配置完畢后可以使用如下命令查看是否生效(其中“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

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

  2) 視頻錄像與回放

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

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

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

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

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

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

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

  小結(jié):

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

分享到: 收藏

專題