There is an excellent article in the QLab cookbook for how to simulate a ringing telephone in QLab - and it's far better than playing back a simple sound effect. However, sometimes you can't beat an actual phone.
Indeed, even in TV and film, fake ringing can be really obvious.
There's a really simple (and comparatively low cost compared to specialised devices) way of making a telephone ring on stage with QLab, by taking advantage of what I spend my day job working with - VoIP.
The principle is simple, use a small low-cost box to convert an old analog telephone to a VoIP device, and then use QLab to simulate an inbound call to that phone, enough to trick it into ringing.
Connect the phone
If you're in the UK, or somewhere else that uses something other than an RJ11 phone jack, you'll need a small adapter to connect the phone. Most ATAs sold in the UK market include one.
Configure the ATA
Ideally, Set a static IP on the ATA and ensure your QLab Mac can see it. Setting this up is beyond the scope of this quick article, but probably safe to assume since you're using QLab you can configure a basic network.
You'll need to know the IP of the ATA and the QLab Mac for the following.
Ensure that Receive Call Without Registration (or a similarly named option if you're not using the SPA112) is set on the ATA, and enter the QLab Mac IP address as the server and phone1 as the username.
Configure the Mac
We're going to use QLab to generate a
SIP INVITE message to the phone. This normaly would be a message from a VoIP server signalling there's an inbound call, therefore telling the phone to ring.
Copy and paste the following (substituting IP adddresses where appropriate) into a file on your Mac e.g
INVITE sip:phone@<ATA IP>:5060 SIP/2.0 Via: SIP/2.0/UDP <QLAB IP>:5060;branch=z9hG4bK-63145-519-0 From: qlab <sip:qlab@<QLAB IP>:5060>;tag=63145938276334519 To: phone <sip:phone@<ATA IP>:5060> Call-ID: 519-63145@<QLAB IP> CSeq: 1 INVITE Contact: sip:sipp@<QLAB IP>:5060 Max-Forwards: 70 Subject: Ring Content-Type: application/sdp v=0 o=user1 53655765 2353687637 IN IP4 <QLAB IP> s=- c=IN IP4 <QLAB IP> t=0 0 m=audio 6000 RTP/AVP 0 a=rtpmap:0 PCMU/8000
You'll see now why the Static IPs are important!
Set up QLab
Within QLab create a new "Script" cue as follows
do shell script "cat ~/ring.txt | nc -u -w 0 <ATA IP> 5060 &" do shell script "cat ~/ring.txt | nc -u -w 0 <ATA IP> 5060 &" do shell script "cat ~/ring.txt | nc -u -w 0 <ATA IP> 5060 &"
When triggered, this simply sends the content of
~/ring.txt (change the path if you saved the file somewhere else) to the phone ATA, simulating a call to the phone.
We send it several times to ensure that (even on a less than ideal network!) the UDP message gets there, the ATA will ignore any after the first message it proceesses.
Fire the cue, the phone should ring.
The end result is really quite convincing and, what's best about this method, it stops when the actor picks it up as opposed to one show I worked on many years ago (cue excellent improv of "ah, it must be the other line" as they run off stage and come back on with a hastily-found mobile whilst someone pokes the sound engineer!)