How many times have you wished that you recorder your recent telephone conversation? I have, many many times. So I finally decided to make this happen by using PC and a piece of hardware (powered from USB) to record audio from phone line to MP3 format. I wanted this thing to work automatically, to start recording when any of phones in house is picked-up (line occupied) and stop recording when all phones are hung-up (line free).
UPDATE: The .RAR file is now updated. So if you have seen the "Output mp3 directory is not valid..." information upon application start, just edit the "opcije.ini" file and adjust the mp3 output directory.
Update: Source code is available for download [here].
You can download the project files (schematics, source code, windows app) by clicking on the red download button at the end of this article.
How does it work? The hardware-part consists of: - audio pickup circuit - phone line status monitor - microcontroller to send the phone-line state to PC using USB (serial<->usb)
The software: - receiving the phone-line state via USB and managing the recording to WAV - after conversation is finished, converts WAV to MP3 using Lame library
Phone line status monitor circuit This circuit is basically measuring voltage on the phone-line, which is is above 15 Volts (around 50) when on-hook. When any of the phones is picked-up the voltage drops below 15 Volts. This property is used to detect whether the phone line is in-use or not. The circuit is actually taken from this address and altered a bit.
Audio pickup from telephone line In this simple part a transformer from an old PC modem i used. There are also 2x1N4148 diodes to limit the output voltage of the transformer to ~0.6V, a resistor and a capacitor. The important part is this capacitor which ensures that phone-line is never occupied by the circuit.
Microcontroller to send data to PC Microcontroller is checking the phone line status every 0.2 seconds with a help of monitor circuit above. If the optocoupler is "closed" for more than 0.15 seconds it means that the phone line is occupied and it starts to send letter "R" (Rec) to PC application. In other case it sends "S" (Stop). This data is received by the PC where the application starts audio recording (R) or stops (S). Since the microcontroller uses serial communication to send the data, PL-2303 circuit is used to translate those signals to USB. (An entire PCB converter is used in this application, as it can be seen in the picture.) Much better way of doing this is would be with V-USB library (see these simple projects). That way we could use only one Atmel chip instead of these two (PIC + PL-2303).
Nice Project. I need source code of recording application. Does it maintain logs for dialed
numbers as well? I need DTMF decoder addition to this. Is that possible? Please provide
source code to my email ID. Very useful project indeed.
Regards IP: 22.214.171.124
Hello, Congratulations on the excellent work I'm sure that will this will help in learning
electronics for many people. I very happy if you make available to me the code in delphi so I
can understand how and made to read the data. grateful IP: 126.96.36.199