[Asterisk-Users] Asterisk "answering machine" replacement, "WaitForRing()", application return values

Dovid Bender asteriskdigium at yahoo.com
Mon Apr 3 03:52:25 MST 2006


> This is possibly a dumb question, but I've googled
> around and poked through 
> the documentation and I'm a bit confused.
> 
> My initial experiment with Asterisk involves setting
> it up in place of my old 
> dedicated "answering machine".  That means I've
> still got a regular old phone 
> on the line which we normally answer calls with.[1]
> 
> I'm trying to set up Asterisk to leave the line
> alone if someone picks up the 
> regular phone within a certain number of rings. 
> Google came up with a few 
> people asking how to do the same thing but no
> definitive descriptions or 
> indications as to what worked.
> 
> I THINK I actually have this set up now, but I'm
> unclear on how 
> "WaitForRing()" is supposed to work.
> 
> Depending on which set of documentation you look it,
> it seems 
> "WaitForRing($seconds)" is supposed to either A)Wait
> $seconds seconds AFTER 
> the next ring it detects or B)Wait $seconds for the
> next ring (and fail if no 
> ring occurs in that time) or possibly C)Wait
> $seconds seconds, then listen 
> for the next ring.
> 
> (The OReilly book has one description for the
> application as the "summary", 
> then another as the full description...)
> 
> I'm operating on the assumption that B) is supposed
> to be correct when you use 
> "WaitForRing()" in the context of an incoming call?
> 
> Also, while googling I did find that you can't do
> anything with the "return 
> values" of applications (looks like the "return
> values" are only for 
> programmers writing asterisk modules).  Is it
> correct that if an applications 
> fails ("returns -1") the thread stops at that point
> due to the failure?
> 
> Basically, my approach in extensions.conf right now
> is:
> 
> ;wait about 3-4 rings
> Wait(14)
> ;listen for one more ring - if there isn't one,
> leave the line alone
> ;because we assume someone picked up the "regular"
> phone in time
> WaitForRing(1)
> ;I assume if WaitForRing(1) fails [returns -1] it
> kills the
> ;thread automatically?
> ;otherwise - answer and have Asterisk take over
> handling the call
> Answer()
> 
> etc.
> 
> (Any other recommended approaches for this would be
> appreciated, too...)
> 
> Thanks, all
> 
> [1] money is an issue, otherwise I could just swap
> in a VoIP phone or buy the 
> expensive (for my budget at the moment) TDM card
> with an FXO and FXS module 
> instead of the cheap X101P clone I'm using now.  

Not sure if this wil work and if I am wrond some one
out there please correct me. I think you can try this.

Exten => s,1,Wait(35)
Exten => s,2,Answer
Exten => s,3,Voicemail(1)
Exten => s,4,Hangup


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the asterisk-users mailing list