The wires in some telephones is extremely thin and it is nearly impossible for me to get a decent long lasting connection. Case in point, the Red Phone. After a brief conversation over Skype with a fellow hacker and Linux Outlaw, the connections on the phone started falling apart. Bummer: I was researching non-proprietary forms of VOIP communication and I really needed a microphone and speaker.
To the hardware store for supplies!
After purchasing a phone plug crimping tool, some phone plugs, and a modular jack. It was time to get cracking. The wires were stripped and phone plug was crimped on.
Woops! I should have paid attention to which wires connected to what. Oh well; a few seconds of testing later, I was wiring the speaker and microphone jacks to modular phone jack.
Hiyah! It's all put together and ready for some yammering! Wow, look at the wear on that touchpad. Damn freedom hating Toshiba.
With the connections being quite solid, it was time to test the device. On a 900 Mhz laptop with no battery and 128 Megs of RAM I installed a Mumble Server. From their website: "Mumble is an open source, low-latency, high quality voice chat software primarily intended for use while gaming." On a separate laptop, with the red phone connected, I installed the Mumble Client.
After a bit of trouble shooting and configuring, I had my client machine connected to the server and I managed to sucker talk another Linux Outlaw into helping me test the machine. Using the information I provided the test helper connected to the Mumble server and Shazaam! I was talking to someone, over the internet, who was about 3500 miles (5600K) away, with no noticeable latency and quite decent quality.
Success!
Now I need to test the system with someone much farther away to see what sort of latency issues will arise, and I also need to test with a group of people to see at what point bandwidth becomes an issue.
Now quit reading, and go talk to someone.
Wow look at that! It appears to be a fully working cheap plastic faux rotary wall-mount phone that someone gave me as a gift!
Wait, faux rotary? What's the point? I know; I'll fix the phone!
Here is the same phone again in exploded view, and by "exploded", I mean I took it apart looking for usable components for other projects. The ringer might be useful, and there is a switch that can probably be used for something.
In reality, I just want the receiver.
Because the phone is so new, the speaker and microphone have very little power requirements and can easily be used with a computer. I thought there was a problem with the mic, so I broke the phone open and replaced the mic with a cheap computer mic.
why everything was glued together in a phone that was designed to be taken apart is beyond me.
After a little solder/hot glue/electrical tape magic, I had the receiver wired up for standard microphone and headphone jacks. It may not be pretty, but it is pretty functional and that's what counts.
Hey, not bad.
Now all I need to do is plug this thing into my computer and I can start making internet phone calls to um... uh.... someone on the internet?
Now quit reading, and take a perfectly good "something" and repurpose it.
The previous video I created to show off a switch interface was edited using kino, which is a nice video editor with great support for capturing digital video off of a camera attached via a firewire cable. This time around, I used kdenlive to edit my video because kdenlive has a few different features that will help speed up my editing time. ( I still used kino to grab the video off of my camera)
With the video edited, It was time to upload to a host. Typically, I would use youtube for this sort of thing ( just because I use a tripod, it doesn't mean I can't use youtube) , but since I wanted to see if I could integrate the HTML5 Video tag into a web page, the video was uploaded to youtube and tinyvid.tv: a host for theora video. By getting creative with the "video" tag, I should be able to show the Theora video to those using browsers that support the Video tag, and everyone else will see the flash video.
If your feed reader isn't displaying the video, it can be viewed directly on tinyvid as well as on youtube.
In hind sight, I probably should have shown the phone doing more visual stuff on the computer screen. When the system is set up to play and control audio, it makes for a very boring video experience.
now go make something.
The tag on the phone said:
phone
as-is
$8.50
Perfect.
In various states of functionality, there are about 15 rotary phones in my home, this particular phone however, is destined for a different sort of communication.
Based upon the schematic that was used for the serial switch project I really wanted to make a multi-switch input device. It would be easy to simply solder on two more switches to the existing project and then run various commands when each switch is pressed, but that wouldn't be much fun. Fortunately, I know that a rotary phone has three switches inside. Let the fun begin.
The phone was light, too light. From experience, I had guessed that the ringer was gutted from this phone. Not only was the ringer gutted, but most of the internals where also removed. Oh well, it makes things easier for me. Here you can see the body, the internal cradle switch mechanism, and the back of the dialer.
Perhaps I should do this with every phone I have with a missing or broken ringer.
Step 1. Determine which of the wires coming from cradle switch from a closed circuit when the headset is placed on the cradle. There can't be more than 8 wires so it should be fairly easy to do.
Whoops. Wow, those things fall apart fairly easily and I was left with a pile of wires, switch contact points, spacers, and a sense of determination.
This is about 75% of the wires.
Hey, that wasn't too hard to put back together. Much like the toys I insisted on taking apart as a child, this switch was put back together with a few parts missing.
Actually, I only needed two contact point to make the switch work the way I want it to. The extra contact points were added to give pull on the slotted bar connected to the spring lever.
This is a close of up the back of the rotary. There are two switches here that I will refer to as the rotator and the dialer. If the rotary is moving then the rotator switch is making a closed circuit. The dialier on the other hand is normally closed, but when the rotary is swinging back to its default stationary position after a user has dialed a number, the dialer switch will break the circuit a number of times equal to the number that was selected. After the rotary has finally parked in the stationary position, the rotator switch opens and breaks the circuit.
Three switches means 6 connections: 3 grounds and 3 leads. Since the three grounds will be soldered to the same pin on the serial port, I only need a 4 wire cable. Fortunately I had a spare black USB cable( and USB cables only have four wires).
All soldered up and ready for electrical tape. OK, I used duct-tape.
All done with the hardware, now it is coding time!
Fast forward an hour
The code is done and everthing is working as expected. So how does it work?
1. pick headset off of cradle
2. dial a number that corresponds with a command in the configuration file
3. hang up the phone
4. the command is run on the computer
For example:
- dialing "1" will run the command "firefox http://www.linuxoutlaws.com " which will open the Linux Outlaws website in Firefox.
- dialing "2" will play the latest episode of my favorite audcast; It is time to remove the pod and put in some aud-io.
- dialing "22" will play the Conan Soundtrack
- dialing "23" will play compositions by Basil Poledouris (randomly)
- "3" will quit all audio players
- "01189998819991197253" will run "firefox http://www.youtube.com/watch?v=RK4Xye7AErE "
quit reading and go make something.
At short distances though, Mumble is amazing. A great test is talking to someone in the same room, where you can hear them via Mumble and directly from their lips to your ears, then compare that to competing software. You go from "echo" to more like "two people saying the exact same thing at the exact same time",
While I am fully aware that there will be latency when talking to someone who is almost 7000 miles away, I still want to know what the latency is like. I don't care about testing at short distances, that what yelling really loud is for.