3D Printers and why you need one.

I recently had the need for a wall bracket for a Sangoma S505 handset and the S300/S400 handsets.

Looking at my suppliers price list there were none in stock and at nearly £10 each this seemed like a perfect project for the newly acquired 3d printer. After a bit of design work on paper then in Tinkercad (Ill be moving on to fusion 360) it was ready to print.

I’ve put a link to download of the STL code here for S505 and here for the S300 so anyone can download and modify it, Its robust and angles the phone so that the handsets arnt knocked off easily, angling and supporting the phone. The S300 Bracket can also be used as an alternative desk base allowing the phone to sit flatter on a desk.

It is surprising how useful the 3d printer has become, and how readily available designs are. Another recent request was for an additional mount for a Ubiquiti wireless access point, We found a design on Thingiverse printed it out and sent it to the customer. Add to this all the little widgets that we have been making since getting it i’m not sure how we lived without one for so long.

I would urge any IT company to invest in a printer, The price point is now so low that you don’t need to produce many items to have it pay for itself, Just the 2 items mentioned here would have cost nearly £20 plus postage, and very little margin, They now cost £0.20 worth of filament and maybe £0.20 worth of renewable electricity.

Blog Calls and Lines Covid-19

Calls to 101 Non-Emergency number to be free from April 1st

Given the pressure on the emergency services presently, the Home Office have requested that the 101 Non-Emergency number be made free to all callers from 1st April 2020. Therefore these calls placed through our network will be free from midnight this evening.

We understand that this change is intended to be permanent, and not just for the duration of the Covid-19 emergency.

Please note that although this change will be in place from midnight tonight it may not be reflected in the ratesheet immediately .

Blog Knowledge Base

Presenting Local or national CLI from outside a country

Over the last six months an increasing number of countries will not allow internationally originated calls that are presenting a local or national CLI for the country called. 

It is believed that the reason behind this is part of a global wide crack down on fraud and nuisance calls, as some of the regulations and requirements introduced may have a more widespread impact on the CLI passed on calls.

Currently, the countries we are aware that are implementing these controls are:-

Australia – ACMA  ( Australian Communications & Media Authority ) are actively cracking down on common phone fraud, including malicious “spoofing”.

Australian networks are also trying to stamp out  “Wangiri” fraud,  where victims are called once from an international number with high premium charges for those who call back.

Canada – CRTC (Canadian Radio-television & Telecommunications Commission ) have issued a requirement for telecoms providers to implement a system to block calls within their network or offer call-filtering service.

China – China have always been very strict on caller ID, as well as not permitting internationally originated calls with a local or national CLI, they do not allow calls presented with a withheld flag. 

These calls will either present the withheld CLI or the call will fail. 

France – ARCEP ( France’s regulatory body for electronic communications, portal and print media distribution ) have issued a statement to carriers that due to in country regulations, calls sent internationally with a French CLI are not permitted.

Malaysia – we are seeing that calls may fail if a local or national CLI is presented.

Turkey – ICTA ( Information & Communication Technologies Authority ) have introduced CLI regulations which require operators to block some voice calls with CLIs that may be confused with local numbers due to the format of the number presented.

United Arab Emirates – in our experience calls may fail if a local or national CLI is presented.  In addition, the UAE are blocking calls with a Tunisian or Algerian CLI.

Blog Gateways Services

ISDN Switchoff…

With the end of ISDN looming, the switch off could affect over two million businesses in the UK which will come at a cost for those affected. For many, the cost implications to replace their entire Telphone system would simply be too much, but with Sangoma’s offering, the transition from PSTN and ISDN to VoIP can provide a long-term, cost-effective solution.

Why remove a PBX that gives you everything you need? Sangoma’s Vega Gateways provide seamless connectivity to SIP providers, with no need to change any existing hardware or to re-cable your system, these gateways are designed to migrate from PSTN to SIP with minimal downtime.

