Introduction

The spread of the coronavirus/covid-19 across the world has, in many countries including (as I write) the UK, led to various stages of lockdown which have included church gatherings. Many churches have been scrabbling around patching together knowledge and equipment to produce content, whether that's live streams, recorded video content, podcasts, and many (many!) Zoom calls.

One area that has caused concern is people who, for a variety of reasons, either do not have internet access, or do not have the necessary skills to access online content. Conference calling is an obvious idea, but many of the services available are surprisingly hard to access - dial a number, then dial another number followed by the # key, then potentially another number again!

My remit was to produce a system that would solve the issues we (at Baljaffray Parish Church ) were facing with the following ideas:

  1. A phone number that would allow people to phone in and hear the audio from our live Sunday service, without needing to enter any extra numbers or anything complicated like that.
  2. A way of calling out to people so that they would receive a call and upon answering be able to hear audio from our live Sunday service.
  3. A way of directly feeding our livestream audio from the computer software into the system so that we wouldn't need an additional phone, and to keep the audio quality as high as possible.

The below instructions explain how I did this, and how you might be able to do so also.

A significant credit goes to this article which helped me get started, and gave me the idea to go further.

Disclaimer

The instructions on this page, and the software provided for download from this site, are provided on an as-is basis. Whilst I have made every effort to ensure that it will work as described, there is no guarantee that it will work for every system or configuration. There is no guarantee of support.

It is important to note that Twilio is a commercial business - use of their services will incur charges. Specifically they will charge per minute for every call made, and additional charges per participant per minute for conference calls. At time of writing you can see UK pricing details on their website here

I am not affiliated with Twilio in any way. Other similar services may exist.

Requirements

  1. The system is based on Twilio, so you will be setting up an account as part of the steps. It is possible to get everything working on their trial account, but you'll need a full account to have calls longer than 10 minutes, and to get rid of the annoying message with every call!
  2. Note that calls are very cheap with Twilio, but not free. So you will be paying something for every person dialling into your conference, and (I believe) double if you're also dialling out to them. Again, it's not expensive, but it's worth knowing.
  3. In order to run the management system, you'll need to dump some code on a website. If you have a church website already, then it can go in there. You may want to consult your "tech guy". You'll need it set up with:
    • PHP
    • HTTPS

The Instructions

Part 1: Setting up a Twilio Conference Call

  1. First we need to set up a Twilio account, and pick our telephone number. Rather than re-inventing the wheel, just head over to here and follow Steps 1 and 2.
  2. Now that we have a number, we need to set up our conference and connect it to our phone number. In the Twilio dashboard select the 3 dot menu in the top corner, and then scroll down to select the "TwiML Bins" option:

TwiML Bins

  1. Add a new TwiML Bin. In the following form, select a sensible name, and then copy the following code into the TWIML box:
    <?xml version="1.0" encoding="UTF-8"?>
    <Response>
    <Say>Welcome to our Sunday Service Audio</Say>
    <Dial>
    <Conference muted="true">Sunday-Service</Conference>
    </Dial>
    </Response>

    Writing our TwiML

I won't try and explain the code here, but 2 things to note:

  • The bit in the "Say" portion will be read out by an automated voice. It's not very soothing on the ears - don't worry! We'll replace it with an MP3 of your own dulcet tones later on...
  • Note that the conference is muted by default, and we've given it the name (what Twilio calls a FriendlyName) Sunday-Service. This will be important later.
  1. Now to connect our conference to our phone number. Select the 3-dot menu again, and choose Phone Numbers: Phone Numbers

  2. In the numbers page, select the number you 'bought' earlier on. Scroll down the information until you get to "Voice & Fax". Make sure that "Accept Incoming" is set to "Voice Calls", and "Configure With" is set to "Webhooks, TwiML Bins, Functions, Studio, or Proxy". Under "A Call Comes In" select "TwiML Bin" in the left hand drop down, and then in the right hand drop down select your conference TwiML Bin - it should be the only thing in there, with the name you chose in step 3. Connect our number

  3. Save it. We should now have an active phone number with a conference! Grab your phone, and dial into it. If you're still on a trial account, you'll need to listen to a trial account message and then press a key on your phone before it goes into your conference, but it should work. Maybe grab a couple of phones and have a play with conferencing! Have a cup of tea and congratulate yourself with a biscuit of your choosing.

Part 2: Activating the in-browser dialler

  1. Now we need to setup a Function on Twilio to connect our browser phone to.
  2. Then, in Twilio open the 3-dot menu and choose "Functions"
  3. Click on the red button to create a new Function, then select the Twilio Client Quickstart template and click Create.
  4. You'll see 2 functions - open the one called Twilio Client Quickstart (Capability Token).
  5. You need to copy the PATH from the properties into the file on your server into the setup form in Part 3:
  6. Save that file.

