즉시 전화를 끊은 다음 Twilio 번호로 전화를 걸어 다시 전화하겠습니다. 이것은 이전 질문과 유사합니다 (동일하지는 않습니다).twilio, sinatra ruby 강제 종료 및 콜백
문제는 Twilio를 강제 종료 할 때 발생합니다.
루비 코드는 다음과 같습니다
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
이 메시지를 생성합니다 "죄송하지만 시스템 오류가 발생했습니다." 문제는 전화 끊기 명령에 있습니다. I는 상기 시도도
<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 호출을 한 다음, 원래의 GET 요청에 대한 응답 스트림에 TwiML을 다시 쓰는 단일 스레드를 가지고있다. 그래서 Twilio의 REST API로부터 아웃 바운드 콜이 시작되었다는 응답이있을 때까지 응답 데이터를 쓰지 않습니다. 모든 것이 순차적으로 일어나고 있습니다. – xmjw