PageSourceSearch

https://www.voipfonestatus.co.uk/history

html voipfonestatus.co.uk collected 2026-10-05 08:16:08 UTC 80,345 bytes, 1,268 lines download raw bytes

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&#39;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&nbsp;
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="{&quot;page_status&quot;:{&quot;page&quot;:{&quot;name&quot;:&quot;Voipfone&quot;,&quot;subdomain&quot;:&quot;voipfone&quot;,&quot;domain&quot;:&quot;www.voipfonestatus.co.uk&quot;,&quot;created_at&quot;:&quot;2015-09-09T11:43:29.561+01:00&quot;,&quot;updated_at&quot;:&quot;2026-10-05T08:54:50.386+01:00&quot;,&quot;url&quot;:&quot;http://www.voipfone.co.uk&quot;,&quot;hidden_from_search&quot;:false,&quot;css_body_background_color&quot;:&quot;ffffff&quot;,&quot;css_font_color&quot;:&quot;333333&quot;,&quot;css_light_font_color&quot;:&quot;AAAAAA&quot;,&quot;css_greens&quot;:&quot;2fcc66&quot;,&quot;css_yellows&quot;:&quot;f1c40f&quot;,&quot;css_oranges&quot;:&quot;e67e22&quot;,&quot;css_reds&quot;:&quot;e74c3c&quot;,&quot;allow_page_subscribers&quot;:true,&quot;allow_incident_subscribers&quot;:true,&quot;notifications_from_email&quot;:&quot;Voipfone Status \[email protected]\u003e&quot;,&quot;allow_email_subscribers&quot;:true,&quot;allow_sms_subscribers&quot;:true,&quot;twitter_username&quot;:&quot;Voipfonestatus&quot;,&quot;branding&quot;:&quot;premium&quot;,&quot;support_url&quot;:null,&quot;allow_webhook_subscribers&quot;:false,&quot;css_border_color&quot;:&quot;E0E0E0&quot;,&quot;css_graph_color&quot;:&quot;3498db&quot;,&quot;css_link_color&quot;:&quot;3498db&quot;,&quot;page_description&quot;:&quot;Welcome to \u003ca href=\&quot;http://www.voipfone.co.uk\&quot; title=\&quot;Visit our website!\&quot;\u003eVoipfone\u003c/a\u003e&#39;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=\&quot;https://x.com/voipfonestatus\&quot; title=\&quot;See our Voipfone Status X page\&quot;\u003eX\u003c/a\u003e or subscribe to updates on this page to receive notifications of any works carried out or incidents involving our network.&quot;,&quot;activity_score&quot;:544,&quot;headline&quot;:null,&quot;viewers_must_be_team_members&quot;:false,&quot;ip_filters&quot;:null,&quot;css_blues&quot;:&quot;3498DB&quot;,&quot;time_zone&quot;:&quot;London&quot;,&quot;notifications_reply_to_email&quot;:null,&quot;notifications_email_footer&quot;:&quot;You received this email because you are subscribed to Voipfone&#39;s service status notifications.&quot;,&quot;allow_rss_atom_feeds&quot;:true,&quot;black_hole&quot;:null,&quot;over_allocations_cohort&quot;:null,&quot;over_allocations_resolved_at&quot;:null,&quot;custom_components_limit&quot;:null,&quot;allow_slack_subscribers&quot;:false,&quot;css_no_data&quot;:&quot;b3bac5&quot;,&quot;deleted_at&quot;:null,&quot;allow_teams_subscription&quot;:false,&quot;max_maintenance_automation_allowed&quot;:null,&quot;custom_email_template&quot;:false,&quot;hero_cover&quot;:{&quot;updated_at&quot;:&quot;2015-09-14T10:09:47.000+00:00&quot;,&quot;original_url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-hero_covers/original/16003/G2c4voyqSRa37wPXSOry&quot;,&quot;size&quot;:35790,&quot;normal_url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-hero_covers/normal/16003/G2c4voyqSRa37wPXSOry&quot;,&quot;retina_url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-hero_covers/retina/16003/G2c4voyqSRa37wPXSOry&quot;},&quot;transactional_logo&quot;:{&quot;updated_at&quot;:&quot;2015-09-15T08:55:59.000+00:00&quot;,&quot;original_url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/original/16003/K4T8mXITQkmBLNaNJBJk&quot;,&quot;size&quot;:32747,&quot;normal_url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/normal/16003/K4T8mXITQkmBLNaNJBJk&quot;,&quot;retina_url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/retina/16003/K4T8mXITQkmBLNaNJBJk&quot;},&quot;favicon_logo&quot;:{&quot;updated_at&quot;:&quot;2015-09-09T11:00:14.000+00:00&quot;,&quot;size&quot;:1150,&quot;url&quot;:&quot;//dka575ofm4ao0.cloudfront.net/pages-favicon_logos/original/16003/uFVlAwiSTaskFLgaj06A&quot;},&quot;email_logo&quot;:{&quot;updated_at&quot;:null,&quot;original_url&quot;:&quot;&quot;,&quot;size&quot;:null,&quot;normal_url&quot;:&quot;&quot;,&quot;retina_url&quot;:&quot;&quot;},&quot;twitter_logo&quot;:{&quot;updated_at&quot;:null,&quot;size&quot;:null,&quot;url&quot;:&quot;&quot;},&quot;id&quot;:&quot;g1j7mrrz279t&quot;,&quot;organization_id&quot;:&quot;6bynt15h2z7c&quot;}},&quot;components&quot;:[{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Voice Services&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:24:48.849+01:00&quot;,&quot;updated_at&quot;:&quot;2016-09-29T10:23:09.656+01:00&quot;,&quot;position&quot;:1,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;qkvw844ykqgj&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:true,&quot;only_show_if_degraded&quot;:false,&quot;components&quot;:[&quot;czxfbk7fwcv5&quot;,&quot;ppmwxspps50q&quot;,&quot;rx2tvhdt861z&quot;,&quot;fy3g9w17y2rm&quot;,&quot;3rhs3t75tfrw&quot;,&quot;hgkjp5zymh33&quot;,&quot;3rtvhclm17qf&quot;,&quot;8cpdrlz3ln4y&quot;,&quot;mk3s9jmmw263&quot;,&quot;vx9f49ltyhw8&quot;,&quot;9xfgc7lq662h&quot;]},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Outbound UK Landline Calls&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:24:48.865+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.287+01:00&quot;,&quot;position&quot;:1,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;czxfbk7fwcv5&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Outbound UK Mobile Calls&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:25:05.452+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.325+01:00&quot;,&quot;position&quot;:2,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;
932ppmwxspps50q&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Outbound UK Non-Geographic Calls&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:25:22.164+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.374+01:00&quot;,&quot;position&quot;:3,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;rx2tvhdt861z&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Outbound International Calls&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:25:44.307+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.404+01:00&quot;,&quot;position&quot;:4,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;fy3g9w17y2rm&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Inbound Calls to UK Landline Numbers&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:26:28.035+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.419+01:00&quot;,&quot;position&quot;:5,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;3rhs3t75tfrw&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Inbound Calls to UK Non-Geographic Numbers&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:26:42.334+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.435+01:00&quot;,&quot;position&quot;:6,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;hgkjp5zymh33&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Inbound Calls to International Numbers&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:27:12.602+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.478+01:00&quot;,&quot;position&quot;:7,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;3rtvhclm17qf&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;CPS&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:27:32.399+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.506+01:00&quot;,&quot;position&quot;:8,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;8cpdrlz3ln4y&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Voipfone Softphone&quot;,&quot;created_at&quot;:&quot;2018-10-15T10:44:27.716+01:00&quot;,&quot;updated_at&quot;:&quot;2026-01-20T18:15:15.575+00:00&quot;,&quot;position&quot;:9,&quot;description&quot;:null,&quot;showcase&quot;:true,&quot;start_date&quot;:null,&quot;id&quot;:&quot;mk3s9jmmw263&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Voicemail&quot;,&quot;created_at&quot;:&quot;2018-11-12T13:47:53.610+00:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.548+01:00&quot;,&quot;position&quot;:10,&quot;description&quot;:null,&quot;showcase&quot;:true,&quot;start_date&quot;:null,&quot;id&quot;:&quot;vx9f49ltyhw8&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Conference Call&quot;,&quot;created_at&quot;:&quot;2023-12-29T14:18:12.220+00:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.563+01:00&quot;,&quot;position&quot;:11,&quot;description&quot;:null,&quot;showcase&quot;:true,&quot;start_date&quot;:&quot;2023-12-29T00:00:00.000+00:00&quot;,&quot;id&quot;:&quot;9xfgc7lq662h&quot;,&quot;group_id&quot;:&quot;qkvw844ykqgj&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Fax Services&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:28:03.844+01:00&quot;,&quot;updated_at&quot;:&quot;2016-09-29T10:23:11.534+01:00&quot;,&quot;position&quot;:2,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;dh524gth3dp0&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:true,&quot;only_show_if_degraded&quot;:false,&quot;components&quot;:[&quot;73gcnvfhdq0l&quot;,&quot;zpfls7j8gyng&quot;]},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Outbound Faxes&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:28:14.383+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.343+01:00&quot;,&quot;position&quot;:2,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;73gcnvfhdq0l&quot;,&quot;group_id&quot;:&quot;dh524gth3dp0&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Inbound Faxes&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:28:43.073+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.389+01:00&quot;,&quot;position&quot;:3,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;zpfls7j8gyng&quot;,&quot;group_id&quot;:&quot;dh524gth3dp0&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;SMS Services&quot;,&quot;created_at&quot;:&quot;2015-10-09T14:29:54.784+01:00&quot;,&quot;updated_at&quot;:&quot;2015-10-09T14:30:11.831+01:00&quot;,&quot;position&quot;:3,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;ts5dl12ykdt7&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:true,&quot;only_show_if_degraded&quot;:false,&quot;components&quot;:[&quot;2695qbg7gwcw&quot;,&quot;z3p3nlgglc9r&quot;]},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Outbound SMS&quot;,&quot;created_at&quot;:&quot;2015-10-09T14:29:54.795+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.308+01:00&quot;,&quot;position&quot;:1,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;2695qbg7gwcw&quot;,&quot;group_id&quot;:&quot;ts5dl12ykdt7&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Inbound SMS&quot;,&quot;created_at&quot;:&quot;2015-10-09T14:30:19.615+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.359+01:00&quot;,&quot;position&quot;:2,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;z3p3nlgglc9r&quot;,&quot;group_id&quot;:&quot;ts5dl12ykdt7&quot;,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Line Rental&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:29:07.012+01:00&quot;,&quot;updated_at&quot;:&quot;2025-05-29T23:37:08.864+01:00&quot;,&quot;position&quot;:4,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;tp7y6ygl3124&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Broadband&quot;,&quot;created_at&quot;:&quot;2015-09-25T16:28:57.652+01:00&quot;,&quot;updated_at&quot;:&quot;2025-05-29T23:37:08.891+01:00&quot;,&quot;position&quot;:5,&quot;description&quot;:null,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;j59vkz4f8fn5&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Billing and Payments&quot;,&quot;created_at&quot;:&quot;2024-03-21T11:20:55.029+00:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.448+01:00&quot;,&quot;position&quot;:6,&quot;description&quot;:&quot;Card Payment processing, general invoicing and credit transactions etc.&quot;,&quot;showcase&quot;:false,&quot;start_date&quot;:&quot;2024-03-21T00:00:00.000+00:00&quot;,&quot;id&quot;:&quot;wljm4jccbtb4&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Control Panel&quot;,&quot;created_at&quot;:&quot;2015-09-09T11:43:29.587+01:00&quot;,&quot;updated_at&quot;:&quot;2026-08-03T08:58:32.148+01:00&quot;,&quot;position&quot;:7,&quot;description&quot;:&quot;my.voipfone.co.uk website&quot;,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;d8sffd95b24c&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Website&quot;,&quot;created_at&quot;:&quot;2015-09-09T11:43:29.571+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.490+01:00&quot;,&quot;position&quot;:8,&quot;description&quot;:&quot;www.voipfone.co.uk website&quot;,&quot;showcase&quot;:false,&quot;start_date&quot;:null,&quot;id&quot;:&quot;j9p5m0396clb&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false},{&quot;status&quot;:&quot;operational&quot;,&quot;name&quot;:&quot;Virtual PA&quot;,&quot;created_at&quot;:&quot;2022-06-22T09:16:29.157+01:00&quot;,&quot;updated_at&quot;:&quot;2025-06-12T23:05:01.534+01:00&quot;,&quot;position&quot;:9,&quot;description&quot;:null,&quot;showcase&quot;:true,&quot;start_date&quot;:&quot;2022-06-22T00:00:00.000+01:00&quot;,&quot;id&quot;:&quot;562qvych6ft8&quot;,&quot;group_id&quot;:null,&quot;page_id&quot;:&quot;g1j7mrrz279t&quot;,&quot;group&quot;:false,&quot;only_show_if_degraded&quot;:false}],&quot;months&quot;:[{&quot;name&quot;:&quot;October&quot;,&quot;year&quot;:2026,&quot;starts_on&quot;:4,&quot;days&quot;:31,&quot;incidents&quot;:[]},{&quot;name&quot;:&quot;September&quot;,&quot;year&quot;:2026,&quot;starts_on&quot;:2,&quot;days&quot;:30,&quot;incidents&quot;:[]},{&quot;name&quot;:&quot;August&quot;,&quot;year&quot;:2026,&quot;starts_on&quot;:6,&quot;days&quot;:31,&quot;incidents&quot;:[{&quot;code&quot;:&quot;82dxrczf4vxw&quot;,&quot;name&quot;:&quot;Control Panel&quot;,&quot;message&quot;:&quot;We can confirm the incident relating to the control panel has now been resolved.\n\nWe apologise for any inconvenience this may have caused.&quot;,&quot;impact&quot;:&quot;critical&quot;,&quot;timestamp&quot;:&quot;Aug \u003cvar data-var=&#39;date&#39;\u003e3\u003c/var\u003e, \u003cvar data-var=&#39;time&#39;\u003e08:32\u003c/var\u003e - \u003cvar data-var=&#39;time&#39;\u003e11:45\u003c/var\u003e BST&quot;}]}],&quot;show_component_filter&quot;:true,&quot;show_uptime_calendar&quot;:true,&quot;component_filter&quot;:null,&quot;start_time&quot;:&quot;2026-08-01T00:00:00+01:00&quot;,&quot;end_time&quot;:&quot;2026-10-31T23:59:59+00:00&quot;,&quot;a11yHeadings&quot;: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">&larr;</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&amp;utm_content=SP-notifications&amp;utm_medium=powered-by&amp;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&amp;utm_content=SP-notifications&amp;utm_medium=powered-by&amp;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.