Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Twilio至OnSip应用程序错误:拨号->;Sip:Sip URI DNS不解析或解析为非公共IP地址_Javascript_Xml_Dns_Twilio_Sip - Fatal编程技术网

Javascript Twilio至OnSip应用程序错误:拨号->;Sip:Sip URI DNS不解析或解析为非公共IP地址

Javascript Twilio至OnSip应用程序错误:拨号->;Sip:Sip URI DNS不解析或解析为非公共IP地址,javascript,xml,dns,twilio,sip,Javascript,Xml,Dns,Twilio,Sip,我正在使用Twilio为我的公司构建SIP拨号解决方案,我收到一个错误“拨号->SIP:SIP URI DNS未解析或解析为非公共IP地址”。我在onsip有一个试用帐户来测试功能,当我调用这个帐户号码时,它失败了。相关的TwiML是: <?xml version="1.0" encoding="UTF-8"?> <Response> <Dial callerId="+15555555555"> <Sip>sip:example@e

我正在使用Twilio为我的公司构建SIP拨号解决方案,我收到一个错误“拨号->SIP:SIP URI DNS未解析或解析为非公共IP地址”。我在onsip有一个试用帐户来测试功能,当我调用这个帐户号码时,它失败了。相关的TwiML是:

 <?xml version="1.0" encoding="UTF-8"?>
 <Response>
 <Dial callerId="+15555555555">
     <Sip>sip:example@example.onsip.com</Sip>
 </Dial>
 </Response>

抿:example@example.onsip.com


据谷歌搜索所知,我认为我可能需要将我的应用程序列入白名单。我还想知道,因为我在本地主机上使用我的应用程序,这就是问题所在,但我使用了ngrok,但仍然收到错误。

由于本期中列出的已知问题,Twilio无法与OnIP交互:

希望这不会让其他人头疼。

由于本期中的已知问题,Twilio不可能与OnIP进行交互:

希望这不会让其他人头疼。

使用Twilio新实现的解决方案可以解决这个问题

像这样的东西应该有用--

这将手动查询主机名中的SRV记录,然后使用返回的第一个结果。不考虑权重和优先级


使用Twilio最新实现的技术可以解决这个问题

像这样的东西应该有用--

这将手动查询主机名中的SRV记录,然后使用返回的第一个结果。不考虑权重和优先级

const dns = require('dns');

let sipUri = 'xxxxx@onsip.com';
let protocol = 'udp';
let region = 'us2' ;

exports.handler = function(context, event, callback) {    
  var user =   sipUri.split('@')[0];  
  var host =   sipUri.split('@')[1];  

  // generate the TwiML to tell Twilio how to forward this call
  let twiml = new Twilio.twiml.VoiceResponse();

  const dial = twiml.dial();

  dns.resolveSrv('_sip._'+protocol+'.'+host, (err, addresses) => {
    var resolvedhost = addresses[0].name+':'+addresses[0].port;
    dial.sip('sip:'+user+'@'+resolvedhost+';region='+region);
    console.log(twiml.toString());
    // return the TwiML
    callback(null, twiml);
  });
};