Are you over 18 and want to see adult content?
More Annotations
A complete backup of emigrationpars.com
Are you over 18 and want to see adult content?
A complete backup of skarbnicanarodowa.pl
Are you over 18 and want to see adult content?
A complete backup of bajakiteandsurf.com
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of aldemar-resorts.gr
Are you over 18 and want to see adult content?
A complete backup of dropkickmurphys.com
Are you over 18 and want to see adult content?
A complete backup of saenai-movie.com
Are you over 18 and want to see adult content?
A complete backup of tickettransaction.com
Are you over 18 and want to see adult content?
A complete backup of free-proxy-list.net
Are you over 18 and want to see adult content?
A complete backup of websiteprofitpro.net
Are you over 18 and want to see adult content?
Text
WWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: UnleashWWW.WEBEX.CA
User-agent: * Disallow: /content/dam/ sitemap:https://www.webex.com/sitemap.xml Sitemap:https://www.webex.com.au/sitemap.xml sitemap:https://www.webex.com.br/sitemap WEB CONFERENCING: UNLEASH THE POWER OF SECURE REAL-TIME Web Conferencing: Unleash the Power of Secure Real-Time Collaboration White Paer Cisco Public Cisco anor its affiliates ll rights resere 1 Web Conferencing: Unleash If you're new to remote work, we're here to make the change easy - keeping you connected to your team. Check out our Webex guides forUsers and IT Admins
* Start for Free
*
Products
*
Video Conferencing
High quality video meetings that make you feel like you’re in theroom.
Team Collaboration
Continuous teamwork beyond the meeting with group messaging, file and screen sharing, white boarding and more.Download
Take Webex with you on any device.Webinars
Engage your audience through powerful, interactive online events andwebinars.
Online Training
Deliver engaging and interactive online training for your virtuallearners.
*
Webinars
Engage your audience through powerful, interactive online events andwebinars.
Online Training
Deliver engaging and interactive online training for your virtuallearners.
Video Support
A dynamic platform for real-time technical support, accessible fromanywhere.
*
Video Support
A dynamic platform for real-time technical support, accessible fromanywhere.
Cloud Calling
Cloud calling you can trust.Contact Center
Become a high-performing, agile contact center focused on the customer experience. Cognitive Collaboration Powerful AI and machine learning capabilities to enhance your collaboration experience.* Webex Devices
* Plans & Pricing
* Help Center
* Host
* Join
*
Sign in
*
Webex Meetings
Bringing you face-to-face.*
Webex Teams
Continuous teamwork in one place.*
My Account
Modify your subscription, see account details, change your password,and more.
*
Search
What are you looking for? Close*
* We’re here for you* Get more done.
* Stay Connected from Home. * Hassle-free video conferencing. * Millions use Webex everyday. * Webex works well with others. * Insights & Resources. WE’RE HERE FOR YOU WORK REMOTELY OR FROM HOME. STAY CONNECTED. UNLIMITED USAGE ON THE MOST SECURE COLLABORATION PLATFORM. Sign up now, it’s freeGET MORE DONE.
A POWERFUL SET OF TOOLS THAT KEEPS YOU CONNECTED BEFORE, DURING, ANDAFTER THE MEETING.
WEBEX MEETINGS
Bring everyone together, face-to-face, with video conferencing and screen sharing on any device. --> Created with Sketch. Explore Video ConferencingWEBEX TEAMS
Team collaboration happens all in one place, from anywhere with messaging, file and screen sharing, video meetings, and whiteboarding. --> Created with Sketch. Explore Team CollaborationWEBEX CALLING
Secure, easy-to-manage cloud calling that's simple to set up and even goes with you on the road. --> Created with Sketch. Explore Cloud CallingWEBEX DEVICES
Conference equipment that brings high-quality video, whiteboarding, and AI to your collaboration rooms. --> Created with Sketch. Explore Collaboration Devices Download Desktop AppsMeetings Teams
More Products
--> Created with Sketch. Training --> Created with Sketch. Webinars --> Created with Sketch. VideoSupport
STAY CONNECTED FROM HOME Currently, there is an unprecedented increase in remote work happening around the world due to circumstances resulting from COVID-19 (Coronavirus disease). If you're being asked to work remotely - we’re here to keep your team connected on any device, enabling you to keep work moving from anywhere. Check out our Webex guides for users Check out our help guides for IT AdminsHASSLE-FREE VIDEO
CONFERENCING THAT JUST WORKS. Feel like you're there. Build stronger relationships with video-first experiences that bringyou face-to-face.
Elevate your brand.
Showcase the best you with video conferencing that is simple butpowerful.
Be anywhere, reach anyone. Increase your business reach, while reducing office and travelexpenses.
Discover Webex Meetings --> Created with Sketch.*
*
*
*
Webex helps us meet, communicate, and collaborate from remote locations without the need to travel. This helps us devote more time for making life better for children. It works! I use Webex all day, every day and I don't have to worry about it. It works on all devices and from wherever I am. The video capabilities help me feel closer to my customers and partners. Webex has transformed our business by allowing our team the option to work remotely and not miss out on their personal life or that important sales meeting. Webex is a one stop shop for meetings. Doesn't matter if you just want to jump on a quick audio conference call, or a full-fledged video conference with 20 offices. Webex is the single tool to handle allmeetings.
WEBEX WORKS WELL
WITH OTHERS
Integrate with the apps you love to use everyday, so your work remainsconnected.
Learn More
INSIGHTS & RESOURCES: DIRECTIONAL THINKING FOR YOUR TEAMSFeature
LEVEL UP YOUR CONFERENCE CALLSFeature
MASTER YOUR PRESENTATION WITH SCREEN SHARINGReal World Story
HOW BROOKLYN NETS STAR, SPENCER DINWIDDIE, WINS ON AND OFF THE COURTWITH WEBEX
Webex Perks
AN ONLINE HUB TO CONNECT, LEARN, AND BE REWARDED--JUST FOR USINGWEBEX
eBook
WHY VIDEO CONFERENCING IS RIGHT FOR YOUR GROWING BUSINESSReal World Story
IMPROVING PATIENT DIAGNOSES WITH VIDEO CONFERENCINGBlog
VIDEO CONFERENCE WITH SECURITY YOU CAN TRUST arrow-left Created with Sketch. arrow-left Created with Sketch. GET STARTED WITH WEBEX FOR FREE! Additional features, storage, and support start at just $13.50. View Plans & PricingProducts
* Plans & Pricing
* Webex Devices
* Video Conferencing * Team Collaboration* Webinars
* Online Training
* Video Support
* Cloud Calling
* Contact Center
* Downloads
Why Webex
* Why Webex
* Blog
* Developers
* Integrations
* IT Buyer
* Content library
* Partners
Features
* AI - Assistant
* Screen Sharing
* Conference Call
* Cognitive
Collaboration
Help & Learning
* Help Center
* Getting Started
* Online Classes
* Join a test meeting* Contact Support
* Community
* Working Remote (COVID-19) * IT Specialist (COVID-19) * Education (COVID-19)Company
* Cisco
* Contact Sales
United States
* Australia (English) * Brazil (Português)* Canada (English)
* Canada (Français)* China (简体字)
* France (Français)* Germany (Deutsch)
* Hong Kong (繁體中文)* India (English)
* Italy (English)
* Japan (日本語)
* South Korea (한국어) * Latin America (Español)* Spain (Español)
* United Kingdom (English) * United States (English) 2020 Cisco and/or its affiliates. All rights reserved.* Site Map
* Terms of Service
* Privacy Statement
* Cookies
* Trademarks
" ); } else { Q(); var R = O.params.timeoutPoint - Date.now(); var S = R > 0 ? R : 1; V = setTimeout(function() { var X = {}; U.callback(X); v("UID timed out for " + N); }, S); } } else { console.warn( "WARNING: `getUserProfile` does not support requests for ", N, "." ); } }; } var x = function() { var M = {}; var N = false; var O = 0; var P = arguments.length; if (Object.prototype.toString.call(arguments) === "") { N = arguments; O++; } var R = function(S) { for (var T in S) { if (Object.prototype.hasOwnProperty.call(S, T)) { if ( N && Object.prototype.toString.call(S) === "" ) { M = extend(true, M, S); } else { M = S; } } } }; for (; O < P; O++) { var Q = arguments; R(Q); } return M; }; var e = {}; var j = new (function() { var M = function(R, O, Q) { var P = ; if (s.isStale(O)) { P = Q.serviceNames; } else { Q.serviceNames.forEach(function(S) { if (R == null || R == null) { P.push(S); } }); } return P; }; var N = function(Q, O) { if (localStorage.getItem("userInfoDispatcher") != null) { var S = JSON.parse(localStorage.getItem("userInfoDispatcher")); } cookieInfo = (document.cookie.match( /^(?:.*;)? cdcUniqueKey=(+)(?:.*)?$/ ) || ); if (S != null) { if (cookieInfo == S.token && cookieInfo != "none") { } else { s.clear(); } } z = O; var P = s.getProfile(z); var T = M(P, O, Q); var R = { params: Q, loginStatus: { value: O }, response: { profileData: {}, requests: { queuedServices: T, completed: } }, requiresWrappedResponse: false }; R.params.async = true; if (T.length > 0) { a(R); } else { L(P, Q.listOfDataFields, Q.callback); } }; this.process = function(P) { var O = w(); if (O.requiresLoginCheck) { cdc.context.checkLogin(function() { N(P, O.value); }); } else { N(P, O.value); } }; })(); function u(N) { var M = ; N.forEach(function(Q) { var O = Q.split("."); var P = O && O.length > 0 ? O : ""; if (P in K) { M.push(P); } }); return M; } function w() { var M = { value: null, requiresLoginCheck: false }; var S = { dev: "cdcSsoTimerDev", stage: "cdcSsoTimerStage", prod: "cdcSsoTimer", local: "cdcSsoTimerLocal" }; var R = S; var O = function(T) { var U = "; " + document.cookie; var V = U.split("; " + T + "="); if (V.length == 2) { return V.pop() .split(";") .shift(); } }; var Q = O(R); if (typeof Q !== "undefined") { var N = Q.replace(/idleTimer%3D(\d+)%26resynchInterval.+/, "$1"); var P = N < Date.now(); if (!P) { z = "loggedIn"; } } if (z === "unknown") { cdc.context.authStatus = "anonymous"; } if (z !== "unknown") { M.value = z; } else { if (cdc.context.isLoginPage()) { M.value = "anonymous"; } else { M.value = cdc.context.authStatus === "valid" ? "loggedIn" : "anonymous"; M.requiresLoginCheck = true; } } return M; } var m = function(P, M, O) { var N = function(S, Q, R) { return ( !!S && !!S && S.constructor === Object && !!R && !!R && Object.keys(R).length === 0 && R.constructor === Object ); }; O = o(M, O); if (!N(P, M, O)) { return x(P || {}, O); } else { return P; } }; function q(N, O, M) { K.callService(O, function(P) { if (O.requiresWrappedResponse) { O.response.profileData = m(O.response.profileData, N, P); O.response.hasData = true; if (M) { O.response.isComplete = true; } } r(N, P, O); }); } function o(M, N) { if (N == null || I(N)) { N = {}; N = {}; } return N; } var d = function(O, N, P) { var M = e || ; if (P.response.requests.completed.length > 0) { P.response.requests.completed.forEach(function(S) { var R = E(S); M.forEach(function(U) { var T = U.serviceNames.indexOf(R); U.serviceNames.splice(R, 1); }); }); } var Q = function(S) { var T = S; var R = T.serviceNames.indexOf(O); if (R !== -1) { T.serviceNames.splice(R, 1); if (T.serviceNames.length === 0) { S.pop(); if (P.requiresWrappedResponse) { y(P, P.params.listOfDataFields.join(", ")); } else { L(N, P.params.listOfDataFields, P.params.callback); } } else { Q(S); } } }; if (M.length > 0) { Q(M); } }; function r(N, P, O) { var M = s.getProfile(z); M = m(M, N, P); s.saveProfile(M, z); d(N, M, O); } var a = function(N) { var M = N.response.requests.queuedServices; if (M.length === 0) { y(N, "no queued services"); } else { M.forEach(function(Q, P) { var O = P === M.length - 1; if (e == null) { e = ; if (typeof N.params.delayForData !== "undefined") { if (!N.params.delayForData) { y(N, Q); } } q(Q, N, O); } else { e.push(N.params); } }); } }; function I(M) { if (M == null) { return true; } for (k in M) { if (M.hasOwnProperty(k)) { return false; } } return true; } function L(N, O, P) { var M = {}; if (N) { if (O instanceof Array && O.length > 0) { M = H(N, O); } } P(M); } function H(O, N) { N = N || ; O = O || {}; var M = {}; N.forEach(function(P) { var Q = P.split(/\./); M = O; }); return M; } this.getUserProfile = function(M) { M = M || {}; if (typeof M.callback !== "function") { if (console) { console.log( "cdc.userInfoDispatcher.getUserProfile: second parameter must be a function, but it is a " + typeof callback ); } return; } var N = x(M, { serviceNames: u(M.listOfDataFields) }); j.process(N); }; this.clearCache = function() { s.clear(); }; function D(O, N) { var M = N.response; N.params.listOfDataFields.forEach(function(P) { var Q = n(O, P); if (typeof Q !== "undefined") { M.hasData = true; F(M.profileData, P, Q); M.requests.queued.push(P); } else { M.isComplete = false; M.requests.queued.push(P); } }); return M; } var n = function(R, P) { var Q = R; var N; var M = P.split("."); var O = M; M.forEach(function(S) { if (S === O) { N = Q; } else { Q = Q; } }); return N; }; function F(O, M, N) { M = M.split("."); while (M.length > 1) { O = O; } return (O = N); } function h(P, N) { var M = ; function O(S, R) { R = R || ""; var Q = R; Object.keys(S).forEach(function(T) { if (typeof S !== "object") { Q = R + "." + T; Q = Q === "." ? Q.slice(1) : Q; M.push(Q); } else { O(S, R + "." + T); } }); } O(P, N); return M; } function E(M) { return M.split("."); } function t(N) { var M = N; M.requests.queued.forEach(function(O) { var P = E(O); if (M.requests.queuedServices.indexOf(P) === -1) { M.requests.queuedServices.push(P); } }); return M; } var l = function(M, N) { if (M.loginStatus.requiresLoginCheck) { cdc.context.checkLogin(function() { N(M); }); } else { N(M); } }; this.request = function(N) { v("UID request for " + N.listOfDataFields.join(", ")); var M = { params: N, loginStatus: w(), response: { hasData: false, isComplete: true, profileData: {}, requests: { queuedServices: , received: N.listOfDataFields, completed: , queued: } }, requiresWrappedResponse: true }; M.params.serviceNames = u(M.params.listOfDataFields); var O = function() { z = M.loginStatus.value; if (s.isStale(M.loginStatus.value)) { B(M); } else { f(M); } }; l(M, O); }; var y = function(N, M) { v("UID responded for " + M); N.params.callback(N.response); }; function f(M) { var N = s.getProfile(M.loginStatus.value); M.response = D(N, M); M.response = t(M.response); a(M); } function B(M) { M.response.hasData = false; M.response.isComplete = false; M.response.requests.queued = M.params.serviceNames.slice(0); M.response = t(M.response); a(M); } var s = new (function() { var O = "userInfoDispatcher"; var M = 6 * 60; this.saveProfile = function(R, P) { var U = "cdcUniqueKey"; var Q = (document.cookie.match( /^(?:.*;)? cdcUniqueKey=(+)(?:.*)?$/ ) || ); if (Q == null || Q == "none") { Q = Math.random() .toString(20) .slice(2); document.cookie = U + "=" + Q + ";domain=.cisco.com;path=/"; } try { var T = JSON.stringify({ profile: R, authState: P, created: new Date().getTime(), token: Q }); localStorage.setItem(O, T); } catch (S) {} }; this.getProfile = function(P) { try { var R = JSON.parse(localStorage.getItem(O)); return R && !N(R, P) ? R.profile : null; } catch (Q) { return null; } }; this.isStale = function(S) { var P = true; try { var R = JSON.parse(localStorage.getItem(O)); P = R == null || N(R, S); } catch (Q) {} return P; }; this.clear = function() { try { localStorage.removeItem(O); } catch (P) {} }; function N(Q, P) { if (!Q || Q.authState != P) { return true; } if (Q.created < new Date().getTime() - M * 60000) { return true; } return false; } })(); function b(P, Q, N, M) { this.callService = function(V, ac) { var ae = {}; var W = V.loginStatus.value === "anonymous" ? N : Q; var X; var Y; var ab; var ad = new XMLHttpRequest(); if (!V.params.async) { ad.open("GET", W, false); } else { X = V.requiresWrappedResponse ? V.params.timeoutPoint - Date.now() : c; Y = X > 0 ? X : 1; ab = setTimeout(aa, Y); ad.open("GET", W, true); ad.timeout = Y; } ad.withCredentials = true; ad.onreadystatechange = function() { var ah = 4; var ag = 200; if (ad.readyState === ah) { clearTimeout(ab); if (ad.status === ag) { var af = JSON.parse(ad.responseText); U(af, ae); ac(ae); } else { U(null, ae); ac({}); } } }; try { ad.send(null); } catch (Z) { ac({}); } function aa() { v("UID timed out for " + P); ad.abort(); U(null, ae); ac(ae); } }; function U(W, V) { if (W == null) { return true; } var Y = M.split("/"); for (var X = 0, Z = Y.length; X < Z && W != null; X++) { W = W; } if (W == null) { return; } O(P, W, V); return true; } function O(Y, X, W) { if (typeof X === "object" && X.hasOwnProperty("name")) { T(Y, X, W); } else { if (typeof X === "object") { for (var V in X) { T(Y, X, W); } } } } function T(Z, W, Y) { Y = R(Y, Z); if (W.name !== undefined && W.value !== undefined) { if (typeof W.value === "string") { Y = W.value; } else { if (W.value.constructor === Array) { var aa = W.value; for (var V = 0, X = aa.length; V < X; V++) { if (typeof aa != "string") { O(S(W.name), W.value, Y); } else { Y = W.value; } } } else { if (typeof W.value === "object") { O(S(W.name), W.value, Y); } } } } else { } } function R(W, V) { if (typeof W !== "object") { W = {}; } if (typeof W !== "object") { W = {}; } return W; } function S(V) { return V.toLowerCase().replace(/\s/g, "_"); } } function G(N, P, Q) { var M; var O = function() { var U; var R; if (window.XMLHttpRequest) { U = new XMLHttpRequest(); if (U.withCredentials === undefined && window.XDomainRequest) { R = new XDomainRequest(); } } else { if (window.ActiveXObject) { try { U = new ActiveXObject("Msxml2.XMLHTTP"); } catch (V) { try { U = new ActiveXObject("Msxml3.XMLHTTP"); } catch (T) { try { U = new ActiveXObject("Microsoft.XMLHTTP"); } catch (S) { throw new Error("XML HTTP request not implemented"); } } } } else { throw new Error("XML HTTP request not implemented"); } } return U; }; this.callService = function(X, Y) { var R = X.loginStatus.value; var W = O(); W.onreadystatechange = function() { if (W.readyState) { if (W.readyState === 4) { clearTimeout(M); if (W.status === 200) { var aa = V(W, Q); if (aa && aa.locale) { var Z = aa.locale.country_code; var ab = J; if (!ab) { aa.locale.lang_unknown = true; ab = "en"; } aa.locale.language_code = ab; } Y(aa); } } else { if (W.status > 0) { } else { Y({}); } } } else { } }; function V(ad, ac) { try { responseHeader = ad.getResponseHeader(ac); responseHeader = responseHeader.split(","); var ab = {}; ab = {}; for (i in responseHeader) { var Z = responseHeader; var aa = responseHeader.split("="); var Z = aa.toString(); ab = aa; } return ab; } catch (ae) { return null; } } try { if (!X.params.async) { W.open("GET", P + "?t=" + Math.random(), false); } else { var U = X.requiresWrappedResponse ? X.params.timeoutPoint - Date.now() : c; var S = U > 0 ? U : 1; M = setTimeout(function() { v("UID timed out for " + N); W.abort(); Y({}); }, S); W.open("GET", P + "?t=" + Math.random()); W.timeout = S; } W.send(null); } catch (T) { Y({}); } }; } })(); } if (!window.hasOwnProperty("cdc")) { window.cdc = {}; } cdc.c2c = function() { var c = null; function b(j, g, f) { j(" -- begin LiveAgentAdapter constructor..."); function h() { var l = this.getAttribute("data-wire-buttonId"); j(" -- inside LiveAgentAdapter.startChat(" + l + ")..."); liveagent.startChat(l); } this.setup = function(r) { var s = r.wireParams, n, m; j(" -- begin LiveAgentAdapter.setup()"); j( " -- buttonId=, proactiveId=, keyCode=..." ); j( " -- modalHeight=, modalWidth=..." ); j(" -- chatNode: ", r.chatNode); var l = r.state.envConfig, q = f("CP_GUTC"), o = r.chatNode.querySelector(".c2c-active .c2c-button"); o.setAttribute("data-wire-buttonId", s.buttonId); g(o, "click", h, r.state); function t(p, u) { if (u === "start") { return function() { liveagent.startChat(p); }; } if (u === "reject") { return function() { liveagent.rejectChat(p); }; } } if (s.proactiveId) { j(" -- proactiveId is defined, wiring modal"); n = document.querySelectorAll(".c2c-proactive-modal"); for (m = 0; m < n.length; m += 1) { n.setAttribute("id", "liveagent_invite_button_" + s.proactiveId); } n = document.querySelectorAll(".c2c-proactive-agree"); for (m = 0; m < n.length; m += 1) { g(n, "click", t(s.proactiveId, "start"), r.state); } n = document.querySelectorAll(".c2c-proactive-dismiss"); for (m = 0; m < n.length; m += 1) { g(n, "click", t(s.proactiveId, "reject"), r.state); } r.state.flags.proactiveModalWired = true; } else { j( " -- proactive id is null, modal must be wired already, skipping" ); } if (!r.state.flags.detailsAdded) { if (s.keyCode) { j( " -- adding keyCode= via liveAgent.addCustomDetail()" ); liveagent.addCustomDetail("Keycode", s.keyCode, true); } else { j( " -- keyCode is null, skipping liveAgent.addCustomDetail()" ); } if (s) { j( " -- adding data-c2c-ecid= via liveAgent.addCustomDetail()" ); liveagent.addCustomDetail("data-c2c-ecid", s, true); } else { j( " -- data-c2c-ecid is null, skipping liveAgent.addCustomDetail()" ); } if (s) { j( " -- adding data-c2c-oid= via liveAgent.addCustomDetail()" ); liveagent.addCustomDetail("data-c2c-oid", s, true); } else { j( " -- data-c2c-oid is null, skipping liveAgent.addCustomDetail()" ); } if (s) { j( " -- adding data-c2c-ccid= via liveAgent.addCustomDetail()" ); liveagent.addCustomDetail("data-c2c-ccid", s, true); } else { j( " -- data-c2c-ccid is null, skipping liveAgent.addCustomDetail()" ); } if (s) { j( " -- adding data-c2c-dtid= via liveAgent.addCustomDetail()" ); liveagent.addCustomDetail("data-c2c-dtid", s, true); } else { j( " -- data-c2c-dtid is null, skipping liveAgent.addCustomDetail()" ); } if (s.modalHeight) { j( " -- adding modalHeight= via liveAgent.setChatWindowHeight()" ); liveagent.setChatWindowHeight(s.modalHeight); } else { j( " -- modalHeight is null, skipping liveAgent.setChatWindowHeight()" ); } if (s.modalWidth) { j( " -- adding modalWidth= via liveAgent.setChatWindowWidth()" ); liveagent.setChatWindowWidth(s.modalWidth); } else { j( " -- modalWidth is null, skipping liveAgent.setChatWindowWidth()" ); } j(" -- adding detail for CP_GUTC cookie="); liveagent.addCustomDetail("CookieInput", q || "", true); j(" -- adding detail for doc URL="); liveagent.addCustomDetail("OriginatingURL", document.URL, true); j( " -- adding detail for visitor country=" ); liveagent.addCustomDetail( "CountryInput", r.state.locale.country.visitor || "", true ); j( " -- calling liveagent.init(); svc=; depId=; orgId=" ); liveagent.init(l.svc_url, l.deployment_id, l.org_id); r.state.flags.detailsAdded = true; } else { j( " -- chat.init() has run once already, not adding custom details" ); } liveagent.showWhenOnline( s.buttonId, r.chatNode.querySelector(".c2c-active") ); liveagent.showWhenOffline( s.buttonId, r.chatNode.querySelector(".c2c-inactive") ); j(" -- end LiveAgentAdapter.setup()"); }; j(" -- end LiveAgentAdapter constructor"); } function a() { if (!c) { c = { version: "8.2.5",buttonMapUrl:
"//www.cisco.com/c/dam/global/en_us/framework/buttonMapper.json", chatNodes: null, debug: "", entitlement: "", environment: "", envConfig: null, initCounter: 0, initQ: , flags: { verbose: false, exit: false, test: false, gotParams: false, localeDetermined: false, liveAgentJsLoaded: false, mapperJsonLoaded: false, proactiveModalWired: false, detailsAdded: false, clearCache: false, initRunning: false }, locale: { page: "", visitor: "", chosen: "", country: {}, lang: {} }, override: { buttonId: "", proactiveId: "", entitlement: "", locale: "" }, timestamp: { all: {}, json: {}, deployment: {} }, events: }; } return c; } function e(G) { var m = a(), P = { c2cDebug: function(Q) { m.debug = Q; m.flags.verbose = true; }, verbose: function(Q) { if (Q) { m.flags.verbose = true; } else { m.flags.verbose = false; } }, exit: function(Q) { if (Q) { m.flags.exit = true; } else { m.flags.exit = false; } }, test: function(Q) { if (Q) { m.flags.test = true; } else { m.flags.test = false; } }, clearCache: function(Q) { if (Q) { m.flags.clearCache = true; } else { m.flags.clearCache = false; } }, buttonOverride: function(Q) { m.override.buttonId = Q; }, proactiveOverride: function(Q) { m.override.proactiveId = Q; }, localeOverride: function(Q) { m.override.locale = Q; }, entitlementOverride: function(Q) { m.override.entitlement = Q; }, jsonOverride: function(Q) { m.override.jsonUrl = decodeURIComponent(Q); } }; function o(R, Q) { if (m.flags.verbose) { if (typeof R === "object") { if (JSON) { console.dir(JSON.parse(JSON.stringify(R))); } else { console.dir(R); } } else { if (!Q) { Q = ""; } console.log(" " + R, Q); } } } function B() { o("============="); o("chatController version " + m.version + ": initializing..."); o("============="); o("log message prefixes:"); o(" 0.x -- init()/prepChain()"); o(" 1.x -- determineLocale()"); o(" 1.x -- determineAccessLevel()"); o(" 2.x -- loadButtonMap()"); o(" 3.x -- loadDeploymentJS()"); o(" 4.x -- wireButtons()"); o(" 5.x -- checkQueue()"); o("-------------"); } function M(T) { var S = document.getElementsByTagName("head"), R = document.createElement("script"), Q = false; R.src = T.url; if (T.scriptCharset) { R.charset = T.scriptCharset; } R.onreadystatechange = function() { if ( !Q && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") ) { Q = true; T.success(); S.removeChild(R); } }; R.onload = R.onreadystatechange; S.appendChild(R); } function s(S) { var R = false, Q = ""; try { R = new XMLHttpRequest(); } catch (T) { try { R = new ActiveXObject("Msxml2.XMLHTTP"); } catch (T) { try { R = new ActiveXObject("Microsoft.XMLHTTP"); } catch (T) { return false; } } } if (!R) { return false; } if (typeof S.success !== "function") { S.success = function() {}; } if (typeof S.error !== "function") { S.error = function() {}; } R.onreadystatechange = function() { if (R.readyState === 4) { if (R.status === 200) { try { Q = JSON.parse(R.responseText); } catch (U) { return S.error(R, "parsererror", U.message); } return S.success(Q, R.statusText, R); } else { return S.error(R, R.statusText, "error"); } } }; R.open("GET", S.url, true); if (S.hasOwnProperty("contentType")) { R.setRequestHeader("Content-Type", "application/json"); } if (S.hasOwnProperty("authority")) { R.setRequestHeader("Authority", S.authValue); } if (S.hasOwnProperty("withCredentials")) { R.withCredentials = true; } if (S.headers) { Object.keys(S.headers).forEach(function(U) { R.setRequestHeader(U, S.headers); }); } R.send(null); return R; } function I(S, R, Q) { if (!S) { return; } if (!R && S.length) { Q = S; R = S; S = S; } if (S.detachEvent) { S.detachEvent("on" + R, Q); } else { S.removeEventListener(R, Q); } } function C(S, R, Q, T) { if (!R && S.length) { T = S; Q = S; R = S; S = S; } o("begin addEvent() -- checking on attachEvent for node " + S); if (typeof S.attachEvent !== "undefined") { o("-- attachEvent exists, calling it"); S.attachEvent("on" + R, Q); } else { o("-- no attachEvent, using addEventListener instead"); S.addEventListener(R, Q); } if (T) { T.events.push(); } } function y(S) { if (!S.cookieName) { S = { cookieName: S, cookieValue: arguments }; if (arguments.length > 2) { S.days = arguments; } } var R = ""; var U = ""; var Q = ""; var W = parseInt(S.msecs); if (isNaN(W) && S.days) { W = S.days * 24 * 60 * 60 * 1000; } if (!isNaN(W)) { var T = new Date(); T.setTime(T.getTime() + W); R = "; expires=" + T.toUTCString(); } if (S.path) { U = "; path=" + S.path + ";"; } else { U = "; path=/;"; } if (S.domain) { Q = "; domain=" + S.domain; } try { document.cookie = S.cookieName + "=" + escape(S.cookieValue) + R + U + Q; } catch (V) { return false; } return true; } function J(R) { if (!R.cookieName) { R = { cookieName: R }; } var T = document.cookie.split(/\s*;\s*/), X = {}, W, U, Q, V, S; for (S = 0; S < T.length && (W = T); S++) { U = W.indexOf("="); if (U < 0) { continue; } Q = unescape(W.substring(0, U)); V = unescape(W.substring(U + 1)); X = V; } return X || ""; } function w(U, S) { U = U + "="; var Q; if (S) { Q = S.slice(S.indexOf("?") + 1); } Q = Q || window.location.search; var T = ""; var V = Q.indexOf(U); if (V != -1) { V += U.length; var R = Q.indexOf("&", V); if (R == -1) { R = Q.length; } T = Q.substring(V, R); } return T; } function l() { var S, R, Q; if (m.flags.gotParams) { B(); o(" -- begin parseParams(), already ran once, exiting."); return; } S = location.search.substr(1).split("&"); for (Q = 0; Q < S.length; Q += 1) { R = S.split("="); if (P) { P(R); if (R === "verbose") { B(); o(" begin init()", G); o(" -- calling parseParams()"); o(" -- begin parseParams()..."); } } o(" -- parsed chunk #" + Q + " ('" + S + "')"); } if (m.override.jsonUrl) { m.buttonMapUrl = m.override.jsonUrl; o(" -- jsonOverride qparam set, changing buttonMapUrl"); } o(" -- buttonMapUrl is "); m.flags.gotParams = true; o(" -- end parseParams()..."); } function p() { var Q, R = document.querySelectorAll(".c2c-proactive-modal"); o(" -- begin prepareProactiveModal()..."); o(" -- manipulating proactive modals..."); for (Q = 0; Q < R.length; Q += 1) { if (Q === 0) { o( " " + (Q + 1) + ": moving first proactive modal to body element" ); document.querySelector("body").appendChild(R); } else { o(" " + (Q + 1) + ": removing proactive modal #" + (Q + 1)); R.parentNode.removeChild(R); } } o(" -- end prepareProactiveModal()"); } function t(Q) { if (!m.timestamp.hasOwnProperty(Q)) { m.timestamp = {}; } m.timestamp.start = new Date(); } function x(Q) { m.timestamp.stop = new Date(); } function v(T, U, Q) { var V = m.timestamp.start, S = m.timestamp.stop, R; m.timestamp.total = S - V; if (U) { U = " "; } else { U = ""; } if (Q) { for (R = 0; R < Q; R += 1) { U += " "; } } o( U + "-- " + T + " start time: " + V.toString() + " and " + V.getMilliseconds() + " milliseconds" ); o( U + "-- " + T + " stop time: " + S.toString() + " and " + S.getMilliseconds() + " milliseconds" ); o(U + "-- " + T + " total time: " + m.timestamp.total + " millisec"); } function A() { x("all"); if (m.flags.verbose) { o("-------------"); o("-- begin finish(); total execution timing info:"); v("all", "", 1); o("-- end finish()"); o("----> exiting current execution chain, need to check queue"); } } function N(Q) { return new Promise(function(S, R) { o("-------------"); o(" begin loadButtonMap()"); if (m.flags.mapperJsonLoaded) { o(" -- button mapper JSON is already loaded, done"); o(" end loadButtonMap()"); S(m); return; } t("json"); o( " -- calling ajax() to get buttonMapper.json from " + m.buttonMapUrl ); // ELOQUA MOD: wrap this ajax call as a new function, buttonMapperSuccess() that will get local JSON -- least code modification // s({url:m.buttonMapUrl,success:function(U){var T; function buttonMapperSuccess(U) { var T; x("json"); o(" -- begin callback for loadButtonMap()'s getJson()"); v("json", "2.1", 1); if (!U || typeof U !== "object") { o(" -- ERROR, buttonMap is not defined or is empty!"); o(U); o(" -- end callback for loadButtonMap()'s getJson()"); R("ERROR, buttonMap is not defined or is empty!"); } if (!U.CONFIG || typeof U.CONFIG !== "object") { o( " -- ERROR, buttonMap CONFIG is not defined or is empty!" ); o(U); o(" -- end callback for loadButtonMap()'s getJson()"); R("ERROR, buttonMap CONFIG is not defined or is empty!"); } m.envConfig = U.CONFIG; o(" -- LiveAgent config settings from JSON:", m.envConfig); o(m.envConfig); m.flags.mapperJsonLoaded = true; o(" -- getting button info from buttonMapper"); if (U) { o( " -- found an entry for calculated locale " ); T = m.locale.chosen; } else { if (m.locale.page && U) { o( " -- no entry for calculated locale " ); o(" ----> using page locale ..."); T = m.locale.page; } else { o( " -- ALERT: UC7 -- no button settings for calculated OR page locale" ); o(" ----> using 'en_US' instead"); T = "en_US"; } } m.buttonInfo = { buttonId: U, proactiveId: U, modalHeight: U || m.envConfig, modalWidth: U || m.envConfig, ecid: U.ECID, dtid: U.DTID, ccid: U.CCID, oid: U.OID }; o(" -- buttonId = "); o(" -- proactiveId = "); o(" -- modalHeight = "); o(" -- modalWidth = "); o(" -- ecid = "); o(" -- dtid = "); o(" -- ccid = "); o(" -- oid = "); o(" -- end callback for loadButtonMap()'s ajax()"); S(m); // ELOQUA MOD: call new local function, getButtonMapperData(), to supply buttonMapper values } buttonMapperSuccess(getButtonMapperData()); // },error:function(V,U,T){o(" ***ALERT***"); // o(" ***ALERT*** -- getJson() of buttonMapper FAILED - possible syntax error in "+m.buttonMapUrl+" ??"); // o(" ***ALERT*** --> statusStr: "+U); // o(" ***ALERT*** --> error: "+T); // o(" ***ALERT*** --> Try checking the JSON by pasting it into http://jsonlint.com/"); // o(" ***ALERT***"); // R(T) // }}); o( " ----> finished calling ajax(); look for its callback to fire..." ); o(" end loadButtonMap()"); }); } function L(Q) { return new Promise(function(R, S) { o("-------------"); o(" begin loadDeploymentJS()"); if (m.flags.liveAgentJsLoaded) { o(" -- deployment js is already loaded, done"); o(" end loadDeploymentJS()"); R(m); return; } m.flags.liveAgentJsLoaded = true; o( " -- js needs to be loaded, now calling getScript(" + Q.envConfig.deployment_js + ")" ); o(" -- look for its callback to fire..."); t("deployment"); M({ url: m.envConfig.deployment_js, success: function() { x("deployment"); m.flags.liveAgentJsLoaded = true; o( " -- begin callback for loadDeployment()'s getScript(); js load timing:" ); v("deployment", "3.1", 1); if (m.flags.verbose) { o( " -- verbose is on, so calling liveagent.enableLogging()" ); liveagent.enableLogging(); } o(" -- leaving getScript callback (loadDeploymentJS)"); o(" -- end callback for loadDeployment()'s getScript()"); R(m); } }); o(" end loadDeploymentJS()"); }); } function n(R) { var Q = null; if (R && JSON) { Q = JSON.parse(localStorage.getItem("userInfoDispatcher")); if (Q && Q.profile) { Q.profile = null; localStorage.setItem("userInfoDispatcher", JSON.stringify(Q)); } } else { localStorage.removeItem("userInfoDispatcher"); } } function r(R) { var Q = document.querySelector("meta"); if (!Q) { return "unknown"; } return Q.getAttribute("content") || "unknown"; } function K(Q) { return new Promise(function(S, R) { o("-------------"); o(" begin determineAccessLevel()"); if (m.flags.accessLevelDetermined) { o( " this has already run, entitlement is " + m.entitlement + "; returning..." ); S(m); o(" end determineAccessLevel()"); return; } o(" -- calling userInfoDispatcher.getUserProfile(contactInfo)"); o(" -- look for its callback to fire..."); cdc.userInfoDispatcher.getUserProfile({ listOfDataFields: , callback: function(T) { o( " -- begin callback for userInfoDispatcher.getUserProfile()" ); o(" -- profile object:", T); o(T); if (T.contactInfo && typeof T.contactInfo === "object") { if (T.contactInfo.accesslevel === "4") { m.entitlement = "employee"; } else { m.entitlement = T.contactInfo.accesslevel; } } else { o( " -- ALERT! uid.contactInfo is undefined or not an object!" ); } if (m.override.entitlement) { o( " -- user entitlement '" + m.entitlement + "' has been overidden to '" + m.override.entitlement + "'" ); m.entitlement = m.override.entitlement; } o(" -- user entitlement is '" + m.entitlement + "'"); if (m.entitlement) { if ( m.entitlement === "employee" || m.entitlement === 4 || m.entitlement === "4" ) { o(" -- user is employee, exiting (Use Case 1)"); o( " -- " ); o( " -- end callback for userInfoDispatcher.getUserProfile()" ); R("-- user is employee, exiting (Use Case 1)"); return; } o(" -- user is NOT an employee, continuing (Use Case 2)"); } o(" -- end callback for userInfoDispatcher.getUserProfile()"); if (T.contactInfo && typeof T.contactInfo === "object") { if (T.contactInfo.accesslevel === "4") { m.entitlement = "employee"; } else { m.entitlement = T.contactInfo.accesslevel; } } else { o( " -- ALERT! uid.contactInfo is undefined or not an object!" ); } m.flags.accessLevelDetermined = true; S(m); } }); o(" end determineAccessLevel()"); }); } function g(Q) { return new Promise(function(S, R) { o("-------------"); o(" begin determineLocale()"); if (m.flags.localeDetermined) { o( " this has already run, final locale is: '" + m.locale.chosen + "'; returning..." ); S(m); o(" end determineLocale()"); return; } m.locale.country.page = r("country"); m.locale.lang.page = r("language"); m.locale.page = m.locale.lang.page + "_" + m.locale.country.page; o(" -- page locale="); m.currAuthStatus = cdc.c2c.authStatus; cdc.c2c.authStatus = "valid"; o(" -- curr authStatus is: " + m.currAuthStatus); if (m.flags.clearCache) { o(" -- UID cache before clearing:"); o(JSON.parse(localStorage.getItem("userInfoDispatcher"))); o( " -- clearing userInfoDispatcher localStorage cache before calling userInfoDispatcher.getUserProfile()" ); n(); } o(" -- calling userInfoDispatcher.getUserProfile(locale)"); o(" -- look for its callback to fire..."); cdc.userInfoDispatcher.getUserProfile({ listOfDataFields: , callback: function(T) { cdc.c2c.authStatus = m.currAuthStatus; o( " -- begin callback for userInfoDispatcher.getUserProfile()" ); o(" -- curr authStatus is: " + cdc.c2c.authStatus); o(" -- profile object:", T); o(T); if (T.locale && typeof T.locale === "object") { m.locale.lang.visitor = T.locale.language_code || ""; m.locale.country.visitor = T.locale.country_code || ""; if (T.locale.lang_unknown) { o(" -- unknown language flag set by UID"); o( " -- UID could not find a lang for '" + m.locale.country.visitor + "'" ); o( " -- UID defaulted to using '" + m.locale.lang.visitor + "'" ); } } else { o(" -- ALERT! uid.locale is undefined or not an object!"); } o(" -- user's language="); o(" -- user's country="); if (m.locale.lang.visitor && m.locale.country.visitor) { m.locale.visitor = m.locale.lang.visitor + "_" + m.locale.country.visitor; o(" -- user's locale="); o( " ----> UC4 and UC8: use visitor's locale for button lookup" ); m.locale.chosen = m.locale.visitor; } else { m.locale.visitor = ""; o(" -- cannot determine user's locale!"); o( " ----> UC3 and UC9: use page locale for button lookup" ); m.locale.chosen = m.locale.page; } if (m.override.locale) { o( " -- locale override has been triggered " ); m.locale.chosen = m.override.locale; } o(" -- final locale is: '" + m.locale.chosen + "'"); o(" -- end callback for userInfoDispatcher.getUserProfile()"); m.flags.localeDetermined = true; S(m); } }); o(" end determineLocale()"); }); } function F(Q, U, S) { var T = "data-c2c-buttonid", R; if (S === "proactive") { T = "data-c2c-proactive-buttonid"; } R = Q.getAttribute(T); if (R) { o( " --> UC5: found markup override " + S + "-id '" + R + "', overriding old id '" + U + "'" ); U = R; } if (m.override) { o( " --> found querystring override " + S + "-id '" + m.override + "', overriding old id '" + U + "'" ); U = m.override; } return U; } function f() { o(" Reading Override Values from Querystring or Cookie"); var T = ; var Q = {}; for (var R = 0; R < T.length; R++) { var S = T; var U = w(S); if (U) { y({ cookieName: S, cookieValue: U, days: 1, domain: "cisco.com" }); } else { U = J(S); } if (U) { o(" Key:" + S + " found with a value of " + U); Q = U; } else { o(" No override found for Key:" + S); } } return Q; } function E(S, R) { var Q = S; return new Promise(function(ac, X) { o(" ----"); o( " -- begin wireSingleButton() for chat node #" + (Q + 1) + ": ", R ); var V = { buttonId: F(R, m.buttonInfo.buttonId, "button"), proactiveId: F(R, m.buttonInfo.proactiveId, "proactive"), modalHeight: R.getAttribute("data-c2c-survey-height") || m.buttonInfo.modalHeight, modalWidth: R.getAttribute("data-c2c-survey-width") || m.buttonInfo.modalWidth, ecid: m.buttonInfo.ecid, dtid: m.buttonInfo.dtid, ccid: m.buttonInfo.ccid, oid: m.buttonInfo.oid }, Z = , U, Y; o(" -- buttonId is: " + V.buttonId); var aa = R.getAttribute("data-c2c-keycode"); if (aa) { V.keyCode = aa; o(" -- keyCode is: " + V.keyCode); } var T = ; for (var W = 0; W < T.length; W++) { var ab = T; aa = window.threeIdOverrideIds || R.getAttribute("data-c2c-" + ab) || V; if (aa) { V = aa; o(" -- data-c2c-" + ab + " is: " + V); } } if (m.flags.verbose) { Z.push("verbose=1"); } if (m.flags.proactiveModalWired) { o( " -- this proactive modal will not be wired, previous modal already wired" ); V.proactiveId = null; } if (V.proactiveId) { if ( location.host === "search.cisco.com" && location.pathname.match(/^\/(search|xsrch)/) ) { o( " -- proactive chat: UC10 - visit is from tools.cisco.com/search; setting proactiveId to null" ); V.proactiveId = null; } else { o(" -- proactive modal is about to be wired"); } } if (!V.buttonId.match(/,/)) { o(" -- id is not a list, proceeding."); ac(function() { m.liveAgentAdapter.setup({ chatNode: R, state: m, wireParams: V }); }); return; } o( " -- id is a list, need to find first active id via REST API" ); U = V.buttonId.split(",").pop(); o( " -- calling codeBeacon, sig=c2c.proxy.call, href=" + location.href ); cdc.debug.codeBeacon({ message: "button_id list '" + V.buttonId + "' on page '" + location.href + "'", signature: "c2c.proxy.call", warnUserInStage: false, beaconInStage: true }); if (!m.envConfig.rest_url) { o( " -- NOTICE: buttonMapper has no url value for REST Availability API" ); o(" -- using last id in list instead: " + U); ac(function() { V.buttonId = U; m.liveAgentAdapter.setup({ chatNode: R, state: m, wireParams: V }); }); return; } Y = m.envConfig.rest_url + "?" + Z.join("&"); o(" -- with these buttonIDs: " + V.buttonId); o(" -- and this url: " + Y); t("availSvc_" + W); s({ url: Y, success: function(ag, ah, af) { var ae = false, ad; x("availSvc_" + W); o( " -- begin callback for availability service; chat node #" + (W + 1) + "..." ); v("availSvc_" + W, "4.3", 1); o(" -- result is", ag); if (af && af.status === 404) { o( " -- Err: 404 Not Found, setting buttonId to final id in list: '" + U + "'" ); V.buttonId = U; } else { if (ag === "") { o( " -- Err: Body is empty; setting buttonId to final id in list: '" + U + "'" ); V.buttonId = U; } else { ag = ag.messages.message.results; o( " -- Availability portion (look for 'isAvailable' property) ", ag ); o(JSON.stringify(ag) + "\n"); for (ad = 0; ad < ag.length; ad += 1) { if (ag.isAvailable) { o( " -- found an available agent, setting buttonId to '" + ag.id + "'" ); V.buttonId = ag.id; ae = true; break; } } if (!ae) { o( " -- no active agents found, setting buttonId to final id in list: '" + U + "'" ); V.buttonId = U; } } } o( " -- prepping for later LiveAgentAdapter.setup() for chat node #" + (W + 1) + "..." ); o( " -- end callback for availability service; chat node #" + (W + 1) + "..." ); ac(function() { m.liveAgentAdapter.setup({ chatNode: R, state: m, wireParams: V }); }); }, error: function(af, ae, ad) { o( " -- in callback for availability service; chat node #" + (W + 1) + "..." ); o( " -- ERROR! " + ae + " for " + m.envConfig.rest_url + "?" + V.buttonId + ": error=", true ); o(" -- setting buttonId to final id in list: '" + U + "'"); V.buttonId = U; o( " -- end callback for availability service; chat node #" + (W + 1) + "..." ); ac(V); return V; } }); o(" -- end wireSingleButton() for chat node #" + (W + 1)); }); } function q(Q) { return new Promise(function(T, S) { var R = , U; o("-------------"); o(" begin wireButtons()"); o(" -- buttonId="); o(" -- proactiveId="); o(" -- number of chat nodes="); p(); o( " -- processing chat nodes into array of Promises that call wireSingleButton()..." ); for (U = 0; U < m.chatNodes.length; U += 1) { R.push(E(U, m.chatNodes)); } o(" -- done processing chat nodes; Promise array: =", R); o(" -- passing Promise array to Promise.all()..."); Promise.all(R) .then(function(V) { var W; o(" -- back from wireSingleButton() calls, results list: ", V); for (W = 0; W < V.length; W += 1) { o( " -- calling LiveAgentAdapter.setup() for chat node #" + (W + 1) + "..." ); V(); } A(); T(m); }) .then(null, function(V) { o( " -- back from wireSingleButton() calls, something erred: " + V ); S(V); }); o(" end wireButtons()"); }); } function j() { var U = "Debug mode is set to '" + m.debug + "'.\n", V, S, R, T; if (m.debug === "active") { o("debug=active: show active, hide inactive"); S = ""; R = "none"; U += "Normally clicking the active button would bring up the pre-chat window from SFDC"; } else { if (m.debug === "inactive") { o("debug=inactive: hide active, show inactive"); S = "none"; R = ""; U += "\nNormally clicking the inactive button would traverse a link"; } else { if (m.debug === "all") { o("debug=all: show active, show inactive"); S = ""; R = ""; } } } V = document.querySelectorAll(".c2c-active"); for (T = 0; T < V.length; T += 1) { V.style.display = S; } V = document.querySelectorAll(".c2c-inactive"); for (T = 0; T < V.length; T += 1) { V.style.display = R; } function Q(W) { return function() { alert(W); return false; }; } V = document.querySelectorAll(".c2c-button"); for (T = 0; T < V.length; T += 1) { C(V, "click", Q(U), m); } o("debug flag set, now exiting..."); } function O(Q) { return new Promise(function(S, R) { o(" -- begin prepChain()"); if (!Q) { Q = "body"; } if (m.initCounter > 25) { o(" -- recursion alert!"); R("possible infinte recursion?"); } m.initCounter += 1; t("all"); if (typeof Q === "string") { m.chatNodes = document.querySelectorAll(Q + " .c2c-component"); } else { m.chatNodes = Q.querySelectorAll(".c2c-component"); } o( " -- looking for exit conditions... (exit flag, debug flag, or no c2c components on page)" ); if (m.flags.exit) { o(" ----> 'exit' param set, exiting."); o(" -- end prepChain()"); R("-- 'exit' param set, exiting."); return; } if (!m.chatNodes.length) { o(" ----> no chat components on page, exiting."); o(" -- end prepChain()"); A(); R("-- no chat components on page, exiting."); return; } if (m.debug) { o( " ----> debug flag set ('" + m.debug + "'), skipping service call and calling loopback()" ); o(" -- end prepChain()"); j(); R("-- debug flag set, skipping service call and calling loopback()"); return; } o( " -- Found " + m.chatNodes.length + " chat components on page." ); if (!m.liveAgentAdapter) { o( " -- creating LiveAgentAdapter instance for use downstream" ); m.liveAgentAdapter = new b(o, C, J); } o( " ----> no exit conditions found, proceeding with chat setup" ); o(" -- end prepChain()"); S(m); }); } function h() { return new Promise(function(Q, R) { o("-------------"); o(" begin checkQueue()..."); if (m.initQ.length) { o( " -- execution queue has an item, calling execPromiseChain()", m.initQ ); o(" end checkQueue()"); u(m.initQ.shift()); } else { o(" -- execution queue is empty, done."); m.flags.initRunning = false; o(" end checkQueue()"); o("----> EXIT CHAT CONTROLLER"); o("============="); } Q(m); }); } function z(Q) { o("Interruption in chained Promises: ", Q); A(); h(); } function u(Q) { o(" -- begin execPromiseChain(), calling prepChain()..."); O(Q) .then(g) .then(K) .then(N) .then(L) .then(q) .then(h, z); o(" -- end execPromiseChain()"); } l(); this.chatLog = o; this.events = m.events; this.removeEvent = I; if (m.flags.test) { this.state = m; } window.threeIdOverrideIds = f(); o(" -- setting .c2c-active nodes to display=none for selector: ", G); var H, D; if (typeof G !== "string") { D = G.querySelectorAll(".c2c-active"); } else { D = document.querySelectorAll(G + " .c2c-active"); } for (H = 0; H < D.length; H += 1) { D.style.display = "none"; } if (m.flags.initRunning) { o(" -- another init is already running, adding this one to initQ"); m.initQ.push(G); } else { o(" -- this is the first init, calling execPromiseChain()"); m.flags.initRunning = true; u(G); } o(" end init()", G); } var d = null; this.init = function(f) { d = new e(f); }; this.getChatInstance = function() { return d; }; }; (function(a) { if ( document.readyState === "complete" || document.readyState === "interactive" ) { a(); } else { document.addEventListener("DOMContentLoaded", a, false); } })(function() { var d, c = document.querySelectorAll(".c2c-active"); for (d = 0; d < c.length; d += 1) { c.style.display = "none"; } var f = cdc.c2c, e = new f(); cdc.c2c.getChatState = function() { return e.getChatInstance().state; }; cdc.c2c.reinitialize = function(h) { var g, j = document.querySelectorAll(".c2c-active"); e.getChatInstance().chatLog( "reinitialize: cdc.c2c.reinitialize() called ", h ); for (g = 0; g < j.length; g += 1) { j.style.display = "none"; } e.init(h); }; function b(h, g) { g = g || "body"; e.getChatInstance().chatLog( "reinitialize: loadc2c event triggered", arguments ); e.init(g); } cdc.c2c.reload = function(h) { var j = e.getChatInstance(), g, l; j.chatLog("reload: cdc.c2c.reload() called ", h); if (typeof liveagent === "undefined") { j.chatLog(" -- liveagent code has not run, do not need sledgehammer..."); } else { j.chatLog(" -- setting .c2c-active to display=none..."); l = document.querySelectorAll(".c2c-active"); for (g = 0; g < l.length; g += 1) { l.style.display = "none"; } j.chatLog(" -- removing all event handlers set by chat controller..."); for (g = 0; g < j.events.length; g += 1) { j.removeEvent(j.events); } delete j.events; j.chatLog(" -- calling liveagent.disconnect()..."); liveagent.disconnect(); delete window.liveAgentDeployment; delete window.liveagent; j.chatLog(" -- calling cdc.c2c constructor..."); e = new f(); } j.chatLog(" -- calling cdc.c2c.init()..."); e.init(h); }; cdc.c2c.trigger = function(l, h, g) { var j; h = h || "loadC2C"; if (window.CustomEvent) { j = new CustomEvent(h, { detail: g }); } else { j = document.createEvent("CustomEvent"); j.initCustomEvent(h, true, true, g); } l.dispatchEvent(j); }; try { if (typeof document.body.attachEvent !== "undefined") { document.body.attachEvent("onloadC2C", b); } else { document.body.addEventListener("loadC2C", b); } } catch (a) { console.log("Warning: could not add onloadC2C event (" + a.message + ")"); } e.init("body"); }); function getButtonMapperData() { return { CONFIG: { cycle: "prod", deployment_id: "572340000004Cu2",deployment_js:
"https://c.la3-c2-ia2.salesforceliveagent.com/content/g/js/45.0/deployment.js", org_id: "00D300000000QUu", svc_url: "https://d.la3-c2-ia2.salesforceliveagent.com/chat", "default-survey-height": "550", "default-survey-width": "494" }, en_US: { _comment: "English / United states of america", "button-id": "5732T000000PBd9", "survey-height": "420", ECID: "19373", OID: "", DTID: "", CCID: "" }, en_CA: { _comment: "English / Canada", "button-id": "5732T000000PBd4", ECID: "19373", OID: "", DTID: "", CCID: "" }, fr_CA: { _comment: "French / Canada", "button-id": "5732T000000PBcz", ECID: "19373", OID: "", DTID: "", CCID: "" }, es_AR: { _comment: "Spanish / Argentina", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_AU: { _comment: "English / Australia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, de_AT: { _comment: "German / Austria", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, nl_BE: { _comment: "Dutch / Belgium", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_BE: { _comment: "French / Belgium", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, pt_BR: { _comment: "Portuguese / Brazil", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_CL: { _comment: "Spanish / Chile", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, zh_CN: { _comment: "Chinese / China", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_CO: { _comment: "Spanish / Colombia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_CR: { _comment: "Spanish / Costa Rica", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_CU: { _comment: "Spanish / Cuba", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, cs_CZ: { _comment: "Czech / Czech republic", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, da_DK: { _comment: "Danish / Denmark", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_DO: { _comment: "Spanish / Dominican Republic", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_EC: { _comment: "Spanish / Ecuador", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ar_EG: { _comment: "Arabic / Egypt", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_SV: { _comment: "Spanish / El Salvador", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fi_FI: { _comment: "Finnish / Finland", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_FR: { _comment: "French / France", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, de_DE: { _comment: "German / Germany", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, el_GR: { _comment: "Greek / Greece", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_GT: { _comment: "Spanish / Guatemala", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_HN: { _comment: "Spanish / Honduras", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_HK: { _comment: "English / Hong kong", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, zh_HK: { _comment: "Chinese / Hong kong", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, hu_HU: { _comment: "Hungarian / Hungary", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_IN: { _comment: "English / India", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_ID: { _comment: "English / Indonesia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_IL: { _comment: "English / Israel", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, he_IL: { _comment: "Hebrew / Israel", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, it_IT: { _comment: "Italian / Italy", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ja_JP: { _comment: "Japanese / Japan", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ko_KR: { _comment: "Korean / South korea", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_LU: { _comment: "French / Luxembourg", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_MY: { _comment: "English / Malaysia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_MX: { _comment: "Spanish / Mexico", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, nl_NL: { _comment: "Dutch / Netherlands", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_NZ: { _comment: "English / New zealand", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_NI: { _comment: "Spanish / Nicaragua", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, no_NO: { _comment: "Norwegian / Norway", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_PA: { _comment: "Spanish / Panama", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_PY: { _comment: "Spanish / Paraguay", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_PE: { _comment: "Spanish / Peru", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_PH: { _comment: "English / Philippines", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, pl_PL: { _comment: "Polish / Poland", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, pt_PT: { _comment: "Portuguese / Portugal", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_PR: { _comment: "Spanish / Puerto Rico", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ro_RO: { _comment: "Romanian / Romania", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ru_RU: { _comment: "Russian / Russia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ar_SA: { _comment: "Arabic / Saudi arabia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_SA: { _comment: "English / Saudi arabia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_SG: { _comment: "English / Singapore", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_ZA: { _comment: "English / South africa", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_ES: { _comment: "Spanish / Spain", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, sv_SE: { _comment: "Swedish / Sweden", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_CH: { _comment: "French / Switzerland", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, de_CH: { _comment: "German / Switzerland", ECID: "", OID: "", DTID: "", CCID: "" }, zh_TW: { _comment: "Chinese / Taiwan", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, th_TH: { _comment: "Thai / Thailand", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, tr_TR: { _comment: "Turkish / Turkey", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ar_AE: { _comment: "Arabic / United arab emirates", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_AE: { _comment: "English / United arab emirates", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_GB: { _comment: "English / United kingdom", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_UK: { _comment: "English / United kingdom", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ru_UA: { _comment: "Russian / Ukraine", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_UY: { _comment: "Spanish / Uruguay", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_VE: { _comment: "Spanish / Venezuela", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, vi_VN: { _comment: "Vietnamese / Vietnam", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_VN: { _comment: "Vietnamese / English", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, es_BO: { _comment: "Spanish / Bolivia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_EG: { _comment: "English / Egypt", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_EG: { _comment: "French / Egypt", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_DZ: { _comment: "French / Algeria", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fr_TN: { _comment: "French / Tunisia", "button-id": "", ECID: "959", OID: "", DTID: "", CCID: "" }, fr_MA: { _comment: "French / Morocco ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, bg_BG: { _comment: "Bulgarian / Bulgaria ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_DZ: { _comment: "English / Algeria ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_NG: { _comment: "English / Nigeria ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_TN: { _comment: "English / Tunisia ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_KE: { _comment: "English / Kenya ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, pt_AO: { _comment: "Portuguese / Angola ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, pt_MZ: { _comment: "Portuguese / Mozambique ", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, sk_SK: { _comment: "Slovak / Slovakia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, si_SI: { _comment: "Slovenian / Slovenia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, et_EE: { _comment: "Estonian / Estonia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, lt_LT: { _comment: "Lithuanian / Lithuania", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, sr_RS: { _comment: "Serbian / Serbia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, hi_IN: { _comment: "Hindi / India", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, lv_LV: { _comment: "Latvian / Latvia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, fa_IR: { _comment: "Farsi / Iran", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ar_AF: { _comment: "Arabic / Afghanistan", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, hr_HR: { _comment: "Croatian / Croatia", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, is_IS: { _comment: "Icelandic / Iceland", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, ar_YE: { _comment: "Arabic / Yemen", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_DO: { _comment: "English / Trinidad", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" }, en_TT: { _comment: "English / Tobago", "button-id": "", ECID: "", OID: "", DTID: "", CCID: "" } }; } CISCO CONSENT MANAGER Like many companies, Cisco uses cookies and other technologies, some of which are essential to make our website work. Others help us improve services and the user experience or to advertise. In using our site, you consent to the use of these cookies and other technologies.Learn more
about cookies and other technologies we use. Change your preferences{{opt_in}}
{{opt_out}}
Confirm
Chat live with a Cisco representativeCisco:
* Welcome to Cisco!
* How can I help you?* No Thanks
* Chat Now
Details
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0