Month: November 2014

Severn Bridge Disaster Museum Display

A little over a week ago, we installed a phone in the museum as part of a display about the Severn Bridge Disaster of 25th October 1960. This allows visitors to pick up the handset, and by dialling a single digit they can listen to one of 10 pieces of audio taken from a BBC Radio Gloucestershire program about the disaster.

The phone was installed on the 22nd Oct, just in time for the 54th anniversary of the disaster. So far, it’s had 11 calls, with the most popular section being the one about “The night of the disaster”

Technical details:
The phone itself is just a cheap DTMF handset (easy to replace when the public break it!) connected to a Cisco SPA112 ATA. The ATA is configured to expect a single digit and then dial immediately (I’ve set the dialplan to “x”)

The ATA registers itself with the Asterisk with a restricted SIP account, which lands in its own context. That context is pretty simple, and the dialplan for it looks like this:

; Samples should be placed in /usr/share/asterisk/sounds/bridge - eg
; ln -s /etc/asterisk/museum_display/bridge /usr/share/asterisk/sounds/bridge

; Severn Bridge Disaster - 10 audio files, bridge/bridge_[1-0].mp3

; Single Digit Extensions play back selected audio
exten => _X,1,Answer();
exten => _X,n,Playback("bridge/bridge_${EXTEN}");
exten => _X,n,Hangup();

; Everything else gets "number not recognised"
exten => _.,1,Answer();
exten => _.,n,Playback("bridge/not_recognised");
exten => _.,n,Playback("bridge/not_recognised");
exten => _.,n,Playback("bridge/not_recognised");
exten => _.,n,Playback("bridge/not_recognised");
exten => _.,n,Playback("bridge/not_recognised");
exten => _.,n,Hangup();

It’s a pretty straight forward context. Any incoming call which matches a single digit (“exten => _X”) plays back one of the 10 audio files relating to the disaster.

Any other incoming call (“exten => _.”) plays a message which says “That number is not recognised, please hangup and try again” it repeats the message 5 times, then hangs up.

The “number not recognised” block shouldn’t get hit in normal use, because the ATA is configured to only send one digit.

It’s mostly there for testing, in case we ever have to replace the ATA in a hurry with one that can’t be set to dial immediately, or in case we ever decide to allow access to this feature from elsewhere in the dialplan (eg from C*Net)