305 lines
11 KiB
HTML
305 lines
11 KiB
HTML
<html>
|
|
<head>
|
|
<title>Untitled Document</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<LINK REL="STYLESHEET" HREF="rcBuddy.css" TYPE="text/css">
|
|
<script language="JavaScript">
|
|
<!--
|
|
function MM_goToURL() { //v3.0
|
|
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
|
|
window.navigate(args[0]);
|
|
}
|
|
//-->
|
|
</script>
|
|
</head>
|
|
|
|
<body tabIndex=-1>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
|
|
<tr valign="top">
|
|
<td>
|
|
<font class="cssHeader">
|
|
Start a Help Session > Security Options
|
|
</font>
|
|
<hr>
|
|
<font class="cssBody">
|
|
To ensure the security of your invitation, it must expire.
|
|
Please select an expiration time below.
|
|
It is recommended that you also choose to protect this session with a password.
|
|
</font>
|
|
<p>
|
|
<table class="cssGrid" cellspacing="0" cellpadding="0">
|
|
<tr class="cssTblTitleLight">
|
|
<td nowrap>
|
|
<font class="cssBody">
|
|
Secure your Help Session
|
|
</font>
|
|
</td>
|
|
</tr>
|
|
<tr><td>
|
|
<Table cellspacing="6" cellpadding="0">
|
|
<tr><td>
|
|
<font class="cssNotation">
|
|
Make invitation expire
|
|
</font>
|
|
</td></tr>
|
|
<tr><td>
|
|
<select tabIndex=1 name="select2" id="idSelect">
|
|
<option value=5>in 5 minutes</option>
|
|
<option value=30>in 30 minutes</option>
|
|
<option value=60 selected>in 1 hour</option>
|
|
<option value=180>in 3 hours</option>
|
|
<option value=360>in 6 hours</option>
|
|
<option value=1440>in 1 day</option>
|
|
</select>
|
|
</td></tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<table class="cssGrid" cellspacing="0" cellpadding="0">
|
|
<tr class="cssTblTitleLight">
|
|
<td nowrap>
|
|
<input tabIndex=2 type="checkbox" checked id=idPassChk onclick="DoPasswd()">
|
|
<font class="cssBody">
|
|
Protect session with password
|
|
</font>
|
|
<font class="cssNotation">
|
|
(optional)
|
|
</font>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="10" cellpadding="0">
|
|
<tr>
|
|
<td nowrap>
|
|
<font class="cssNotation">
|
|
Enter Password</font><br>
|
|
<input tabIndex=3 type=password id="idPass1" name="Password1" style="width:80%">
|
|
</td>
|
|
<td nowrap>
|
|
<font class="cssNotation">
|
|
Confirm Password</font><br>
|
|
<input tabIndex=4 type=password id="idPass2" name="Password2" style="width:80%">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2" valign="top">
|
|
<font class="cssNotation" style="color:black">
|
|
NOTE: Password is optional, but strongly recommended.
|
|
<br>
|
|
If you use a password, your helper will need it to start the help session so you must communicate it seperately (e.g., by phone).
|
|
</font>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr valign="bottom">
|
|
<td>
|
|
<hr>
|
|
<table width="100%" height="50">
|
|
<tr>
|
|
<td align="left">
|
|
</td>
|
|
<td align="right">
|
|
<input class=styButton type="button" name=submit2" value="Cancel" onClick="parent.DoCancel();">
|
|
<input class=styButton type="button" name=submit2" value="< Back" onClick="MM_goToURL('RCscreen3.htm');return document.MM_returnValue">
|
|
<input class=styButton type="button" name=submit2" value="Send" onClick="DoSend()">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
<Script Language=JavaScript>
|
|
var oChannel = null;
|
|
var oRCSession = null;
|
|
var L_SUBJECT_MSG = "YOU HAVE RECEIVED A REMOTE ASSISTANCE INVITATION FROM: ";
|
|
var L_LINE1_MSG = "REQUEST FOR REMOTE ASSISTANCE\n\n";
|
|
var L_SENDER_MSG = "Request sent by :\t"; // + sender name
|
|
var L_EXPIRY_MSG ="Request Expires :\t"; // + <Aug 29th. 18:54; 60 Minutes>
|
|
var L_DESCIPTION_MSG ="Request Message :\n";
|
|
var L_NOTE_MSG = "Please see below for instructions on how to accept this request.\n" +
|
|
"____________________________________________________________________________\n" +
|
|
"Instructions to Accept :\n\n" +
|
|
"\tDouble click the attached file <rcBuddy.MsRCincident>\n" +
|
|
"\tThis response must be completed before the\n" +
|
|
"\trequest expiration time listed above.\n\n" +
|
|
"\tIf your PC supports remote assistance you will\n" +
|
|
"\tbe prompted to begin a connection to the other party.\n\n" +
|
|
"\tEnter a password if prompted. You may have to\n" +
|
|
"\tcontact your friend for the password if this\n" +
|
|
"\thas not been sent to you separately.\n\n" +
|
|
"\tIf your friend is online and accepts your connection\n" +
|
|
"\tyou will be able to chat and view their computer's\n" +
|
|
"\tdesktop on your machine.\n\n" +
|
|
"\tYou can also request full control of the other computer.\n" +
|
|
"\tWhen permitted such control by your friend you will be\n" +
|
|
"\table to use your mouse and keyboard on the other PC.\n\n" +
|
|
"\tYou can send files\n\n" +
|
|
"\tThe other party can not see or control your\n" +
|
|
"\tmachine at any time.\n\n\n" +
|
|
"Notes : Remote assistance is only supported on whistler or later\n" +
|
|
"\tYou and your friend must both be online when connection is attempted.\n\n" +
|
|
"\tPlease contact your network administrator if either of you \n" +
|
|
"\tare behind a firewall.";
|
|
|
|
function DoSend() {
|
|
// 1. Check password.
|
|
if (idPassChk.checked && (idPass1.value.length ==0 &&
|
|
idPass2.value.length ==0)) {
|
|
var L_NOPASSWD_MSG = "Please provide password or unckeck 'Protect session' checkbox.";
|
|
alert(L_NOPASSWD_MSG);
|
|
return;
|
|
}
|
|
|
|
if (idPassChk.checked && (idPass1.value != idPass2.value)) {
|
|
var L_INVALIDPASS_MSG = "Passwords don't match.\nPlease re-type your password.";
|
|
alert(L_INVALIDPASS_MSG);
|
|
return;
|
|
}
|
|
|
|
//
|
|
var iExpiry = idSelect.options[idSelect.selectedIndex].value;
|
|
if (parent.Init( iExpiry * 60 ) == false)
|
|
return false;
|
|
|
|
var oRCSession = parent.oRCSession;
|
|
var oChannel = parent.oChannel;
|
|
var oSetting = null;
|
|
var RcXMLTempFile = null;
|
|
var ip = null;
|
|
var sExpiry = "";
|
|
|
|
try {
|
|
oSetting = new ActiveXObject("RcBdyCtl.Setting");
|
|
RcXMLTempFile = oSetting.GetUserTempFileName;
|
|
ip = oSetting.GetIPAddress;
|
|
if (ip.length == 0) {
|
|
var L_NOIP_MSG = "No IP address selected or found.\nCan not proceed without IP address.";
|
|
alert(L_NOIP_MSG);
|
|
return;
|
|
}
|
|
oSetting = null;
|
|
} catch(e) {
|
|
var L_RCCTL_MSG = "Failed on getting RcBdyCtl: ";
|
|
alert(L_RCCTL_MSG + e.description);
|
|
return;
|
|
}
|
|
|
|
//sSalemID = oRCSession.ConnectParmsEx(ip);
|
|
sSalemID = oRCSession.ConnectParms;
|
|
oRCSession.OnConnected = parent.onCallBackConnect;
|
|
|
|
var IncidentFile = oChannel.VendorDirectory + "\\rcBuddy.MsRcIncident";
|
|
|
|
oInc = parent.pchealth.CreateObject_Incident();
|
|
oInc.UserName = parent.sFrom;
|
|
oInc.ProblemDescription = parent.sMsg;
|
|
|
|
if (idPass1.value.length > 0) {
|
|
try {
|
|
var oEnc = parent.pchealth.CreateObject_Encryption();
|
|
oInc.RcTicket = oEnc.EncryptString(idPass1.value, sSalemID);
|
|
oInc.RCTicketEncrypted = true;
|
|
}
|
|
catch (e) {
|
|
alert("Encryption: " + e.description);
|
|
}
|
|
} else
|
|
oInc.RcTicket = sSalemID;
|
|
|
|
var oDict = oInc.Misc;
|
|
try {
|
|
var d = new Date();
|
|
var iNow = Math.round(Date.parse(d)/1000);
|
|
oDict.add("DtStart", iNow);
|
|
oDict.add("DtLength", iExpiry);
|
|
oDict.add("IP", ip);
|
|
oDict.add("Status", "Active");
|
|
d = new Date((iNow + iExpiry * 60) * 1000);
|
|
sExpiry = d.toLocaleString();
|
|
} catch (e) {
|
|
alert(e.description);
|
|
}
|
|
oInc.StartPage = "rcBuddy/RcBuddy.htm";
|
|
|
|
// Save incident OFF to an XML file
|
|
//
|
|
oInc.GetXML(IncidentFile);
|
|
|
|
//
|
|
// Email the incident to the Expert
|
|
//
|
|
if (parent.g_IA64) {
|
|
try {
|
|
var oOutlook = new ActiveXObject("Outlook.Application");
|
|
var oMail = oOutlook.CreateItem(0);
|
|
oMail.recipients.Add(parent.sTo);
|
|
oMail.Subject = L_SUBJECT_MSG + parent.sFrom;
|
|
oMail.Body = L_LINE1_MSG + L_SENDER_MSG + parent.sFrom + ":\n\n" +
|
|
L_EXPIRY_MSG + sExpiry + "\n\n" +
|
|
L_DESCIPTION_MSG + parent.sMsg + "\n\n" +
|
|
L_NOTE_MSG ;
|
|
oMail.Attachments.Add(IncidentFile);
|
|
oMail.Send();
|
|
oInc.GetXML(RcXMLTempFile);
|
|
oChannel.RecordIncident(parent.sTo, sSalemID, "", RcXMLTempFile);
|
|
PopupThanks();
|
|
} catch (e) {
|
|
var L_SENDFAIL_MSG = "Send mail failed.\nPlease check if your helper's email address is valid and make sure your Outlook application works fine.";
|
|
alert(L_SENDFAIL_MSG);
|
|
}
|
|
} else { // x86
|
|
var lRet = parent.oSmapi.Logon();
|
|
if (lRet == 1) {
|
|
parent.oSmapi.Subject = L_SUBJECT_MSG + parent.sFrom;
|
|
|
|
parent.oSmapi.Body = L_LINE1_MSG + L_SENDER_MSG + parent.sFrom + ":\n\n" +
|
|
L_EXPIRY_MSG + sExpiry + "\n\n" +
|
|
L_DESCIPTION_MSG + parent.sMsg + "\n\n" +
|
|
L_NOTE_MSG ;
|
|
|
|
//parent.oSmapi.ClearRecipList();
|
|
//parent.oSmapi.AddRecipient(parent.sTo);
|
|
parent.oSmapi.AttachedXMLFile = IncidentFile;
|
|
lRet = parent.oSmapi.SendMail();
|
|
if (lRet == 1) { // Mail sent, save incident record.
|
|
oInc.GetXML(RcXMLTempFile);
|
|
// save ticket locally
|
|
oChannel.RecordIncident(parent.sTo, sSalemID, "", RcXMLTempFile);
|
|
|
|
PopupThanks();
|
|
} else {
|
|
var L_SENDFAIL_MSG = "Send mail failed.\nPlease check if your helper's email address is valid.";
|
|
alert(L_SENDFAIL_MSG);
|
|
}
|
|
}
|
|
else {
|
|
var L_MAPIFAIL_MSG = "Failed to logon to your email account.";
|
|
alert(L_MAPIFAIL_MSG);
|
|
}
|
|
}
|
|
}
|
|
|
|
function PopupThanks() {
|
|
navigate("rcScreen4.htm");
|
|
}
|
|
|
|
function DoPasswd() {
|
|
if (idPassChk.checked) {
|
|
idPass1.disabled = false;
|
|
idPass2.disabled = false;
|
|
} else {
|
|
idPass1.disabled = true;
|
|
idPass2.disabled = true;
|
|
}
|
|
}
|
|
</Script>
|
|
</html>
|