設定
我的 Ruby on Rails 應用程式有一個成功入隊的初始呼叫者。在 Rails 向被叫方創建出站呼叫的同時播放音樂。然后,被叫方通過撥入佇列成功連接到初始呼叫者:
response = Twilio::TwiML::VoiceResponse.new
response.dial(action: process_dial_call_status_path) do |dial|
dial.queue()
end
render xml: response.to_s, status: :ok
Twilio 檔案表明 Twilioaction將使用該屬性向我指定的端點發出請求,但僅在“撥打的呼叫結束后”。我需要知道 Twilio 如何處理我的回復的結果。我擔心最初的呼叫者將永遠聽佇列音樂,因為被叫方沒有成功撥打佇列。不過,默認的佇列音樂非常好聽!
題
如何知道撥入佇列是否成功?
我知道通話的狀態可能是“進行中”或“已完成”(等等)。就應用程式可以了解的狀態而言,呼叫到呼叫佇列是否具有類似的概念?
附錄
當我故意嘗試通過錯誤的佇列名稱撥號到佇列時,被叫方線路錯誤(“發生應用程式錯誤”)并掛斷。我收到了一個不在檔案中的引數。我唯一能找到參考的地方是https://github.com/BTBurke/twiml/blob/master/callbacks.go#L33
"DequeueResult" => "queue-not-found"
我是否應該期望記錄此回應?
uj5u.com熱心網友回復:
Twilio 開發人員布道者在這里。
這是一個有趣的問題,我以前沒有遇到過。最初,我認為初始<Enqueue>元素可能會有所幫助。<Enqueue>有一個action屬性,它是一個接收 webhook 的 URL,“當呼叫離開佇列時,描述出隊原因和有關在佇列中花費的時間的詳細資訊”。但是,“在通過動詞使呼叫出隊的情況下,當橋接方斷開連接時,會觸發一次操作 URL。” 所以這并沒有告訴我們出隊的結果,直到為時已晚。
<Enqueue>給我們的waitUrl另一件事是. 雖然默認的保持音樂很好,但是在這里提供您自己的回應可能是一個更好的主意,因為waitUrl每次 Twilio 到達動詞末尾并向 URL 發出另一個請求時都會收到資訊。請求引數為您提供諸如呼叫的當前佇列位置、呼叫在佇列中的時間以及總佇列大小和呼叫在佇列中花費的平均時間等資訊。這并沒有告訴你任何關于成功的資訊<Dial><Queue>,它只是需要理解的有趣資料。
我認為這里最好的選擇url是<Queue>. 這通常用于對佇列中的人進行耳語,讓他們知道他們現在正在被移出佇列(無論如何實作都是一件好事!)。當呼叫從佇列中出列時<Queue>,具有url屬性中的 URL 的呼叫將收到請求。您不需要將 TwiML 回傳到此請求,空回應只會橋接呼叫,但該請求會讓您知道對佇列的呼叫已成功。
但它不會告訴您呼叫是否不成功。這就是您可以使用<Dial>元素actionURL 的地方。action當撥出的呼叫失敗時,該URL 將收到一個請求。
因此,在<Queue>元素的url屬性和<Dial>元素的action屬性之間,您可以知道您對佇列的呼叫是成功還是失敗。
關于“DequeueResult”,這不是我以前見過的,我們正在內部調查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429663.html
標籤:轨道上的红宝石 打回来 暮光之城 twilio-api twilio-twiml
下一篇:Trestle管理員自定義洗掉
