【发布时间】:2021-02-15 13:33:29
【问题描述】:
我将Twilio 与Symfony 5、ApiPlatform 和reactjs 一起使用
我更多的是寻找信息而不是对问题的回应。
所以我想在我的两个客户端之间实现浏览器到浏览器的调用。
Frontend 这边,我有这个功能来启动与Twilio 的连接,这似乎工作正常
function createTwilioDevice()
{
let device = Device.setup('some valid capability token');
device.ready(function(device) {
console.warn('DEVICE READY');
const params = {To: 'Joey'}
console.log('Calling ' + params.To + '...')
device.connect(params)
})
device.error(function(err) {
console.log('DEVICE ERROR : ' + err.message);
})
}
在backend 中,我生成了我的capability token,如文档中所示:
public function generateCapabilityToken(string $clientName): string
{
$capability = new ClientToken($this->twilioAccountSid, $this->twilioAuthToken);
$capability->allowClientOutgoing(self::TWIML_APP_SID);
$capability->allowClientIncoming($clientName);
return $capability->generateToken();
}
我像这样生成我的Twiml:
/**
*
* @Route("/twilio/handle/twiml", name="twilio_handl_twiml")
* @return Response
*/
public function generateTwiml(): Response
{
$voiceResponse = new VoiceResponse();
$number = htmlspecialchars($to);
$dial = $voiceResponse->dial(null, array('callerId' => '+15017122661'));
if (isset($to)) {
$dial->client($number);
} else {
$voiceResponse->say('There has been an issue. Thanks for calling!');
}
return new Response(
$voiceResponse->asXML(),
Response::HTTP_OK,
['Content-type' => 'application/xml']
);
}
经过一些测试,capability token 和 Twiml 生成工作正常。
所以当我在前面运行Device.connect() 时,这个虚拟设备将连接到Twilio,然后它将调用我在我的Twiml 应用程序中设置的url,即https://127.0.0.1:5467/twilio/handle/twiml,来自generateTwiml()以上。
我无法理解的部分是关于客户端的,我如何告诉 twilio 调用这个客户端或这个客户端,因为我希望它通过浏览器而不是电话号码?
意思是我应该传递给客户端调用的函数,但假设我传递客户端的姓氏,Twilio 将不知道那是什么客户端或该字符串的含义
如果有人对此主题有任何提示/文档/回复,我将不胜感激,这对我来说仍然有点模糊
谢谢!
【问题讨论】:
标签: symfony twilio client twilio-twiml