Available in a range of varieties, Sangoma Vega Gateways suit businesses of all sizes from the SME to enterprise corporations. What’s more, users can benefit from advanced functionalities such as least cost routing (selecting the cheapest route for a call) and enhanced network proxy features which can help with the failover of calls from VoIP to PSTN in the event of a loss of internet connection.

If you would like more information or advice on what is the best option for your business please call or email us. Unlike many we have ISDN simulators so that we can configure your new gateway and install it with limited disruption to your business

Blog Knowledge Base

SSL, FOP2 and All that..

There are a few common questions and gotchas when using fop2 on a FreePBX server using ssl.

The symptom is simple you cant connect and at the bottom left if tels you that it cant connect over websockets to port 4445 and will finally time out saying Flash is required.. None of this is awfully helpful to be honest.

But the fix is simple and its a shame by default its not this .

In your fop2.cfg file local the lines below and edit them so they match .

It maybe that your certificate names aren’t as below, In that case substitute webserver.XXX with the correct file names.

; If you access fop2 via https, browsers will try to use wss (Secure 
; web sockets) and for that it requires a certificate file and key file,
; the same ones you have in your web server configuration. Be sure to
; specify the correct certificates, the defaults are the ones for a 
; regular Centos installation:


Thats its. Fop2 will now work over HTTPS

Blog Knowledge Base

Recording Announcements in FreePBX 13 and later

This was recorded a while ago as an aid to a customer, Its a short video on recording prompts and then adding them to an announcment so they can be used in call flow.

Blog Handsets Products Special Offers

The Gigaset N670 IP PRO grows with the company


Professional IP DECT base station that can become a multi-cell system


The new Gigaset N670 IP PRO offers business customers performance and maximum flexibility to deal with future growth. It supports 20 users, SIP accounts and handsets, can handle eight simultaneous calls, thus enabling a broad range of uses for DECT telephony in the business arena. The base station is compatible with numerous on-premise and cloud-based telephone systems and supports all handsets from Gigaset’s Professional series. If a company’s requirements increase, for example, because it needs more extensions or its floor space expands, the N670 IP PRO can be upgraded in the future with a license to a multi-cell system1).

Modern DECT communication solutions deliver complete freedom of movement in challenging work environments, need minimum cabling, and are easy to install and maintain. As Europe’s DECT pioneer, Gigaset not only makes cordless phones for millions of households worldwide, but also professional telephone systems at its Bocholt site in North Rhine-Westphalia, Germany. The N670 IP PRO DECT base station delivers greater performance and simplifies administration. The device merely needs an Ethernet port for connectivity and supplying power, and the handsets require just one socket for the charging station – everything else works without cables.

“The N670 IP PRO embodies all the expertise we’ve amassed with professional IP DECT systems over the past years,” says Norbert Cremer, Head of Product Management Business Solutions at Gigaset. “We wanted to create an even better, more flexible and more powerful IP DECT base station, one offering the customary ease of installation, great convenience and comprehensive security. Yet the real highlight for our customers is that they can expand it into a multi-cell system with a license upgrade1).” Gigaset is positioning the N670 IP PRO between the N510 IP PRO and the N870 IP PRO multi-cell system.

From the single-cell to the multi-cell system

The N670 IP PRO is an investment in the future: If the floor space or number of users at an organization increases, the N670 IP can be expanded into a multi-cell system with an upgrade license1). Additional base stations cover multiple stories or buildings and ensure users can be reached everywhere. That makes the N670 IP PRO interesting for growing and aspiring companies in particular.

Current datasheet is here and with an RRP or £119.99+Vat this is a great alternative to the N510, Contact us for special launch pricing and Bundle packages.


0330 numbers, A simple guide

What is an 033 number?

An 033 number is a telephone number that is charged the same as the local rate when phoning from the UK. Calls to 033 numbers and 0330 telephone numbers will cost your callers the same as calls to geographic numbers (starting 01 or 02), and will be included as part of any inclusive call minutes included in your mobile or landline contract

