mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=11608
This commit is contained in:
parent
f7c2c715b2
commit
543a475efa
|
@ -13063,3 +13063,9 @@ David 1 Dec 2006
|
|||
|
||||
clientgui/
|
||||
ViewStatistics.cpp,h
|
||||
|
||||
David 1 Dec 2006
|
||||
- a bunch of changes to BOINC Help
|
||||
|
||||
doc/
|
||||
help_*
|
||||
|
|
|
@ -15,6 +15,11 @@ Read <a href=bare_core.php>Installing the command-line client</a>.
|
|||
<p>
|
||||
";
|
||||
$site_list = array(
|
||||
array(
|
||||
"<a href=http://www.mikrocomp.hu/seti/>SETI@SummoneR.mikrocomp.hu</a>",
|
||||
"OpenBSD: amd64 (x86_64)",
|
||||
"BOINC core client and SETI@home Enhanced non-graphical"
|
||||
),
|
||||
array(
|
||||
"<a href=http://lunatics.at>lunatics.at</a>",
|
||||
"Linux and Windows/x86",
|
||||
|
|
|
@ -3,7 +3,7 @@ require_once("docutil.php");
|
|||
require_once("spoken_languages.php");
|
||||
require_once("help_db.php");
|
||||
|
||||
page_head("BOINC Online Help");
|
||||
page_head("BOINC Online Help (Beta)");
|
||||
|
||||
echo "
|
||||
<h2>Need help?</h2>
|
||||
|
@ -21,7 +21,8 @@ BOINC Online Help is based on
|
|||
an Internet-based telephone system.
|
||||
Skype is free (both the software and the calls).
|
||||
If you don't already have Skype, please
|
||||
<a href=http://www.skype.com>download and install it</a>.
|
||||
<a href=http://www.skype.com>download and install it now</a>.
|
||||
When you're finished, return to this page.
|
||||
<p>
|
||||
The best way to get help is by voice,
|
||||
for which you need either built-in microphone and speakers
|
||||
|
|
|
@ -4,17 +4,67 @@ mysql_pconnect("localhost", "boincadm", null);
|
|||
mysql_select_db("support");
|
||||
|
||||
function rating_insert($r) {
|
||||
$query = "insert into rating (volunteerid, rating, timestamp, comment) values ($r->volunteerid, $r->rating, $r->timestamp, '$r->comment')";
|
||||
$auth = mysql_real_escape_string($r->auth);
|
||||
$comment = mysql_real_escape_string($r->comment);
|
||||
$query = "insert into rating (volunteerid, rating, timestamp, auth, comment) values ($r->volunteerid, $r->rating, $r->timestamp, '$auth', '$comment')";
|
||||
return mysql_query($query);
|
||||
}
|
||||
|
||||
function rating_update($r) {
|
||||
$auth = mysql_real_escape_string($r->auth);
|
||||
$comment = mysql_real_escape_string($r->comment);
|
||||
$query = "update rating set rating=$r->rating, timestamp=$r->timestamp, comment='$comment' where volunteerid=$r->volunteerid and auth='$auth'";
|
||||
return mysql_query($query);
|
||||
}
|
||||
|
||||
function ratings_get($volid) {
|
||||
$ratings = array();
|
||||
$query = "select * from rating where volunteerid=$volid order by timestamp desc";
|
||||
$result = mysql_query($query);
|
||||
while ($r = mysql_fetch_object($result)) {
|
||||
$ratings[] = $r;
|
||||
}
|
||||
mysql_free_result($result);
|
||||
return $ratings;
|
||||
}
|
||||
|
||||
function rating_vol_auth($volid, $auth) {
|
||||
$auth = mysql_real_escape_string($auth);
|
||||
mysql_query("select * from rating where volunteerid=$vold and auth='$auth'");
|
||||
}
|
||||
|
||||
function vol_insert($vol) {
|
||||
$password = mysql_real_escape_string($vol->password);
|
||||
$email_addr = mysql_real_escape_string($vol->email_addr);
|
||||
$country = mysql_real_escape_string($vol->country);
|
||||
$skypeid = mysql_real_escape_string($vol->skypeid);
|
||||
$lang1 = mysql_real_escape_string($vol->lang1);
|
||||
$lang2 = mysql_real_escape_string($vol->lang2);
|
||||
$specialties = mysql_real_escape_string($vol->specialties);
|
||||
$projects = mysql_real_escape_string($vol->projects);
|
||||
$availability = mysql_real_escape_string($vol->availability);
|
||||
|
||||
$query = "insert into volunteer (id, create_time, name, password, email_addr, country, skypeid, lang1, lang2, specialties, projects, availability, voice_ok, text_ok, timezone) values (0, $vol->create_time, '$vol->name', '$vol->password', '$vol->email_addr', '$vol->country', '$vol->skypeid', '$vol->lang1', '$vol->lang2', '$vol->specialties', '$vol->projects', '$vol->availability', $vol->voice_ok, $vol->text_ok, $vol->timezone)";
|
||||
return mysql_query($query);
|
||||
}
|
||||
|
||||
function vol_update($vol) {
|
||||
$query = "update volunteer set name='$vol->name', password='$vol->password', email_addr='$vol->email_addr', country='$vol->country', skypeid='$vol->skypeid', lang1='$vol->lang1', lang2='$vol->lang2', specialties='$vol->specialties', projects='$vol->projects', availability='$vol->availability', voice_ok=$vol->voice_ok, text_ok=$vol->text_ok, timezone=$vol->timezone where id=$vol->id";
|
||||
$password = mysql_real_escape_string($vol->password);
|
||||
$email_addr = mysql_real_escape_string($vol->email_addr);
|
||||
$country = mysql_real_escape_string($vol->country);
|
||||
$skypeid = mysql_real_escape_string($vol->skypeid);
|
||||
$lang1 = mysql_real_escape_string($vol->lang1);
|
||||
$lang2 = mysql_real_escape_string($vol->lang2);
|
||||
$specialties = mysql_real_escape_string($vol->specialties);
|
||||
$projects = mysql_real_escape_string($vol->projects);
|
||||
$availability = mysql_real_escape_string($vol->availability);
|
||||
|
||||
$query = "update volunteer set name='$vol->name', password='$vol->password', email_addr='$vol->email_addr', country='$vol->country', skypeid='$vol->skypeid', lang1='$vol->lang1', lang2='$vol->lang2', specialties='$vol->specialties', projects='$vol->projects', availability='$availability', voice_ok=$vol->voice_ok, text_ok=$vol->text_ok, timezone=$vol->timezone where id=$vol->id";
|
||||
return mysql_query($query);
|
||||
}
|
||||
|
||||
function vol_update_rating($vol, $rating) {
|
||||
$query = "update volunteer set nratings=nratings+1, rating_sum=rating_sum+$rating where id=$vol->id";
|
||||
return mysql_query($query);
|
||||
}
|
||||
|
||||
|
@ -59,7 +109,7 @@ function get_languages() {
|
|||
$langs[] = $lang->lang1;
|
||||
}
|
||||
mysql_free_result($result);
|
||||
$result = mysql_query("select lang2 from volunteer");
|
||||
$result = mysql_query("select lang2 from volunteer where lang2<>''");
|
||||
while ($lang = mysql_fetch_object($result)) {
|
||||
$langs[] = $lang->lang2;
|
||||
}
|
||||
|
|
|
@ -70,26 +70,27 @@ function checkbox($name, $val) {
|
|||
function yesno($name, $val) {
|
||||
if ($val) {
|
||||
return "
|
||||
yes<input type=radio name=$name checked>
|
||||
no<input type=radio name=$name>
|
||||
yes<input type=radio name=$name value=1 checked>
|
||||
no<input type=radio name=$name value=0>
|
||||
";
|
||||
} else {
|
||||
return "
|
||||
yes<input type=radio name=$name>
|
||||
no<input type=radio name=$name checked>
|
||||
yes<input type=radio name=$name value=1>
|
||||
no<input type=radio name=$name value=0 checked>
|
||||
";
|
||||
}
|
||||
}
|
||||
|
||||
function star_select($name) {
|
||||
function star_select($name, $val) {
|
||||
$x = "";
|
||||
for ($i=0; $i<6; $i++) {
|
||||
$text = "";
|
||||
if ($i==0) $text="No";
|
||||
if ($i==5) $text="Yes";
|
||||
|
||||
$selected = ($val==$i)?"selected":"";
|
||||
$x .= "
|
||||
<br><input name=$name value=$i type=radio>
|
||||
<br><input name=$name value=$i type=radio $selected>
|
||||
<img src=images/help/stars-$i-0.gif> $text
|
||||
";
|
||||
}
|
||||
|
|
|
@ -25,16 +25,54 @@ function vol_modes($vol) {
|
|||
}
|
||||
}
|
||||
|
||||
function rating_info($vol) {
|
||||
if ($vol->nratings == 0) {
|
||||
return "<font size=-2>(no ratings)</font>";
|
||||
}
|
||||
$x = $vol->rating_sum/$vol->nratings;
|
||||
if ($x > 4.5) $img = "stars-5-0.gif";
|
||||
else if ($x > 4.0) $img = "stars-4-5.gif";
|
||||
else if ($x > 3.5) $img = "stars-4-0.gif";
|
||||
else if ($x > 3.0) $img = "stars-3-5.gif";
|
||||
else if ($x > 2.5) $img = "stars-3-0.gif";
|
||||
else if ($x > 2.0) $img = "stars-2-5.gif";
|
||||
else if ($x > 1.5) $img = "stars-2-0.gif";
|
||||
else if ($x > 1.0) $img = "stars-1-5.gif";
|
||||
else if ($x > 0.5) $img = "stars-1-0.gif";
|
||||
else if ($x > 0.0) $img = "stars-0-5.gif";
|
||||
else $img = "stars-0-0.gif";
|
||||
return "
|
||||
<a href=help_ratings.php?volid=$vol->id>
|
||||
<img border=0 src=images/help/$img>
|
||||
<font size=-2>
|
||||
$vol->nratings ratings</font></a>
|
||||
";
|
||||
}
|
||||
|
||||
function info($vol) {
|
||||
$x = "<font size=-2> Country: $vol->country\n";
|
||||
if ($vol->availability) {
|
||||
$x .= "<br>Usual hours: $vol->availability";
|
||||
}
|
||||
if ($vol->specialities) {
|
||||
$x .= "<br>Specialties: $vol->specialties";
|
||||
}
|
||||
if ($vol->projects) {
|
||||
$x .= "<br>Projects: $vol->projects";
|
||||
}
|
||||
$x .= "</font>";
|
||||
return $x;
|
||||
}
|
||||
|
||||
function show_vol($vol) {
|
||||
$status = skype_status($vol->skypeid);
|
||||
$image = button_image($status);
|
||||
list_item_array(array(
|
||||
vol_info($vol),
|
||||
vol_modes($vol),
|
||||
status_string($status),
|
||||
$vol->specialties,
|
||||
$vol->availability,
|
||||
"<img border=0 src=images/help/stars-5-0.gif>",
|
||||
vol_modes($vol),
|
||||
info($vol),
|
||||
rating_info($vol)
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -42,11 +80,10 @@ function show_vols($vols) {
|
|||
list_start("border=0");
|
||||
list_heading_array(array(
|
||||
"Volunteer name<br><font size=2>click to contact</font>",
|
||||
"Voice/Text",
|
||||
"Status",
|
||||
"Specialties",
|
||||
"Usual hours",
|
||||
"Average rating",
|
||||
"Voice/Text",
|
||||
"Info",
|
||||
"Feedback <br><font size=-2>Click to see comments</font>",
|
||||
));
|
||||
foreach ($vols as $vol) {
|
||||
show_vol($vol);
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
create table volunteer (
|
||||
id integer not null auto_increment,
|
||||
create_time integer not null,
|
||||
name varchar(254) not null,
|
||||
password varchar(254) not null,
|
||||
email_addr varchar(254) not null,
|
||||
country varchar(254) not null,
|
||||
skypeid varchar(254) not null,
|
||||
lang1 varchar(254) not null,
|
||||
lang2 varchar(254) not null,
|
||||
specialties varchar(254) not null,
|
||||
projects varchar(254) not null,
|
||||
availability varchar(254) not null,
|
||||
name char(64) not null,
|
||||
password char(32) not null,
|
||||
email_addr char(100) not null,
|
||||
country char(64) not null,
|
||||
skypeid char(64) not null,
|
||||
lang1 char(32) not null,
|
||||
lang2 char(32) not null,
|
||||
specialties char(128) not null,
|
||||
projects char(128) not null,
|
||||
availability char(128) not null,
|
||||
voice_ok tinyint not null,
|
||||
text_ok tinyint not null,
|
||||
timezone integer not null,
|
||||
nratings integer not null,
|
||||
rating_sum integer not null,
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
|
@ -21,9 +23,14 @@ create table rating (
|
|||
volunteerid integer not null,
|
||||
rating integer not null,
|
||||
timestamp integer not null,
|
||||
auth char(32) not null,
|
||||
comment text not null
|
||||
);
|
||||
|
||||
alter table volunteer
|
||||
add unique(email_addr),
|
||||
add unique(name);
|
||||
|
||||
alter table rating
|
||||
add index rvt(volunteerid, timestamp),
|
||||
add index vauth(volunteerid, auth);
|
||||
|
|
|
@ -8,18 +8,18 @@ $volid = $_GET['volid'];
|
|||
|
||||
$vol = vol_lookup($volid);
|
||||
|
||||
function live_contact($vol) {
|
||||
function live_contact($vol, $rating) {
|
||||
$skypeid = $vol->skypeid;
|
||||
echo "
|
||||
<h2>Contact $vol->name live using Skype</h2>
|
||||
<script type=\"text/javascript\" src=\"http://download.skype.com/share/skypebuttons/js/skypeCheck.js\"></script>
|
||||
";
|
||||
if ($vol->voice_ok) {
|
||||
echo "<a href=skype:$skypeid?call><img align=top border=0 src=images/help/phone_icon_green.gif> Call $vol->name on Skype</a>
|
||||
echo "<a href=skype:$skypeid?call onclick=\"return skypeCheck();\"><img align=top border=0 src=images/help/phone_icon_green.gif> Call $vol->name on Skype</a>
|
||||
";
|
||||
}
|
||||
if ($vol->text_ok) {
|
||||
echo "<p><a href=skype:$skypeid?chat><img align=top border=0 src=images/help/skype_chat_icon.png> Chat with $vol->name on Skype</a>
|
||||
echo "<p><a href=skype:$skypeid?chat onclick=\"return skypeCheck();\"><img align=top border=0 src=images/help/skype_chat_icon.png> Chat with $vol->name on Skype</a>
|
||||
";
|
||||
}
|
||||
|
||||
|
@ -33,8 +33,11 @@ function live_contact($vol) {
|
|||
|
||||
";
|
||||
list_start();
|
||||
list_item("Rating<br><font size=-2>Would you recommend $vol->name to people seeking help with BOINC?</font>", star_select("rating"));
|
||||
list_item("Comments", textarea("comment", ""));
|
||||
list_item(
|
||||
"Rating<br><font size=-2>Would you recommend $vol->name to people seeking help with BOINC?</font>",
|
||||
star_select("rating", $rating->rating)
|
||||
);
|
||||
list_item("Comments", textarea("comment", $rating->comment));
|
||||
list_item("", "<input type=submit name=rate value=OK>");
|
||||
list_end();
|
||||
echo "
|
||||
|
@ -62,6 +65,10 @@ function email_contact($vol) {
|
|||
|
||||
$send_email = $_GET['send_email'];
|
||||
$rate = $_GET['rate'];
|
||||
session_set_cookie_params(86400*365);
|
||||
session_start();
|
||||
$uid = session_id();
|
||||
|
||||
if ($send_email) {
|
||||
$volid = $_GET['volid'];
|
||||
$vol = vol_lookup($volid);
|
||||
|
@ -86,32 +93,52 @@ if ($send_email) {
|
|||
if (!$vol) {
|
||||
error_page("No such volunteer $volid");
|
||||
}
|
||||
$rating = (int)$_GET['rating'];
|
||||
$x = $_GET['rating'];
|
||||
if (!$x) {
|
||||
error_page("no rating given");
|
||||
}
|
||||
$rating = (int) $x;
|
||||
if ($rating < 0 || $rating > 5) {
|
||||
error_page("bad rating");
|
||||
}
|
||||
$comment = mysql_real_escape_string($_GET['comment']);
|
||||
$comment = stripslashes($_GET['comment']);
|
||||
$r = null;
|
||||
$r->volunteerid = $volid;
|
||||
$r->rating = $rating;
|
||||
$r->timestamp = time();
|
||||
$r->comment = $comment;
|
||||
$retval = rating_insert($r);
|
||||
$r->auth = $uid;
|
||||
if ($uid) {
|
||||
$retval = rating_update($r);
|
||||
if (!$retval) {
|
||||
$retval = rating_insert($r);
|
||||
}
|
||||
} else {
|
||||
$retval = rating_insert($r);
|
||||
}
|
||||
if (!$retval) {
|
||||
echo mysql_error();
|
||||
error_page("database error");
|
||||
}
|
||||
vol_update_rating($vol, $rating);
|
||||
page_head("Feedback recorded");
|
||||
echo "Your feedback has been recorded. Thanks.";
|
||||
echo "Your feedback has been recorded. Thanks.
|
||||
<p>
|
||||
<a href=help.php>Return to BOINC Help</a>.
|
||||
";
|
||||
page_tail();
|
||||
} else {
|
||||
page_head("Contact $vol->name");
|
||||
$status = skype_status($vol->skypeid);
|
||||
$image = button_image($status);
|
||||
echo "
|
||||
<script type=\"text/javascript\" src=\"http://download.skype.com/share/skypebuttons/js/skypeCheck.js\"></script>
|
||||
<img src=images/help/$image><p>
|
||||
";
|
||||
if (online($status)) {
|
||||
live_contact($vol);
|
||||
$rating = rating_vol_auth($vol, $uid);
|
||||
if (!$rating) $rating->rating = -1;
|
||||
live_contact($vol, $rating);
|
||||
}
|
||||
email_contact($vol);
|
||||
page_tail();
|
||||
|
|
|
@ -74,24 +74,24 @@ function print_form($vol, $action_name) {
|
|||
}
|
||||
|
||||
function get_form_data() {
|
||||
$vol->name = mysql_real_escape_string($_GET['volname']);
|
||||
$vol->name = stripslashes($_GET['volname']);
|
||||
if (!$vol->name) error_page("Name must not be blank");
|
||||
$vol->password = mysql_real_escape_string($_GET['password']);
|
||||
$vol->password = stripslashes($_GET['password']);
|
||||
if (!$vol->password) error_page("Password must not be blank");
|
||||
$vol->email_addr = mysql_real_escape_string($_GET['email_addr']);
|
||||
$vol->email_addr = stripslashes($_GET['email_addr']);
|
||||
if (!$vol->email_addr) error_page("Email address must not be blank");
|
||||
$vol->skypeid = mysql_real_escape_string($_GET['skypeid']);
|
||||
$vol->skypeid = stripslashes($_GET['skypeid']);
|
||||
if (!$vol->skypeid) error_page("Skype ID must not be blank");
|
||||
$vol->lang1 = mysql_real_escape_string($_GET['lang1']);
|
||||
$vol->lang1 = stripslashes($_GET['lang1']);
|
||||
if (!$vol->lang1) error_page("Primary language must not be blank");
|
||||
if (!is_spoken_language($vol->lang1)) error_page("Not a language");
|
||||
$vol->lang2 = mysql_real_escape_string($_GET['lang2']);
|
||||
$vol->lang2 = stripslashes($_GET['lang2']);
|
||||
if (!is_spoken_language($vol->lang2)) error_page("Not a language");
|
||||
$vol->country = mysql_real_escape_string($_GET['country']);
|
||||
$vol->country = stripslashes($_GET['country']);
|
||||
if (!is_valid_country($vol->country)) error_page("Bad country");
|
||||
$vol->specialties = mysql_real_escape_string($_GET['specialties']);
|
||||
$vol->projects = mysql_real_escape_string($_GET['projects']);
|
||||
$vol->availability = mysql_real_escape_string($_GET['availability']);
|
||||
$vol->specialties = stripslashes($_GET['specialties']);
|
||||
$vol->projects = stripslashes($_GET['projects']);
|
||||
$vol->availability = stripslashes($_GET['availability']);
|
||||
$vol->voice_ok = $_GET['voice_ok']?1:0;
|
||||
$vol->text_ok = $_GET['text_ok']?1:0;
|
||||
return $vol;
|
||||
|
@ -130,6 +130,10 @@ if ($create == 'OK') {
|
|||
page_head("Registration finished");
|
||||
echo "
|
||||
Thanks - you're now registered as a BOINC Help Volunteer.
|
||||
<p>
|
||||
If later you want to change your account information,
|
||||
go to the <a href=help.php>Help page</a>
|
||||
and click on the link at the bottom of the page.
|
||||
";
|
||||
}
|
||||
page_tail();
|
||||
|
@ -151,8 +155,8 @@ if ($create == 'OK') {
|
|||
echo "</form>\n";
|
||||
page_tail();
|
||||
} else if ($edit_form == "OK") {
|
||||
$email_addr = mysql_real_escape_string($_GET['email_addr']);
|
||||
$password = mysql_real_escape_string($_GET['password']);
|
||||
$email_addr = stripslashes($_GET['email_addr']);
|
||||
$password = stripslashes($_GET['password']);
|
||||
$vol = vol_lookup_email($email_addr);
|
||||
if (!$vol) {
|
||||
error_page("Bad email address $email_addr");
|
||||
|
@ -174,8 +178,8 @@ if ($create == 'OK') {
|
|||
echo "</form>\n";
|
||||
page_tail();
|
||||
} else if ($edit_action) {
|
||||
$old_email_addr = mysql_real_escape_string($_GET['old_email_addr']);
|
||||
$old_password = mysql_real_escape_string($_GET['old_password']);
|
||||
$old_email_addr = stripslashes($_GET['old_email_addr']);
|
||||
$old_password = stripslashes($_GET['old_password']);
|
||||
$vol = vol_lookup_email($old_email_addr);
|
||||
if (!$vol) {
|
||||
error_page("Bad email address $old_email_addr");
|
||||
|
|
|
@ -23,11 +23,11 @@ There are many reasons why such people would
|
|||
resist, or have difficulty, participating in volunteer computing:
|
||||
<ul>
|
||||
<li>
|
||||
Many of these people are unfamiliar or uncomfortable with tasks such as
|
||||
download and installing a new program on their PC,
|
||||
typing a URL into their web browser,
|
||||
and copying and pasting text,
|
||||
that experienced computer users view as routine.
|
||||
Many nontechnical people are unfamiliar or uncomfortable with tasks
|
||||
(such as downloading and installing programs,
|
||||
typing a URL into a web browser,
|
||||
and copying and pasting text)
|
||||
that are routine for experienced computer users.
|
||||
As a result, the process of installing and using BOINC seems daunting to them.
|
||||
|
||||
<li>
|
||||
|
@ -40,7 +40,7 @@ how BOINC prevents the obvious attacks.
|
|||
The basic function of BOINC - a single
|
||||
program that automatically downloads other programs
|
||||
from the Internet, and switches back and forth between them -
|
||||
is unusual, and needs to be explained.
|
||||
is unusual, and may need to be explained.
|
||||
</ul>
|
||||
|
||||
Web-based support for BOINC - FAQs, message boards, web pages -
|
||||
|
@ -48,10 +48,9 @@ is ineffective for many people.
|
|||
Inevitably, we write in a technical language that not everyone understands.
|
||||
By providing one-on-one, real-time interactive support,
|
||||
preferably by voice,
|
||||
we can assess the knowledge and experience of the user,
|
||||
we can give advice at the right level
|
||||
and in the right language,
|
||||
and we can make their experience with BOINC successful and happy.
|
||||
we can assess the knowledge and experience of an individual user,
|
||||
we can give advice at the right level and in the right language,
|
||||
and we can make their experience with BOINC successful and enjoyable.
|
||||
<p>
|
||||
In this way we can start to reach the remaining 99.9% of
|
||||
the world's computer users,
|
||||
|
@ -68,9 +67,10 @@ on the Q&A message boards of a BOINC-based project.
|
|||
<li> Have a computer with Skype
|
||||
(preferably with a headset for voice communication,
|
||||
though text-only is OK too).
|
||||
<li> Be willing to answer questions patiently and courteously.
|
||||
<li> Be available for help calls on a regular basis
|
||||
Install the current version (2.0 or later) of Skype.
|
||||
<li> Be available to handle calls on a regular basis
|
||||
(a few hours a week, or whatever you can spare).
|
||||
<li> Be willing to answer questions patiently and courteously.
|
||||
<li> Be willing to spend some additional time researching
|
||||
problems that you can't solve immediately.
|
||||
<li> Handle help emails in a timely manner.
|
||||
|
@ -86,13 +86,19 @@ When you're 'on call', run Skype under your Help account
|
|||
(you can switch accounts using the File/Sign Out menu).
|
||||
|
||||
<p>
|
||||
<b>IMPORTANT: your Skype 'Help account' must allow its status
|
||||
to be visible on the web.</b>
|
||||
To do this: log on in Skype.
|
||||
Select to Tools/Options menu.
|
||||
<b>IMPORTANT: your Skype 'Help account' must make its status
|
||||
visible on the web.</b>
|
||||
To do this: run Skype and log in to your Help account.
|
||||
<ul>
|
||||
<li> Windows: Select to Tools/Options menu.
|
||||
Click on Privacy.
|
||||
Check the box labeled 'Allow my status to be shown on the web'.
|
||||
|
||||
<li> Mac: go to Skype/Preferences.
|
||||
Select the 'privacy' tab.
|
||||
Check the box labeled 'Allow my status to be shown on the web'.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
What if you want to accept calls from either your regular
|
||||
Skype ID or your Help ID?
|
||||
|
@ -128,12 +134,12 @@ but users will be able to post to it through a web interface).
|
|||
For each call:
|
||||
<ul>
|
||||
<li> Tell the customer your name, and get their name.
|
||||
<li> Find out why they're calling -
|
||||
to get information about BOINC or about a particular project,
|
||||
for hand-holding while installing BOINC,
|
||||
or to resolve a problem.
|
||||
<li> Find out what they need -
|
||||
information about BOINC or about a particular project,
|
||||
hand-holding while installing BOINC,
|
||||
or help resolving a problem.
|
||||
|
||||
<li> If it's a problem, get the background info:
|
||||
<li> If they're calling with a problem, get the background info:
|
||||
what kind of computer, what version of the OS,
|
||||
what kind of Internet connection.
|
||||
If they already have BOINC,
|
||||
|
@ -147,9 +153,12 @@ have them install the current version.
|
|||
<li> Ask them to describe the problem step-by-step.
|
||||
Walk them through the problem scenario if possible.
|
||||
|
||||
<li> If they become frustrated or angry, remain calm and polite.
|
||||
<li> If they become frustrated, angry or abusive,
|
||||
try to remain calm and polite.
|
||||
Suggest that they contact another volunteer,
|
||||
or consult message boards for help.
|
||||
As a last resort, just hang up.
|
||||
You can 'block' a user using Contacts/Advanced/Manage Blocked Users.
|
||||
|
||||
<li> Stay 'on task' - don't get sucked into solving general PC problems.
|
||||
There may be other BOINC help calls waiting.
|
||||
|
@ -158,13 +167,13 @@ After you've solved their problem,
|
|||
take the opportunity to inform the caller on topics such as:
|
||||
<ul>
|
||||
<li> The value of participating in more than one project
|
||||
(tell them about a few of the projects).
|
||||
(tell them about one of the projects other than SETI@home).
|
||||
<li> How to get their friends and family interested in BOINC.
|
||||
</ul>
|
||||
|
||||
<h2>What to do if you can't solve a problem</h2>
|
||||
<p>
|
||||
If you get a call with a problem that's completely outside your range,
|
||||
If you get a call with a problem that's completely outside your sphere,
|
||||
tell the caller that,
|
||||
and suggest that they call another volunteer
|
||||
or try the message boards.
|
||||
|
@ -190,7 +199,10 @@ preferably withing 2-3 days.
|
|||
<p>
|
||||
<b>Please read everything above here carefully.</b>
|
||||
If you've done so and want to continue, then
|
||||
<a href=help_vol_edit.php>create a Help Volunteer account</a>.
|
||||
<ul>
|
||||
<li> Create a Skype account for handling Help calls
|
||||
<li> <a href=help_vol_edit.php>Create a Help Volunteer account</a>.
|
||||
</ul>
|
||||
";
|
||||
page_tail();
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue