내 Yealink VOIP 전화로 웹 페이지에서 tel : -link를 사용하기 위해 Windows 7 컴퓨터에서 완벽하게 작동하는이 스크립트를 작성했습니다. 'reg-file'을 사용하여 주석에있는 스크립트의 tel-link uasage를 활성화했습니다. 하지만 이제 Windows 10에서는 더 이상 사용할 수 없습니다! 누구든지 브라우저에서 "tel link"를 Windows 10에서 다시 내 스크립트에 "링크"할 수있는 방법을 알려줍니다.Windows 사용자 정의 tel/callto 앱을 등록하십시오.
* 특정 URI 체계를 처리 할 수있는 응용 프로그램을 등록하려면 사용자 정의 URI 계획 처리 응용 프로그램 등록이와 함께, 새로운 키를 추가
/*
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 + "&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");
*/
스택 오버 플로우에 오신 것을 환영합니다! 이것은 이론적으로 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (// meta.stackoverflow.com/q/8259). – Takarii