Now we're Vivox license compliant
This commit is contained in:
@@ -64,6 +64,7 @@ include_directories(
|
||||
)
|
||||
|
||||
set(viewer_SOURCE_FILES
|
||||
floatervoicelicense.cpp
|
||||
cofmgr.cpp
|
||||
ascentdaycyclemanager.cpp
|
||||
ascentfloatercontactgroups.cpp
|
||||
@@ -530,6 +531,7 @@ set(viewer_HEADER_FILES
|
||||
CMakeLists.txt
|
||||
ViewerInstall.cmake
|
||||
|
||||
floatervoicelicense.h
|
||||
cofmgr.h
|
||||
ascentdaycyclemanager.h
|
||||
ascentfloatercontactgroups.h
|
||||
|
||||
@@ -9,6 +9,30 @@
|
||||
<string>settings_rlv.xml</string>
|
||||
</array>
|
||||
|
||||
<key>VivoxLicenseAccepted</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>By setting to true, you agree to accept the Vivox license agreement at http://www.vivox.com/vivox_aup.html</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>WarnFirstVoiceLicense</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enables FirstVoiceLicense window on login</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
|
||||
<!--Expanded settings from Vanilla SL -->
|
||||
<key>ShyotlRenderUseStreamVBO</key>
|
||||
<map>
|
||||
|
||||
240
indra/newview/floatervoicelicense.cpp
Normal file
240
indra/newview/floatervoicelicense.cpp
Normal file
@@ -0,0 +1,240 @@
|
||||
/**
|
||||
* @file floatervoicelicense.cpp
|
||||
* @brief prompts user to agree to the Vivox license in order to enable voice
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, McCabe Maxsted
|
||||
*
|
||||
* Imprudence Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided to you
|
||||
* under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in
|
||||
* this distribution, or online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "floatervoicelicense.h"
|
||||
|
||||
// viewer includes
|
||||
#include "llagent.h"
|
||||
#include "llappviewer.h"
|
||||
#include "llstartup.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerstats.h"
|
||||
#include "llviewertexteditor.h"
|
||||
#include "llviewerwindow.h"
|
||||
|
||||
// linden library includes
|
||||
#include "llbutton.h"
|
||||
#include "llhttpclient.h"
|
||||
#include "llhttpstatuscodes.h" // for HTTP_FOUND
|
||||
#include "llradiogroup.h"
|
||||
#include "lltextbox.h"
|
||||
#include "llui.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llvfile.h"
|
||||
#include "message.h"
|
||||
|
||||
|
||||
FloaterVoiceLicense::FloaterVoiceLicense(const LLSD& key)
|
||||
: LLModalDialog( std::string(" "), 100, 100 ),
|
||||
mWebBrowserWindowId( 0 ),
|
||||
mLoadCompleteCount( 0 )
|
||||
{
|
||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_voice_license.xml");
|
||||
}
|
||||
|
||||
// helper class that trys to download a URL from a web site and calls a method
|
||||
// on parent class indicating if the web server is working or not
|
||||
class LLIamHereVoice : public LLHTTPClient::Responder
|
||||
{
|
||||
private:
|
||||
LLIamHereVoice( FloaterVoiceLicense* parent ) :
|
||||
mParent( parent )
|
||||
{}
|
||||
|
||||
FloaterVoiceLicense* mParent;
|
||||
|
||||
public:
|
||||
|
||||
static boost::intrusive_ptr< LLIamHereVoice > build( FloaterVoiceLicense* parent )
|
||||
{
|
||||
return boost::intrusive_ptr< LLIamHereVoice >( new LLIamHereVoice( parent ) );
|
||||
};
|
||||
|
||||
virtual void setParent( FloaterVoiceLicense* parentIn )
|
||||
{
|
||||
mParent = parentIn;
|
||||
};
|
||||
|
||||
virtual void result( const LLSD& content )
|
||||
{
|
||||
if ( mParent )
|
||||
mParent->setSiteIsAlive( true );
|
||||
};
|
||||
|
||||
virtual void error( U32 status, const std::string& reason )
|
||||
{
|
||||
if ( mParent )
|
||||
{
|
||||
// *HACK: For purposes of this alive check, 302 Found
|
||||
// (aka Moved Temporarily) is considered alive. The web site
|
||||
// redirects this link to a "cache busting" temporary URL. JC
|
||||
bool alive = (status == HTTP_FOUND);
|
||||
mParent->setSiteIsAlive( alive );
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
// this is global and not a class member to keep crud out of the header file
|
||||
namespace {
|
||||
boost::intrusive_ptr< LLIamHereVoice > gResponsePtr = 0;
|
||||
};
|
||||
|
||||
BOOL FloaterVoiceLicense::postBuild()
|
||||
{
|
||||
childSetAction("Continue", onContinue, this);
|
||||
childSetAction("Cancel", onCancel, this);
|
||||
childSetCommitCallback("agree_chk", updateAgree, this);
|
||||
|
||||
// disable Agree to License radio button until the page has fully loaded
|
||||
LLCheckBoxCtrl* license_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
|
||||
license_agreement->setEnabled( false );
|
||||
|
||||
// hide the SL text widget if we're displaying license with using a browser widget.
|
||||
LLTextEditor *editor = getChild<LLTextEditor>("license_text");
|
||||
editor->setVisible( FALSE );
|
||||
|
||||
LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("license_html");
|
||||
if ( web_browser )
|
||||
{
|
||||
// start to observe it so we see navigate complete events
|
||||
web_browser->addObserver( this );
|
||||
|
||||
gResponsePtr = LLIamHereVoice::build( this );
|
||||
LLHTTPClient::get( getString( "real_url" ), gResponsePtr );
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void FloaterVoiceLicense::setSiteIsAlive( bool alive )
|
||||
{
|
||||
LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("license_html");
|
||||
// if the contents of the site was retrieved
|
||||
if ( alive )
|
||||
{
|
||||
if ( web_browser )
|
||||
{
|
||||
// navigate to the "real" page
|
||||
std::string real_url = getString( "real_url" );
|
||||
if (real_url.find("http://") == 0) {
|
||||
web_browser->navigateTo(real_url);
|
||||
} else {
|
||||
web_browser->navigateToLocalPage("license",real_url);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
web_browser->navigateToLocalPage("license", getString("fallback_html"));
|
||||
// normally this is set when navigation to license page completes (so you can't accept before it loads)
|
||||
// but if the page is unavailable, we need to do this now
|
||||
LLCheckBoxCtrl* license_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
|
||||
license_agreement->setEnabled( true );
|
||||
}
|
||||
}
|
||||
|
||||
FloaterVoiceLicense::~FloaterVoiceLicense()
|
||||
{
|
||||
|
||||
// tell the responder we're not here anymore
|
||||
if ( gResponsePtr )
|
||||
{
|
||||
gResponsePtr->setParent( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
void FloaterVoiceLicense::draw()
|
||||
{
|
||||
// draw children
|
||||
LLModalDialog::draw();
|
||||
}
|
||||
|
||||
// static
|
||||
void FloaterVoiceLicense::updateAgree(LLUICtrl*, void* userdata )
|
||||
{
|
||||
FloaterVoiceLicense* self = (FloaterVoiceLicense*) userdata;
|
||||
bool agree = self->childGetValue("agree_chk").asBoolean();
|
||||
self->childSetEnabled("Continue", agree);
|
||||
}
|
||||
|
||||
// static
|
||||
void FloaterVoiceLicense::onContinue( void* userdata )
|
||||
{
|
||||
FloaterVoiceLicense* self = (FloaterVoiceLicense*) userdata;
|
||||
llinfos << "User agreed to the Vivox personal license" << llendl;
|
||||
|
||||
// enabling voice by default here seems like the best behavior
|
||||
gSavedSettings.setBOOL("EnableVoiceChat", TRUE);
|
||||
gSavedSettings.setBOOL("VivoxLicenseAccepted", TRUE);
|
||||
|
||||
// save these settings in case something bad happens later
|
||||
gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE);
|
||||
|
||||
if (LLStartUp::getStartupState() == STATE_LOGIN_VOICE_LICENSE)
|
||||
{
|
||||
LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT ); // Go back and finish authentication
|
||||
}
|
||||
self->close(); // destroys this object
|
||||
}
|
||||
|
||||
// static
|
||||
void FloaterVoiceLicense::onCancel( void* userdata )
|
||||
{
|
||||
FloaterVoiceLicense* self = (FloaterVoiceLicense*) userdata;
|
||||
llinfos << "User disagreed with the vivox personal license" << llendl;
|
||||
gSavedSettings.setBOOL("EnableVoiceChat", FALSE);
|
||||
gSavedSettings.setBOOL("VivoxLicenseAccepted", FALSE);
|
||||
|
||||
if (LLStartUp::getStartupState() == STATE_LOGIN_VOICE_LICENSE)
|
||||
{
|
||||
LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT ); // Go back and finish authentication
|
||||
}
|
||||
self->mLoadCompleteCount = 0; // reset counter for next time we come here
|
||||
self->close(); // destroys this object
|
||||
}
|
||||
|
||||
//virtual
|
||||
void FloaterVoiceLicense::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent event)
|
||||
{
|
||||
if(event == MEDIA_EVENT_NAVIGATE_COMPLETE)
|
||||
{
|
||||
// skip past the loading screen navigate complete
|
||||
if ( ++mLoadCompleteCount == 2 )
|
||||
{
|
||||
llinfos << "NAVIGATE COMPLETE" << llendl;
|
||||
// enable Agree to License radio button now that page has loaded
|
||||
LLCheckBoxCtrl * license_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
|
||||
license_agreement->setEnabled( true );
|
||||
}
|
||||
}
|
||||
}
|
||||
73
indra/newview/floatervoicelicense.h
Normal file
73
indra/newview/floatervoicelicense.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* @file floatervoicelicense.h
|
||||
* @brief prompts user to agree to the Vivox license in order to enable voice
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, McCabe Maxsted
|
||||
*
|
||||
* Imprudence Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided to you
|
||||
* under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in
|
||||
* this distribution, or online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef FLOATERVOICELICENSE_H
|
||||
#define FLOATERVOICELICENSE_H
|
||||
|
||||
#include "llfloater.h"
|
||||
|
||||
#include "llmodaldialog.h"
|
||||
#include "llassetstorage.h"
|
||||
#include "llmediactrl.h"
|
||||
|
||||
class LLButton;
|
||||
class LLRadioGroup;
|
||||
class LLVFS;
|
||||
class LLTextEditor;
|
||||
class LLUUID;
|
||||
|
||||
class FloaterVoiceLicense :
|
||||
public LLModalDialog,
|
||||
public LLViewerMediaObserver,
|
||||
public LLFloaterSingleton<FloaterVoiceLicense>
|
||||
{
|
||||
public:
|
||||
FloaterVoiceLicense(const LLSD& key);
|
||||
virtual ~FloaterVoiceLicense();
|
||||
|
||||
BOOL postBuild();
|
||||
|
||||
virtual void draw();
|
||||
|
||||
static void updateAgree( LLUICtrl *, void* userdata );
|
||||
static void onContinue( void* userdata );
|
||||
static void onCancel( void* userdata );
|
||||
|
||||
void setSiteIsAlive( bool alive );
|
||||
|
||||
// inherited from LLViewerMediaObserver
|
||||
/*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
|
||||
|
||||
private:
|
||||
int mWebBrowserWindowId;
|
||||
int mLoadCompleteCount;
|
||||
};
|
||||
|
||||
#endif // FLOATERVOICELICENSE_H
|
||||
@@ -44,6 +44,8 @@
|
||||
#include "llui.h"
|
||||
#include "llappviewer.h"
|
||||
#include "lltracker.h"
|
||||
#include "floatervoicelicense.h"
|
||||
#include "llstartup.h"
|
||||
|
||||
// static
|
||||
std::set<std::string> LLFirstUse::sConfigVariables;
|
||||
@@ -277,3 +279,19 @@ void LLFirstUse::useMedia()
|
||||
LLNotifications::instance().add("FirstMedia");
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFirstUse::voiceLicenseAgreement()
|
||||
{
|
||||
if (gSavedSettings.getWarning("FirstVoiceLicense"))
|
||||
{
|
||||
gSavedSettings.setWarning("FirstVoiceLicense", FALSE);
|
||||
|
||||
FloaterVoiceLicense::getInstance()->open();
|
||||
FloaterVoiceLicense::getInstance()->center();
|
||||
}
|
||||
else // currently in STATE_LOGIN_VOICE_LICENSE when arriving here
|
||||
{
|
||||
LLStartUp::setStartupState(STATE_LOGIN_AUTH_INIT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ public:
|
||||
static void useDebugMenus();
|
||||
static void useSculptedPrim();
|
||||
static void useMedia();
|
||||
static void voiceLicenseAgreement();
|
||||
|
||||
protected:
|
||||
static std::set<std::string> sConfigVariables;
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
#include "llprefsvoice.h"
|
||||
|
||||
#include "floatervoicelicense.h"
|
||||
#include "llcheckboxctrl.h"
|
||||
#include "llfloatervoicedevicesettings.h"
|
||||
#include "llfocusmgr.h"
|
||||
@@ -136,8 +137,6 @@ BOOL LLPrefsVoice::postBuild()
|
||||
|
||||
void LLPrefsVoice::apply()
|
||||
{
|
||||
gSavedSettings.setBOOL("EnableVoiceChat", childGetValue("enable_voice_check"));
|
||||
|
||||
gSavedSettings.setString("PushToTalkButton", childGetValue("modifier_combo"));
|
||||
gSavedSettings.setBOOL("VoiceCallsFriendsOnly", childGetValue("voice_call_friends_only_check"));
|
||||
gSavedSettings.setBOOL("AutoDisengageMic", childGetValue("auto_disengage_mic_check"));
|
||||
@@ -150,6 +149,18 @@ void LLPrefsVoice::apply()
|
||||
{
|
||||
voice_device_settings->apply();
|
||||
}
|
||||
|
||||
bool enable_voice = childGetValue("enable_voice_check");
|
||||
if (enable_voice && !gSavedSettings.getBOOL("VivoxLicenseAccepted"))
|
||||
{
|
||||
// This window enables voice chat if license is accepted
|
||||
FloaterVoiceLicense::getInstance()->open();
|
||||
FloaterVoiceLicense::getInstance()->center();
|
||||
}
|
||||
else
|
||||
{
|
||||
gSavedSettings.setBOOL("EnableVoiceChat", enable_voice);
|
||||
}
|
||||
}
|
||||
|
||||
void LLPrefsVoice::cancel()
|
||||
|
||||
@@ -1528,12 +1528,30 @@ bool idle_startup()
|
||||
// color init must be after saved settings loaded
|
||||
init_colors();
|
||||
|
||||
// skipping over STATE_UPDATE_CHECK because that just waits for input
|
||||
LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT );
|
||||
if (gSavedSettings.getBOOL("VivoxLicenseAccepted"))
|
||||
{
|
||||
// skipping over STATE_LOGIN_VOICE_LICENSE since we don't need it
|
||||
// skipping over STATE_UPDATE_CHECK because that just waits for input
|
||||
LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT );
|
||||
}
|
||||
else
|
||||
{
|
||||
LLStartUp::setStartupState(STATE_LOGIN_VOICE_LICENSE);
|
||||
LLFirstUse::voiceLicenseAgreement();
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (STATE_LOGIN_VOICE_LICENSE == LLStartUp::getStartupState())
|
||||
{
|
||||
LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_VOICE_LICENSE" << LL_ENDL;
|
||||
// prompt the user to agree to the voice license before enabling voice.
|
||||
// only send users here on first login, otherwise continue
|
||||
// on to STATE_LOGIN_AUTH_INIT
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (STATE_UPDATE_CHECK == LLStartUp::getStartupState())
|
||||
{
|
||||
// wait for user to give input via dialog box
|
||||
@@ -4459,6 +4477,7 @@ std::string LLStartUp::startupStateToString(EStartupState state)
|
||||
RTNENUM( STATE_LOGIN_SHOW );
|
||||
RTNENUM( STATE_LOGIN_WAIT );
|
||||
RTNENUM( STATE_LOGIN_CLEANUP );
|
||||
RTNENUM( STATE_LOGIN_VOICE_LICENSE );
|
||||
RTNENUM( STATE_UPDATE_CHECK );
|
||||
RTNENUM( STATE_LOGIN_AUTH_INIT );
|
||||
RTNENUM( STATE_LOGIN_AUTHENTICATE );
|
||||
|
||||
@@ -50,6 +50,7 @@ typedef enum {
|
||||
STATE_LOGIN_SHOW, // Show login screen
|
||||
STATE_LOGIN_WAIT, // Wait for user input at login screen
|
||||
STATE_LOGIN_CLEANUP, // Get rid of login screen and start login
|
||||
STATE_LOGIN_VOICE_LICENSE, // Show license agreement for using voice
|
||||
STATE_UPDATE_CHECK, // Wait for user at a dialog box (updates, term-of-service, etc)
|
||||
STATE_LOGIN_AUTH_INIT, // Start login to SL servers
|
||||
STATE_LOGIN_AUTHENTICATE, // Do authentication voodoo
|
||||
|
||||
170
indra/newview/skins/default/html/en-us/license/vivox_aup.html
Normal file
170
indra/newview/skins/default/html/en-us/license/vivox_aup.html
Normal file
@@ -0,0 +1,170 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
|
||||
<TITLE>Vivox Acceptable Use Policy</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H1>Acceptable Use Policy (AUP)</H1>
|
||||
<OL>
|
||||
<LI><P>BACKGROUND: Users of the online
|
||||
voice services provided by Vivox, Inc. (“Vivox”) (the
|
||||
“Service”), through the act of utilizing the Service, agree to
|
||||
adhere to this Acceptable Use Policy (the “Policy”). Vivox
|
||||
reserves the right to immediately terminate a user’s access to the
|
||||
Service if the user engages in any of the activities prohibited by
|
||||
this Policy or uses the Service contrary to this Policy. Each user
|
||||
is responsible for all activities conducted under its account. The
|
||||
user is also responsible for adhering to any policy set forth by any
|
||||
other service provider accessed through the Service; Vivox, and its
|
||||
suppliers and providers, assume no responsibility or liability for a
|
||||
user’s failure to comply with the Policy. The user acknowledges
|
||||
that Vivox may have access to information about or provided by the
|
||||
user, including diagnostic information sent automatically after a
|
||||
problem or error, and agrees to such access and use.</P>
|
||||
<LI><P>PROHIBITED USES AND ACTIVITIES:
|
||||
Users shall not provide inaccurate or misleading information to
|
||||
Vivox or use the Service to: (i) access any other person's computer
|
||||
or computer system, software, or data without their knowledge and
|
||||
consent; or breach the security of another user; or attempt to
|
||||
circumvent the user authentication or security of any host, network,
|
||||
system, or account, which includes, but is not limited to, accessing
|
||||
data not intended for the user, logging into or making use of a
|
||||
server or account the user is not expressly authorized to access, or
|
||||
probing the security of other hosts, networks, or accounts; or use
|
||||
automated means (such as robots and spiders) to obtain information
|
||||
from Vivox’s website or, though it, from other websites; (ii)
|
||||
interfere with computer networking or telecommunications service to
|
||||
any user, host or network, including, without limitation, denial of
|
||||
service attacks, flooding of a network, overloading a service,
|
||||
improper seizing and abuse of operator privileges and attempts to
|
||||
"crash" a host; (iii) violate the rules, regulations, or
|
||||
policies applicable to any network, server, computer database, or
|
||||
service that accessed by the user; (iv) transmit, re-transmit, or
|
||||
store any content or to engage in any activity that infringes the
|
||||
intellectual property rights or privacy rights of Vivox or any
|
||||
individual, group or entity, including but not limited to any rights
|
||||
protected by any copyright, patent, trademark, trade secret, trade
|
||||
dress, right of privacy, right of publicity, moral rights or other
|
||||
intellectual property right now known or later recognized by
|
||||
statute, judicial decision or regulation; (v) host, post, transmit,
|
||||
or re-transmit any content or material that is threatening,
|
||||
harassing, obscene, indecent, pornographic, hateful, malicious,
|
||||
racist, defamatory, libelous, treasonous, excessively violent or
|
||||
promotes the use of violence, or provides instruction, information
|
||||
or assistance in causing or carrying out violence against any
|
||||
government, organization, group or individual, or provides guidance,
|
||||
information or assistance with respect to causing damage or security
|
||||
breaches to or Vivox's network or to the network of any other
|
||||
service provider; (vi) commit an act that constitutes a criminal
|
||||
offense, gives rise to civil liability, or otherwise violates any
|
||||
applicable local, state, federal or international law, or (vii)
|
||||
encourage conduct that would constitute a criminal offense, give
|
||||
rise to civil liability, or otherwise violate any applicable local,
|
||||
state, federal or international law.</P>
|
||||
<LI><P>SECURITY: In all cases, the user
|
||||
is solely responsible for the security of any device or application
|
||||
it chooses to connect to the Service, including any data stored on
|
||||
or communications passed. </P>
|
||||
<LI><P>TRADEMARKS AND COPYRIGHTS.
|
||||
“Vivox,” “Powered by Vivox” and similar marks are the
|
||||
property of Vivox. All other names, graphics, logos, marks and trade
|
||||
names used in connection with this Service, are the property of
|
||||
their owners and suppliers and may not be used without permission
|
||||
for any purpose. The copyright in the Vivox website and Service and
|
||||
all related materials are owned by Vivox or its suppliers unless
|
||||
otherwise stated. </P>
|
||||
<LI><P><STRONG>DISCLAIMER OF WARRANTIES.
|
||||
THE SERVICE IS PROVIDED "AS IS" AND "WITH ALL
|
||||
FAULTS," AND PROVIDER AND VIVOX HEREBY DISCLAIM ALL WARRANTIES,
|
||||
EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION (I) WARRANTIES OF
|
||||
MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NON-INFRINGEMENT, AND (II) ANY WARRANTIES CONCERNING THE SECURITY,
|
||||
RELIABILITY OR PERFORMANCE OF THE SERVICE. Certain states prohibit
|
||||
the disclaimer of warranties in certain cases, so the above may not
|
||||
apply to all users in all instances.<BR><BR>THE DOWNLOADING OR
|
||||
SUBMISSION OF ANY MATERIALS IS DONE AT THE USER’S OWN RISK, AND
|
||||
THE USER IS SOLELY RESPONSIBLE FOR ANY LOSS OR DAMAGE TO ANY
|
||||
CONTENT, IMAGE, COMPUTER SYSTEM OR DATA THAT MAY RESULT FROM USING
|
||||
THE SERVICE.</STRONG></P>
|
||||
<LI><P><STRONG>EXCLUSION OF DAMAGES. TO
|
||||
THE FULLEST EXTENT ALLOWED BY LAW, VIVOX SHALL NOT BE LIABLE FOR ANY
|
||||
INDIRECT OR CONSEQUENTIAL DAMAGES, INCLUDING INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY AND PUNITIVE DAMAGES, RESULTING FROM THE USE OR PROVISION
|
||||
OF THE SERVICE, EVEN IF THE POSSIBILITY OF SUCH DAMAGES IS KNOWN.
|
||||
Certain states prohibit the limitation of liability in certain
|
||||
cases, so the above may not apply to the user in all instances.</STRONG></P>
|
||||
<LI><P>ENFORCEMENT OF THIS POLICY: Vivox
|
||||
does not routinely monitors the activity of Service accounts for
|
||||
violation of this Policy. Vivox reserves the right at any time to
|
||||
monitor usage, transmissions, and content from time to time to
|
||||
operate the Service; to identify violations of this Policy; and/or
|
||||
to protect the network, the Service and/or other users. If the
|
||||
Service is used in a way that Vivox, in their sole discretion,
|
||||
believe violate this Policy, it may take any responsive actions they
|
||||
deem appropriate, including, but are not limited to, the immediate
|
||||
suspension or termination of all or any portion of the Service.
|
||||
Vivox will have no liability for any of these responsive actions.
|
||||
These actions are not exclusive remedies and Vivox may take any
|
||||
other legal or technical action deemed appropriate. The user
|
||||
expressly authorizes Vivox to cooperate with (i) law enforcement
|
||||
authorities in the investigation of suspected legal violations, and
|
||||
(ii) any system administrators at other Internet service providers
|
||||
or other network or computing facilities in order to enforce this
|
||||
Policy. This cooperation may include making available personally
|
||||
identifiable information about users to law enforcement or system
|
||||
administrators. The failure to enforce this Policy, for whatever
|
||||
reason or for no reason, shall not be construed as a waiver of any
|
||||
right to do so at any time. The user agrees that if any portion of
|
||||
this Policy is held invalid or unenforceable, such portion will be
|
||||
construed consistent with applicable law as nearly as possible, and
|
||||
the remaining portions will remain in full force and effect. The
|
||||
user agrees to indemnify, defend and hold harmless Vivox and its
|
||||
affiliates, suppliers, providers, and agents against all claims and
|
||||
expenses (including reasonable attorney fees) resulting from users
|
||||
engaging in any of the prohibited activities listed in this Policy
|
||||
or resulting from users violating the Policy or any other posted
|
||||
policy related to the Service. The foregoing user indemnification
|
||||
will survive any termination of the user’s agreements with Vivox .</P>
|
||||
<LI><P>ARBITRATION. Except for the right
|
||||
of a party to seek equitable relief, any disputes arising under or
|
||||
related to this Agreement (“Dispute”), excluding any Dispute
|
||||
relating to the validity or infringement of any intellectual
|
||||
property right, will be resolved by negotiation, mediation and, if
|
||||
necessary, arbitration, as follows. The party raising such Dispute
|
||||
will promptly advise the other party in writing describing in
|
||||
reasonable detail the nature of such Dispute (“Notice of
|
||||
Dispute”). The parties will negotiate in good faith to resolve the
|
||||
Dispute, but if they have not done so within thirty (30) days, the
|
||||
parties will submit the Dispute to a mutually agreed mediation
|
||||
organization. If the parties are unable to resolve the Dispute
|
||||
within sixty (60) days after delivery of the Notice of Dispute, then
|
||||
the Dispute will be resolved by a single arbitrator in a final and
|
||||
binding arbitration under the then current procedural rules of the
|
||||
American Arbitration Association. All proceedings will be conducted
|
||||
in the English language in Boston, Massachusetts. The arbitrator
|
||||
will have no power to modify the terms or conditions of this
|
||||
Agreement, or to award punitive damages. Any award rendered in such
|
||||
arbitration may be enforced by either party in any Court of
|
||||
competent jurisdiction.</P>
|
||||
<LI><P>GENERAL TERMS. This Agreement is
|
||||
governed by the laws of the Commonwealth of Massachusetts. No
|
||||
agency, partnership, joint venture, employment or franchise
|
||||
relationship is intended or created by this Agreement. This AUP
|
||||
constitute the entire agreement between the parties concerning the
|
||||
use of the Service. If any provision of this Agreement is found to
|
||||
be unenforceable, it shall be deemed modified to the least extent
|
||||
needed to make the provision enforceable; the remaining terms of
|
||||
this Agreement shall remain in full force and effect. Vivox reserves
|
||||
the right to disclose any information about any user as required by
|
||||
a court order or as recommended by counsel in the context of any
|
||||
action by any government entity or other third party.</P>
|
||||
<LI><P>CHANGES TO THIS POLICY. Vivox may
|
||||
revise its Acceptable Use Policy from time to time without prior
|
||||
notice. Any changes will be presented in the latest version at the
|
||||
Vivox web site. All revised copies of the Policy are effective
|
||||
immediately upon a user’s first use of the Service after the
|
||||
change has been posted.</P>
|
||||
</OL>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater can_close="false" can_drag_on_left="false" can_minimize="false"
|
||||
can_resize="false" height="500" min_height="100" min_width="100"
|
||||
name="modal container" title="" width="600">
|
||||
<button bottom="-484" enabled="false" font="SansSerif" halign="center" height="20"
|
||||
label="Continue" label_selected="Continue" left="484" mouse_opaque="true"
|
||||
name="Continue" width="100" />
|
||||
<button bottom="-484" font="SansSerif" halign="center" height="20" label="Cancel"
|
||||
label_selected="Cancel" left="16" mouse_opaque="true" name="Cancel"
|
||||
width="100" />
|
||||
<check_box bottom="-435" follows="top|right"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="I Agree to the Terms of the Vivox Acceptable Use Policy"
|
||||
left="16" mouse_opaque="true" name="agree_chk" width="55" />
|
||||
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-50" drop_shadow_visible="true" follows="left|top" font="SansSerif"
|
||||
h_pad="0" halign="left" height="30" left="16" mouse_opaque="true"
|
||||
name="license_heading" v_pad="0" width="552">
|
||||
Please read the following license carefully.
|
||||
To use voice, you must accept the license agreement.
|
||||
</text>
|
||||
<text_editor bottom="-376" embedded_items="false" follows="left|top" font="SansSerif"
|
||||
height="283" left="16" max_length="65536" mouse_opaque="true"
|
||||
name="license_text" width="568"
|
||||
word_wrap="true">
|
||||
LICENSE_TEXT
|
||||
</text_editor>
|
||||
<!-- Loading text says: "Loading Vivox Personal License Agreement..." URL encoded -->
|
||||
<web_browser bottom="-406" embedded_items="false" follows="left|top" font="SansSerif"
|
||||
height="340" left="16" max_length="65536" mouse_opaque="true"
|
||||
name="license_html"
|
||||
start_url="data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//vivox.com/vivox_aup.html%22%3EVivox%20Acceptable%20Use%20Policy%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E"
|
||||
width="568" word_wrap="true" />
|
||||
<string name="real_url">
|
||||
vivox_aup.html
|
||||
</string>
|
||||
<string name="fallback_html">
|
||||
vivox_aup.html
|
||||
</string>
|
||||
</floater>
|
||||
Reference in New Issue
Block a user