1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 5 <!-- force IE browsers in compatibility mode to use their most aggressive rendering engine --> 6 7 <meta charset="utf-8"> 8 <title>Voipfone Status - Incident History</title> 9 <meta name="description" content="Voipfone's Incident and Scheduled Maintenance History"> 10 11 <!-- Mobile viewport optimization --> 12 <meta name="HandheldFriendly" content="True"> 13 <meta name="MobileOptimized" content="320"> 14 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> 15 16 <!-- Time this page was rendered - http://purl.org/dc/terms/issued --> 17 <meta name="issued" content="1791188167"> 18 19 <!-- Mobile IE allows us to activate ClearType technology for smoothing fonts for easy reading --> 20 <meta http-equiv="cleartype" content="on"> 21 22 <!-- Atlassian Sans & Mono Fonts --> 23<link 24 rel="preconnect" 25 href="https://ds-cdn.prod-east.frontend.public.atl-paas.net" /> 26<link 27 rel="preload" 28 href="https://ds-cdn.prod-east.frontend.public.atl-paas.net/assets/fonts/atlassian-sans/v3/AtlassianSans-latin.woff2" 29 as="font" type="font/woff2" crossorigin /> 30<link 31 rel="preload" 32 href="https://ds-cdn.prod-east.frontend.public.atl-paas.net/assets/font-rules/v5/atlassian-fonts.css" 33 as="style" crossorigin /> 34 35 <style> 36 /* Dynamic Font Stack based on Feature Flag */ 37 /* Using Atlassian Sans & Mono */ 38 :root { 39 --font-stack-a: "Atlassian Sans", "Helvetica Neue", Helvetica, Arial, Sans-Serif; 40 --font-stack-b: "Atlassian Mono", "SFMono-Medium", "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; 41 } 42</style> 43 44 45 <link rel="icon" type="image/x-icon" href="//dka575ofm4ao0.cloudfront.net/pages-favicon_logos/original/16003/uFVlAwiSTaskFLgaj06A" /> 46 47 <link rel="shortcut icon" href='//dka575ofm4ao0.cloudfront.net/pages-favicon_logos/original/16003/uFVlAwiSTaskFLgaj06A'> 48 49 <link rel="alternate" type="application/atom+xml" href="https://www.voipfonestatus.co.uk/history.atom" title="Voipfone Status History - Atom Feed"> 50 <link rel="alternate" type="application/rss+xml" href="https://www.voipfonestatus.co.uk/history.rss" title="Voipfone Status History - RSS Feed"> 51 52 <!-- Canonical Link to ensure that only the custom domain is indexed when present --> 53 <link rel="canonical" href="https://www.voipfonestatus.co.uk/history"> 54 55 <meta name="_globalsign-domain-verification" content="y_VzfckMy4iePo5oDJNivyYIjh8LffYa4jzUndm_bZ"/> 56 57 58 <link rel="alternate" type="application/atom+xml" title="ATOM" href="https://www.voipfonestatus.co.uk/history.atom" /> 59 60 <!-- Le styles --> 61 <link rel="stylesheet" href="https://dka575ofm4ao0.cloudfront.net/packs/0.a7d86fc6a129fa9540bc.css" media="screen" /><link rel="stylesheet" href="https://dka575ofm4ao0.cloudfront.net/packs/191.a7d86fc6a129fa9540bc.css" media="screen" /><link rel="stylesheet" href="https://dka575ofm4ao0.cloudfront.net/packs/155.a7d86fc6a129fa9540bc.css" media="screen" /> 62 <link rel="stylesheet" href="https://dka575ofm4ao0.cloudfront.net/assets/status/status_manifest-e7416fcfeedbe261454d619d119599335f4c7b18c9e245c13722dbb0998dc023.css" media="all" /> 63 64
64<script src="https://dka575ofm4ao0.cloudfront.net/assets/jquery-3.5.1.min-729e416557a365062a8a20f0562f18aa171da57298005d392312670c706c68de.js"></script>
64 65 66
66<script> 67 window.pageColorData = {"blue":"#3498DB","border":"#E0E0E0","body_background":"#ffffff","font":"#333333","graph":"#3498db","green":"#2fcc66","light_font":"#AAAAAA","link":"#3498db","orange":"#e67e22","red":"#e74c3c","yellow":"#f1c40f","no_data":"#b3bac5"}; 68 </script>
68 69 <style> 70 /* BODY BACKGROUND */ /* BODY BACKGROUND */ /* BODY BACKGROUND */ /* BODY BACKGROUND */ /* BODY BACKGROUND */ 71 body, 72 .layout-content.status.status-api .section .example-container .example-opener .color-secondary, 73 .grouped-items-selector, 74 .layout-content.status.status-full-history .history-nav a.current, 75 div[id^="subscribe-modal"] .modal-footer, 76 div[id^="subscribe-modal"], 77 div[id^="updates-dropdown"] .updates-dropdown-section, 78 #uptime-tooltip .tooltip-box { 79 background-color:#ffffff; 80 } 81 82 #uptime-tooltip .pointer-container .pointer-smaller { 83 border-bottom-color:#ffffff; 84 } 85 86 87 88 89 /* PRIMARY FONT COLOR */ /* PRIMARY FONT COLOR */ /* PRIMARY FONT COLOR */ /* PRIMARY FONT COLOR */ 90 body.status, 91 .color-primary, 92 .color-primary:hover, 93 .layout-content.status-index .status-day .update-title.impact-none a, 94 .layout-content.status-index .status-day .update-title.impact-none a:hover, 95 .layout-content.status-index .timeframes-container .timeframe.active, 96 .layout-content.status-full-history .month .incident-container .impact-none, 97 .layout-content.status.status-index .incidents-list .incident-title.impact-none a, 98 .incident-history .impact-none, 99 .layout-content.status .grouped-items-selector.inline .grouped-item.active, 100 .layout-content.status.status-full-history .history-nav a.current, 101 .layout-content.status.status-full-history .history-nav a:not(.current):hover, 102 div[id^="subscribe-modal"] .modal-header .close, 103 .grouped-item-label, 104 #uptime-tooltip .tooltip-box .tooltip-content .related-events .related-event a.related-event-link { 105 color:#333333; 106 } 107 108 .layout-content.status.status-index .components-statuses .component-container .name { 109 color:#333333; 110 color:rgba(51,51,51,.8); 111 } 112 113 114 115 116 /* SECONDARY FONT COLOR */ /* SECONDARY FONT COLOR */ /* SECONDARY FONT COLOR */ /* SECONDARY FONT COLOR */ 117 small, 118 .layout-content.status .table-row .date, 119 .color-secondary, 120 .layout-content.status .grouped-items-selector.inline .grouped-item, 121 .layout-content.status.status-full-history .history-footer .pagination a.disabled, 122 .layout-content.status.status-full-history .history-nav a, 123 #uptime-tooltip .tooltip-box .tooltip-content .related-events #related-event-header { 124 color:#AAAAAA; 125 } 126 127 128 129 130 /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ 131 body.status .layout-content.status .border-color, 132 hr, 133 .tooltip-base, 134 .markdown-display table, 135 div[id^="subscribe-modal"], 136 #uptime-tooltip .tooltip-box { 137 border-color:#E0E0E0; 138 } 139 140 div[id^="subscribe-modal"] .modal-footer, 141 .markdown-display table td { 142 border-top-color:#E0E0E0; 143 } 144 145 .markdown-display table td + td, .markdown-display table th + th { 146 border-left-color:#E0E0E0; 147 } 148 149 div[id^="subscribe-modal"] .modal-header, 150 #uptime-tooltip .pointer-container .pointer-larger { 151 border-bottom-color:#E0E0E0; 152 } 153 154 #uptime-tooltip .tooltip-box .outage-field { 155 /* 156 Generate the background-color for the outage-field from the css_body_background_color and css_border_color. 157 158 For the default background (#ffffff) and default css_border_color (#e0e0e0), use the luminosity of the default background with a magic number to arrive at 159 the original outage-field background color (#f4f5f7). I used the formula Target Color = Color * alpha + Background * (1 - alpha) to find the magic number of ~0.08. 160 161 For darker css_body_background_color, luminosity values are lower so alpha trends toward becoming transparent (thus outage-field background becomes same as css_body_background_color). 162 */ 163 background-color: rgba(224,224,224,0.31); 164 165 /* 166 outage-field border-color alpha is inverse to the luminosity of css_body_background_color. 167 That is to say, with a default white background this border is transparent, but on a black background, it's opaque css_border_color. 168 */ 169 border-color: rgba(224,224,224,0.0); 170 } 171 172 173 174 175 /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ 176 .layout-content.status.status-index .status-day .update-title.impact-critical a, 177 .layout-content.status.status-index .status-day .update-title.impact-critical a:hover, 178 .layout-content.status.status-index .page-status.status-critical, 179 .layout-content.status.status-index .unresolved-incident.impact-critical .incident-title, 180 .flat-button.background-red {
181 background-color:#e74c3c; 182 } 183 184 .layout-content.status-index .components-statuses .component-container.status-red:after, 185 .layout-content.status-full-history .month .incident-container .impact-critical, 186 .layout-content.status-incident .incident-name.impact-critical, 187 .layout-content.status.status-index .incidents-list .incident-title.impact-critical a, 188 .status-red .icon-indicator, 189 .incident-history .impact-critical, 190 .components-container .component-inner-container.status-red .component-status, 191 .components-container .component-inner-container.status-red .icon-indicator { 192 color:#e74c3c; 193 } 194 195 .layout-content.status.status-index .unresolved-incident.impact-critical .updates { 196 border-color:#e74c3c; 197 } 198 199 200 201 202 /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ 203 .layout-content.status.status-index .status-day .update-title.impact-major a, 204 .layout-content.status.status-index .status-day .update-title.impact-major a:hover, 205 .layout-content.status.status-index .page-status.status-major, 206 .layout-content.status.status-index .unresolved-incident.impact-major .incident-title { 207 background-color:#e67e22; 208 } 209 210 .layout-content.status-index .components-statuses .component-container.status-orange:after, 211 .layout-content.status-full-history .month .incident-container .impact-major, 212 .layout-content.status-incident .incident-name.impact-major, 213 .layout-content.status.status-index .incidents-list .incident-title.impact-major a, 214 .status-orange .icon-indicator, 215 .incident-history .impact-major, 216 .components-container .component-inner-container.status-orange .component-status, 217 .components-container .component-inner-container.status-orange .icon-indicator { 218 color:#e67e22; 219 } 220 221 .layout-content.status.status-index .unresolved-incident.impact-major .updates { 222 border-color:#e67e22; 223 } 224 225 226 227 228 /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ 229 .layout-content.status.status-index .status-day .update-title.impact-minor a, 230 .layout-content.status.status-index .status-day .update-title.impact-minor a:hover, 231 .layout-content.status.status-index .page-status.status-minor, 232 .layout-content.status.status-index .unresolved-incident.impact-minor .incident-title, 233 .layout-content.status.status-index .scheduled-incidents-container .tab { 234 background-color:#f1c40f; 235 } 236 237 .layout-content.status-index .components-statuses .component-container.status-yellow:after, 238 .layout-content.status-full-history .month .incident-container .impact-minor, 239 .layout-content.status-incident .incident-name.impact-minor, 240 .layout-content.status.status-index .incidents-list .incident-title.impact-minor a, 241 .status-yellow .icon-indicator, 242 .incident-history .impact-minor, 243 .components-container .component-inner-container.status-yellow .component-status, 244 .components-container .component-inner-container.status-yellow .icon-indicator, 245 .layout-content.status.manage-subscriptions .confirmation-infobox .fa { 246 color:#f1c40f; 247 } 248 249 .layout-content.status.status-index .unresolved-incident.impact-minor .updates, 250 .layout-content.status.status-index .scheduled-incidents-container { 251 border-color:#f1c40f; 252 } 253 254 255 256 257 /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ 258 .layout-content.status.status-index .status-day .update-title.impact-maintenance a, 259 .layout-content.status.status-index .status-day .update-title.impact-maintenance a:hover, 260 .layout-content.status.status-index .page-status.status-maintenance, 261 .layout-content.status.status-index .unresolved-incident.impact-maintenance .incident-title, 262 .layout-content.status.status-index .scheduled-incidents-container .tab { 263 background-color:#3498DB; 264 } 265 266 .layout-content.status-index .components-statuses .component-container.status-blue:after, 267 .layout-content.status-full-history .month .incident-container .impact-maintenance, 268 .layout-content.status-incident .incident-name.impact-maintenance, 269 .layout-content.status.status-index .incidents-list .incident-title.impact-maintenance a, 270 .status-blue .icon-indicator, 271 .incident-history .impact-maintenance, 272 .components-container .component-inner-container.status-blue .component-status, 273 .components-container .component-inner-container.status-blue .icon-indicator { 274 color:#3498DB; 275 } 276 277 .layout-content.status.status-index .unresolved-incident.impact-maintenance .updates, 278 .layout-content.status.status-index .scheduled-incidents-container { 279 border-color:#3498DB; 280 } 281 282 283 284 285 /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ 286 .layout-content.status.status-index .page-status.status-none { 287 background-color:#2fcc66; 288 } 289 .layout-content.status-index .components-statuses .component-container.status-green:after, 290 .status-green .icon-indicator, 291 .components-container .component-inner-container.status-green .component-status, 292 .components-container .component-inner-container.status-green .icon-indicator { 293 color:#2fcc66; 294 } 295 296 297 298 299 /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ 300 a, 301 a:hover, 302 .layout-content.status-index .page-footer span a:hover, 303 .layout-content.status-index .timeframes-container .timeframe:not(.active):hover, 304 .layout-content.status-incident .subheader a:hover { 305 color:#3498db; 306 } 307 308 .flat-button, 309 .masthead .updates-dropdown-container .show-updates-dropdown, 310 .layout-content.status-full-history .show-filter.open { 311 background-color:#3498db; 312 } 313 314 315 316 317 /* CUSTOM COLOR OVERRIDES FOR UPTIME SHOWCASE */ 318 .components-section .components-uptime-link { 319 color: #aaaaaa; 320 } 321 322 .layout-content.status .shared-partial.uptime-90-days-wrapper .legend .legend-item { 323 color: #aaaaaa; 324 opacity: 1; 325 } 326 .layout-content.status .shared-partial.uptime-90-days-wrapper .legend .legend-item.light { 327 color: #aaaaaa; 328 opacity: 1; 329 } 330 .layout-content.status .shared-partial.uptime-90-days-wrapper .legend .spacer { 331 background: #aaaaaa; 332 opacity: 1; 333 } 334</style> 335 336 337 <!-- custom css --> 338 <link rel="stylesheet" type="text/css" href="//dka575ofm4ao0.cloudfront.net/page_display_customizations-custom_css_externals/15953/external20151019-19655-1pkdy7p.css"> 339 340 <!-- polyfills --> 341
341<script crossorigin="anonymous" src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js"></script>
341 342 343 <!-- Le HTML5 shim --> 344 <!--[if lt IE 9]> 345
345<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
345 346 <![endif]--> 347 348 <!-- injection for static --> 349 350 351 352 </head> 353 354 355 <body class="status history status-none sp-a11y-status-focus-visibility a11y-focus-indicators"> 356 357 358<div class="layout-content status status-full-history premium"> 359 360 <div class="masthead-container premium"> 361 <div class="masthead"> 362 <div class="images-container" id="cover-image-container" data-js-hook="images-container"></div> 363 <style> 364 #cover-image-container { 365 background-image:url("//dka575ofm4ao0.cloudfront.net/pages-hero_covers/normal/16003/G2c4voyqSRa37wPXSOry"); 366 } 367 368 @media only screen and (-webkit-min-device-pixel-ratio: 2), 369 only screen and (min-resolution: 192dpi) { 370 #cover-image-container { 371 background-image:url("//dka575ofm4ao0.cloudfront.net/pages-hero_covers/retina/16003/G2c4voyqSRa37wPXSOry") !important; 372 } 373 } 374 </style> 375 376 <div class="text-container"> 377 <span class="page-name font-largest"> 378 <a href="http://www.voipfone.co.uk">Voipfone</a> 379 </span> 380 381 <div class="updates-dropdown-container" data-js-hook="updates-dropdown-container"> 382 <a href="#" data-js-hook="show-updates-dropdown" id="show-updates-dropdown" class="show-updates-dropdown" aria-label="Subscribe to updates" aria-expanded="false" aria-haspopup="dialog" role="button"> 383 <span class="subscribe-text-full">Subscribe to Updates</span><span class="subscribe-text-short">Subscribe</span> 384 </a> 385 386<!-- Accessibility guidelines for tabs: https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html --> 387 <div class="updates-dropdown" data-js-hook="updates-dropdown" id="updates-dropdown" style="display:none" role="dialog" aria-modal="false" aria-label="Subscribe to updates"> 388 <div class="updates-dropdown-nav nav-items-5" role="tablist" aria-label="Subscribe to updates"> 389 <a href="#updates-dropdown-email" aria-controls="updates-dropdown-email" aria-label="Subscribe via email" role="tab" aria-selected="true" id="updates-dropdown-email-btn"> 390 <span class="icon-container email"> 391 </a> 392 <a href="#updates-dropdown-sms" aria-controls="updates-dropdown-sms" aria-label="Subscribe via SMS" role="tab" id="updates-dropdown-sms-btn"> 393 <span class="icon-container sms"> 394 </a> 395 <a href="#updates-dropdown-twitter" aria-controls="updates-dropdown-twitter" aria-label="Subscribe via twitter" role="tab" id="updates-dropdown-twitter-btn"> 396 <span class="icon-container twitter"> 397 </a> 398 <a href="#updates-dropdown-atom" aria-controls="updates-dropdown-atom" aria-label="Subscribe via RSS" role="tab" id="updates-dropdown-atom-btn"> 399 <span class="icon-container rss"> 400 </a> 401 <button data-js-hook="updates-dropdown-close" aria-label="Close subscribe form" id="updates-dropdown-close-btn"> 402 x 403 </button> 404 </div> 405 <div class="updates-dropdown-sections-container"> 406 <div class="updates-dropdown-section email" id="updates-dropdown-email" style="display:none" role="tabpanel" aria-labelledby="updates-dropdown-email-btn"> 407 <div class="directions"> 408 Get email notifications whenever Voipfone <strong>creates</strong>, <strong>updates</strong> or <strong>resolves</strong> an incident. 409 </div> 410 <form id="subscribe-form-email" action="/subscriptions/new-email" accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" name="authenticity_token" value="d736QGO2Hm9hsLwPtxO9TCXyS48t6JuhvDDqwEpZjQF0R7i_Z5TNEK8t30fYUYSwL4nzDOBeLx0wqdPMlio1dw" autocomplete="off" /> 411 <input type="hidden" name="email_otp_verify_flow" id="email_otp_verify_flow" value="false" autocomplete="off" /> 412 <!-- make sure not to put cookie values in here since this gets cached --> 413 <label for="email">Email address:</label> 414 <input name="email" id="email" type="text" class="full-width" data-js-hook="email-notification-field" autocomplete="email"> 415 <input name="email_otp_auth_token" type='hidden' id="email-
415otp-token-field"> 416 <div class="opt-container-section" id="email-otp-container", style="display:none" > 417 <label for="email-otp">Enter OTP:</label> 418 <input name="otp" id="email-otp" type="text" value="" class="prepend full-width"> 419 <p id="email-otp-timer">Resend OTP in: <span id="email-otp-countdown"></span> seconds </p> 420 <p id="resend-email-otp"> 421 Didn't receive the OTP? 422 <a href="#" id="resend-email-otp-btn" >Resend OTP </a> 423 </p> 424 </div> 425 <input type="hidden" name="captcha_error" id="captcha_error" value="false" autocomplete="off" /> 426 <input type="submit" value="Subscribe via Email" class="flat-button full-width g-recaptcha" id="subscribe-btn-email" data-disabled-text="Subscribing..." data-sitekey=6LdTS8AUAAAAAOIbCKoCAP4LQku1olYGrywPTaZz data-callback="submitNewEmailSubscriber" data-error-callback="emailSubscriberCaptchaError" > 427 <div class="terms_and_privacy_information bottom small"> This site is protected by reCAPTCHA and the Google <a target="_blank" rel="noopener" class="accessible-link" href="https://policies.google.com/privacy">Privacy Policy</a> and <a target="_blank" rel="noopener" class="accessible-link" data-js-hook="captcha-terms-of-service-link" href="https://policies.google.com/terms">Terms of Service</a> apply.</div> 428</form> </div> 429 430 <div class="updates-dropdown-section phone" id="updates-dropdown-sms" style="display:none" role="tabpanel" aria-labelledby="updates-dropdown-sms-btn"> 431 <div class="directions"> 432 Get text message notifications whenever Voipfone <strong>creates</strong> or <strong>resolves</strong> an incident. 433 </div> 434 <form id="subscribe-form-sms" action="/subscriptions/new-sms" accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" name="authenticity_token" value="F2mOEEd_MCI6r5UwFhS-ejiMOti8P0ysgI8Hi5BgO7IUk8zvQ13jXfQy9nh5VoeGMveCW3GJ-BAMFj6HTBODxA" autocomplete="off" /> 435 <input type="hidden" name="otp_verify_flow" id="otp_verify_flow" value="false" autocomplete="off" /> 436 <input type="hidden" name="subscriber_code" id="subscriber_code" value="" autocomplete="off" /> 437 <div class="control-group"> 438 <div class="controls externalities-sms-container"> 439 <!-- make sure not to put cookie values in here since this gets cached --> 440 <label for="phone-country">Country code:</label> 441 <div id="phone-number-country-code" class="phone-country-wrapper" 442 data-otp-enabled="false"> 443 <select name="phone_country" id="phone-country" data-js-hook="phone-country" class="phone-country"><option value="af" data-otp-enabled="false" >Afghanistan (+93)</option> 444<option value="al" data-otp-enabled="false" >Albania (+355)</option> 445<option value="dz" data-otp-enabled="false" >Algeria (+213)</option> 446<option value="as" data-otp-enabled="false" >American Samoa (+1)</option> 447<option value="ad" data-otp-enabled="false" >Andorra (+376)</option> 448<option value="ao" data-otp-enabled="false" >Angola (+244)</option> 449<option value="ai" data-otp-enabled="false" >Anguilla (+1)</option> 450<option value="ag" data-otp-enabled="false" >Antigua and Barbuda (+1)</option> 451<option value="ar" data-otp-enabled="false" >Argentina (+54)</option> 452<option value="am" data-otp-enabled="false" >Armenia (+374)</option> 453<option value="aw" data-otp-enabled="false" >Aruba (+297)</option> 454<option value="au" data-otp-enabled="false" >Australia/Cocos/Christmas Island (+61)</option> 455<option value="at" data-otp-enabled="false" >Austria (+43)</option> 456<option value="az" data-otp-enabled="false" >Azerbaijan (+994)</option> 457<option value="bs" data-otp-enabled="false" >Bahamas (+1)</option> 458<option value="bh" data-otp-enabled="false" >Bahrain (+973)</option> 459<option value="bd" data-otp-enabled="false" >Bangladesh (+880)</option> 460<option value="bb" data-otp-enabled="false" >Barbados (+1)</option> 461<option value="by" data-otp-enabled="false" >Belarus (+375)</option> 462<option value="be" data-otp-enabled="false" >Belgium (+32)</option> 463<option value="bz" data-otp-enabled="false" >Belize (+501)</option> 464<option value="bj" data-otp-enabled="false" >Benin (+229)</option> 465<option value="bm" data-otp-enabled="false" >Bermuda (+1)</option> 466<option value="bo" data-otp-enabled="false" >Bolivia (+591)</option> 467<option value="ba" data-otp-enabled="false" >Bosnia and Herzegovina (+387)</option> 468<option value="bw" data-otp-enabled="false" >Botswana (+267)</option> 469<option value="br" data-otp-enabled="false" >Brazil (+55)</option> 470<option value="bn" data-otp-enabled="false" >Brunei (+673)</option> 471<option value="bg" data-otp-enabled="false" >Bulgaria (+359)</option> 472<option value="bf" data-otp-enabled="false" >Burkina Faso (+226)</option> 473<option value="bi" data-otp-enabled="false" >Burundi (+257)</option> 474<option value="kh" data-otp-enabled="false" >Cambodia (+855)</option> 475<option value="cm" data-otp-enabled="false" >Cameroon (+237)</option> 476<option value="ca" data-otp-enabled="false" >Canada (+1)</option> 477<option value="cv" data-otp-enabled="false" >Cape Verde (+238)</option> 478<option value="ky" data-otp-enabled="false" >Cayman Islands (+1)</option> 479<option value="cf" data-otp-enabled="false" >Central Africa (+236)</option> 480<option value="td" data-otp-enabled="false" >Chad (+235)</option> 481<option value="cl" data-otp-enabled="false" >Chile (+56)</option> 482<option value="cn" data-otp-enabled="false" >China (+86)</option> 483<option value="co" data-otp-enabled="false" >Colombia (+57)</option> 484<option value="km" data-otp-enabled="false" >Comoros (+269)</option> 485<option value="cg" data-otp-enabled="false" >Congo (+242)</option> 486<option value="cd" data-otp-enabled="false" >Congo, Dem Rep (+243)</option> 487<option value="cr" data-otp-enabled="false" >Costa Rica (+506)</option> 488<option value="hr" data-otp-enabled="false" >Croatia (+385)</option> 489<option value="cy" data-otp-enabled="false" >Cyprus (+357)</option> 490<option value="cz" data-otp-enabled="false" >Czech Republic (+420)</option> 491<option value="dk" data-otp-enabled="false" >Denmark (+45)</option> 492<option value="dj" data-otp-enabled="false" >Djibouti (+253)</option> 493<option value="dm" data-otp-enabled="false" >Dominica (+1)</option> 494<option value="do" data-otp-enabled="false" >Dominican Republic (+1)</option> 495<option value="eg" data-otp-enabled="false" >Egypt (+20)</option> 496<option value="sv" data-otp-enabled="false" >El Salvador (+503)</option> 497<option value="gq" data-otp-enabled="false" >Equatorial Guinea (+240)</option> 498<option value="ee" data-otp-enabled="false" >Estonia (+372)</option> 499<option value="et" data-otp-enabled="false" >Ethiopia (+251)</option> 500<option value="fo" data-otp-enabled="false" >Faroe Islands (+298)</option> 501<option value="fj" data-otp-enabled="false" >Fiji (+679)</option> 502<option value="fi" data-otp-enabled="false" >Finland/Aland Islands (+358)</option> 503<option value="fr" data-otp-enabled="false" >France (+33)</option> 504<option value="gf" data-otp-enabled="false" >French Guiana (+594)</option> 505<option value="pf" data-otp-enabled="false" >French Polynesia (+689)</option> 506<option value="ga" data-otp-enabled="false" >Gabon (+241)</option> 507<option value="gm" data-otp-enabled="false" >Gambia (+220)</option> 508<option value="ge" data-otp-enabled="false" >Georgia (+995)</option> 509<option value="de" data-otp-enabled="false" >Germany (+49)</option> 510<option value="gh" data-otp-enabled="false" >Ghana (+233)</option> 511<option value="gi" data-otp-enabled="false" >Gibraltar (+350)</option> 512<option value="gr" data-otp-enabled="false" >Greece (+30)</option> 513<option value="gl" data-otp-enabled="false" >Greenland (+299)</option> 514<option value="gd" data-otp-enabled="false" >Grenada (+1)</option> 515<option value="gp" data-otp-enabled="false" >Guadeloupe (+590)</option> 516<option value="gu" data-otp-enabled="false" >
516Guam (+1)</option> 517<option value="gt" data-otp-enabled="false" >Guatemala (+502)</option> 518<option value="gn" data-otp-enabled="false" >Guinea (+224)</option> 519<option value="gy" data-otp-enabled="false" >Guyana (+592)</option> 520<option value="ht" data-otp-enabled="false" >Haiti (+509)</option> 521<option value="hn" data-otp-enabled="false" >Honduras (+504)</option> 522<option value="hk" data-otp-enabled="false" >Hong Kong (+852)</option> 523<option value="hu" data-otp-enabled="false" >Hungary (+36)</option> 524<option value="is" data-otp-enabled="false" >Iceland (+354)</option> 525<option value="in" data-otp-enabled="false" >India (+91)</option> 526<option value="id" data-otp-enabled="false" >Indonesia (+62)</option> 527<option value="iq" data-otp-enabled="false" >Iraq (+964)</option> 528<option value="ie" data-otp-enabled="false" >Ireland (+353)</option> 529<option value="il" data-otp-enabled="false" >Israel (+972)</option> 530<option value="it" data-otp-enabled="false" >Italy (+39)</option> 531<option value="jm" data-otp-enabled="false" >Jamaica (+1)</option> 532<option value="jp" data-otp-enabled="false" >Japan (+81)</option> 533<option value="jo" data-otp-enabled="false" >Jordan (+962)</option> 534<option value="ke" data-otp-enabled="false" >Kenya (+254)</option> 535<option value="kr" data-otp-enabled="false" >Korea, Republic of (+82)</option> 536<option value="xk" data-otp-enabled="false" >Kosovo (+383)</option> 537<option value="kw" data-otp-enabled="false" >Kuwait (+965)</option> 538<option value="kg" data-otp-enabled="false" >Kyrgyzstan (+996)</option> 539<option value="la" data-otp-enabled="false" >Laos (+856)</option> 540<option value="lv" data-otp-enabled="false" >Latvia (+371)</option> 541<option value="lb" data-otp-enabled="false" >Lebanon (+961)</option> 542<option value="ls" data-otp-enabled="false" >Lesotho (+266)</option> 543<option value="lr" data-otp-enabled="false" >Liberia (+231)</option> 544<option value="ly" data-otp-enabled="false" >Libya (+218)</option> 545<option value="li" data-otp-enabled="false" >Liechtenstein (+423)</option> 546<option value="lt" data-otp-enabled="false" >Lithuania (+370)</option> 547<option value="lu" data-otp-enabled="false" >Luxembourg (+352)</option> 548<option value="mo" data-otp-enabled="false" >Macao (+853)</option> 549<option value="mk" data-otp-enabled="false" >Macedonia (+389)</option> 550<option value="mg" data-otp-enabled="false" >Madagascar (+261)</option> 551<option value="mw" data-otp-enabled="false" >Malawi (+265)</option> 552<option value="my" data-otp-enabled="false" >Malaysia (+60)</option> 553<option value="mv" data-otp-enabled="false" >Maldives (+960)</option> 554<option value="ml" data-otp-enabled="false" >Mali (+223)</option> 555<option value="mt" data-otp-enabled="false" >Malta (+356)</option> 556<option value="mq" data-otp-enabled="false" >Martinique (+596)</option> 557<option value="mr" data-otp-enabled="false" >Mauritania (+222)</option> 558<option value="mu" data-otp-enabled="false" >Mauritius (+230)</option> 559<option value="mx" data-otp-enabled="false" >Mexico (+52)</option> 560<option value="mc" data-otp-enabled="false" >Monaco (+377)</option> 561<option value="mn" data-otp-enabled="false" >Mongolia (+976)</option> 562<option value="me" data-otp-enabled="false" >Montenegro (+382)</option> 563<option value="ms" data-otp-enabled="false" >Montserrat (+1)</option> 564<option value="ma" data-otp-enabled="false" >Morocco/Western Sahara (+212)</option> 565<option value="mz" data-otp-enabled="false" >Mozambique (+258)</option> 566<option value="na" data-otp-enabled="false" >Namibia (+264)</option> 567<option value="np" data-otp-enabled="false" >Nepal (+977)</option> 568<option value="nl" data-otp-enabled="false" >Netherlands (+31)</option> 569<option value="nz" data-otp-enabled="false" >New Zealand (+64)</option> 570<option value="ni" data-otp-enabled="false" >Nicaragua (+505)</option> 571<option value="ne" data-otp-enabled="false" >Niger (+227)</option> 572<option value="ng" data-otp-enabled="false" >Nigeria (+234)</option> 573<option value="no" data-otp-enabled="false" >Norway (+47)</option> 574<option value="om" data-otp-enabled="false" >Oman (+968)</option> 575<option value="pk" data-otp-enabled="false" >Pakistan (+92)</option> 576<option value="ps" data-otp-enabled="false" >Palestinian Territory (+970)</option> 577<option value="pa" data-otp-enabled="false" >Panama (+507)</option> 578<option value="py" data-otp-enabled="false" >Paraguay (+595)</option> 579<option value="pe" data-otp-enabled="false" >Peru (+51)</option> 580<option value="ph" data-otp-enabled="false" >Philippines (+63)</option> 581<option value="pl" data-otp-enabled="false" >Poland (+48)</option> 582<option value="pt" data-otp-enabled="false" >Portugal (+351)</option> 583<option value="pr" data-otp-enabled="false" >Puerto Rico (+1)</option> 584<option value="qa" data-otp-enabled="false" >Qatar (+974)</option> 585<option value="re" data-otp-enabled="false" >Reunion/Mayotte (+262)</option> 586<option value="ro" data-otp-enabled="false" >Romania (+40)</option> 587<option value="ru" data-otp-enabled="false" >Russia/Kazakhstan (+7)</option> 588<option value="rw" data-otp-enabled="false" >Rwanda (+250)</option> 589<option value="ws" data-otp-enabled="false" >Samoa (+685)</option> 590<option value="sm" data-otp-enabled="false" >San Marino (+378)</option> 591<option value="sa" data-otp-enabled="false" >Saudi Arabia (+966)</option> 592<option value="sn" data-otp-enabled="false" >Senegal (+221)</option> 593<option value="rs" data-otp-enabled="false" >Serbia (+381)</option> 594<option value="sc" data-otp-enabled="false" >Seychelles (+248)</option> 595<option value="sl" data-otp-enabled="false" >Sierra Leone (+232)</option> 596<option value="sg" data-otp-enabled="false" >Singapore (+65)</option> 597<option value="sk" data-otp-enabled="false" >Slovakia (+421)</option> 598<option value="si" data-otp-enabled="false" >Slovenia (+386)</option> 599<option value="za" data-otp-enabled="false" >South Africa (+27)</option> 600<option value="es" data-otp-enabled="false" >Spain (+34)</option> 601<option value="lk" data-otp-enabled="false" >Sri Lanka (+94)</option> 602<option value="kn" data-otp-enabled="false" >St Kitts and Nevis (+1)</option> 603<option value="lc" data-otp-enabled="false" >St Lucia (+1)</option> 604<option value="vc" data-otp-enabled="false" >St Vincent Grenadines (+1)</option> 605<option value="sd" data-otp-enabled="false" >Sudan (+249)</option> 606<option value="sr" data-otp-enabled="false" >Suriname (+597)</option> 607<option value="sz" data-otp-enabled="false" >Swaziland (+268)</option> 608<option value="se" data-otp-enabled="false" >Sweden (+46)</option> 609<option value="ch" data-otp-enabled="false" >Switzerland (+41)</option> 610<option value="tw" data-otp-enabled="false" >Taiwan (+886)</option> 611<option value="tj" data-otp-enabled="false" >Tajikistan (+992)</option> 612<option value="tz" data-otp-enabled="false" >Tanzania (+255)</option> 613<option value="th" data-otp-enabled="false" >Thailand (+66)</option> 614<option value="tg" data-otp-enabled="false" >Togo (+228)</option> 615<option value="to" data-otp-enabled="false" >Tonga (+676)</option> 616<option value="tt" data-otp-enabled="false" >Trinidad and Tobago (+1)</option> 617<option value="tn" data-otp-enabled="false" >Tunisia (+216)</option> 618<option value="tr" data-otp-enabled="false" >Turkey (+90)</option> 619<option value="tc" data-otp-enabled="false" >Turks and Caicos Islands (+1)</option> 620<option value="ug" data-otp-enabled="false" >Uganda (+256)</option> 621<option value="ua" data-otp-enabled="false" >Ukraine (+380)</option> 622<option value="ae" data-otp-enabled="false" >United Arab Emirates (+971)</option> 623<option value="gb" data-otp-enabled="false" selected>United Kingdom (+44)</option> 624<option value="us" data-otp-enabled="false" >United States (+1)</option> 625<option value="uy" data-otp-enabled="false" >Uruguay (+598)</option> 626<option value="uz" data-otp-enabled="false" >Uzbekistan (+998)</option> 627<option value="ve" data-otp-enabled="false" >Venezuela (+58)</option> 628<option value="vn" data-otp-enabled="false" >Vietnam (+84)</option> 629<option value="vg" data-otp-enabled="false" >Virgin Islands, British (+1)</option> 630<option value="vi" data-otp-enabled="false" >Virgin Islands, U.S. (+1)</option> 631<option value="ye" data-otp-enabled="false" >Yemen (+967)</option> 632<option value="zm" data-otp-enabled="false" >Zambia (+260)</option> 633<option value="zw" data-otp-enabled="false" >Zimbabwe (+263)</option></select> 634 </div> 635 <label for="phone-number">Phone number:</label> 636 <input name="phone_number" id="phone-number" type="text" class="prepend full-width" data-js-hook="sms-notification-field"> 637 <div class="sms-atl-error" id="sms-atl-error"></div> 638 <div class="clearfix"></div> 639 <div class="opt-container-section" id="otp-container" style="display:none">
640 <a href="#" id="btn-subcriber-change-number">Change number</a> 641 <label for="otp">Enter OTP:</label> 642 <input name="otp" id="otp" type="text" class="prepend full-width"> 643 <p id="timer">Resend OTP in: <span id="countdown">30</span> seconds </p> 644 <p id="resend"> 645 Didn't receive the OTP? 646 <a href="#" id="resend-otp-btn" >Resend OTP </a> 647 </p> 648 </div> 649 </div> 650 </div> 651 652 <input type="hidden" name="captcha_error" id="captcha_error" value="false" autocomplete="off" /> 653 <input type="submit" value="Subscribe via Text Message" class="flat-button full-width g-recaptcha" id="subscribe-btn-sms" data-disabled-text="Subscribing..." data-sitekey=6LcH-b0UAAAAACVQtMb14LBhflMA9y0Nmu7l_W6d data-callback="submitNewSmsSubscriber" data-error-callback="smsSubscriberCaptchaError"> 654 <div class="terms_and_privacy_information bottom small">Message and data rates may apply. By subscribing you agree to the Atlassian <a target="_blank" rel="noopener" class="accessible-link" href="https://www.atlassian.com/legal/product-specific-terms#statuspage-specific-terms">Terms of Service</a>, and the Atlassian <a target="_blank" rel="noopener" class="accessible-link" href="https://www.atlassian.com/legal/privacy-policy">Privacy Policy</a>. This site is protected by reCAPTCHA and the Google <a target="_blank" rel="noopener" class="accessible-link" href="https://policies.google.com/privacy">Privacy Policy</a> and <a target="_blank" rel="noopener" class="accessible-link" data-js-hook="captcha-terms-of-service-link" href="https://policies.google.com/terms">Terms of Service</a> apply.</div> 655</form> </div> 656 657 658 659 660 <div class="updates-dropdown-section twitter" id="updates-dropdown-twitter" style="display:none" role="tabpanel" aria-labelledby="updates-dropdown-twitter-btn"> 661 <a href="https://twitter.com/Voipfonestatus" class="twitter-follow-button" data-show-count="false" data-show-screen-name="true" data-width="59px">Follow @Voipfonestatus</a> 662 or 663 <a href="https://twitter.com/Voipfonestatus" target="_blank">view our profile</a>. 664 <style> 665 .twitter-follow-button { 666 margin-bottom: -6px; 667 } 668 </style> 669 670
670<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
670 671 </div> 672 673 674 <div class="updates-dropdown-section atom" id="updates-dropdown-atom" role="tabpanel" aria-labelledby="updates-dropdown-atom-btn"> 675 Get the <a href="https://www.voipfonestatus.co.uk/history.atom" target="_blank">Atom Feed</a> or <a href="https://www.voipfonestatus.co.uk/history.rss" target="_blank">RSS Feed</a>. 676 </div> 677 </div> 678 </div> 679 </div> 680
681<script> 682 $(function () { 683 const phoneNumberInput = $('#phone-number'); 684 const errorDiv = $('#sms-atl-error') 685 if(errorDiv.length){ 686 function checkSelectedCountry() { 687 const selectedCountry = $('#phone-country').val(); 688 const isOtpEnabled = $('#phone-number-country-code').attr('data-otp-enabled') === 'true'; 689 const form = document.getElementById('subscribe-form-sms'); 690 form.action = '/subscriptions/new-sms'; 691 const isOtpFlow = document.getElementById('otp_verify_flow'); 692 document.getElementById('otp-container').style.display = "none"; 693 if(false && selectedCountry === 'sg') { // Replace 'SG' with the actual value representing Singapore in your select tag 694 phoneNumberInput.prop('disabled', true); 695 errorDiv.html(`Due to new Singapore government regulations, we're currently not supporting text subscriptions in Singapore.<a href="https://community.atlassian.com/t5/Statuspage-articles/Attention-SMS-notifications-will-be-disabled-on-August-1st-2023/ba-p/2424398" target="_blank"> Learn more.</a> <br> Select another method to subscribe.`); 696 } else { 697 phoneNumberInput.prop('readonly', false); 698 errorDiv.html(''); 699 if(false){ 700 if(isOtpEnabled){ 701 document.getElementById('subscribe-btn-sms').value = "Send OTP"; 702 } 703 else { 704 isOtpFlow.value = false; 705 document.getElementById('subscribe-btn-sms').value = "Subscribe via Text Message"; 706 } 707 } 708 } 709 } 710 711 $('#phone-country').on('change', checkSelectedCountry); 712 checkSelectedCountry(); 713 } 714 }); 715 716 document.addEventListener('DOMContentLoaded', function() { 717 const dropdown = document.querySelector('#phone-number-country-code .phone-country'); 718 if (dropdown){ 719 const wrapperDiv = document.getElementById('phone-number-country-code'); 720 const selectedOption = dropdown.options[dropdown.selectedIndex]; 721 const otpEnabled = selectedOption.getAttribute('data-otp-enabled'); 722 723 wrapperDiv.setAttribute('data-otp-enabled', otpEnabled); 724 725 dropdown.addEventListener('change', function() { 726 const selectedOption = dropdown.options[dropdown.selectedIndex]; 727 const otpEnabled = selectedOption.getAttribute('data-otp-enabled'); 728 729 wrapperDiv.setAttribute('data-otp-enabled', otpEnabled); 730 }); 731 } 732 }); 733 734 var countdownTimer; 735 var resendBtn = document.getElementById('resend'); 736 var timer = document.getElementById('timer'); 737 var form = document.getElementById('subscribe-form-sms'); 738 var RESEND_TIMER = 30; 739 $(function() { 740 $('#subscribe-form-sms').on('ajax:success', function(e, data, status, xhr){ 741 const form = this; 742 const action = form.getAttribute('action'); 743 if (data.type === 'success' && data.otp_flow === true) { 744 document.getElementById('subscriber_code').value = data.subscriber_code 745 document.getElementById('otp-container').style.display = "block"; 746 $('#phone-number').prop('readonly', true); 747 var display = document.getElementById('countdown'); 748 disableResend(); 749 startTimer(RESEND_TIMER, display) 750 document.getElementById('subscribe-btn-sms').value = "Verify OTP and Subscribe"; 751 document.getElementById('otp_verify_flow').value = true; 752 form.action = '/subscriptions/verify-otp'; 753 } else if (data.type === 'success' && action.includes('verify')){ 754 document.getElementById('otp-container').style.display = "none"; 755 $('#phone-number').val('').prop('readonly', false); 756 $('#otp').val(''); 757 document.getElementById('subscribe-btn-sms').value = "Send OTP"; 758 document.getElementById('otp_verify_flow').value = false; 759 form.action = '/subscriptions/new-sms'; 760 SP.currentPage.updatesDropdown.hide(); 761 } 762 }); 763 $("#btn-subcriber-change-number").on('click', () => { 764 document.getElementById('otp-container').style.display = "none"; 765 $('#phone-number').prop('readonly', false); 766 document.getElementById('subscribe-btn-sms').value = "Send OTP"; 767 form.action = '/subscriptions/new-sms'; 768 return false 769 }) 770 $('#resend-otp-btn').on('click', function(e) { 771 e.preventDefault(); 772 let phoneNumber = $('#phone-number').val(); 773 let countryCode = $('.phone-country').val(); 774 $.ajax({ 775 type: 'POST', 776 url: "/subscriptions/new-sms", 777 data: { 778 phone_number: phoneNumber, 779 phone_country: countryCode, 780 type: 'resend' 781 }, 782 }).done(function(data) { 783 var messageOptions = (data.type !== undefined && data.type !== null) ? { cssClass: data.type } : {}; 784 HRB.utils.notify(data.text, messageOptions); 785 var display = document.getElementById('countdown'); 786 disableResend(); 787 timer.style.display = "none" 788 if (data.type === 'success') { 789 startTimer(RESEND_TIMER, display); 790 } 791 }) 792 }); 793 }) 794 795 function startTimer(duration, display){ 796 var timer = duration, seconds; 797 clearInterval(countdownTimer); 798 countdownTimer = setInterval(function () { 799 seconds = parseInt(timer % 60, 10); 800 display.textContent = seconds; 801 if(--timer < 0){ 802 enableResend(); 803 clearInterval(countdownTimer); 804 } 805 }, 1000); 806 disableResend(); 807 } 808 function enableResend(){ 809 resendBtn.style.display = "block"; 810 timer.style.display = "none" 811 } 812 function disableResend(){ 813 resendBtn.style.display = "none"; 814 timer.style.display = "block" 815 } 816 817 $(function() { 818 $('#subscribe-form-email').on('submit', function() {
819 var tokenField = document.getElementById('email-otp-token-field'); 820 if (!tokenField) { 821 return; 822 } 823 let page_code = "g1j7mrrz279t" 824 let key = keyForEmailOtpToken($('#email').val(), page_code); 825 tokenField.value = localStorage.getItem(key); 826 }); 827 }); 828 829 var emailOtpCountdownTimer; 830 var emailOtpResendBtn = document.getElementById('resend-email-otp'); 831 var emailOtpTimer = document.getElementById('email-otp-timer'); 832 var emailOtpForm = document.getElementById('subscribe-form-email'); 833 var EMAIL_OTP_RESEND_TIMER = 600; 834 $(function() { 835 $('#subscribe-form-email').on('ajax:success', function(e, data, status, xhr){ 836 const form = this; 837 const action = form.getAttribute('action'); 838 if (data.type === 'success' && data.email_otp_verify_flow === true) { 839 document.getElementById('email-otp-container').style.display = "block"; 840 var display = document.getElementById('email-otp-countdown'); 841 display.textContent = EMAIL_OTP_RESEND_TIMER; 842 disableEmailOtpResend(); 843 startEmailOtpTimer(EMAIL_OTP_RESEND_TIMER, display) 844 document.getElementById('subscribe-btn-email').value = "Verify OTP and Subscribe"; 845 document.getElementById('email_otp_verify_flow').value = true; 846 form.action = '/subscriptions/verify-email-otp'; 847 } else if (data.type === 'success' && action.includes('verify')){ 848 let email = $('#email') 849 let page_code = "g1j7mrrz279t" 850 let key = keyForEmailOtpToken(email.val(), page_code); 851 localStorage.setItem(key, data.email_otp_auth_token); 852 853 document.getElementById('email-otp-container').style.display = "none"; 854 email.val('').prop('readonly', false); 855 $('#email-otp').val(''); 856 document.getElementById('subscribe-btn-email').value = "Send OTP"; 857 document.getElementById('email_otp_verify_flow').value = false; 858 form.action = '/subscriptions/new-email'; 859 SP.currentPage.updatesDropdown.hide(); 860 } 861 }); 862 $('#resend-email-otp-btn').on('click', function(e) { 863 e.preventDefault(); 864 let email = $('#email').val(); 865 $.ajax({ 866 type: 'POST', 867 url: "/subscriptions/new-email", 868 data: { 869 email: email 870 }, 871 }).done(function(data) { 872 var messageOptions = (data.type !== undefined && data.type !== null) ? { cssClass: data.type } : {}; 873 HRB.utils.notify(data.text, messageOptions); 874 if (data.type === 'success') { 875 var display = document.getElementById('email-otp-countdown'); 876 display.textContent = EMAIL_OTP_RESEND_TIMER; 877 disableEmailOtpResend(); 878 emailOtpTimer.style.display = "none" 879 startEmailOtpTimer(EMAIL_OTP_RESEND_TIMER, display); 880 } 881 }) 882 }); 883 }) 884 885 function startEmailOtpTimer(duration, display){ 886 var timer = duration, seconds; 887 clearInterval(emailOtpCountdownTimer); 888 emailOtpCountdownTimer = setInterval(function () { 889 seconds = parseInt(timer, 10); 890 display.textContent = seconds; 891 if(--timer < 0){ 892 enableEmailOtpResend(); 893 clearInterval(emailOtpCountdownTimer); 894 } 895 }, 1000); 896 disableEmailOtpResend(); 897 } 898 899 function enableEmailOtpResend(){ 900 emailOtpResendBtn.style.display = "block"; 901 emailOtpTimer.style.display = "none" 902 } 903 function disableEmailOtpResend(){ 904 emailOtpResendBtn.style.display = "none"; 905 emailOtpTimer.style.display = "block" 906 } 907 function keyForEmailOtpToken(email, pageCode) { 908 return email + '|' + pageCode+ '|SUBSCRIBE_VIA_EMAIL'; 909 } 910</script>
910 911 912 </div> 913 </div> 914 915</div> 916 <!-- this is outside of the .container so that the cover photo can go full width on mobile --> 917 918 919 <div class="container"> 920 <div class="history-nav border-color"> 921 <ul> 922 <li> 923 <a class="button current border-color" href="https://www.voipfonestatus.co.uk/history" aria-label="Incidents" aria-current=page>Incidents</a> 924 </li> 925 <li> 926 <a class="button border-color" href="https://www.voipfonestatus.co.uk/uptime" aria-label="Uptime" >Uptime</a> 927 </li> 928 </ul> 929</div> 930 931 932 <div data-react-class="HistoryIndex" data-react-props="{"page_status":{"page":{"name":"Voipfone","subdomain":"voipfone","domain":"www.voipfonestatus.co.uk","created_at":"2015-09-09T11:43:29.561+01:00","updated_at":"2026-10-05T08:54:50.386+01:00","url":"http://www.voipfone.co.uk","hidden_from_search":false,"css_body_background_color":"ffffff","css_font_color":"333333","css_light_font_color":"AAAAAA","css_greens":"2fcc66","css_yellows":"f1c40f","css_oranges":"e67e22","css_reds":"e74c3c","allow_page_subscribers":true,"allow_incident_subscribers":true,"notifications_from_email":"Voipfone Status \[email protected]\u003e","allow_email_subscribers":true,"allow_sms_subscribers":true,"twitter_username":"Voipfonestatus","branding":"premium","support_url":null,"allow_webhook_subscribers":false,"css_border_color":"E0E0E0","css_graph_color":"3498db","css_link_color":"3498db","page_description":"Welcome to \u003ca href=\"http://www.voipfone.co.uk\" title=\"Visit our website!\"\u003eVoipfone\u003c/a\u003e's status page. As an award-winning Internet Telephony Service Provider, we are proud to offer a reliable service to our customers. However, from time to time, we may experience issues â rest assured, our engineers will always be on top of the problem to restore functionality as quickly as possible. We are continuously improving our platform and, in order to do that, we schedule our maintenance windows outside business hours. Follow us on \u003ca href=\"https://x.com/voipfonestatus\" title=\"See our Voipfone Status X page\"\u003eX\u003c/a\u003e or subscribe to updates on this page to receive notifications of any works carried out or incidents involving our network.","activity_score":544,"headline":null,"viewers_must_be_team_members":false,"ip_filters":null,"css_blues":"3498DB","time_zone":"London","notifications_reply_to_email":null,"notifications_email_footer":"You received this email because you are subscribed to Voipfone's service status notifications.","allow_rss_atom_feeds":true,"black_hole":null,"over_allocations_cohort":null,"over_allocations_resolved_at":null,"custom_components_limit":null,"allow_slack_subscribers":false,"css_no_data":"b3bac5","deleted_at":null,"allow_teams_subscription":false,"max_maintenance_automation_allowed":null,"custom_email_template":false,"hero_cover":{"updated_at":"2015-09-14T10:09:47.000+00:00","original_url":"//dka575ofm4ao0.cloudfront.net/pages-hero_covers/original/16003/G2c4voyqSRa37wPXSOry","size":35790,"normal_url":"//dka575ofm4ao0.cloudfront.net/pages-hero_covers/normal/16003/G2c4voyqSRa37wPXSOry","retina_url":"//dka575ofm4ao0.cloudfront.net/pages-hero_covers/retina/16003/G2c4voyqSRa37wPXSOry"},"transactional_logo":{"updated_at":"2015-09-15T08:55:59.000+00:00","original_url":"//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/original/16003/K4T8mXITQkmBLNaNJBJk","size":32747,"normal_url":"//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/normal/16003/K4T8mXITQkmBLNaNJBJk","retina_url":"//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/retina/16003/K4T8mXITQkmBLNaNJBJk"},"favicon_logo":{"updated_at":"2015-09-09T11:00:14.000+00:00","size":1150,"url":"//dka575ofm4ao0.cloudfront.net/pages-favicon_logos/original/16003/uFVlAwiSTaskFLgaj06A"},"email_logo":{"updated_at":null,"original_url":"","size":null,"normal_url":"","retina_url":""},"twitter_logo":{"updated_at":null,"size":null,"url":""},"id":"g1j7mrrz279t","organization_id":"6bynt15h2z7c"}},"components":[{"status":"operational","name":"Voice Services","created_at":"2015-09-25T16:24:48.849+01:00","updated_at":"2016-09-29T10:23:09.656+01:00","position":1,"description":null,"showcase":false,"start_date":null,"id":"qkvw844ykqgj","group_id":null,"page_id":"g1j7mrrz279t","group":true,"only_show_if_degraded":false,"components":["czxfbk7fwcv5","ppmwxspps50q","rx2tvhdt861z","fy3g9w17y2rm","3rhs3t75tfrw","hgkjp5zymh33","3rtvhclm17qf","8cpdrlz3ln4y","mk3s9jmmw263","vx9f49ltyhw8","9xfgc7lq662h"]},{"status":"operational","name":"Outbound UK Landline Calls","created_at":"2015-09-25T16:24:48.865+01:00","updated_at":"2025-06-12T23:05:01.287+01:00","position":1,"description":null,"showcase":false,"start_date":null,"id":"czxfbk7fwcv5","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Outbound UK Mobile Calls","created_at":"2015-09-25T16:25:05.452+01:00","updated_at":"2025-06-12T23:05:01.325+01:00","position":2,"description":null,"showcase":false,"start_date":null,"id":"
932ppmwxspps50q","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Outbound UK Non-Geographic Calls","created_at":"2015-09-25T16:25:22.164+01:00","updated_at":"2025-06-12T23:05:01.374+01:00","position":3,"description":null,"showcase":false,"start_date":null,"id":"rx2tvhdt861z","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Outbound International Calls","created_at":"2015-09-25T16:25:44.307+01:00","updated_at":"2025-06-12T23:05:01.404+01:00","position":4,"description":null,"showcase":false,"start_date":null,"id":"fy3g9w17y2rm","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Inbound Calls to UK Landline Numbers","created_at":"2015-09-25T16:26:28.035+01:00","updated_at":"2025-06-12T23:05:01.419+01:00","position":5,"description":null,"showcase":false,"start_date":null,"id":"3rhs3t75tfrw","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Inbound Calls to UK Non-Geographic Numbers","created_at":"2015-09-25T16:26:42.334+01:00","updated_at":"2025-06-12T23:05:01.435+01:00","position":6,"description":null,"showcase":false,"start_date":null,"id":"hgkjp5zymh33","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Inbound Calls to International Numbers","created_at":"2015-09-25T16:27:12.602+01:00","updated_at":"2025-06-12T23:05:01.478+01:00","position":7,"description":null,"showcase":false,"start_date":null,"id":"3rtvhclm17qf","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"CPS","created_at":"2015-09-25T16:27:32.399+01:00","updated_at":"2025-06-12T23:05:01.506+01:00","position":8,"description":null,"showcase":false,"start_date":null,"id":"8cpdrlz3ln4y","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Voipfone Softphone","created_at":"2018-10-15T10:44:27.716+01:00","updated_at":"2026-01-20T18:15:15.575+00:00","position":9,"description":null,"showcase":true,"start_date":null,"id":"mk3s9jmmw263","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Voicemail","created_at":"2018-11-12T13:47:53.610+00:00","updated_at":"2025-06-12T23:05:01.548+01:00","position":10,"description":null,"showcase":true,"start_date":null,"id":"vx9f49ltyhw8","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Conference Call","created_at":"2023-12-29T14:18:12.220+00:00","updated_at":"2025-06-12T23:05:01.563+01:00","position":11,"description":null,"showcase":true,"start_date":"2023-12-29T00:00:00.000+00:00","id":"9xfgc7lq662h","group_id":"qkvw844ykqgj","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Fax Services","created_at":"2015-09-25T16:28:03.844+01:00","updated_at":"2016-09-29T10:23:11.534+01:00","position":2,"description":null,"showcase":false,"start_date":null,"id":"dh524gth3dp0","group_id":null,"page_id":"g1j7mrrz279t","group":true,"only_show_if_degraded":false,"components":["73gcnvfhdq0l","zpfls7j8gyng"]},{"status":"operational","name":"Outbound Faxes","created_at":"2015-09-25T16:28:14.383+01:00","updated_at":"2025-06-12T23:05:01.343+01:00","position":2,"description":null,"showcase":false,"start_date":null,"id":"73gcnvfhdq0l","group_id":"dh524gth3dp0","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Inbound Faxes","created_at":"2015-09-25T16:28:43.073+01:00","updated_at":"2025-06-12T23:05:01.389+01:00","position":3,"description":null,"showcase":false,"start_date":null,"id":"zpfls7j8gyng","group_id":"dh524gth3dp0","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"SMS Services","created_at":"2015-10-09T14:29:54.784+01:00","updated_at":"2015-10-09T14:30:11.831+01:00","position":3,"description":null,"showcase":false,"start_date":null,"id":"ts5dl12ykdt7","group_id":null,"page_id":"g1j7mrrz279t","group":true,"only_show_if_degraded":false,"components":["2695qbg7gwcw","z3p3nlgglc9r"]},{"status":"operational","name":"Outbound SMS","created_at":"2015-10-09T14:29:54.795+01:00","updated_at":"2025-06-12T23:05:01.308+01:00","position":1,"description":null,"showcase":false,"start_date":null,"id":"2695qbg7gwcw","group_id":"ts5dl12ykdt7","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Inbound SMS","created_at":"2015-10-09T14:30:19.615+01:00","updated_at":"2025-06-12T23:05:01.359+01:00","position":2,"description":null,"showcase":false,"start_date":null,"id":"z3p3nlgglc9r","group_id":"ts5dl12ykdt7","page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Line Rental","created_at":"2015-09-25T16:29:07.012+01:00","updated_at":"2025-05-29T23:37:08.864+01:00","position":4,"description":null,"showcase":false,"start_date":null,"id":"tp7y6ygl3124","group_id":null,"page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Broadband","created_at":"2015-09-25T16:28:57.652+01:00","updated_at":"2025-05-29T23:37:08.891+01:00","position":5,"description":null,"showcase":false,"start_date":null,"id":"j59vkz4f8fn5","group_id":null,"page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Billing and Payments","created_at":"2024-03-21T11:20:55.029+00:00","updated_at":"2025-06-12T23:05:01.448+01:00","position":6,"description":"Card Payment processing, general invoicing and credit transactions etc.","showcase":false,"start_date":"2024-03-21T00:00:00.000+00:00","id":"wljm4jccbtb4","group_id":null,"page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Control Panel","created_at":"2015-09-09T11:43:29.587+01:00","updated_at":"2026-08-03T08:58:32.148+01:00","position":7,"description":"my.voipfone.co.uk website","showcase":false,"start_date":null,"id":"d8sffd95b24c","group_id":null,"page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Website","created_at":"2015-09-09T11:43:29.571+01:00","updated_at":"2025-06-12T23:05:01.490+01:00","position":8,"description":"www.voipfone.co.uk website","showcase":false,"start_date":null,"id":"j9p5m0396clb","group_id":null,"page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false},{"status":"operational","name":"Virtual PA","created_at":"2022-06-22T09:16:29.157+01:00","updated_at":"2025-06-12T23:05:01.534+01:00","position":9,"description":null,"showcase":true,"start_date":"2022-06-22T00:00:00.000+01:00","id":"562qvych6ft8","group_id":null,"page_id":"g1j7mrrz279t","group":false,"only_show_if_degraded":false}],"months":[{"name":"October","year":2026,"starts_on":4,"days":31,"incidents":[]},{"name":"September","year":2026,"starts_on":2,"days":30,"incidents":[]},{"name":"August","year":2026,"starts_on":6,"days":31,"incidents":[{"code":"82dxrczf4vxw","name":"Control Panel","message":"We can confirm the incident relating to the control panel has now been resolved.\n\nWe apologise for any inconvenience this may have caused.","impact":"critical","timestamp":"Aug \u003cvar data-var='date'\u003e3\u003c/var\u003e, \u003cvar data-var='time'\u003e08:32\u003c/var\u003e - \u003cvar data-var='time'\u003e11:45\u003c/var\u003e BST"}]}],"show_component_filter":true,"show_uptime_calendar":true,"component_filter":null,"start_time":"2026-08-01T00:00:00+01:00","end_time":"2026-10-31T23:59:59+00:00","a11yHeadings":true}"></div> 933 934 <div class="page-footer border-color font-small"> 935 <a href="/" aria-label="Back to current status"> 936 <span class="current-status-arrow">←</span> Current Status 937 </a> 938 <span class="color-secondary powered-by"><a class="color-secondary" target="_blank" rel="noopener noreferrer nofollow" href="https://www.atlassian.com/software/statuspage?utm_campaign=www.voipfonestatus.co.uk&utm_content=SP-notifications&utm_medium=powered-by&utm_source=inapp">Powered by Atlassian Statuspage</a></span> 939</div> 940 941 </div> 942 943 944 945</div> 946 947 948
948<script src="https://dka575ofm4ao0.cloudfront.net/assets/status_manifest-b790849ccb41192b3f7d9c14d5a4a6d5142add81fc8522649ca5c82f6a1fbb0e.js"></script>
948 949 <div id="cpt-notification-container" role="status" aria-live="polite" aria-atomic="true"></div> 950 951 952 953 954 955 <!-- all of the content_for stuff --> 956
956<script src="https://dka575ofm4ao0.cloudfront.net/assets/register_subscription_form-589b657fec607087fc5c740c568270907310bc4f6aaa20256e70f01b103025ca.js"></script>
956 957 958
958<script type="text/javascript"> 959 $(function() { 960 SP.currentPage.registerSubscriptionForm('email'); 961 962 SP.currentPage.registerSubscriptionForm('sms'); 963 964 965 }); 966 967 968 969 970 971 </script>
971 972
972<script src="https://dka575ofm4ao0.cloudfront.net/assets/status_common-a7b1e9f22a2c94a83d347ec517cabf21494ca11867ebf891f46f89c9b4101811.js"></script>
972 973 974 975 976
976<script> 977 /** INITIALIZATION **/ 978 var recaptchaIds = {} 979 980 // Unfortunately there's no unique selectors on the parent divs that recaptcha adds. The first unique selector 981 // is the iframe rendered 2 levels deep. So this waits until the iframes are added to the page, then finds 982 // the parent div and sets the z index so that it'll render above our modals & dropdowns from the start. 983 function setZIndex(captchaCount, startTime) { 984 // bail after 10s just in case so we don't do this forever if something whaky happens 985 if (new Date() - startTime > 10000) { 986 return; 987 } 988 989 var iframes = document.querySelectorAll('iframe[title="recaptcha challenge"]'); 990 if (iframes.length != captchaCount) { 991 setTimeout(function() { 992 setZIndex(captchaCount, startTime); 993 }, 500); 994 } 995 996 for (var i = 0; i < iframes.length; i++) { 997 // incident subscribe modal is 1050, so this has to be above that 998 iframes[i].parentElement.parentElement.style.zIndex = "1100"; 999 } 1000 } 1001 1002 function updateCaptchaIframeTitle(captchaCount, startTime, updates=0) { 1003 1004 if (new Date() - startTime > 10000 || captchaCount === updates) { 1005 return; 1006 } 1007 var iframesWithTitle = document.querySelectorAll('iframe[title="recaptcha challenge expires in two minutes"]'); 1008 1009 if (iframesWithTitle.length != captchaCount) { 1010 setTimeout(function() { 1011 updateCaptchaIframeTitle(captchaCount, startTime, iframesWithTitle.length + updates); 1012 }, 500); 1013 } 1014 1015 for (var i = 0; i < iframesWithTitle.length; i++) { 1016 iframesWithTitle[i].title = "recaptcha"; 1017 } 1018 } 1019 1020 function addIncidentCaptcha() { 1021 var incidentCaptcha = document.createElement('div'); 1022 incidentCaptcha.setAttribute('id', 'subscribe-incident-recaptcha'); 1023 incidentCaptcha.setAttribute('class', 'g-recaptcha'); 1024 incidentCaptcha.setAttribute('data-sitekey', '6LcZ-b0UAAAAAENi956aWzynTT2ZJ80dGU3F80Op'); 1025 incidentCaptcha.setAttribute('data-callback', 'submitIncidentSubscriberSuccess'); 1026 incidentCaptcha.setAttribute('data-error-callback', 'submitIncidentSubscriberError'); 1027 incidentCaptcha.setAttribute('data-size', 'invisible'); 1028 document.body.appendChild(incidentCaptcha); 1029 var incidentCode = document.createElement('input'); 1030 incidentCode.setAttribute('type', 'hidden'); 1031 incidentCode.setAttribute('id', 'submit_incident_code'); 1032 document.body.appendChild(incidentCode); 1033 } 1034 1035 var onloadCallback = function() { 1036 // if there is an incident, then add incident captcha element 1037 if (document.getElementsByClassName('modal-open-incident-subscribe').length > 0) { 1038 addIncidentCaptcha(); 1039 } 1040 1041 var captchas = document.getElementsByClassName("g-recaptcha"); 1042 1043 for(var i = 0; i < captchas.length; i++) { 1044 var elId = captchas[i].id; 1045 recaptchaIds[elId] = grecaptcha.enterprise.render(elId); 1046 } 1047 1048 setZIndex(captchas.length, new Date()); 1049 updateCaptchaIframeTitle(captchas.length, new Date()); 1050 } 1051 1052 1053 /** SUBSCRIBE DROPDOWN */ 1054 1055 // callbacks for captcha success 1056 function submitNewSubscriber(type, error) { 1057 if (error) document.querySelector('#subscribe-form-' + type + ' #captcha_error').value = 'true'; 1058 1059 document.getElementById('subscribe-form-' + type).dispatchEvent(new Event('submit', {bubbles: true, cancelable: true})); 1060 grecaptcha.enterprise.reset(recaptchaIds['subscribe-btn-' + type]); 1061 } 1062 function submitNewEmailSubscriber(token) { 1063 submitNewSubscriber('email'); 1064 } 1065 function submitNewSmsSubscriber(token) { 1066 submitNewSubscriber('sms'); 1067 } 1068 function submitNewWebhookSubscriber(token) { 1069 submitNewSubscriber('webhook'); 1070 } 1071 function submitIncidentSubscriber(token, error, incidentCodeOverride) { 1072 var incidentCode = incidentCodeOverride; 1073 if (!incidentCode) { 1074 var incidentCodeEl = document.getElementById('submit_incident_code'); 1075 incidentCode = incidentCodeEl && incidentCodeEl.value; 1076 } 1077 var incidentForm = incidentCode && document.getElementById('subscribe-form-' + incidentCode); 1078 if (!incidentForm) { 1079 return; 1080 } 1081 1082 var captchaError = incidentForm.querySelector('input[name="captcha_error"]'); 1083 var recaptchaResponse = incidentForm.querySelector('input[name="g-recaptcha-response"]'); 1084 if (captchaError) { 1085 captchaError.value = error; 1086 } 1087 if (recaptchaResponse) { 1088 recaptchaResponse.value = token; 1089 } 1090 incidentForm.dispatchEvent(new Event('submit', {bubbles: true, cancelable: true})); 1091 if (window.grecaptcha && grecaptcha.enterprise && recaptchaIds['subscribe-incident-recaptcha'] != null) { 1092 grecaptcha.enterprise.reset(recaptchaIds['subscribe-incident-recaptcha']); 1093 } 1094 } 1095 function submitIncidentSubscriberSuccess(token) { 1096 submitIncidentSubscriber(token, 'false'); 1097 } 1098 1099 // callbacks if we get captcha network errors 1100 function emailSubscriberCaptchaError(token) { 1101 submitNewSubscriber('email', true); 1102 } 1103 function smsSubscriberCaptchaError(token) { 1104 submitNewSubscriber('sms', true); 1105 } 1106 function webhookSubscriberCaptchaError(token) { 1107 submitNewSubscriber('webhook', true); 1108 } 1109 function submitIncidentSubscriberError(token) { 1110 submitIncidentSubscriber(token, 'true'); 1111 } 1112 1113 // tracking clicks 1114 ['email', 'sms', 'webhook'].forEach(function(type) { 1115 var el = document.getElementById('subscribe-btn-' + type); 1116 el && el.addEventListener("click", function() { 1117 $.ajax({ 1118 type: "POST", 1119 url: "/subscriptions/track_attempt", 1120 data: { 1121 type: type 1122 } 1123 }) 1124 }) 1125 }) 1126 1127 // form submission success callbacks 1128 $('#subscribe-form-email').on('ajax:success', function(e, data, status, xhr){ 1129 if (data.type === 'success') { 1130 SP.currentPage.updatesDropdown.hide(); 1131 var emailField = document.getElementById('email'); 1132 if (emailField) { 1133 emailField.value = ''; 1134 } 1135 } 1136 }); 1137 $('#subscribe-form-sms').on('ajax:success', function(e, data, status, xhr){ 1138 if (data.type === 'success' && data.otp_flow !== true) { 1139 SP.currentPage.updatesDropdown.hide(); 1140 var phoneField = document.getElementById('phone-number'); 1141 if (phoneField) { 1142 phoneField.value = ''; 1143 } 1144 } 1145 }); 1146 $('#subscribe-form-webhook').on('ajax:success', function(e, data, status, xhr){ 1147 if (data.type === 'success') { 1148 SP.currentPage.updatesDropdown.hide(); 1149 document.getElementById('endpoint-webhooks').value = ''; 1150 document.getElementById('email-webhooks').value = ''; 1151 } 1152 }); 1153 1154 $('a.subscribe').on('click', function() { 1155 document.body.style.overflow = "hidden"; 1156 document.body.style.height = "100vh"; 1157 }); 1158 1159 $('div.modal-open-incident-subscribe').on('hidden', function(){ 1160 document.body.style.overflow = ""; 1161 document.body.style.height = ""; 1162 }); 1163 1164 function submitCaptchaIncidentSubscribe(event) { 1165 var incidentCode = event.target.id.split('-')[2]; 1166 event.preventDefault(); 1167 1168 $.ajax({ 1169 type: "POST", 1170 url: "/subscriptions/track_attempt", 1171 data: { 1172 type: 'incident' 1173 } 1174 }) 1175 1176 var incidentCodeField = document.getElementById('submit_incident_code'); 1177 if (incidentCodeField) { 1178 incidentCodeField.value = incidentCode; 1179 } 1180 1181 // Recaptcha's onloadCallback is what creates #submit_incident_code and the 1182 // widget id. If the enterprise.js script is blocked (ad blockers, CI url 1183 // blacklist), execute() and .value on a null node throw and the subscribe 1184 // click never reaches the server. 1185 var recaptchaId = recaptchaIds['subscribe-incident-recaptcha']; 1186 if (window.grecaptcha && grecaptcha.enterprise && typeof grecaptcha.enterprise.execute === 'function' && recaptchaId != null) { 1187 grecaptcha.enterprise.execute(recaptchaId); 1188 } else { 1189 submitIncidentSubscriber('', 'true', incidentCode); 1190 } 1191 } 1192</script>
vendor: 135 bytes, lines 1192-1198
1192 1193 1194<script src='https://www.recaptcha.net/recaptcha/enterprise.js?onload=onloadCallback&render=explicit' async defer></script> 1195 1196 1197 1198
1198<script src="https://dka575ofm4ao0.cloudfront.net/packs/common-b57e85f6a60348cdd566.chunk.js"></script>
1198 1199
1199<script src="https://dka575ofm4ao0.cloudfront.net/packs/globals-79d49f8cfe179f020629.chunk.js"></script>
1199 1200 1201
1201<script src="https://dka575ofm4ao0.cloudfront.net/packs/runtime-e9fe27ac357824763c7d.js"></script>
1201 1202 1203 1204
1204<script src="https://dka575ofm4ao0.cloudfront.net/packs/status-46c9a85ee33b4106a045.chunk.js"></script>
1204 1205
1205<script src="https://dka575ofm4ao0.cloudfront.net/packs/components-95f0cadd8954a909f19d.chunk.js"></script>
1205 1206 1207 1208
1208<script> 1209 window.addEventListener('load', function () { 1210 const urlParams = new URLSearchParams(window.location.search); 1211 const messageToken = urlParams.get('slack_message_token'); 1212 const channelName = escape(urlParams.get('channel_name')); 1213 1214 if(!!messageToken) { 1215 switch(messageToken) { 1216 case 'slack_auth_error': 1217 HRB.utils.notify('The Slack authorization attempt was unsuccessful. Try again.', {cssClass:'error'}); 1218 break; 1219 case 'subscribers_disabled_error': 1220 HRB.utils.notify('Slack subscriptions are not enabled on this page.', {cssClass:'error'}); 1221 break; 1222 case 'direct_message_channel_error': 1223 HRB.utils.notify('Subscriptions arenât supported in direct messages. Try subscribing again and choose a channel instead.', {cssClass:'error'}); 1224 break 1225 case 'duplicate_error': 1226 HRB.utils.notify("You're already subscribed to get Slack notifications in that channel.", {cssClass:'error'}); 1227 break; 1228 case 'duplicate_private_channel_error': 1229 HRB.utils.notify(`You're already subscribed to get Slack notifications in #${channelName}. Invite the @Statuspage app to that channel to start getting status updates.`, {cssClass: 'error'}); 1230 break; 1231 case 'default_success': 1232 HRB.utils.notify("You're now subscribed to get Statuspage updates in Slack!", {cssClass:'success'}); 1233 break; 1234 case 'private_channel_success': 1235 HRB.utils.notify(`IMPORTANT: Invite the @Statuspage app to your Slack channel #${channelName} to start getting status updates.`, {cssClass:'success'}); 1236 break; 1237 } 1238 } 1239 }); 1240</script>
1240 1241 1242 1243<!-- FOR FLASH NOTICES --> 1244 1245<!-- FOR ERROR --> 1246 1247 1248
1248<script> 1249 $(function() { 1250 var $link = $('<span class="color-secondary powered-by"><a class="color-secondary" target="_blank" rel="noopener noreferrer nofollow" href="https://www.atlassian.com/software/statuspage?utm_campaign=www.voipfonestatus.co.uk&utm_content=SP-notifications&utm_medium=powered-by&utm_source=inapp">Powered by Atlassian Statuspage</a></span>'); 1251 1252 var setPoweredByStyles = function() { 1253 if (!$('.powered-by').length) { 1254 $link.appendTo($('.page-footer')) 1255 } 1256 $('.powered-by').attr('style', 'display: inline !important; visibility:visible !important; opacity: 1 !important; position:static !important; text-indent:0px !important; transform:scale(1) !important'); 1257 } 1258 1259 setInterval(setPoweredByStyles, 1000); 1260 }); 1261</script>
1261 1262 1263 1264 1265 1266 1267 </body> 1268</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.