【问题标题】:Twilio Outgoing call from iOS来自 iOS 的 Twilio 拨出电话
【发布时间】:2016-09-19 14:24:12
【问题描述】:

情况

我将 Twilio iOS SDK 用于我的 iOS Voip 应用程序。

我正在尝试从我的 Voip 应用程序呼叫我在某些点上堆积的任何号码。

我已经确认 Http 请求被发送到我在 url 上设置的应用程序请求 url,无论是当我从我的 Voip 应用程序拨打电话还是接到我的 Voip 应用程序的来电时。

简而言之,当我从我的 Voip 应用程序调用时,我认为这是正确的流程

键入号码并呼叫(iOS Voip 应用程序)-> 调用请求 URL 并将 TwiML 返回到我键入的呼叫号码(我的服务器端)-> 呼叫号码(Twilio 服务)-> 获取呼叫(电话)

问题

  1. 从 Voip 拨打任何号码的最佳做法是什么?

    • 是否可以在Twilio控制台的一个应用程序中分别为呼入和呼出设置不同的请求url,或者我们有办法通过参数来判断是呼入还是呼出?
  2. 当我想从我的 Voip 应用程序向电话拨出电话时,我应该返回哪种类型的 TwiML?

    • 当我设置的请求 url 被调用以从我的 Voip 应用程序调用时,我的服务器端脚本返回 <Response><Dial><Number>090xxxxxxxxx</Number></Dial></Response>,但不幸的是它失败了,并且在 Twilio 通话记录中记录为来电而不是拨出电话。我知道我应该在接到来电时返回<Response><Dial><Client>name</Client></Dial></Response>,但我认为它不适合拨出电话。

亲切的问候。

编辑

以下是我收到的从任何电话号码来电到我的 Twilio 号码的请求,以及我返回的 TwiML 以在 Voip 应用程序中呼叫我的 Twilio 号码。它运行良好。

[request]
<QueryDict: {u'FromZip': [u''], u'From': [u'+8190xxxxxxxx'], u'FromCity': [u''], u'ApiVersion': [u'2010-04-01'], u'ApplicationSid': [u'AP192f34d8a08f17592163af2c6cxxxxxx'], u'To': [u'+8150xxxxxxxx'], u'ForwardedFrom': [u'050xxxxxxxx'], u'CallStatus': [u'ringing'], u'CalledState': [u''], u'FromState': [u''], u'Direction': [u'inbound'], u'ToCity': [u''], u'ToZip': [u''], u'CallerCity': [u''], u'FromCountry': [u'JP'], u'CalledCity': [u''], u'CalledCountry': [u'JP'], u'Caller': [u'+8190xxxxxxxx'], u'CallerZip': [u''], u'AccountSid': [u'AC41ebdf749095141bfdb182fbd8fxxxxx'], u'CalledVia': [u'050xxxxxxxx'], u'Called': [u'+8150xxxxxxxx'], u'CallerCountry': [u'JP'], u'CalledZip': [u''], u'CallSid': [u'CA7afa3aae965d9207b7e8b065e9dxxxxx'], u'CallerState': [u''], u'ToCountry': [u'JP'], u'ToState': [u'']}>

[TwiML]
<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Client>name</Client></Dial></Response>

虽然来电运行良好,但下面是从我的 Voip 应用程序通过我的服务器和我返回的 TwiML 到任何电话号码的已调试去电请求。呼叫失败,我确认 Twilio 呼叫日志没有显示“收件人”号码,而“发件人”号码是我用于能力的客户名称。allow_client_incoming(我的客户名称)。 [要求]

[TwiML]
<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Number>090xxxxxxxx</Number></Dial></Response>

【问题讨论】:

    标签: ios twilio twilio-api


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    如果我是你,我会查看Twilio Client quick start for iOS,它会向你展示构建它的各种方法。

    回答您的问题。

    1. 您不能使用 Twilio 客户端使用相同的号码为入站和出站设置不同的请求 URL,但您可以通过 checking the direction parameter 判断它是入站还是出站。

    2. 您应该使用&lt;Dial&gt;&lt;Number&gt; 出站VOIP 到号码。我不知道为什么会失败。您能否分享有关该错误的更多信息?

    【讨论】:

    • 我经历过那个。谢谢你。正如你所说,我试图找到direction parameter,但是当我从其他手机接到我的Voip应用程序的来电以及当我尝试从我的Voip应用程序打电话到其他手机时,通话记录都被记录为来电,所以仍然分不清是哪条路。 self.device.connect(["To":tel_number], delegate: self) 是我从我的 Voip 应用程序调用然后调用我的应用程序请求 URL 的方式。我错过了什么吗?感谢您的帮助。
    • 成功了。我只需要简单地将 callerId 像 resp.dial(callerId='+81xxxxxxxxx') 那样调用出站并返回 xml &lt;Dial callId='+81xxxxxxxx'&gt;。关于查找是呼入还是呼出的方法,我检查了请求的Caller参数是否包含'client:'字符串。
    • 如果您使用不使用 Twillio SDK 的普通手机拨打电话,是否可以获得来电号码?我的意思是一方面我们有 Twillio iOS Sdk,而其他手机没有集成 SDK。使用 Twillio SDK 是否可以实现这一目标
    • 来电者号码应该是TCConnection object. Or, if you're dealing with it on the server, it will be the To`参数上parameters属性的一部分发布到您的URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多