當SIP呼叫結束時,發送到我的應用的最後一個請求會再次發送,稍有修改,但Twilio文檔將指示的參數將包含在內在調用StatusCallback POST。這是非常奇怪的,因爲我沒有配置StatusCallback URL!即使沒有配置StatusCallback URL,通話結束時SIP呼叫POSTing StatusCallback
所以...一個例子。環境(所有網址都HTTPS):
- Twilio SIP端點:
test-myaccount.sip.twilio.com
- 語音URL(POST):
myapp.myserver.com/twilioapp
- 後備網址(GET):
s3.amazonaws.com/somebucket/twilioerror.xml
(無法想象這是相關的,但我提到它的情況下,它提示任何人關閉以奇怪的副作用) - StatusCallback URL(POST):空白
調用流程:
1a。打電話給SIP終端製造 - Twilio發送請求TwiML應用服務器:
POST myapp.myserver.com/twilioapp
1B。 TwiML應用響應:
<?xml version="1.0" encoding="UTF-8"?> <Response> <Say language="en-US" voice="alice">May the fourth be with you!</Say> <Redirect>myapp.myserver.com/twilioapp/secondstep?actualdate=20140503</Redirect> </Response>
2A。 Twilio播放TTS語音,然後回發到應用服務器(每個重定向動詞):
POST myapp.myserver.com/twilioapp/secondstep?actualdate=20140503
2b中。該應用程序服務器響應:
<?xml version="1.0" encoding="UTF-8"?> <Response> <Say language="en-US" voice="alice">Whoops, wrong date. Goodbye!</Say> <Hangup /> </Response>
3A。下面是我看到的funkiness - 然後Twilio正在發佈另一個請求:
POST myapp.myserver.com/twilioapp/secondstep/?actualdate=20140503
注(a)該POST是到Twilio發佈到和(b)尾隨斜線贏得最後的網址在querystring params之前被添加到URL中。
PARAMS了與該最後POST發送:
AccountSid: <MyAccountSid>
Caller: sip:[email protected]
CallStatus: completed
Duration: 1
Called: sip:test-myaccount.sip.twilio.com
To: sip:test-myaccount.sip.twilio.com
CallDuration: 22
CallSid: <TheCallSid>
From: sip:[email protected]
Direction: inbound
ApiVersion: 2010-04-01
更奇怪的:期限與CallDuration包括在post數據 - 持續時間在(四捨五入)分鐘,CallDuration在幾秒鐘。
所以 - 我不知道發生了什麼。我有一張支持票,但幾天沒有收到回覆;當我在等待Twilio代碼spelunkers工作的時候想到了他的魔法,我會平住社區,看看其他人是否也注意到了這種行爲。
有沒有更新?我與twilio的最後一次對話讓他們告訴我只需要爲StatusCallback URL添加一些內容,以便虛幻的StatusCallback POSTs不會打到我自己的服務器上:/不完全理想...... – 2014-12-17 22:07:25
嘿羅伯特。您是否收到了我們客戶支持團隊的某封電子郵件?如果你這樣做,我會建議回到他們身邊,他們可以給你一個更新。 – 2014-12-18 17:57:30