03 Numbers can be divided into two categories

1. 030 telephone numbers (mainly 0300 numbers) which can only be used by Public Sector and Registered Charities

2. Any other 03 numbers (0330, 0333, 0345, 0370) that any company can use

What is the cost of calling a 0330 number?

One of the many questions that many people have is – how much am I going to pay to call a 0330 number? Well, that depends on a range of different matters. The main one is that the method and provider that you’re using to make the call. The use of 0330 number is regulated by Ofcom, and so is the amount that service providers are allowed to charge to call them.

Cost to call 0330 numbers from mobile

The main advantage of using a 0330 number is the cost. The number costs exactly the same as if you were calling a normal landline number to a home or business for example. Therefore you will be charged the same amount as the usual national or local numbers that start with the area codes ’02’ and ’01’. Here’s how much it costs to call from popular mobile service providers.

Mobile Operator Bundled minutes cost Outside Bundle cost
EE Free 30p/m
GiffGaff Free 10p/m
O2 Free 35p/m
Tesco Mobile Free 25p/m
Three Mobile Free 3p/m
Vodafone Free 30p/m

Cost to call 0330 numbers from landline

Another advantage of buying a business 0330 number is that if your mobile phone or landline tariff includes calls to landline telephone numbers or a monthly minutes, then 0330 numbers will be included. This means that if you use your mobile telephones monthly quota of ‘minutes’, for example, you will not be charged anything extra for making the call to a 0330 number.

It is important to point out that 0330 numbers are not the same as 0800 and 0808 freephone numbers. However, they appear to be free phone numbers to many people because they are often included as no further charges on both mobile and landline call packages.

Here’s how much it costs to call 0330 numbers from landline at peak times from your Landline.

Provider Approximate peak time charges
BT 12p/m + 21p set up charge
TalkTalk 13.5ppm
Gradwell 1.25ppm

What is the 0330 number?

Any number beginning with 03 is classed as a non-geographic number. These are charged at standard geographic rates – i.e. the same as a call to a normal landline number, or a 01/02 number. This is the rule across all suppliers, and is written into telecoms legislation – therefore you should never be charged differently or more than a call to a normal landline. Telecommunications legislation means that these usually just come out of the inclusive minutes of a contract.

Despite the fact that there is still some unease around the numbers, they have been in circulation for a relatively long amount of time. First introduced in 2007, they have steadily been picked up by businesses and organisations looking for a recognisable number. Unlike the 0345 or 0370 – both of which are intrinsically linked to their 08 equivalent – the 0330 number range offers companies a quick and easy way in which to get a memorable telephone number for their business.

Over the coming years, as 08 numbers become increasingly sparse, consumers should expect to see a lot more 0330 numbers being used by businesses – and questions over the amount it costs to call them should lower as people get used to dialling them regularly.

Buying 0330 numbers

If you are interested in purchasing an 0330 number for either diverting to your existing number or as a direct VoIP connection please get in touch we provide all UK numbers and special service numbers at very competitive rates.

Blog Knowledge Base

Transcribing Voicemail with Google Speech api

This is part 2 and rather long awaited description of how to transcribe voicemails to email and deliver them with text and an attached MP3

You will need to install the files from here and also have a Google Developers account.

Also create a directory:-


Lets begin.

  • Script to create the mp3 and the file for transcription
FILENUM=$(/bin/ls ${PATH}${origmailbox}/INBOX |/bin/grep txt | /usr/bin/wc -l)

##Added to allow 999 messages
if  (( $FILENUM <= 9 ));
elif (( $FILENUM <= 99 ));

IN=$(/bin/grep "${origmailbox} =>" /etc/asterisk/voicemail.conf)
set -- "$IN"
IFS=","; declare -a Array=($*)