Part 3: Setting up our conference management website

This part is a little more technical. If you have someone who manages your website, you might want to get them involved in setting this up. It's not too complicated - we're just going to be copying some files and making a couple of edits - but you'll need to have access to put those files on a web server.

  1. Download a copy of the system from here
  2. Copy it onto your webserver
  3. Unzip it whereever you want it to live - it will create a directory called conference_dialler but you can rename it to whatever you want. Note that if you want to use the built-in phone system then you must be serving it over https or it will not work. The other functions should work correctly, but https is recommended these days for everything.
  4. In your browser, navigate to the folder on your website, eg https://mychurch.org/conference_dialler/setup.php
  5. Fill in the 5 fields:
    • Twilio Account Sid and Auth Token you can find on your Twilio Dashboard at https://twilio.com/console : Account Details
    • Your new phone number
    • Your conference name, which is the FriendlyName of your conference call from Step 3 of Part 1. This is the bit you put in the TwiML and not the name you gave to the bin - in my code it was Sunday-Service.
    • Your Twilio Capability Token Path, from Part 2 Step 5.
  6. Hit submit.
  7. You should now be able to view the conference management system at https://mychurch.org/conference_dialler/index.php

Appendix

Security

Currently our webpage is unsecured - anyone could access it if they have the URL. At this point in time, the best way to resolve this is to use an .htaccess/.htpasswd file in the directory. Your tech guy should be able to sort this for you - sometimes hosting companies provide an easy way for this to be done, otherwise there are some sample instructions for achieving this from the command line here.

Additionally, Twilio has some recommendations on securing your Twilio account details here - again your tech guy can hopefully implement this following their instructions without too many complications.

Adding a custom greeting message

Back in part 1 step 3 we got our conference call to be answered by a lovely American robot lady. But a customised greeting would be much better. Here's how:

  1. Record an MP3 greeting. If you've got a microphone on your computer, then you can just go to this website and it will record you and let you download the MP3. Simples.
  2. In the Twilio menu, select Assets.
  3. Create a new Asset and upload your MP3.
  4. Copy the url using the copy button.
  5. Go back to your TwiML Bins and open up your conference call.
  6. In the editor, change the line that says <Say>Welcome to our Sunday Service Audio</Say> so that it says <Play>https://blah-blah1234.twil.io/assets/my_dulcet_tones.mp3</Play> instead, pasting the URL you copied in step 4 inbetween the tags.
  7. Save the TwiML Bin, and then you should be finished. Test the message by phoning your conference number.

We're Done

Everything should hopefully be ready. If you hit up your new conference admin in your web browser, it should look something like this:

Using the system

The management system is all in a single webpage. There are 3 sections:

Conference call management

At the top, we have control of the actual conference call, if it is active. You can see the status, press the "Refresh" button to update the status, and below that a list of numbers dialled into the conference with the option to Mute/Unmute individual callers. If the call is active, there is also a button to End Conference which will hang up everyone and end the call entirely.

Dialler

This is a basic phone system just for dialling your conference from the browser. The advantage here is the possibility of running audio from your mixing desk directly into here rather than using a phone, thus hopefully getting a better quality of sound on the call. Maybe. Hit the "Call" button to dial into your conference, and then the "Hangup" button to, well, hang up the call. Note that hang up does not end the conference, but only hangs up this particular call. Also note that you will still enter the call muted, and will need to Refresh the callers list, and then click the Unmute button. There are also selectors to choose which audio device on your computer to use for the microphone and speaker.

Autodialling

This is a list of numbers that we can auto-dial into the conference. This list is not stored on Twilio, but only exists on your web server. I am not a lawyer - I don't think this is a breach of GDPR, but if you are at all worried you should probably anonymise the names at least. I will look into this in a later release. The interface should be fairly self explanatory - add the names and numbers you want, and then in the list you can Delete or make them Inactive. Inactive numbers will not be called - useful if people are on holiday or things like that. Click the Dial All button and everyone will get a phone call that drops them straight into the conference.

IMPORTANT: At this point in time I have not (yet) tested this against any other systems that might answer the phone - ie the BT call monitoring system, or an answerphone. This may require some tweaking.

Frequently Asked Questions

Q. How does the dialing out work? From the management system the dialler works from within your web browser, a bit like using something like Skype.

Can you use recorded files or does it have to be live? At this point you cannot play recorded files from the system, although if you had another way of playing audio down a phone line, then you could use that.

Can I use the facebook live video? Yes, there's no reason why you couldn't also broadcast a Facebook Live video and also have the audio used by the browser dialler to send to the conference call.

Can people access the sermon for a few days if they were to dial in? Not with this setup. You could look at the instructions linked in Part 1 Step 1 to create a separate phone line for doing just this using Twilio.

Would it tie up the manse landline? No.

Previous Post