title: register custom tel/callto app in Windows 10
body: <p>I built this script I share with you here that worked perfectly on my Windows 7 computer to dail a tel:-link in a webpage with my Yealink VOIP phone. With the 'reg-file' you see in the comment I activated the tel-link uasage of my script. But now in Windows 10 I can't get it to work any more! Can anyone help me how I can "link" the "tel link" in a browser to my script again in Windows 10?</p>
  
  <pre><code>/*
  test usage: cscript Z:\tel_link_open\tel.js [phone number]
  
  create register_me.reg with:
  REGEDIT4
  
  [HKEY_CLASSES_ROOT\tel]
  @="URL:knoop.frl Custom Telephone Protocol for VoIP phone"
  "URL Protocol"=""
  
  [HKEY_CLASSES_ROOT\tel\shell]
  
  [HKEY_CLASSES_ROOT\tel\shell\open]
  
  [HKEY_CLASSES_ROOT\tel\shell\open\command]
  @="cscript \"Z:\\tel_link_open\\tel.js\" -c \"\\%1\"" 
  
  */
  
  var call_number = WScript.Arguments(0);
  call_number = call_number.replace(/\|.+/g,'');
  //                                  spatie -.
  call_number = call_number.replace(/(\\tel:|%20|\(|\)|[a-z:\\ -]+)/g,'');
  //                                    +      31       (    0   )
  call_number = call_number.replace(/(\+|%2b)([0-9]+)(\(|%28)0(\)|%29)/ig,'00$2');
  call_number = call_number.replace(/^0031/ig,'0');
  
  WScript.Echo("\n\nGoing to dail: " + call_number + "\n\n");
  
  //WScript.Sleep(50000000);
  
  var outgoing_uri = "31"+"513"+"[number]"+"[internal extension]";
  var login_name   = "XXX";
  var login_pass   = "yyy";
  var get_url      = "http://192.168.xx.yy/servlet?number=" + call_number + "&amp;outgoing_uri=" + outgoing_uri;
  
  // Load the WinHttpRequest object.
  var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
  
  // HttpRequest SetCredentials flags
  HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0;
  
  // Specify the target resource.
  WinHttpReq.open( "GET", 
                                   get_url, 
                                   false );
  
  if (login_name.length) { // Set credentials for server.
      WinHttpReq.SetCredentials( login_name, 
                                                           login_pass,
                                                           HTTPREQUEST_SETCREDENTIALS_FOR_SERVER);
  }
  
  // It might also be necessary to supply credentials 
  // to the proxy if you connect to the Internet 
  // through a proxy that requires authentication.
  
  // Send a request to the server and wait for 
  // a response.
  WinHttpReq.send( );
  
  // Display the results of the request.
  WScript.Echo( "Result status: " + WinHttpReq.Status + "   " + WinHttpReq.StatusText + "\n");
  WScript.Echo( WinHttpReq.GetAllResponseHeaders( ) );
  
  /* To save a binary file use this code instead of previous line
  BinStream = new ActiveXObject("ADODB.Stream");
  BinStream.Type = 1;
  BinStream.Open();
  BinStream.Write(WinHttpReq.ResponseBody);
  BinStream.SaveToFile("out.bin");
  */
  </code></pre>