2025-04-27 07:49:33 -04:00

220 lines
6.5 KiB
HTML

<HTML>
<HEAD>
<TITLE> Remote Assistance Incident Creation </TITLE>
<OBJECT ID="pchealth" classid="CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7"></OBJECT>
<script Language=JavaScript>
var oChannel = null;
var oRCSession = null;
var sEamil = null;
var sSalemID = "";
var oDeskMgr = null;
var oSmapi = null;
var gHelper = null;
var gIsIM = false;
var g_IA64 = false;
// Incident information
var sTo = null;
var sFrom = null;
var sMsg = null;
var bHasScreen1 = true;
var bHasScreen2 = true;
// Channel information
var sVendorID = "CN=Microsoft Corporation,L=Redmond,S=Washington,C=US";
var sProductID = "Microsoft BuddyHelp Channel";
//
// Desktop Control Permissions
//
var DESKTOPSHARING_DEFAULT = 0x0000;
var NO_DESKTOP_SHARING = 0x0001;
var VIEWDESKTOP_PERMISSION_REQUIRE = 0x0002;
var VIEWDESKTOP_PERMISSION_NOT_REQUIRE = 0x0004;
var CONTROLDESKTOP_PERMISSION_REQUIRE = 0x0008;
var CONTROLDESKTOP_PERMISSION_NOT_REQUIRE = 0x00010;
// Error msg
var L_NOCHANNEL_MSG = "Can't initialize channel object.";
function OnLoad1() {
var i = document.URL.indexOf("?", 1);
var s = document.URL.slice(i+1);
try {
var oShell = new ActiveXObject("WScript.Shell");
var szPlatform = oShell.Environment("process").Item("PROCESSOR_ARCHITECTURE");
if (szPlatform == "IA64")
g_IA64 = true;
} catch (e) {
// Can't detect platform type. Assume x86
}
try {
// check whether we need screen1 or screen2
var obj = new ActiveXObject("RcBdyCtl.Setting");
var sTmp = obj.GetProfileString("Screen1");
if (sTmp == "1")
bHasScreen1 = false;
sTmp = obj.GetProfileString("Screen2");
if (sTmp == "1")
bHasScreen2 = false;
} catch (e) {
var L_NOSETTING_MSG = "Can't get channel setting: ";
alert(L_NOSETTING_MSG + e.description);
}
if (s.indexOf("RcRequest=1") != -1) {
try {
// Brought up by rcRequest
oDeskMgr = pchealth.CreateObject_RemoteDesktopManager();
sSalemID = oDeskMgr.RCTicket;
} catch (e) {
var L_REMOTEDSKMGR_FAIL = "CoCreate RemoteDesktopManager failed: ";
alert(L_REMOTEDSKMGR_FAIL + e.description);
DoCancel();
return;
}
// Check who is the helper.
try {
var chan = pchealth.CreateObject_Channel(sVendorID,sProductID );
for(var e = new Enumerator(chan.Incidents(2)); !e.atEnd(); e.moveNext())
{
var inc = e.item();
if (inc.URL == sSalemID) {
var XMLFile = inc.XMLDataFile;
if (XMLFile == "") {
alert("Incident file not found.");
return;
}
var oInc = pchealth.CreateObject_Incident();
oInc.LoadFromXMLFile(XMLFile);
gIsIM = (oInc.Misc("IM") == "1");
gHelper = inc.DisplayString;
break;
}
}
} catch (e) {
alert(L_NOCHANNEL_MSG + e.description);
}
if (gIsIM) {
// No need to ask.
Accepted();
} else {
// Go asking accept or not.
idSrc.window.navigate("HelpeeAccept.htm");
}
return;
} else if (s.indexOf("CheckStatus=1") != -1) {
idSrc.window.navigate("rcStatus.htm");
return;
} else if (s.indexOf("IM=1") != -1) {
idSrc.window.navigate("rcIm.htm?" + s);
return;
}
// From Regular Support link.
try {
oSmapi = new ActiveXObject("RcBdyCtl.SMapi");
} catch (e) {
var L_NOMAPI_MSG = "Unable to Load Simple MAPI object: ";
alert(L_NOMAPI_MSG + e.description);
}
if (bHasScreen1)
s = "rcScreen1.htm";
else if (bHasScreen2)
s = "rcScreen2.htm";
else
s = "rcScreen3.htm";
idSrc.window.navigate(s);
}
function Init( iDuration ) {
var L_NORCSESSION_MSG = "Can't initialize remote assistance session object.";
if (iDuration == null)
iDuration = 0;
// open channel object
if (oChannel == null) {
try {
oChannel = pchealth.CreateObject_Channel(sVendorID, sProductID);
} catch (e) {
alert(L_NOCHANNEL_MSG + "\n" + e.description);
return false;
}
}
// open RDSession
if (oRCSession == null ) {
try {
//alert("Permission: " + CONTROLDESKTOP_PERMISSION_NOT_REQUIRE);
oRCSession = pchealth.CreateObject_RemoteDesktopSession(VIEWDESKTOP_PERMISSION_NOT_REQUIRE, iDuration, sSalemID);
oRCSession.OnConnected = function( salemID, userSID, sessionID)
{ onCallBackConnect( salemID, userSID, sessionID ); }
} catch (e) {
alert(L_NORCSESSION_MSG + "\n" + e.description);
return false;
}
}
return true;
}
// call back function from buddy
function onCallBackConnect( salemID, userSID, sessionID ) {
// Is this a valid salemID ?
//idSrc.window.navigate("HelpeeAccept.htm"); No need for this
}
function DoWait() {
idSrc.window.navigate("hcp://system/HomePage.htm");
}
function DoCancel() {
idSrc.window.navigate("hcp://system/HomePage.htm");
}
function Accepted() {
var L_ACCEPT_MSG = "Accepted() failed: ";
try {
var sTarget = "ChatServer.htm";
if (gIsIM)
sTarget += "?IM=1";
oRCSession = pchealth.CreateObject_RemoteDesktopSession(
VIEWDESKTOP_PERMISSION_NOT_REQUIRE,
0,
sSalemID);
oDeskMgr.Accepted();
oRCSession.onConnected = function( salemID, userSID, sessionID)
{ idSrc.window.navigate(sTarget); }
} catch (e) {
alert(L_ACCEPT_MSG + e.description);
}
}
function Rejected() {
var L_REJECT_MSG = "Rejected() failed: ";
try {
oDeskMgr.Rejected();
} catch (e) {
alert(L_REJECT_MSG + e.description);
}
}
function DoUnload() {
if (oSmapi != null)
oSmapi.Logoff();
}
</script>
</HEAD>
<frameset COLS="100%" onload="OnLoad1()" onunload="DoUnload()">
<frame name="idSrc">
</frameset>
</HTML>