繁体   English   中英

Twilio Programmable Voice SDK for Android 中如何使用电话号码?

[英]How are phone numbers used in Twilio Programmable Voice SDK for Android?

我正在使用Android 语音 SDK构建一个应用程序,一个用户可以呼叫另一个应用程序用户。 只能向其他应用程序用户拨打电话(通过搜索他们的用户名并通过简单的点击呼叫他们)。

(1) 在这种情况下,是否为每个用户提供了一个 Twilio 电话号码?

(2) 假设用户 A 呼叫用户 B。Twilio 如何知道用户 A 正在呼叫用户 B? (在这里,一般性和技术性的解释都会很有帮助)。 从拨打电话到接听电话的工作流程是什么?

除了 github 上的快速入门 Android 项目外,当前有关 Voice API 的文档没有解释其与 Android 的技术用途。 但是,由于这更多地集中在实施而不是技术解释上,因此我仍在尝试了解一些方面,例如电话号码似乎没有被使用以及上面提到的其他要点。

当您进行应用到应用调用时,您的用户不需要电话号码。 相反,当您为他们生成访问令牌或创建推送凭证时(正如 Stephan 指出的那样),它们由您为用户提供的身份标识。

当您为应用程序的用户创建访问令牌时,您需要提供一个 TwiML 应用程序 SID。 该 TwiML 应用程序定义了 Twilio 在进行出站呼叫时将向其发出请求的 URL。

当您使用 Voice SDK 拨打电话时,您会将一组参数传递给connect方法:

HashMap<String, String> params = new HashMap<>();
params.put("to", contact.getText().toString());
ConnectOptions connectOptions = new ConnectOptions.Builder(accessToken)
    .params(params)
    .build();
Voice.connect(VoiceActivity.this, connectOptions, callListener);

您可以发送您喜欢的任何参数,在上面的示例中,我们发送一个名为“to”的参数,其中包含来自视图输入字段的字符串。 当您发出呼叫时,Twilio 会将这些参数发送到在 TwiML 应用程序中设置的那个 URL。

当您的应用程序收到该 webhook 时,它需要将 TwiML 返回到 Twilio 以告诉 Twilio 下一步要做什么。 在您的情况下,您需要返回将使用<Dial><Client>连接到另一个应用程序的 TwiML。 在这种情况下,您将采用上面定义的传入参数“to”,并将其用作您要调用的客户端身份。

<Response>
   <Dial>
     <Client>
        <Identity>IDENTITY_FROM_PARAMS</Identity>
      </Client>
    </Dial>
</Response>

这样,Twilio 会将拨号应用程序连接到由身份标识的接收应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM