- Channel-Identifier: 此頭域在請(qǐng)求,響應(yīng)和我事件消息中是必須強(qiáng)制支持的。此值用來確認(rèn)通道對(duì)消息的唯一性。標(biāo)準(zhǔn)格式為:MRCP會(huì)話@媒體類型:Channel-Identifier: 466453af837@speechrecog
- Active-Request-Id-List:此值可能出現(xiàn)在請(qǐng)求或響應(yīng)中,但是沒有在事件消息中出現(xiàn)。此列表可以列出多項(xiàng)請(qǐng)求的ID。此值會(huì)經(jīng)常出現(xiàn)在響應(yīng)的事件消息中,它可能表示某些請(qǐng)求要被停止或已經(jīng)完成。例如,SPEAK請(qǐng)求中的SPEAK-COMPLETE或RECOGNIZE中的RECOGNITION-COMPLETE可選消息。此值也可能出現(xiàn)在語音合成的媒體類型中,例如PAUSE等。例如,MRCP客戶端可以發(fā)出一個(gè)STOP請(qǐng)求,要求某些請(qǐng)求停止:
- Content-Base:此頭可以包含一個(gè)相對(duì)的URL地址,此地址包含在請(qǐng)求中的可能需要解析的Content-Base,用來支持某些語法。語法格式:
- Content-Encoding:此值定義對(duì)內(nèi)容解析解析。如果有多個(gè)解析列表支持時(shí)。語法格式示例:Content-Encoding: gzip。
- Content-ID:此值是對(duì)消息內(nèi)容在消息體中進(jìn)行識(shí)別的ID號(hào),或作為多個(gè)消息中的單個(gè)ID號(hào)。如果此值出現(xiàn)在請(qǐng)求中,它要求媒體資源服務(wù)器在一定會(huì)話時(shí)間內(nèi)保存媒體內(nèi)容數(shù)據(jù),將來通過MRCP的URL獲取此值。其格式示例為:Content-ID: menu@example.com。
- Content-Length:此值表示消息體的長度。
- Content-Location:此值表示消息體中的資源定位。其語法格式為:
這里支持了相對(duì)路徑和絕對(duì)路徑。媒體資源服務(wù)器可以通過此設(shè)置來優(yōu)化某些操作。用戶可以通過緩存來獲取歷史記錄值,而不需要每次通過媒體資源服務(wù)器來獲取。
- Content-Type:MRCP支持了一系列非常嚴(yán)格的MIME媒體類型來表示其內(nèi)容,例如,speech synthesis markup,speech 語法和識(shí)別結(jié)果。其語法格式示例為:Content-Type: application/ssml+xml。
- Proxy-Sync-Id:通過媒體服務(wù)器結(jié)合事件來此值用來提供一種協(xié)調(diào)功能,當(dāng)在媒體資源中發(fā)生DTMF輸入或語音合成后,系統(tǒng)檢測到了一個(gè)打斷行為,通過添加一個(gè)事件ID來跟蹤消息。當(dāng)媒體資源服務(wù)器第一次在媒體流中遇到語音或DTMF輸入時(shí),媒體資源服務(wù)器端會(huì)檢測到一個(gè)打斷的檢測消息,那么MRCP客戶端就會(huì)從事件中收到一個(gè)START-OF-INPUT。然后,MRCP客戶端會(huì)馬上發(fā)送一個(gè)BARGE-IN-OCCURRED請(qǐng)求到語音合成服務(wù)器端,服務(wù)器端則決定是否停止語音數(shù)據(jù)的回放。這里,是否回放還要取決于SPEAK請(qǐng)求中設(shè)置了參數(shù)Kill-On-Barge-In為true。在一些部署應(yīng)用環(huán)境中,語音合成服務(wù)器和輸入檢測功能結(jié)合非常緊密,檢測響應(yīng)的速度非?,檢測協(xié)調(diào)功能是通過其內(nèi)部進(jìn)行的。為了實(shí)現(xiàn)其類似的部署環(huán)境,在START-OF-INPUT的事件消息中,媒體資源服務(wù)器需要添加一個(gè)識(shí)別碼來確認(rèn)此事件,這樣就構(gòu)成了一個(gè)Proxy-Sync-Id。MRCP 客戶端會(huì)在接下來的BARGE-IN-OCCURRED請(qǐng)求中轉(zhuǎn)發(fā)同樣的ID,這樣媒體資源會(huì)使用同樣的打斷檢測事件中的ID來協(xié)調(diào)這個(gè)請(qǐng)求。其格式為:proxy-sync-id = "Proxy-Sync-Id" ":" 1*VCHAR CRLF。
- Accept:通常情況下,表示在響應(yīng)消息中,指定的某些媒體類型是可以接受的。此頭域也用來說明在客戶端的請(qǐng)求中限定了某些媒體類型。例如:Accept: application/sdp。
- Accept-Charset:此頭域用來設(shè)置請(qǐng)求中可接受的字符設(shè)置方式。它在某些環(huán)境中是非常有用的,例如指定在RECOGNITION-COMPLETE事件中的結(jié)果(NLSML)中的字符設(shè)置。
- Fetch-Timeout:此值支持MRCP客戶端通過URL來訪問媒體資源服務(wù)器的超時(shí)設(shè)置。默認(rèn)以毫秒為單位。
- Cache-Control:此頭值用來定義緩存獲取的控制方式。在上面的頭域設(shè)置中,我們?nèi)绻褂昧司彺娴脑O(shè)置。這里,的設(shè)置會(huì)控制緩存的獲取規(guī)則。它實(shí)際上繼承了HTTP請(qǐng)求中的Cache-Control方式,一般都支持了刷新時(shí)間,存活時(shí)長等參數(shù)。具體的語法格式為:
這里,我們通常會(huì)設(shè)置cache-directive 的訪問機(jī)制。max-age 表示MRCP客戶端會(huì)容許媒體資源服務(wù)器端在一定的時(shí)間內(nèi)使用此內(nèi)容數(shù)據(jù)。max-stale表示MRCP客戶端允許媒體資源服務(wù)器端使用緩存的數(shù)據(jù),此數(shù)據(jù)訪問超時(shí)設(shè)置已經(jīng)超過了限定的值(max-stale)。min-fresh表示MRCP客戶端允許的HTTP服務(wù)器最小的響應(yīng)時(shí)間設(shè)置。
Set-Cookie / Set-Cookie2:此值用來跟蹤MRCP客戶端的訪問狀態(tài),它實(shí)際上繼承了HTTP的Cookies 使用方式。系統(tǒng)可以通過SET-PARAMS和GET-PARAMS來獲取當(dāng)前的數(shù)據(jù),例如:
Vendor-Specific:此值支持MRCP客戶端獲取具體的參數(shù)信息內(nèi)容。獲取到的數(shù)據(jù)可能是多個(gè)參數(shù),參數(shù)之間通過分號(hào)加以區(qū)分。
Logging-Tag:此頭域僅使用在SET-PARAMS和GET-PARAMS中。此頭域會(huì)和會(huì)話消息所關(guān)聯(lián)。媒體資源服務(wù)器可以此標(biāo)簽來標(biāo)注一個(gè)特別的會(huì)話內(nèi)容,支持管理員對(duì)特定的會(huì)話進(jìn)行排查。
在本章節(jié),我們僅對(duì)MRCP中會(huì)話的16個(gè)頭域值逐一進(jìn)行了介紹。這16個(gè)頭值也是MRCP 的標(biāo)準(zhǔn)頭值。這些頭值有的可以支持set方式,有的可以支持get方式。具體的應(yīng)用我們將在未來的講座中會(huì)做更加詳細(xì)地介紹。
unimrcp-MRCP協(xié)議學(xué)習(xí)分享,QQ群號(hào):208136295
關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的行業(yè)分享
freepbx 技術(shù)論壇:www.ippbx.org.cn
Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
歐米(Omni)智能客服解決方案
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com