// Deze functie stuurt informatie van videoconferentie boekingen naar Talk & Vision // Videoconferentie boekingen zijn reserveringen met als activiteit Videoconferentie // Bij nieuwe boekingen wordt de soap action BookMeeting aangeroepen als resultaat // krijgen we dan een boekingsnummer terug. Dit nummer wordt opgeslagen in kenmerk vc_id // en wordt getracked bij de reservering. // Bij wijzigingen hebben we al een vc_id en roepen we de soap actie ModifyMeeting aan. function timestamp () { var date = new Date(); var hours = date.getHours(); var days = date.getDay(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? 'pm' : 'am'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = date + ' ' + hours + ':' + minutes + ' ' + ampm; return strTime; } try { var v_timestamp = timestamp(); WScript.Echo("Start bookVC.js om " + v_timestamp); var udlstr = 'File Name=../oracle.udl'; var Oracle = new ActiveXObject("ADODB.Connection"); Oracle.Open(udlstr); var sql = "BEGIN fac.initsession('NL'); END;"; Oracle.Execute(sql); var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0") var SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3; var SXH_PROXY_SET_PROXY = 2; var v_type = ''; debugFiddler = 0; if (debugFiddler) { var SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056 objXMLHTTP.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888") objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS } // first do the login part var XMLReq = '' +'' +' ' +' ' +' Getronics' +' kpn456rt' +' ' +' ' +''; objXMLHTTP.open("POST", "http://talkandvision.com//webservice/portal.asmx" ); //WScript.Echo("Set header"); objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); WScript.Echo("Send XML"); objXMLHTTP.send(XMLReq); WScript.Echo("XML received"); if (objXMLHTTP.status==200) { v_cookie = objXMLHTTP.getResponseHeader("Set-Cookie"); var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0"); xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tv="http://tempuri.org/"'); xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren xmlResp.validateOnParse = false; // van mij hoef je geen DTD's te controleren xmlResp.loadXML(objXMLHTTP.responseText); // for parsing var responseText = objXMLHTTP.responseText; // for debugging v_status = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/tv:LoginResponse/tv:LoginResult"); WScript.Echo("Gelukt, status = " + v_status.text); if (v_status.text == 'true') { sql = "SELECT res_reservering_key, SUM (vertrouwelijk) vertrouwelijk " + " FROM ykpn_v_vc_gegevens " + " WHERE last_upd > last_sync " + " AND last_upd < SYSDATE - 1/96 " // we wachten een kwartier na de laatste update + " GROUP BY res_reservering_key " + " ORDER BY res_reservering_key"; WScript.Echo("SQL reservering = " + sql); var oRs_res = Oracle.Execute(sql); var v_res_key_prev = -1; while (!oRs_res.eof) { v_reservering_key = oRs_res("res_reservering_key").Value; v_vertrouwelijk = oRs_res("vertrouwelijk").Value; sql = "SELECT t_van, " + " t_tot, " + " omschrijving, " + " ruimte, " + " contact_naam, " + " contact_telefoon, " + " contact_email, " + " res_reservering_key, " + " res_rsv_ruimte_key, " + " IdNummerTnF, " + " SIP_IP, " + " ipadres, " + " vc_id " + " FROM ykpn_v_vc_gegevens " + " WHERE res_reservering_key = " + v_reservering_key + " ORDER BY res_rsv_ruimte_volgnr"; WScript.Echo("SQL rsv ruimte = " + sql); var oRs_rsv = Oracle.Execute(sql); //var v_count = 0; var v_res_key_prev = -1; var v_xml_header = ""; var v_xml_footer = ""; var v_xml_body = ""; var v_xml_loc = ""; while (!oRs_rsv.eof) { v_van = oRs_rsv("t_van").Value; v_tot = oRs_rsv("t_tot").Value; v_omschrijving = oRs_rsv("omschrijving").Value; v_ruimte = oRs_rsv("ruimte").Value; v_contact_naam = oRs_rsv("contact_naam").Value; v_contact_telefoon = oRs_rsv("contact_telefoon").Value; v_contact_email = oRs_rsv("contact_email").Value; v_rsv_ruimte_key = oRs_rsv("res_rsv_ruimte_key").Value; v_idNummerTnF = oRs_rsv("idNummerTnF").Value; v_sip_ip = oRs_rsv("sip_ip").Value; v_ipadres = oRs_rsv("ipadres").Value; v_vc_id = oRs_rsv("vc_id").Value; WScript.Echo("v_rsv_ruimte_key = " + v_rsv_ruimte_key); if (v_vc_id) { v_type = 'ModifyMeeting'; } else { v_type = 'BookMeeting'; } if (!v_xml_header) { v_xml_header = ' ' + ' ' + ' ' + ' <' + v_type + ' xmlns="http://tempuri.org/">' + ' ' + ' ' + v_vc_id + '' + ' ' + v_reservering_key + '' + ' ' + v_van + '' + ' ' + v_tot + '' + ' KPN' + ' ' + v_omschrijving + '' + ' ' + v_contact_naam + '' + ' ' + v_contact_telefoon + '' + ' ' + v_contact_email + '' + ' ' + (v_vertrouwelijk==0?'false':'true') + '' + ' '; v_xml_footer = ' ' + ' ' + ' ' + ' ' + ' '; } v_xml_loc = v_xml_loc + ' ' + (!v_sip_ip?' ' + v_idNummerTnF + '':'') + ' ' + ' ' + (v_sip_ip?'true':'false') + '' + (v_sip_ip == 'IP'?'' + v_ipadres + '':'') + (v_sip_ip == 'SIP'?'' + v_ipadres + '':'') + ' '; oRs_rsv.MoveNext(); } var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0") var SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3; var SXH_PROXY_SET_PROXY = 2; if (debugFiddler) { var SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056 objXMLHTTP.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888") objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS } objXMLHTTP.open("POST", "http://talkandvision.com//webservice/portal.asmx" ); objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); objXMLHTTP.setRequestHeader ("SOAPAction", "http://tempuri.org/" + v_type); objXMLHTTP.setRequestHeader ("Cookie", v_cookie); WScript.Echo("Cookie = " + v_cookie); XMLReq = v_xml_header + v_xml_loc + v_xml_footer; WScript.Echo("Send XML: " + XMLReq); objXMLHTTP.send(XMLReq); WScript.Echo("XML received"); if (objXMLHTTP.status==200) { var responseText = objXMLHTTP.responseText; WScript.Echo("Response.text:" + responseText); var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0"); xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tv="http://tempuri.org/"'); xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren xmlResp.validateOnParse = false; // van mij hoef je geen DTD's te controleren xmlResp.loadXML(objXMLHTTP.responseText); // for parsing var responseText = objXMLHTTP.responseText; // for debugging v_result = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/tv:" + v_type + "Response/tv:" + v_type + "Result"); if (v_result) { if (v_type == 'BookMeeting') { WScript.Echo("v_vc_id:" + v_result.text); sql = "BEGIN ykpn.set_vc_status(" + v_reservering_key + ",'" + v_result.text +"'); END;"; WScript.Echo("sql:" + sql); Oracle.Execute(sql); } else { WScript.Echo("resultaat van update:" + v_result.text); sql = "BEGIN ykpn.set_vc_status(" + v_reservering_key + ",'" + v_vc_id +"'); END;"; WScript.Echo("sql:" + sql); Oracle.Execute(sql); } } } else { WScript.Echo("Request = " + XMLReq); var response = objXMLHTTP.responseXML; WScript.Echo("Response = " + response); WScript.Echo("Mislukt, status = " + objXMLHTTP.status); WScript.Echo(objXMLHTTP.statusText); } oRs_res.MoveNext(); } } } } catch (e) { // WScript.Echo("Response.text" + responseText); WScript.Echo("Serieuze fout in bookVC.js: " + e.description) WScript.Quit(1); }