如何为 Twilio 客户端 (VoIP) 拨出电话设置 From 标识符?
Posted
技术标签:
【中文标题】如何为 Twilio 客户端 (VoIP) 拨出电话设置 From 标识符?【英文标题】:How to set the From identifier for Twilio Client (VoIP) outgoing calls? 【发布时间】:2015-02-26 23:39:13 【问题描述】:我们的应用程序通过 twilio.js 客户端接受电话或 VoIP 连接到我们的 twilio 端点。电话呼叫由呼叫者 ID 记录,但 VoIP 连接在 twilio 呼叫日志中均显示为匿名,例如:
Date Direction From To Type Status Recording Duration
XXYY Incoming Anonymous --- Client Completed --- 17 min 7 sec
YYZZ Incoming Anonymous --- Client Completed --- 17 min 23 sec
有没有办法为传出 (client->twilio) 调用设置 From 字段?查看了 Twilio.Device.connect 以及功能令牌文档,找不到任何提示。
【问题讨论】:
【参考方案1】:这一切都与能力令牌步骤相关,以一种完全没有记录的方式(而且显然 Twilio 自己也不知道)。
为了让 twilio 日志识别呼入会议的 VoIP 端点,我们必须将客户端 ID 绑定到 allow_client_incoming 功能,并确保 ID 是直接的字母数字(例如,字符串中的破折号阻止了来自通过的ID)。
在我们的服务器端 (ruby) 令牌生成步骤中,它看起来像这样:
capability.allow_client_incoming sanitized_client_id
【讨论】:
【参考方案2】:Twilio 布道者在这里。
当客户端连接到您的 TwiML 应用端点时,传递给语音请求 URL 的 From 参数应该是客户端的名称。
如果该语音请求 URL 包含 <Dial>
动词,告诉 Twilio 进行出站电话呼叫并将其与客户端呼叫桥接,您可以设置 callerId
参数:
<Dial callerId="+15555555555" />
希望对您有所帮助。
【讨论】:
试过了,但仍然显示匿名。这是我们现在发回的 TwiML:<Response> <Dial callerId="+14155551212"> <Conference waitUrl="http://example.com/welcome.mp3" waitMethod="GET">conferenceId</Conference> </Dial> </Response>
当您创建能力令牌“匿名”时,您给客户端实例的名称是?
我们使用 twilio-ruby gem 来生成能力令牌(使用capability.allow_client_outgoing)。创建令牌时有没有办法命名客户端?我们当然不会自己将其命名为 Anonymous,尽管我认为 gem 可能会在后台这样做。
所以我认为在您的场景中,在 Dial 动词上设置 callerID 属性将无济于事,因为您正在拨打会议。如果您拨出一个号码,设置 CallerID 将告诉 Twilio 将该号码用作出站支路的呼叫者 ID。但是,我不确定为什么来自 Client 的来电显示 Anonymous 作为 From 值。 AFAIK,它应该显示对 Twilio 进行入站调用的客户端实例的名称。我正在尝试了解更多详细信息。
@DevinRader,您对此有任何更新吗?我还希望能够在拨入会议时指定客户端。【参考方案3】:
对我有用的是在OutgoingClientScope
功能中设置clientName
参数。
这是一个js中的代码示例:
capability.addScope(
new ClientCapability.OutgoingClientScope(
clientName: 'mike',
applicationSid: 'AP...'
)
);
其他答案都不适合我。
【讨论】:
以上是关于如何为 Twilio 客户端 (VoIP) 拨出电话设置 From 标识符?的主要内容,如果未能解决你的问题,请参考以下文章