/bin/echo "[message]" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo origmailbox=${origmailbox} >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "context=demo" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "macrocontext=" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "exten=s" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "priority=11" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo callerchan=${callerchan} >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo callerid=${callerid} >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo origdate=${origdate} >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo origtime=${origtime} >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "category=" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "duration=${duration}" >> ${PATH}${origmailbox}/INBOX/${FILENAME}.txt

/bin/nice /usr/bin/sox /var/lib/asterisk/sounds/catline/${origdir}.wav ${PATH}${origmailbox}/INBOX/${FILENAME}.flac   silence -l 1 0.1 1% -1 0.3 1% 

/bin/nice /usr/bin/lame -b 16 -m m -q 9-resample /var/lib/asterisk/sounds/catline/${origdir}.wav  ${PATH}${origmailbox}/INBOX/${FILENAME}.mp3

voicemailbody=$(/usr/bin/perl -w /usr/src/asterisk-speech-recog-cloud_api/cli/ -k $apikey -o detailed -r 8000 -n 1  /var/spool/asterisk/voicemail/default/${origmailbox}/INBOX/${FILENAME}.flac)

/bin/cp /var/lib/asterisk/sounds/catline/${origdir}.wav ${PATH}${origmailbox}/INBOX/${FILENAME}.wav

echo "You have a new voicemail from ${callerid} it was left on ${origdate} and is ${duration} seconds long ${voicemailbody}" | /bin/mail -s "A new voicemail has arrived from ${callerid}" -a "${PATH}${origmailbox}/INBOX/${FILENAME}.mp3" "$email"

/bin/rm -f ${PATH}${origmailbox}/INBOX/${FILENAME}.flac
/bin/rm -f ${PATH}${origmailbox}/INBOX/${FILENAME}.mp3
  • Asterisk Dialplan to pass the call to the above script
exten => _XXXX,1,Set(__EXTTOCALL=${EXTEN})
exten => _XXXX,n,Noop(${EXTTOCALL})
exten => _XXXX,n,Goto(s,1)

exten => s,1,Answer()  ; Listen to ringing for 1 seconds
exten => s,n,Noop(${EXTTOCALL} , ${DIALSTATUS} , ${SV_DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]?busy:bnext)
exten => s,n(busy),Set(greeting=busy)
exten => s,n,Goto(carryon)
exten => s,n(bnext),GotoIf($["${DIALSTATUS}"="NOANSWER"]?unavail:unext)
exten => s,n(unavail),Set(greeting=unavail)
exten => s,n,Goto(carryon)
exten => s,n(unext),Set(greeting=unavail)
exten => s,n,Goto(carryon)
exten => s,n(carryon),Set(origmailbox=${EXTTOCALL})
exten => s,n,Set(msg=${STAT(e,${ASTSPOOLDIR}/voicemail/default/${origmailbox}/${greeting}.wav)})
exten => s,n,Set(__start=0)
exten => s,n,Set(__end=0)
exten => s,n,NoOp(${UNIQUEID})
exten => s,n,Set(origdate=${STRFTIME(${EPOCH},,%a %b %d %r %Z %G)})
exten => s,n,Set(origtime=${EPOCH})
exten => s,n,Set(callerchan=${CHANNEL})
exten => s,n,Set(callerid=${CALLERID(num)})
exten => s,n,Set(origmailbox=${origmailbox})
exten => s,n,Answer()
exten => s,n,GotoIf($["${msg}"="1"]?msgy:msgn)
exten => s,n(msgy),Playback(${ASTSPOOLDIR}/voicemail/default/${origmailbox}/${greeting});(local/catreq/how_did)
exten => s,n,Goto(beep)
exten => s,n(msgn),Playback(vm-intro)
exten => s,n(beep),System(/bin/touch /var/lib/asterisk/sounds/catline/${UNIQUEID}.wav)
exten => s,n,Playback(beep)
exten => s,n,Set(__start=${EPOCH})
exten => s,n,Record(catline/${UNIQUEID}.wav,3,60,kaq)
exten => s,n,Playback(beep)
exten => s,n,Hangup()
exten => h,1,Noop(${start} ${end})
exten => h,n,GotoIf($["${start}"!="0"]?ok:end)
exten => h,n(ok),Set(end=${EPOCH})
exten => h,n,Set(duration=${MATH(${end}-${start},int)})
exten => h,n,System(/usr/local/sbin/ "${callerchan}" ${callerid} "${origdate}" ${origtime} ${origmailbox} ${UNIQUEID} ${duration})
exten => h,n(end),Noop(finished)
  • Modified api script, Note the language and enhanced mode setting
    • For these to work you need “datalogging ” enabled in the dialogflow api settings
