在ios应用程序中接收可编程语音呼叫的Twilio呼叫者姓名

时间:2018-06-12 12:30:31

标签: ios twilio voip callkit twilio-programmable-voice

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

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

我们可以在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

1 个答案:

答案 0 :(得分:0)

这里是Twilio开发人员的传播者。

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

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

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

注意,如果要拨打电话号码,则必须使用数字作为呼叫者ID。如果要拨打另一个客户端,则可以使用电话号码或客户端标识符。如果您希望该名称显示在应用程序中,那么我建议使用上面的客户端标识符。