OGeek|极客世界-中国程序员成长平台

标题: ios - 在 ios 应用程序中接收可编程语音调用的 Twilio 来电者姓名 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:14
标题: ios - 在 ios 应用程序中接收可编程语音调用的 Twilio 来电者姓名

我在其中一个项目中使用了 Twilio 的可编程语音。我的主要要求是在移动设备之间放置 VoIP 类(没有 PSTN 调用)。我可以从一台设备向另一台设备调用电话,但无法在来电屏幕上设置适当的来电者姓名。

请指导我如何在接收设备上显示来电者姓名。 TVOCallInvite 的“from”值显示手机号码“+18xxxxxxxx”,但我需要显示来电者姓名。 . 我们创建了 TwiML PHP 文件,其中包含调用的客户端名称和 callerID(我的斜纹布号码)。我们已在 TwiML 应用的请求 URL (https://www.twilio.com/console/voice/twiml/apps/myappid) 中分配了此文件的 url。

我们可以在 CallKit 的“localizedCallerName”中指定来电者的姓名,但我们收到的是电话号码而不是来电者的身份。

详情: 跟随教程:https://github.com/twilio/voice-quickstart-swift TwilioVoice -> 2.0.0 iOS版本:10.1 设备:iPhone 7 & iPhone 5S

请查看随附的屏幕截图。

enter image description here

请注意,我已经搜索了谷歌,但我找不到答案。

谢谢。

下面是我的voice.php文件

<?php

require __DIR__ . '/TwilioSdk/Twilio/autoload.php';
include('config.php');
use Twilio\Twiml;
$response = new Twiml;

if (isset($_REQUEST['To']) && strlen($_REQUEST['To']) > 0) 
{
  $number = htmlspecialchars($_REQUEST['To']);
  $dial = $response->dial(array('callerId' => $callerid)); // callerid is +18XXXXXXXXX
  if (preg_match("/^[\d\+\-\(\) ]+$/", $number)) 
  {
    $dial->number($number);
  } 
  else 
  {
    $dial->client($number);
  }
} 
else 
{
   $response->say("Thanks for calling!");
}
header('Content-Type: text/xml');
echo $response;

?>

用于通话记录的 Twilio 控制台

enter image description here



Best Answer-推荐答案


这里是 Twilio 开发者宣传员。

为了在 CallKit 的 iOS 调用屏幕上显示名称,您需要将客户端标识符作为 callerId 而不是电话号码传递。

客户端标识符应以 client: 为前缀。所以在上面的代码中,重要的部分是生成 TwiML,它应该是这样的:

$response->dial(array('callerId' => 'client:' . $clientName));

请注意,如果您调用电话号码,则必须使用号码作为来电显示。如果您正在调用另一个客户端,那么您可以使用电话号码或客户端标识符。如果您希望名称出现在应用程序中,那么我建议使用上述客户端标识符。

关于ios - 在 ios 应用程序中接收可编程语音调用的 Twilio 来电者姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50817296/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4