#!/usr/bin/env perl

# Render speech to text using Google's Cloud Speech API.
# Copyright (C) 2011 - 2016, Lefteris Zafiris <>
# This program is free software, distributed under the terms of
# the GNU General Public License Version 2. See the COPYING file
# at the top of the source tree.
# This has been altered to work with Googles new Speech models

use strict;
use warnings;
use File::Temp qw(tempfile);
use Getopt::Std;
use File::Basename;
use LWP::UserAgent;
use LWP::ConnCache;
use JSON;
use MIME::Base64;

my %options;
my $flac;
my $key;
my $url        = "";
my $samplerate = 16000;
my $language   = "en-US";
my $output     = "detailed";
my $results    = 1;
my $pro_filter = "false";
my $error      = 0;
my $thetext = ".";
my $score = ".";
getopts('k:l:o:r:n:fhq', \%options);

VERSION_MESSAGE() if (defined $options{h} || !@ARGV);


my %config = (
        "encoding"         => "FLAC",
        "sampleRateHertz"      => $samplerate,
        "languageCode"    => $language,
        "profanityFilter" => $pro_filter,
        "maxAlternatives" => $results,
        "model" => "phone_call",
        "useEnhanced" => 'true' 

my $ua = LWP::UserAgent->new(ssl_opts => {verify_hostname => 1});
$ua->agent("CLI speech recognition script");

# send each sound file to Google and get the recognition results #
foreach my $file (@ARGV) {
        my ($filename, $dir, $ext) = fileparse($file, qr/\.[^.]*/);
        if ($ext ne ".flac" && $ext ne ".wav") {
                say_msg("Unsupported file-type: $ext");
        if ($ext eq ".wav") {
                if (($file = encode_flac($file)) eq '-1') {
#       print("File $filename\n") if (!defined $options{q});
        my $audio;
        if (open(my $fh, "<", "$file")) {
                $audio = do { local $/; <$fh> };
        } else {
                say_msg("Cant read file $file");
        my %audio = ( "content" => encode_base64($audio, "") );
        my %json = (
                "config" => \%config,
                "audio"  => \%audio,
        my $response = $ua->post(
                Content_Type => "application/json",
                Content      => encode_json(\%json),
        if (!$response->is_success) {
                say_msg("Failed to get data for file: $file");
        if ($output eq "raw") {
                print $response->content;
        my $jdata = decode_json($response->content);
        if ($output eq "detailed") {
                foreach (@{$jdata->{"results"}[0]->{"alternatives"}}) {
                        $score = $_->{"confidence"};
                        $thetext = $_->{"transcript"};
        } elsif ($output eq "compact") {
                print $_->{"transcript"}."\n" foreach (@{$jdata->{"results"}[0]->{"alternatives"}});

print "\n\nThe transcription of message is below:\n\n$thetext\n\nWe are $score out of 1 sure its correct\n\nTranscribed using Googles Cloud Speech API ";

exit(($error) ? 1 : 0);

sub parse_options {
# Command line options parsing #
        if (defined $options{k}) {
        # check API key #
                $key = $options{k};
        } else {
                say_msg("Invalid or missing API key.\n");
                exit 1;
        if (defined $options{l}) {
        # check if language setting is valid #
                if ($options{l} =~ /^[a-z]{2}(-[a-zA-Z]{2,6})?$/) {
                        $language = $options{l};
                } else {
                        say_msg("Invalid language setting. Using default.\n");
        if (defined $options{o}) {
        # check if output setting is valid #
                if ($options{o} =~ /^(detailed|compact|raw)$/) {
                        $output = $options{o};
                } else {
                        say_msg("Invalid output formatting setting. Using default.\n");
        if (defined $options{n}) {
        # set number or results #
                $results = $options{n} if ($options{n} =~ /\d+/);
        if (defined $options{r}) {
        # set audio sampling rate #
                $samplerate = $options{r} if ($options{r} =~ /\d+/);
        # set profanity filter #
        $pro_filter = "true" if (defined $options{f});


sub say_msg {
# Print messages to user if 'quiet' flag is not set #
        my @message = @_;
        warn @message if (!defined $options{q});

# Help message #
        print "Speech recognition using Google Cloud Speech API.\n\n",
                "Usage: $0 [options] [file(s)]\n\n",
                "Supported options:\n",
                " -k <key>       specify the Speech API key\n",
                " -l <lang>      specify the language to use (default 'en-US')\n",
                " -o <type>      specify the type of output formatting\n",
                "    detailed    print detailed output with info like confidence (default)\n",
                "    compact     print only the transcripted string\n",
                "    raw         raw JSON output\n",
                " -r <rate>      specify the audio sample rate in Hz (default 16000)\n",
                " -n <number>    specify the maximum number of results (default 1)\n",
                " -f             filter out profanities\n",
                " -q             don't print any error messages or warnings\n",
                " -h             this help message\n\n";
  • In Freepbx create a Custom Destination as    “vmail2text,s,1”  and if you require certain queues to go to specific mailboxes one like “vmail2text,2000,1” so calls will be sent to mailbox 2000
  • Then in extensions that want to use transcription set the “Optional Destinations” to the custom destination.

And thats it. Enjoy.


PRIVACY POLICY  (“We”) are committed to protecting and respecting your privacy.

This policy sets out the basis on which any personal data we collect from you, or that you provide to us, will be processed by us.  Please read the following carefully to understand our views and practices regarding your personal data and how we will treat it. By visiting our websites or using our services you are accepting and consenting to the practices described in this policy.

For the purpose of the Data Protection Act 1998 (the Act), the data controller is of  18 Arundel Road .

Information we may collect from you

We may collect and process the following data about you:

  • Information you give us. You may give us information about you by filling in forms on our site  (our site) or by corresponding with us by phone, e-mail or otherwise. This includes information you provide when you register to use our site, subscribe to our service, and when you report a problem with our site. The information you give us may include your name, address, e-mail address and phone number, Information we collect about you. With regard to each of your visits to our site we may automatically collect the following information:
  • technical information, including the Internet protocol (IP) address used to connect your computer to the Internet, your login information, browser type and version, time zone setting, browser plug-in types and versions, operating system and platform;
  • information about your visit, including the full Uniform Resource Locators (URL) clickstream to, through and from our site (including date and time); products you viewed or searched for; page response times, download errors, length of visits to certain pages, page interaction information (such as scrolling, clicks, and mouse-overs), and methods used to browse away from the page and any phone number used to call our customer service number.
  • Information we receive from other sources. We may receive information about you if you use any of the other websites we operate or the other services we provide. [In this case we will have informed you when we collected that data that it may be shared internally and combined with data collected on this site.] We are also working closely with third parties (including, for example, business partners, sub-contractors in technical, payment and delivery services, advertising networks, analytics providers, search information providers, credit reference agencies) and may receive information about you from them.


Our website uses cookies to distinguish you from other users of our website. This helps us to provide you with a good experience when you browse our website and also allows us to improve our site.

Uses made of the information

We use information held about you in the following ways:

  • Information you give to us. We will use this information:
  • to carry out our obligations arising from any contracts entered into between you and us and to provide you with the information, products and services that you request from us;
  • to provide you with information about other goods and services we offer that are similar to those that you have already purchased or enquired about;
  • to notify you about changes to our service;
  • to ensure that content from our site is presented in the most effective manner for you and for your computer.
  • Information we collect about you. We will use this information:
  • to administer our site and for internal operations, including troubleshooting, data analysis, testing, research, statistical and survey purposes;
  • to improve our site to ensure that content is presented in the most effective manner for you and for your computer;
  • to allow you to participate in interactive features of our service, when you choose to do so;
  • as part of our efforts to keep our site safe and secure;
  • to measure or understand the effectiveness of advertising we serve to you and others, and to deliver relevant advertising to you;
  • Information we receive from other sources. We may combine this information with information you give to us and information we collect about you. We may us this informationand the combined information for the purposes set out above (depending on the types of information we receive).

Disclosure of your information

We may share your personal information with any member of our group, which means our subsidiaries, our ultimate holding company and its subsidiaries, as defined in section 1159 of the UK Companies Act 2006.

We may share your information with selected third parties including:

  • Business partners, suppliers and sub-contractors for the performance of any contract we enter into with [them or] you.
  • Analytics and search engine providers that assist us in the improvement and optimisation of our site.
  • [Credit reference agencies for the purpose of assessing your credit score where this is a condition of us entering into a contract with you.]

We may disclose your personal information to third parties:

  • In the event that we sell or buy any business or assets, in which case we may disclose your personal data to the prospective seller or buyer of such business or assets.
  • If or substantially all of its assets are acquired by a third party, in which case personal data held by it about its customers will be one of the transferred assets.
  • If we are under a duty to disclose or share your personal data in order to comply with any legal obligation, or in order to enforce or apply our terms of use and other agreements; or to protect the rights, property, or safety of cyber-cottage, our customers, or others. This includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction.]

Where we store your personal data

The data that we collect from you may be transferred to, and stored at, a destination outside the European Economic Area (“EEA”). It may also be processed by staff operating outside the EEA who work for us or for one of our suppliers. Such staff maybe engaged in, among other things, the fulfilment of your order, the processing of your payment details and the provision of support services. By submitting your personal data, you agree to this transfer, storing or processing. We  will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this privacy policy.

[All information you provide to us is stored on our secure servers. Any payment transactions will be encrypted [using SSL technology].] Where we have given you (or where you have chosen) a password which enables you to access certain parts of our site, you are responsible for keeping this password confidential. We ask you not to share a password with anyone.

Unfortunately, the transmission of information via the internet is not completely secure. Although we will do our best to protect your personal data, we cannot guarantee the security of your data transmitted to our site; any transmission is at your own risk. Once we have received your information, we will use strict procedures and security features to try to prevent unauthorised access.

Your rights

You have the right to ask us not to process your personal data for marketing purposes. We will usually inform you (before collecting your data) if we intend to use your data for such purposes or if we intend to disclose your information to any third party for such purposes. You can exercise your right to prevent such processing by checking certain boxes on the forms we use to collect your data.  You can also exercise the right at any time by contacting us at

Our site may, from time to time, contain links to and from the websites of our partner networks, advertisers and affiliates.  If you follow a link to any of these websites, please note that these websites have their own privacy policies and that we do not accept any responsibility or liability for these policies.  Please check these policies before you submit any personal data to these websites.

Access to information

The Act gives you the right to access information held about you. Your right of access can be exercised in accordance with the Act. Any access request may be subject to a fee of £10 to meet our costs in providing you with details of the information we hold about you.

Changes to our privacy policy

Any changes we may make to our privacy policy in the future will be posted on this page and, where appropriate, notified to you by e-mail. Please check back frequently to see any updates or changes to our privacy policy.


Questions, comments and requests regarding this privacy policy are welcomed and should be addressed to