问题描述
connection.on('incoming',function(conn) {})
函数未调用。
我正在尝试在浏览器中实现来电。我试过的是一个javascript代码
var number = $("#number").val();
params = {
"PhoneNumber": number,"CallerId": "+13604924000","AgentName": "Noman Javed",};
Twilio.Device.setup(token);
Twilio.Device.ready(function(device) {
console.log('Ready');
// ---------------------------------------------------
// Explicitly create a new outgoing connection
var connection = Twilio.Device.connect(params);
console.log('PhoneNumber: ' + params.PhoneNumber);
$('#hangup_btn_span').show();
$("#hangup_btn").show();
connection.on('error',function(error) {
console.log(error);
});
connection.on('accept',function(conn) {
});
connection.on('incoming',function(conn) {
console.log("incoming call connection object log");
console.log(conn);
console.log('Incoming connection from ' + conn.parameters.From);
// accept the incoming connection and start two-way audio
// conn.accept();
});
}
对于拨出电话,我必须添加 Twiml App 拨出电话 URL 的 URL 并使用 rest API 拨打电话以点击 twiml 页面。
对于来电,我在电话号码来电网址中添加了来电网址
mydomain.com/Welcome/incoming_call
来电网址代码为:
header('Content-Type: application/xml');
// Load the required files
require APPPATH . 'libraries/vendor/autoload.PHP';
use Twilio\Jwt\ClientToken;
use Twilio\Rest\Client;
use Twilio\TwiMl;
use Twilio\TwiML\VoiceResponse;
file_put_contents('request.log',"\n" . "incoming call - : " . json_encode($_REQUEST) . "\n",FILE_APPEND);
?>
<Response>
<Pause length="2"/>
<Say voice="woman">Dialing number</Say>
<Dial callerId="<?PHP echo $_REQUEST['From']; ?>" >
<?PHP echo $_REQUEST['To']; ?>
</Dial>
</Response>
connection.on('incoming',function(conn) {
console.log("incoming call connection object log");
console.log(conn);
console.log('Incoming connection from ' + conn.parameters.From);
// accept the incoming connection and start two-way audio
// conn.accept();
});
我是否也需要在 Twiml App 中添加来电 URL 或只添加电话号码来电 URL?
提前感谢您的帮助和指导。
解决方法
首先,在 twiml 应用程序中,您必须为后端 api 添加 url,其中包含您的 php 代码,并将该 twiml 应用程序添加到您的传入号码。
现在,在为您的用户生成令牌时,您必须使用“身份”。我们需要使用该身份值将来电连接到用户。类似于以下内容:
$response = new VoiceResponse();
$dial = $response->dial('');
$dial->client(IDENTITY_VALUE);
此拨号->客户端会将来电连接到浏览器。
如果您没有在代币生成中使用身份属性,请检查此网址: https://www.twilio.com/docs/iam/access-tokens?code-sample=code-creating-an-access-token-voice-2&code-language=PHP&code-sdk-version=5.x