// 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_type + '>'
+ ' '
+ ' ';
}
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);
}