Skip to content

Commit

Permalink
Jambon 2024
Browse files Browse the repository at this point in the history
  • Loading branch information
sammachin authored May 13, 2024
1 parent 67f3fec commit e85366b
Showing 1 changed file with 20 additions and 98 deletions.
118 changes: 20 additions & 98 deletions content/phones.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Phone system
description: >
The POC has set up a platform for programmable telephony hacks, based on
Jambonz and Node-RED.
Jambonz
---

As part of the EMF Phone Operations Centre (POC) this year, we have a set of programmable
Expand All @@ -11,111 +11,33 @@ services.

This is based on the open source [jambonz](https://www.jambonz.org) platform, which has APIs for incoming
and outgoing calls similar to some of the other programmable communications platforms on the
market. The key thing is that this one can call and be called from the EMF site phone network.
market. The key thing is that this one can be called from the EMF site phone network.

You can find the details on the API at [https://www.jambonz.org/docs/](https://www.jambonz.org/docs/)
You can find the details of the Jambonz API at [https://www.jambonz.org/docs/](https://www.jambonz.org/docs/)

There are a couple of points to note regarding our implementation:

Jambonz can place calls to other EMF phones but not out to the public phone network.
- You can make a call TO a jambonz app but at present Apps can't call other site phones, we may get this fixed before EMF but no commitments, this applies to using the Dial verb or Originating a call.
- If you REALLY need to be able to send calls to phones then please come and talk to us nicely we might be able to help on a case by case basis.
- You won't see calls from phones in your jambonz portal call logs, this is due to the way we setup the system and too late to re-design for this year, if you need a trace talk to the Phone Team.
- SMS/SMPP/Messaging is not supported (might be at some point)
- We have provided AWS as a Speech to Text and Text to Speech provider for all accounts to use, but someone is paying for this out of their own pocket, so please don't start transcribing the whole talks feed!
- If you want to add additional speech providers that are only avaible on your account you are welcome to do so in the jambonz console.
- We reccomend not changing the password for your jambonz account in the jambonz console do this via https://phones.emfcamp.org instead under user profile, Create Jambonz Account. This page will overwrite any changes in jambonz.


If you want to learn more, you can come to our workshop on Programming the EMF Phone network
with Jambonz and Node-RED - see the schedule for details. Or come visit the POC in the info
tent. You can also e-mail us questions on [email protected]
To create a new application firstly login to https://phones.emfcamp.org

## Configure An Application
To use this method, you need coding knowledge, and a place to host your app online. We recommend you read the [Jambonz API Documentation](https://www.jambonz.org/docs/) before configuring an application.
Goto the User profile and click on the Create Jambonz Account link.
This will setup a jambonz account with the same username but you can choose a different password here.

Start by signing up at [https://jambonz.emf.camp/signup](https://jambonz.emf.camp/signup).
Once you have done that then you can safely create a new Number in the Add a Number link with a Type of Service of App.
The config param will auto fill your username,

Anything you set up here is not easily editable, so double check before you submit
When you have created the number it will then be provisioned into Jambonz.

The most important things here are:
Login to https://jambonz.poc.emf.camp with the password you just created and in you should find the phone number listed in phone numbers,

* Answer URL: Webhook that's called when someone rings the application number
* Email Address: Setup confirmation and phone number will be sent to this email address.
You can now create an application, with Calling & Call Status wehooks, then link your phone number to that application.

The system will create an app, allocate you a phone number in the range 555 XXXX, and e-mail you the details.



## Testing Applications Before The Event
If you want to test your application prior to camp, you can call it by dialling 0117 200 1500
and then entering your 555 XXXX application number when prompted.

## Make a Low-Code Application with Node-RED

We have a platform you can use to create your phone apps on or non-phone apps that interact
with the badge or any of the other APIs at EMF.

Its provided by [FlowForge](https://flowforge.com) and allows you to run the open source
[Node-RED](https://nodered.org) tool, which provides low code programming for event driven
applications. We'll be using it in our workshop about programming the phone network.

If you would like an account, please e-mail [email protected] as we only have limited capactity.


### Set up a Flowforge/Node-RED Project
1. Log into [Flowforge at https://app.emfcamp.app](https://app.emfcamp.app)
1. Create a team if you don't have one already
1. Create a project
1. Make a note of your editor URL, you'll need this later
* It'll look like `https://<projectname>.emfcamp.app`
1. Click editor at the top right
1. Click burger menu at top right
1. Select Manage Palette
1. Select the Install Tab
1. Search for Jambonz
1. Install @jambonz/node-red-contrib-jambonz
1. Click install to confirm the warning message
1. Wait about 1.5 minutes, and it'll show as installed and appear on the Nodes tab.
1. Close the Palette settings

Jambonz nodes will now appear on the menu on the left.

[Jambonz Node-RED Node Documentation](https://flows.nodered.org/node/@jambonz/node-red-contrib-jambonz)

### Create your first Node-RED flow
1. Scroll down to the Jambonz Section on the left hand side of Node RED
2. Every flow must start and end with a webhook, so drag in a `webhook in` and a `webhook out`
3. Configure the Webhook In as set up above
* Name: Call
* Method: GET
* Path: `/call`
4. Drag in a `Say` node and a `Hangup` node.
5. Configure the `Say` node
* Text: `Did this work first time?`
* Loop: 0
6. Connect the nodes in the order call, say, hangup, webhook out.
7. If you like drag in a `comment` node from the Common section, and name it with your 555 XXXX extension as a reminder.
8. Click Deploy
9. Test your flow by ringing 0117 200 1500
and entering your 555 XXXX number when prompted.

![Example Node-RED Flow](/node-red-flow.png)

### Connect a phone number to the Node-RED Project
1. Go to [https://jambonz.emf.camp/signup/](https://jambonz.emf.camp/signup/)
* Anything set up here is not easily editable, so double check before you submit
1. App Name: Type in the the project name you used earlier
2. Answer URL: Use your Editor URL from earlier with /call on the end, for example: `https://<projectname>.emfcamp.app/call`
3. Status URL: Use your Editor URL from earlier with /status on the end, for example: `https://<projectname>.emfcamp.app/status`
4. Email Address: Setup confirmation and phone number will be sent to this email address.
5. Click Submit.
* The form will clear, but won't look like much has happened. Wait a few minutes then check your email for confirmation.





## Stage Audio

Live audio from each of the stages is available on your phones by dialling the following numbers:

* 555 5001 - Stage A
* 555 5002 - Stage B
* 555 5003 - Stage C

Where a speaker has opted not to have their talk recorded, this feed will be unavailable.

For questions on this API, please e-mail [email protected]
[Video walkthrough to come]

0 comments on commit e85366b

Please sign in to comment.