1<!doctype html> 2<html lang="en"> 3<head> 4 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 8 9 <meta name="apple-itunes-app" content="app-id=424056135, app-argument=com.ontimetelecom.dialmycalls://login"/> 10 11 <title> DialMyCalls - Login</title> 12 13 <link rel="canonical" 14 href="https://www.dialmycalls.com/login"> 15 <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"> 16 17 <link rel="preconnect" href="https://fonts.googleapis.com"> 18 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 19 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"> 20 21 <link href="/dist/assets/fontawesome.min.css?id=41d394990448b2c2b1afe840e837dc8e" rel="stylesheet"> 22 <link href="/dist/assets/vendors.css?id=9981d530d3618710df86d075bf2d3360" rel="stylesheet"> 23 <link href="/dist/assets/dmc.css?id=64f3381f61771db585deef949188f32e" rel="stylesheet"> 24 25 26 27 28 29
29<script src="/js/babel-polyfill-7.8.3.min.js?1790242728"></script>
29 30 31 32 33 34
34<script src="/dist/assets/vendors.js?id=88185c5be7c1059399d921c6fd48bc73"></script>
34 35 36
37<script> 38 var timeout_until_pop = 3600; // how many seconds until notification is served 39 var timeout_popup_allowed = 60; // How many seconds until forced to logout after popup 40 var timeout_timer = null; 41 var timeout_url = "/members/v2/ajax/account.php"; 42 43 $(document).on('click keepalive', function() { 44 keepAlive(); 45 }); 46 47 var keepAlive = function() { 48 clearTimeout(timeout_timer); 49 $(".modal-inactivity").modal("hide"); 50 51 timeout_timer = setTimeout(function () { 52 53 timeout_timer = setTimeout(function () { 54 if (typeof window.dmcPostHogReset === 'function') { 55 window.dmcPostHogReset(); 56 } 57 window.location.href = '/members/v2/logout.php'; 58 }, (timeout_popup_allowed * 1000)); 59 60 $(document).one('click', function() { 61 $.post(timeout_url, {"action": "keepalive"}); 62 }); 63 64 var progress_bar = '<br/><br/><div class="progress" style="height: 1px;">' + 65 '<div class="progress-bar progress-bar-inactivity progress-bar-danger" role="progressbar" style="width:0"></div>' + 66 '</div>'; 67 setTimeout(function() { 68 $('.progress-bar-inactivity').css({ 69 transitionDuration: timeout_popup_allowed + 's', 70 width: '100%' 71 }); 72 }, 1000); 73 74 75 bootbox.dialog({ 76 message: "You are about to be logged out due to inactivity!" + progress_bar, 77 title: "Alert", 78 className: 'modal-inactivity', 79 onShow: function() { 80 console.log('Show'); 81 82 }, 83 buttons: { 84 success: { 85 label: "Don't Log Me Out!", 86 className: "btn-success", 87 } 88 } 89 }); 90 91 92 }, (timeout_until_pop * 1000)); 93 }; 94 95 $(document).ready(keepAlive); 96 97</script>
97 98 99
99<script> 100 window.ANALYTICS_DEFAULTS = { 101 environment: 'production', 102 platform: 'web', 103 schema_version: 1, 104 account_type: 'basic', 105 plan_type: 'free' 106 }; 107 </script>
107 108
108<script src="/js/analytics.enums.js"></script>
108 109
109<script src="/js/analytics.client.js"></script>
109 110 111 <meta name="csrf-token" content="b6a6669816ea2900436cfa26fa09705ee8708c8c7afbc494241d547e7f283be9"> 112</head> 113 114<body class=""> 115 116 <header class="login-layout-header"> 117 <div class="layout-logo"> 118 <a class="layout-logo__link" href="https://www.dialmycalls.com/"> 119 <img 120 class="layout-logo__image" 121 src="/dist/images/logo-dialmycalls.svg" 122 alt="DialMyCalls logo" 123 > 124 <span class="layout-logo__text"> 125 Dial<span class="color-primary">My</span>Calls </span> 126 </a> 127 </div> 128 129 <div> 130 Don't have an account? 131 <a class="inline-link" href="/signup"> 132 Sign up 133 </a> 134 </div> 135 </header> 136 137 <div class="login-layout-main"> 138 139 <section class="login-layout-content "> 140 141 142<div class="auth-box"> 143 <h1 class="auth-box__title nontwofa"> 144 Sign In 145 </h1> 146 147 <h1 class="auth-box__title twofa" style="display: none;"> 148 Verify Your Account 149 </h1> 150 151 <form 152 id="dmc-sign-in-form" 153 action="/login" 154 method="post" 155 data-url="/ajax/login" 156 data-method="POST" 157 > 158 <input type="hidden" name="action" value="login" /> 159 160 161 162 <div class="message-box-group"> 163 164<div 165 class="message-box message-box--danger dmcform noservice" 166 role="alert" 167 style="display:none;"> 168 <svg class="message-box__icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> 169 170 <div class="message-box__content"> 171 172 <div class="message-box__message"> 173 <p> 174 We're sorry but unfortunately you're unable 175 to access your DialMyCalls account at this 176 time. Our automatic security detection has flagged 177 your account which could happen for a number of 178 various reasons. 179 </p> 180 <p class="mt-5"> 181 Please contact our 182 <a class="inline-link" href="/contactus"> 183 customer support team 184 </a> 185 if you feel you've received this message 186 in error and we can see about reactivating your 187 account immediately. 188 </p> 189 <p class="mt-5"> 190 We're very sorry for any inconvenience this may have 191 caused, however we take security very seriously for 192 all of our customers safety and privacy. 193 </p> </div> 194 195 196 </div> 197 198 199 </div> 200 201<div 202 class="message-box message-box--danger dmcform captcha" 203 role="alert" 204 style="display:none;"> 205 <svg class="message-box__icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> 206 207 <div class="message-box__content"> 208 209 <div class="message-box__message"> 210 Please complete the captcha below. </div> 211 212 213 </div> 214 215 216 </div> 217 218<div 219 class="message-box message-box--danger dmcform invalid" 220 role="alert" 221 style="display:none;"> 222 <svg class="message-box__icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> 223 224 <div class="message-box__content"> 225 226 <div class="message-box__message"> 227 Invalid Email and/or Password combination. </div> 228 229 230 </div> 231 232 233 </div> 234 </div> 235 236 <div class="nontwofa mt-30"> 237 <div class="form-field"> 238 <label class="form-label" for="username"> 239 Email 240 </label> 241 242 <input 243 id="username" 244 class="form-input" 245 name="username" 246 type="email" 247 required 248 autocomplete="username" 249 /> 250 </div> 251 252 <div class="form-field"> 253 <label class="form-label" for="password"> 254 Password 255 </label> 256 257<div class="password-input"> 258 <input name="password" id ="password" class=" form-input password-input__input" required autocomplete="current-password" type="password" value="" > 259 <button 260 type="button" 261 class="password-input__button" 262 onclick="togglePasswordInput(event)" 263 aria-label="Show password" 264 aria-pressed="false" 265 aria-controls="password" 266 >
267 <span data-icon-eye-off> 268 <svg class="password-input__button-icon" aria-hidden="true" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 269<path d="M16.6085 7.51709C15.547 5.64359 13.1476 3 9.00007 3C4.85257 3 2.45318 5.64359 1.39218 7.51709C0.865778 8.44579 0.865774 9.55421 1.39168 10.4829C2.45318 12.3564 4.85257 15 9.00007 15C13.1476 15 15.547 12.3564 16.608 10.4829C17.1344 9.55471 17.1344 8.44579 16.6085 7.51709ZM9.00007 12C7.34327 12 6.00007 10.6569 6.00007 9C6.00007 7.3431 7.34327 6 9.00007 6C10.6569 6 12.0001 7.3431 12.0001 9C12.0001 10.6569 10.657 12 9.00007 12Z" fill="currentColor"/> 270<path d="M1.99999 16.75C1.80799 16.75 1.61599 16.677 1.46999 16.53C1.17699 16.237 1.17699 15.762 1.46999 15.469L15.47 1.46999C15.763 1.17699 16.238 1.17699 16.531 1.46999C16.824 1.76299 16.824 2.238 16.531 2.531L2.52999 16.53C2.38399 16.676 2.19199 16.75 1.99999 16.75Z" fill="currentColor"/> 271</svg> 272 </span> 273 <span class="hidden" data-icon-eye> 274 <svg class="password-input__button-icon" aria-hidden="true" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 275<path d="M16.6085 7.51709C15.547 5.64359 13.1476 3 9.00008 3C4.85258 3 2.45318 5.64359 1.39218 7.51709C0.865776 8.44579 0.865776 9.55421 1.39168 10.4829C2.45318 12.3564 4.85258 15 9.00008 15C13.1476 15 15.547 12.3564 16.608 10.4829C17.1344 9.55471 17.1344 8.44579 16.6085 7.51709ZM9.00008 12C7.34328 12 6.00008 10.6569 6.00008 9C6.00008 7.3431 7.34328 6 9.00008 6C10.6569 6 12.0001 7.3431 12.0001 9C12.0001 10.6569 10.657 12 9.00008 12Z" fill="currentColor"/> 276</svg> 277 </span> 278 </button> 279</div>
280<script> 281 function togglePasswordInput(event) { 282 const button = event.currentTarget; 283 284 const input = document.getElementById(button.getAttribute('aria-controls')); 285 286 if (input.type === 'password') { 287 input.type = 'text'; 288 button.setAttribute('aria-pressed', 'true'); 289 button.querySelector('[data-icon-eye-off]').classList.add('hidden'); 290 button.querySelector('[data-icon-eye]').classList.remove('hidden'); 291 } else { 292 input.type = 'password'; 293 button.setAttribute('aria-pressed', 'false'); 294 button.querySelector('[data-icon-eye]').classList.add('hidden'); 295 button.querySelector('[data-icon-eye-off]').classList.remove('hidden'); 296 } 297 } 298</script>
298 </div> 299 300 <div class="form-field" data-insert-captcha-before> 301 <button 302 class="button button_wide" 303 id="dmc-sign-in-form-submit-button" 304 type="submit" 305 data-testid="sign-in-button" 306 > 307 Sign In 308 </button> 309 </div> 310 311 <div class="form-field flex justify-end"> 312 <a class="inline-link" href="/forgot"> 313 Forgot your password? 314 </a> 315 </div> 316 317 <div class="form-field"> 318 <div class="flex align-center justify-center color-font-tertiary mt-30 mb-30"> 319 <span style="height:1px;width:100%;background-color:rgba(0,0,0,0.1);"></span> 320 <span class="shrink-0 pl-10 pr-10">or continue with</span> 321 <span style="height:1px;width:100%;background-color:rgba(0,0,0,0.1);"></span> 322 </div> 323 324 325 326 <div class="flex gap-10 mt-20"> 327 328 <a 329 href="/login/google?onErr=%2Flogin%3Ferror%3D%3Aerr" 330 class="button button_ghost grow" 331 > 332 <svg class="button__icon button__icon_left" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 256 262"><path fill="#4285F4" d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622l38.755 30.023l2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"/><path fill="#34A853" d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055c-34.523 0-63.824-22.773-74.269-54.25l-1.531.13l-40.298 31.187l-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"/><path fill="#FBBC05" d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82c0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782"/><path fill="#EB4335" d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0C79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"/></svg> 333 Google </a> 334 <a 335 href="/login/apple?onErr=%2Flogin%3Ferror%3D%3Aerr" 336 class="button button_ghost grow" 337 > 338 <svg class="button__icon button__icon_left" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 256 315"><path d="M213.803 167.03c.442 47.58 41.74 63.413 42.197 63.615c-.35 1.116-6.599 22.563-21.757 44.716c-13.104 19.153-26.705 38.235-48.13 38.63c-21.05.388-27.82-12.483-51.888-12.483c-24.061 0-31.582 12.088-51.51 12.871c-20.68.783-36.428-20.71-49.64-39.793c-27-39.033-47.633-110.3-19.928-158.406c13.763-23.89 38.36-39.017 65.056-39.405c20.307-.387 39.475 13.662 51.889 13.662c12.406 0 35.699-16.895 60.186-14.414c10.25.427 39.026 4.14 57.503 31.186c-1.49.923-34.335 20.044-33.978 59.822M174.24 50.199c10.98-13.29 18.369-31.79 16.353-50.199c-15.826.636-34.962 10.546-46.314 23.828c-10.173 11.763-19.082 30.589-16.678 48.633c17.64 1.365 35.66-8.964 46.64-22.262"/></svg> 339 Apple </a> 340 <a 341 href="/login/facebook?onErr=%2Flogin%3Ferror%3D%3Aerr" 342 class="button button_ghost grow" 343 > 344 <svg class="button__icon button__icon_left" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 256 256"><path fill="#1877F2" d="M256 128C256 57.308 198.692 0 128 0C57.308 0 0 57.307 0 128c0 63.888 46.808 116.843 108 126.445V165H75.5v-37H108V99.8c0-32.08 19.11-49.8 48.347-49.8C170.352 50 185 52.5 185 52.5V84h-16.14C152.958 84 148 93.867 148 103.99V128h35.5l-5.675 37H148v89.445c61.192-9.602 108-62.556 108-126.445"/><path fill="#FFF" d="m177.825 165l5.675-37H148v-24.01C148 93.866 152.959 84 168.86 84H185V52.5S170.352 50 156.347 50C127.11 50 108 67.72 108 99.8V128H75.5v37H108v89.445A128.959 128.959 0 0 0 128 256a128.9 128.9 0 0 0 20-1.555V165h29.825"/></svg> 345 Facebook </a> 346 </div> 347 </div> 348 </div> 349 350 <div class="twofa mt-30" style="display: none;"> 351 352<div 353 class="message-box message-box--info dmcform noservice 2fa mb-20" 354 role="alert" 355 > 356 <svg class="message-box__icon" version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
357 viewBox="0 0 240 240" style="enable-background:new 0 0 240 240;" xml:space="preserve" 358 fill="currentColor"> 359<g> 360 <path d="M120.08,10C181.04,10.01,230.02,59.23,230,120.46c-0.02,60.57-49.37,109.56-110.33,109.54 361 C58.83,229.98,9.96,180.65,10,119.29C10.04,59.06,59.46,9.99,120.08,10z M210,120.19c0.03-49.6-40.29-90.15-89.68-90.19 362 C70.66,29.96,30.06,70.22,30,119.56c-0.06,49.92,40.22,90.43,89.93,90.44C169.49,210.01,209.97,169.64,210,120.19z"/> 363 <path d="M110,139.75c0-6.33-0.07-12.66,0.02-19c0.09-6.43,4.17-10.75,9.98-10.75c5.82,0,9.94,4.31,9.97,10.75 364 c0.08,12.83,0.08,25.66,0,38.49c-0.04,6.43-4.16,10.75-9.98,10.75c-5.82,0-9.9-4.31-9.98-10.75 365 C109.94,152.75,110,146.25,110,139.75z"/> 366 <path d="M130,79.95c0.02,5.78-4.29,10.09-10.02,10.04c-5.66-0.05-10.08-4.57-9.96-10.19c0.11-5.42,4.41-9.69,9.87-9.79 367 C125.61,69.9,129.98,74.2,130,79.95z"/> 368</g> 369</svg> 370 371 <div class="message-box__content"> 372 373 <div class="message-box__message"> 374 375 For added security, we require Two-Factor Authentication 376 (2FA) to protect your account. Please enter the code 377 you received at your e-mail address. 378 </div> 379 380 381 </div> 382 383 384 </div> 385 386 <div class="form-field"> 387 <label class="form-label" for="2factorCode"> 388 Verification Code 389 </label> 390 <input 391 id="2factorCode" 392 class="form-input" 393 name="2fa" 394 type="text" 395 /> 396 </div> 397 398 <div class="form-field"> 399 <button class="button button_wide" type="submit"> 400 Verify 401 </button> 402 </div> 403 </div> 404 </form> 405</div> 406
407<script> 408 const recaptchaSiteKey = "6LePPcwgAAAAALdz50esfwhIq4B4F6H7aZZ-yTLB"; 409 410 $(document).ready(function() { 411 ajaxForms(); 412 413 var url = document.location.toString(); 414 if (url.match('#')) { 415 var rd = $('#redirectfield'); 416 rd.val(rd.val() + '#' + url.split('#')[1]); 417 } 418 }); 419 420 function ajaxForms() { 421 var recaptchaScriptRequest = null; 422 var widgetId1 = null; 423 424 function loadRecaptchaScript() { 425 if (window.grecaptcha && window.grecaptcha.enterprise) { 426 return $.Deferred().resolve().promise(); 427 } 428 429 if (recaptchaScriptRequest === null) { 430 recaptchaScriptRequest = $.ajax({ 431 url: 'https://www.google.com/recaptcha/enterprise.js?render=explicit', 432 dataType: 'script', 433 timeout: 10000 434 }) 435 .then(function() { 436 if (!window.grecaptcha || !window.grecaptcha.enterprise) { 437 return $.Deferred().reject().promise(); 438 } 439 }); 440 recaptchaScriptRequest.fail(function() { 441 recaptchaScriptRequest = null; 442 }); 443 } 444 445 return recaptchaScriptRequest; 446 } 447 448 function renderRecaptcha() { 449 if ($('#recaptcha_new').length == 0) { 450 $(` 451 <div class="form-field"> 452 <div id="recaptcha_new"></div> 453 </div> 454 `).insertBefore('[data-insert-captcha-before]'); 455 } 456 457 if (widgetId1 !== null) { 458 window.grecaptcha.enterprise.reset(widgetId1); 459 } else { 460 widgetId1 = window.grecaptcha.enterprise.render('recaptcha_new', { 461 'sitekey': recaptchaSiteKey, 462 'theme': 'light', 463 'callback': verifyCallback 464 }); 465 } 466 } 467 468 function verifyCallback(response) { 469 $.ajax({ 470 type: 'POST', 471 url: '/ajax/login/captcha', 472 data: {'token': response }, 473 dataType: 'json' 474 }); 475 } 476 477 $('#dmc-sign-in-form').on('submit', function (event) { 478 event.preventDefault(); 479 480 if (recaptchaSiteKey !== '') { 481 loadRecaptchaScript(); 482 } 483 484 const $form = $(this); 485 486 $('.dmcform', $form).hide(); 487 488 const submitButton = $('#dmc-sign-in-form-submit-button', $form); 489 submitButton.attr('disabled', 'disabled'); 490 submitButton.addClass('button_loading'); 491 492 $.ajax({ 493 type: $form.data('method'), 494 url: $form.data('url'), 495 data: $form.serialize(), 496 crossDomain: true, 497 success: function(data) { 498 submitButton.removeAttr('disabled'); 499 submitButton.removeClass('button_loading'); 500 501 let defaultErrorMessage = 'An error occurred, please try again.'; 502 503 if (typeof data.classes !== "undefined") { 504 $.each(data.classes, function(k, v) { 505 if (v == '2fa') { 506 $('.nontwofa').hide(); 507 $('.twofa').show(); 508 $('#2factorCode').val(''); 509 $('#2factorCode').focus(); 510 } 511 512 if (v == 'captcha') { 513 defaultErrorMessage = null; 514 515 if (recaptchaSiteKey === '') { 516 (bootbox ? bootbox.alert : alert)('Captcha verification is unavailable. Please try again later.'); 517 return; 518 } 519 520 loadRecaptchaScript() 521 .done(renderRecaptcha) 522 .fail(function() { 523 (bootbox ? bootbox.alert : alert)('Captcha verification could not be loaded. Please check your connection and try again.'); 524 }); 525 } 526 527 const errors = $form.find('.dmcform.' + v); 528 if (errors.length > 0) { 529 defaultErrorMessage = null; 530 errors.show(); 531 } 532 }) 533 } 534 535 if (data.status == 'error') { 536 if (data.reason == 'proxy') { 537 if (typeof window.Intercom === 'function') { 538 Intercom('trackEvent', 'proxy-disable'); 539 } 540 } 541 542 const errorMessage = data.error_message || defaultErrorMessage; 543 if(errorMessage) { 544 (bootbox ? bootbox.alert : alert)(errorMessage); 545 } 546 } else if (data.status == 'ok') { 547 if (data.redirect_url) { 548 window.location.href = data.redirect_url 549 } 550 } 551 }, 552 dataType: 'json', 553 }); 554 555 return false;
556 }); 557 } 558</script>
558 559 </section> 560 </div> 561 562 563
563<script type="text/javascript" defer src="/js/fp.js"></script>
563 564</body> 565</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.