中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁 > 新聞 > 國內(nèi) >
 首頁 > 新聞 > 國內(nèi) >

MRCP學(xué)習(xí)筆記-控制會話的消息體、參數(shù)設(shè)置和頭域說明

2018-05-31 09:14:36   作者: james.zhu   來源:CTI論壇   評論:0  點擊:


  在上一節(jié)的分享中,我們介紹了消息類型和基本語法。為了讓讀者更加清晰地了解具體的消息內(nèi)容,我們在本章節(jié)會進(jìn)一步介紹消息體的內(nèi)容,兩種基本的參數(shù)設(shè)置方式,幾個標(biāo)準(zhǔn)的頭域值說明和安全性討論。
  1、顧名思義,消息體是有多種信息按照一定的順序構(gòu)成的內(nèi)容。其格式和SIP協(xié)議的消息體基本相似。以下是基本的內(nèi)容類型:
  這里要注意,在某些環(huán)境中,消息體可以由多個部分的信息數(shù)據(jù)來構(gòu)成幫助創(chuàng)建一個完整的消息體。其具體的語法定義格式為:
  Content-Type: multipart/mixed; boundary=a4V3bnq129s8
  以上格式表示其消息體有多個數(shù)據(jù)構(gòu)成,邊界標(biāo)識(boundary)是a4V3bnq129s8。因為消息體是由多個數(shù)據(jù)構(gòu)成,每個消息都要設(shè)置邊界標(biāo)識來確認(rèn)每個消息,并且邊界標(biāo)識必須在起始處和結(jié)尾處都標(biāo)識邊界,以表明這是一個多數(shù)據(jù)構(gòu)成的一個完整的消息體(--a4V3bnq129s8--),邊界標(biāo)識符前面的連字符表示消息體初始,結(jié)束邊界標(biāo)識后面帶兩個連字符表示此完整的信息體結(jié)束。讓我們看一下以下示例:
  MRCP/2.0 521 SPEAK 20000
  Channel-Identifier: 43b9ae17@speechsynth
  Content-Type: multipart/mixed; boundary=a4V3bnq129s8
  Content-Length: 374
  --a4V3bnq129s8  // 表示第一個數(shù)據(jù)初始,以換行符結(jié)束
  Content-Type: text/uri-list
  Content-Length: 68
  http://www.example.com/file1.ssml
  http://www.example.com/file2.ssml
  --a4V3bnq129s8  // 表示第二個數(shù)據(jù)初始,以換行符結(jié)束
  Content-Type: application/ssml+xml
  Content-Length: 140
  
  
  xmlns="http://www.w3.org/2001/10/synthesis">
  Hello world!
  
  --a4V3bnq129s8--  // 帶了兩個換行符,表示多消息體數(shù)據(jù)結(jié)束
  MRCP客戶端對服務(wù)器端發(fā)送了一個SSML URL列表,包括了需要合成的消息內(nèi)容,在以上的消息體中,同時包括了兩個數(shù)據(jù)結(jié)構(gòu)。在MRCP的消息體中,可以通過text/uri-list來設(shè)定一個或多個URL。
  2、在某些情況下,我們不需要對會話中的某些參數(shù)進(jìn)行修改或者調(diào)整。但是有一些環(huán)境中,我們可能需要對某些參數(shù)進(jìn)行適當(dāng)調(diào)整來滿足實時環(huán)境的要求,因此MRCP提供了兩種不同的參數(shù)設(shè)置方式來支持對某些會話中的參數(shù)進(jìn)行設(shè)置。這兩種設(shè)置方式是SET-PARAMS和GET-PARAMS。從字面意思,讀者可能就會明白,一種是用來設(shè)置參數(shù)的,另外一種是用來獲取參數(shù)。比較常見的例子如設(shè)置語音合成的聲音高低,語音識別的定時器設(shè)置等,F(xiàn)在,我們分別介紹這兩種方式。
  SET-PARAMS通過頭域來設(shè)定一個參數(shù)設(shè)置。如果媒體資源服務(wù)器返回200,則表示媒體資源服務(wù)器可以支持此參數(shù);如果媒體資源服務(wù)器返回403表示媒體資源服務(wù)器識別一個或多個參數(shù);404表示媒體資源服務(wù)器認(rèn)為是無效參數(shù)。
  MRCP客戶端請求支持了參數(shù)設(shè)置語音合成的語言設(shè)置請求:
  • MRCP/2.099 SET-PARAMS 12309
  • Channel-Identifier:23fa32fg1@speechsynth
  • Speech-Language:fr-FR
  媒體資源服務(wù)器的響應(yīng)消息:
  MRCP/2.0 77 12309 200  COMPLETE
  Channel-Identifier: 23fa32fg1@speechsynth
  上面我們介紹了如何設(shè)置SET-PARAMS 請求,GET-PARAMS 請求的處理也是同樣的原理。對于MRCP 客戶端對服務(wù)器端發(fā)送的頭域,服務(wù)器端必須返回相應(yīng)的頭域和其相應(yīng)的值,并且返回狀態(tài)碼 200,如果服務(wù)器端不能支持一些客戶端請求的頭域,服務(wù)器端則會拒絕這個請求,并且返回403 狀態(tài)碼。
  MRCP客戶端發(fā)送到服務(wù)器端的請求,要求獲取兩個具體的參數(shù):
  MRCP/2.0 … GET-PARAMS 543256
  Channel-Identifier:32AECB23433802@speechsynth
  Voice-gender:
  Voice-variant:
  Vendor-Specific-Parameters:com.example.param1;
  com.example.param2
  服務(wù)器端返回到客戶端的響應(yīng)和具體參數(shù)和其值:
  MRCP/2.0 … 543256 200 COMPLETE
  Channel-Identifier:32AECB23433802@speechsynth
  Voice-gender:female
  Voice-variant:3
  Vendor-Specific-Parameters:com.example.param1="Company Name";
  com.example.param2="124324234@example.com"
  根據(jù)MRCP v2 的建議,如果需要獲取的參數(shù)比較多的話,返回的數(shù)值打包的數(shù)據(jù)會非常大,因此這種方法獲取參數(shù)的效率比較低,不建議用戶經(jīng)常使用這種方法來獲取服務(wù)器參數(shù)。
  3、在MRCP協(xié)議中,我們會使用兩種類別的頭域數(shù)值。一種是針對媒體資源服務(wù)器的頭(resource-specific headers),另外一種是標(biāo)準(zhǔn)的頭(generic headers)。例如我們上面介紹的兩種管理參數(shù)的方式也可以適用于某些頭域設(shè)置,也可以適用于指定的媒體服務(wù)器參數(shù)設(shè)置。
  這里,讀者一定要注意,根據(jù)MRCP v2 的規(guī)定,generic-header 的頭域值的發(fā)送順序或經(jīng)過轉(zhuǎn)發(fā)解析時,中間代理或解析器不能修改以上頭的順序。
  因為標(biāo)準(zhǔn)頭值中包括了多個具體的參數(shù),因為篇幅的關(guān)系,我們這里不再做具體介紹,我們會在接下來的章節(jié)中繼續(xù)進(jìn)行討論。
  4、安全問題對控制協(xié)議來說也是一個比較大的挑戰(zhàn)。在基于DTMF的語音IVR中,我們也可以輕易獲得查詢數(shù)據(jù),安全人員可以通過DTMF解析獲取到其登錄密碼或者賬號信息等敏感內(nèi)容。在MRCP的運(yùn)行環(huán)境中,我們也會遇到類似的安全問題。在控制協(xié)議中,我們的應(yīng)用程序可能會同時需要連接多個媒體資源服務(wù)器,用戶可能通過SPEAK請求來獲取系統(tǒng)敏感信息,例如密碼等。媒體資源服務(wù)器則會通過NLSML 數(shù)據(jù)格式在事件消息中返回RECOGNITION-COMPLETE,這些消息會把密碼等敏感數(shù)據(jù)攜帶在在事件的消息中。為了防止安全隱患的發(fā)送,系統(tǒng)用戶可以考慮使用TLS或VPN等其他安全機(jī)制來增加系統(tǒng)的安全性。
  5、在本章節(jié)的分享中,我們首先介紹了MRCP中消息體的結(jié)構(gòu),在消息體中特別重點介紹了邊界標(biāo)志符來區(qū)分?jǐn)?shù)據(jù)包結(jié)構(gòu),筆者然后介紹了兩種管理參數(shù)的方式已經(jīng)交互流程,并且介紹了標(biāo)準(zhǔn)的headers,最后簡單討論了在使用控制會話中的安全性問題以及安全機(jī)制設(shè)置。
  在下一個章節(jié)中,我們會繼續(xù)討論generic-header的每個具體的頭的內(nèi)容。
        

  unimrcp-MRCP協(xié)議學(xué)習(xí)分享,QQ群號:208136295
  關(guān)注微信公眾號:asterisk-cn,獲得有價值的行業(yè)分享
  freepbx 技術(shù)論壇:www.ippbx.org.cn
  Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
  歐米(Omni)智能客服解決方案
  融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com

【免責(zé)聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

專題