即使没有配置StatusCallback URL,SIP也会在呼叫结束时调用POSTing StatusCallback

时间:2014-09-23 02:30:15

标签: sip twilio

当SIP呼叫结束时,发布到我的应用程序的最后一个请求再次进行POST,略微修改,但Twilio文档指示的参数将包含在调用StatusCallback POST中。这非常奇怪,因为我没有配置StatusCallback URL!

所以...一个例子。环境(所有URL都是https):

  • Twilio SIP端点:test-myaccount.sip.twilio.com
  • 语音网址(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回应用服务器(根据Redirect动词):

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。这是我所看到的嗜好 - 然后Twilio发布了另一个请求:

POST myapp.myserver.com/twilioapp/secondstep/?actualdate=20140503

注意(a)POST是Twilio发布到的最后一个URL,(b)在查询字符串参数之前已经在URL中添加了一个尾部斜杠。

与最终POST一起发送的参数:

AccountSid: <MyAccountSid>
Caller: sip:55512345678@169.0.0.0
CallStatus: completed
Duration: 1
Called: sip:test-myaccount.sip.twilio.com
To: sip:test-myaccount.sip.twilio.com
CallDuration: 22
CallSid: <TheCallSid>
From: sip:55512345678@169.0.0.0
Direction: inbound
ApiVersion: 2010-04-01

更奇怪:持续时间和呼叫持续时间都包含在POST参数中 - 持续时间(四舍五入)分钟,呼叫持续时间(秒)。

所以 - 我不知道发生了什么事。我有一张支持票,但几天没有回复;当我在等待Twilio代码探险者工作他们的魔法时,我想ping社区,看看是否有其他人也注意到了这种行为。

1 个答案:

答案 0 :(得分:0)

Twilo Evangelist在这里。

我刚刚与我们的一位客户支持团队成员进行了交谈,看起来我们针对此行为报告了一个问题。她应该很快联系你,给你一个更详细的更新。

如果我们确定了解决方法,我们会确保使用这些详细信息更新此SO帖子。

希望有所帮助。