[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