應用服務器側發給云通訊平臺的命令,包括獲取按鍵、放音、播放混合音、錄音、播放TTS、咨詢呼叫、咨詢呼叫橋接、呼叫轉接、發送DTMF、業務跳轉、通話連接、應用側掛機、拒接、暫停、空指令等。
獲取用戶按鍵信息,只能作為主命令使用。命令名稱為<Get>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
action |
相對URL |
當前文檔URL/dtmfreport |
自定義url的地址,參數為空或者不帶此參數再回調dtmfreport的地址。如果用戶輸入DTMF按鍵,不論是否滿足按鍵的條件(按鍵的位數或按鍵結束符),<Get>將提交給action的URL處理,<Get>后的動詞將不會執行。如果用戶未輸入按鍵超時, <Get>將不會執行action的URL,而是會執行副命令中的呼轉命令。 |
method |
GET、POST |
POST |
請求方法 |
timeout |
正整數 |
20秒 |
等待時間 |
finishkey |
數字、#、* |
# |
結束符 |
numdigits |
>=1的正整數 | 12 |
接收的按鍵個數 |
嵌套規則
在<Get>中可以嵌套:<Play>、<PlayTTS>。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Get action="handle-user-input.jsp" numdigits="1">
<Play>menu.wav</Play>
</Get>
<Play>sorrybye.wav</Play>
<Redirect>/welcome/voice</Redirect>
</Response>
示例解釋
獲取用戶按鍵,同時播放語音文件提示用戶,若用戶按鍵則云平臺向應用側action屬性對應的URL發起請求,若用戶按鍵超時則播放sorrybye.wav語音,語音播放完或按鍵打斷后業務流程重定向到Redirect指向的URL。
播放語音文件,支持wav和mp3語音格式文件,可作為主、副命令使用,放音完成后跳轉將執行后續副命令中的呼轉命令。命令名稱為<Play>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
loop |
整數,0不播放 -1無限循環播放 |
1 |
播放次數 |
finishkey |
數字、*、# |
空 |
結束鍵 |
isrecord | true or false | false,不是錄音文件 | 是否是平臺錄音文件 |
嵌套規則
此命令不支持嵌套。
示例
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<Play>cowbell.wav</Play>
<Redirect>otherservice</Redirect>
</Response>
放音文件說明
當isrecord=“true”的時候,放音文件名必需是云通訊返回的錄音文件名,放音文件的格式樣本如下:位速 128kbps,音頻采樣大小16位,頻道 1(單聲道), 音頻采樣級別 8 kHz,音頻格式 PCM。這樣能保證放音的清晰度。
播放語音文件,播放混合音,內容為數字或字母與文件名拼成的串,以分號分隔,字母不區分大小寫。可作為主、副命令使用,放音完成后跳轉將執行后續副命令中的呼轉命令。命令名稱為<PlayMix>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
finishkey |
數字、*、# |
0123456789#* |
結束鍵 |
type | 0字符串、1日期時間、 2錢、 3數字、 4文件 | 默認值為0 | 混合音類型 |
嵌套規則
此命令不支持嵌套。
示例
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<PlayMix type="4140">hello.wav;2013-7-30;welcome.wav;1234</PlayMix>
<Redirect>otherservice</Redirect>
</Response>
示例解釋
用戶聽到的內容為:“尊敬的用戶您好,今天是2013年7月30日歡迎光臨云通訊平臺1234”。
電話錄音功能,只能作為主命令使用。命令名稱為<Record>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
action |
相對的URL |
當前文檔的URL/ recordover |
錄音完成的后續處理URL,任何在<Record>后的動詞將不會執行,如果靜音超時,平臺不會向action指定的URL發起請求,<Record>后的動詞將被執行 |
method |
GET、POST |
POST |
請求方法 |
timeout |
正整數 |
5秒 |
開始錄音前靜音時長和結束錄音靜音時長 |
finishkey |
數字、#、* |
1234567890#* |
錄音結束符,在提示期間按結束鍵則執行后續命令 |
maxlength |
大于1的整數 |
120秒 |
錄音最長時間 |
playbeep |
true、false |
true |
錄音前是否播放beep聲 |
嵌套規則
可以嵌套Play命令,播放錄音前提示音。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record>
<Play>promt.wav</Play>
</Record>
<Play>test.wav</Play>
<Redirect tag="9">dfaa</Redirect>
</Response>
示例解釋
平臺執行<Record>,呼叫者在聽到”beep”聲后開始錄音。若呼叫者靜默5秒鐘后輸入結束鍵,或者已到錄音最長時間,平臺將攜帶參數“RecUrl”將向“action”指定的URL發起指定方法請求。
播放文本轉語音,將用戶的文本轉換語音文件進行播放,文本中的漢字需要用utf8編碼,可作為主、副命令使用,放音完成后跳轉將執行后續副命令中的呼轉命令。命令名稱為<PlayTTS>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
loop |
整數,-1無限循環播放 |
1 |
播放次數 |
finishkey |
數字、*、# |
0123456789#* |
結束鍵 |
lastplay |
是否播放上一次轉換后的內容 | false |
true播發上次轉換后的內容,false不播發 |
speed |
發音速度 |
0 |
-500~+500,默認值為0 |
volume |
音量 |
0 |
-20 - +20,默認值為0 |
pitch |
音調 |
0 |
-500 - +500,默認值為0 |
嵌套規則
此命令不支持嵌套。
示例
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<PlayTTS>您好,這里云通訊開放平臺系統</PlayTTS>
<Redirect>otherservice</Redirect>
</Response>
為用戶發起咨詢呼叫,被咨詢者接聽后自動與用戶進行話路橋接,只能作為主命令使用。命令名稱<ConsultationCall>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
number |
座機號碼、手機號、通訊賬號 |
必填 |
被咨詢者的號碼 |
action |
相對的URL |
空 |
被咨詢側接聽后請求的URL,若為空則自動橋接咨詢側與被咨詢側。不為空,被咨詢側應答就上報通知消息(需要在上報的通知消息返回咨詢呼叫橋接命令,否則不會橋接造成無法通話)。被咨詢側接聽則< ConsultationCall >后的動詞將不會執行;如果被咨詢側未接聽、占線或拒接,將被執行<ConsultationCall>中noanswerurl的被咨詢側未接聽掛機通知,noanswerurl空則將被執行<ConsultationCall>后的呼轉通知。 |
ringback | true or false | false | 咨詢側是否聽被咨詢側回鈴音;當action參數為空時有效; |
method | GET、POST | POST | 請求方法 |
timeout | 正整數 | 一直等待 | 被咨詢側接聽超時時長,被咨詢側超時未接聽后會執行后續的呼轉命令 |
finishkey | 數字、#、* | 空,用戶無法結束 | 咨詢呼叫結束符,在被咨詢者未接聽前,結束鍵始終有效,咨詢側按結束符,將被執行咨詢側主動結束呼叫的回調地址 |
cancelurl | 相對URL | cancelconsultation | 咨詢側主動結束呼叫的回調地址 |
record | true、false | false | 是否進行通話錄音 |
recordurl | 相對URL | 相對url | 錄音完成的后續處理URL |
calltime | 正整數 | 0(不限時) | 咨詢通話的時間長度,單位是秒 |
calltimeoverurl | 相對URL | 空 | 咨詢通話設置時間結束咨詢側通知請求的URL地址,如果為空,通話時間到后咨詢側自動掛機 |
calltimeoverconsulurl | 相對URL | 相對url | 咨詢通話設置時間結束被咨詢側通知url地址,為空通話時間到后則自動掛斷被咨詢側電話,可通過此通知回響應命令控制被咨詢側后續業務邏輯。 |
calltimeoverprompt | 語音文件 | 空 | 通話到時的提示音;語音播放完成或20秒后雙方就會斷開通話。為空則不播放 |
hangupurl | 相對URL | 空 | 被咨詢側接聽并掛機后發起請求的URL地址 |
noanswerurl | 相對URL | 空 | 被咨詢側未接聽掛機通知的url地址,為空則將被執行<ConsultationCall>后的呼轉命令。當設置了timeout參數時,被咨詢側在timeout設置的時間超時則執行后續的呼轉命令。 |
transferurl | 相對的URL | 空 | 指定呼轉請求的URL地址。被叫按*+分機號+#即可 |
countdowntime | 正整數 | 空 | 咨詢通話倒計時時間,必須是與calltime同時使用,并且設置播放提示音,且小于calltime時間,單位秒 |
countdowntimeplayfile | 語音文件名 | 空 | 咨詢通話倒計時時間到,播放的提示音文件名 |
consulurlafterhangup | 相對URL | 空 | 咨詢側掛機后給被咨詢側回調通知的URL地址,用于控制咨詢側掛機后被咨詢側的后續邏輯處理。若為空則自動掛斷被咨詢側 |
嵌套規則
只能嵌套<Play>,為用戶播放等待音。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<ConsultationCall number=”13800138000” record=”true”>
<Play>waitmusic.wav</Play>
</ConsultationCall>
<Play>sorry.wav</Play>
<Redirect>continue</Redirect>
</Response>
若咨詢呼叫不是自動橋接,需要能過此命令進行橋接,用于主命令。命令名稱<ConsultationBridge>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
action |
相對URL |
必填 |
連接成功的回調URL地址 |
嵌套規則
可嵌套<Play>、<PlayTTS>命令。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<ConsultationBridge>
<Play>prompt.wav</Play>
</ConsultationBridge>
<Redirect>connectfail</Redirect>
</Response>
為用戶發起呼叫轉接,發起呼叫后主被叫會被立刻橋接,即主叫可以聽到被叫的振鈴音,只能作為主命令使用,如果被叫未接聽、占線或拒接,將跳轉到后續副命令中的呼轉命令。命令名稱<TransferCall>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
number |
座機號碼、手機號、通訊賬號 | 必填 |
被咨詢者的電話號碼 |
timeout |
正整數 |
一直等待 |
被叫未接聽超時時長,被叫未接聽超時后會執行后續的呼轉命令 |
record |
true、false |
false |
是否進行通話錄音 |
recordurl |
相對URL |
空 |
錄音完成通知的回調地址 |
calltime |
正整數 |
0(不限時) |
設置通話的時間長度,單位是秒 |
transferurl |
相對URL |
空 |
接通后被叫指定呼轉請求的URL地址,被叫按*+分機號+#即可 |
finishkey | 空。*鍵為功能鍵,不能設置為結束鍵。 | 1234567890# | 結束鍵被叫未接通或接通后按此鍵結束呼叫。被叫未接通打斷執行后續的呼轉,接通后當hangupurl不為空的時候打斷通話執行被叫掛機回調。 |
hangupurl | 相對URL |
空 |
被叫掛機回調的URL地址 |
嵌套規則
不支持嵌套命令。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<TransferCall number=”13800138000” record=”true”/>
<Play>sorry.wav</Play>
<Redirect>continue</Redirect>
</Response>
發送DTMF按鍵。可作為主命令使用。若action為空則執行跳轉命令。命令名稱為<SendDTMF>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
action |
相對URL |
空 |
發送結果的回調通知地址 |
callid | 字符串 | 必填 |
若是Rest接口調用需要攜帶callid參數 |
dtmf | 0123456789*#Ww | 必填 | 按鍵內容,W表示延時1秒,w表示延時0.5秒 |
waitresptime | 數字,單位毫秒 |
500毫秒 |
等待發送完成的時間; -1發送完成后上報、0立刻反回 >0等待的秒數,若發送優先完成則提前結束,不等待超時;默認值為-1 |
嵌套規則
此命令不支持嵌套。
示例
<?xml version="1.0" encoding="UTF-8"?> <Response> <SendDTMF action="senddtmfok" dtmf="123"/> <Redirect>otherservice</Redirect> </Response>
業務跳轉到另一個URL地址,不可作為主命令使用。命令名稱<Redirect>。返回呼轉請求通知
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
method |
GET、POST |
POST |
請求方法 |
tag |
正整數 |
0 |
標識 |
嵌套規則
不嵌套其它命令也不能被嵌套。
示例
<?xml version="1.0" encoding="UTF-8"?> <Response> <Play>paly.wav</Play> <Redirect tag="0">mmstory</Redirect> </Response>
將兩用戶進行連接通話,用戶一方只能在做了Pause命令后才可執行此命令。命令名稱<Connect>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
mcallid |
十六進制串 |
必填 |
主叫用戶callid |
scallid |
十六進制串 |
必填 |
被叫用戶callid |
action |
相對URL |
空 |
連接成功的回調URL地址 |
嵌套規則
不支持嵌套命令。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Connect mcallid ="13421304281638380001000000000001" callsid="16421304281638380001000000000002"/>
<Redirect>connectfail</Redirect>
</Response>
應用側掛機命令,可作為主、副命令使用,執行后會發起。命令名稱<Hangup>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
callid |
十六進制串 |
必填 |
呼叫id,平臺側為每個呼叫分配唯一id |
嵌套規則
不能嵌套其它命令也不能被嵌套。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Hangup callid ="13421304281638380001000000000009"/>
</Response>
應用側拒接,可作為主命令使用,只能在啟動業務請求后回復,其它情況下不建議使用。命令名稱<Refuse>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
reason |
refused、busy |
refused |
拒聽原因 |
嵌套規則
可嵌套<Play>。
示例
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Refuse reason="busy">
<Play>SaySorry.wav</Play>
</Refuse>
</Response>
命令說明:將用戶的呼叫session暫停,并播放等待音,直AS側再次發送命令來控制該用戶。暫停時間到后會通<Redirect>命令反回給AS通知。命令名稱<Pause>。
屬性
名稱 |
屬性值 |
默認值 |
說明 |
---|---|---|---|
callid | 十六進制串 | 必填 |
用戶callid |
action | 相對URL | 空 |
成功后的回調地址 |
pausetime | 數字 | 1800秒 | 暫停時長,單位是秒,默認是1800秒 |
嵌套規則
可嵌套<Play>。
示例
<?xml version="1.0" encoding="UTF-8"?> <Response> <Pause callid="13421304281638380001000000000001"> <Play>waitmusic.wav</Play> </Pause > <Redirect>pausefinish</Redirect> </Response>
應用側只是對平臺通知事件的響應,無需平臺做任何事情。命令名稱<CmdNone>。
屬性
無
嵌套規則
不能嵌套也不能被嵌套。
示例
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<CmdNone/>
</Response>