PDA

View Full Version : Dialer detecting end user hookup



lerameur
- 2nd September 2008, 20:41
Hello,

I am using a pic controller for a dialer project. My goal is to dial
a number, when the receiving end picks up, then send some dtmf tone
for a few minutes.
Sounds simple, but I do not know how to tell my controller that the
receiving end has picked up or not. As of now, I just let the dialer compose the number, pause for 10 seconds (during this time it is ringing on the other end) and send a signal dial tone after that.
I would like it to be more 'intelligent' by knowing when the receiver has picked up so I can
send the dial tone (message) only at that instant
thanks

K

BobK
- 2nd September 2008, 22:32
Hi Lerameur,

In the alarm business our dialers call a receiver that gives a series or handshake tones. For example, the first tone might be 1800hz for 1 sec, if no reply from the dialer within 2 secs, then a 1400hz tone for 1 sec, wait for a response, if none then another tone is sent consisting of 1/2 second of 1400 then 1/2 second of 1800, wait for a response, if none then one or two more speciality handshake tones are sent before the receiver gives up and hangs up. Each different handshake tone tells the receiver what type of data format the dialer is using to send the information. Newer receivers use DSP processors and algorithims to determine the data format based on the number of digits, interdigit spacing, and the frequency of the data. One type of receiver recognizes the caller ID of the incoming call and issues only one type of handshake/kissoff tone that it knows that specific dialer needs.

If your dialer is calling you or someone specific, why not spice up your project and use a voice chip like Emic, Speakjet, or one of the ISD chips to deliver short message that instructs the person receiving the call to press 1 or * or # when they hear the message. This would let your dialer know that it reached someone.

At http://www.clare.com/Products/callprogress.htm They have what are called "Call Progress chips". Teltone used to make them but I didn't see anything about them on their site. They analize the progress of the call for you and interface to uC's.

If you need anymore information on the alarm dialers let me know. I have written courses on them for the alarm industry in the past.

HTH,

BobK

lerameur
- 2nd September 2008, 23:23
Hi,
I am not sure on how to do a handshake. I am not in control of the receiving end. there are only two options, either the person picks up the phone or not.
It is not like me programing a RS232 where I am in control of both ends. I am not sure I understand the handshaking thing.
This is the code I use for dialing, I would just like to add the receiving off hook, programing bit so I have more control over the dialing process.
(If that works then I will probably use the ISD4005 voice chip.. but I am not there yet.)

Dial1760: 'cel
lcdout $FE,1, "dialing1760 ",dec counter
Pause 500
PortA.1 = 1 'Activate relay
pause 3000
DTMFOUT PortA.0, 500, 100, [5,5,4,4,9,5,4,3,6,2] 'dialing
'Set the OnTime to 500ms and OffTime to 100ms - for sure receiving
pause 8000 'Pause 8 seconds 'wait for enduser to pick up
DTMFOUT PortA.0, 6000,0, [5] 'signal
pause 2000 'Pause 2 seconds
PortA.1 = 0 'deActivate relay
pause 5000 'Pause 5 seconds
return

K

Bruce
- 2nd September 2008, 23:51
Have a look at some of these examples. You might find something useful.
http://www.melabs.com/resources/samples.htm#xtpbp

lerameur
- 3rd September 2008, 01:54
Bruce,

interesting program, but I am still a bit confused. Seems to me that this program act like both the dialer and receiving end.
This line in the program: IF (j > 60) OR (key = 12) Then stop_ringing
seems to only stop ringing if the person dialing decide to stop the ringing or the counter finishes its loop.
What about if the person at the other picks up the telephone, how would it know to stop ringing?
thanks

Ken

Bruce
- 3rd September 2008, 15:22
I have not looked at or used any of these code examples, but they do show how to detect
off-hook conditions and a lot more. Just figured you could find something useful in there
somewhere.

ardhuru
- 3rd September 2008, 16:45
In the old days, the voltage polarity on the line used to flip when the called party lifted the phone; very easy to detect using an opto. Havent tested if this is still the case for a long time.

Regards,

Anand