我想打電話給我的Twilio號碼,立即掛斷,然後回電話給我。這與我以前的一個問題類似(但不完全相同)。twilio,sinatra ruby強制掛斷,然後回撥
問題在於迫使Twilio掛斷。
的Ruby代碼是:
get '/callback' do
to = params['From']
from = 'my Twilio number'
"<Response><Hangup/></Response>"
sleep 5
# set up a client to talk to the Twilio REST API
@client = Twilio::REST::Client.new account_sid, auth_token
@call = @client.account.calls.create(
:from => from, # From your Twilio number
:to => to, # To any number
# Fetch instructions from this URL when the call connects
:url => 'https://dl.dropboxusercontent.com/u/85088004/twilio/twilio.xml'
)
end
這將產生一個消息:「很抱歉,發生系統錯誤」。問題在於掛斷指令。我已如上述嘗試也
<Response><Hangup/></Response> #without enclosing double or single quotes
和
Twilio::TwiML::Response.new do |r|
r.Hangup
end.text
既不產生掛機的期望的結果。
怎麼了?
非常感謝提前!
非常感謝,我感謝你的深思熟慮的答案。我會給它一個鏡頭,讓你知道。我已經知道需要將我的Twilio url設置爲「get」,這可能是一個真正的「陷阱」,但是要感謝您的注意。凱文,謝謝! – user1903663
謝謝xmjw,它工作的很棒。我不能讓我的頭腦發現,掛斷xml出現後,它應該叫我回來,而不是之前!爲什麼是這樣? – user1903663
這是因爲缺乏併發性。您有一個接收HTTP GET請求的單線程,對Twilio的REST API執行另一個HTTP調用,然後將一些TwiML寫回到原始GET請求的響應流中。所以它不會寫響應數據,直到它從Twilio的REST API獲得一個回覆,說明出站呼叫已經啓動。一切都在順序發生。 – xmjw