Re: [Asterisk-Users] Answering Machine Detection
On 27/10/03 21:57, DUSTIN WILDES wrote: Does anyone have any recommendations on implementing Answering Machine detection for call generation programs? There's obviously no nice way of doing this. If you're doing telemarketing, and you're playing pre-recorded audio, which of course is a nasty thing to do, the algorithm is something like: 1. Dial out. 2. Wait for answer. 3. Start playing audio. 4. If you hear something that sounds like a beep, either hang up and try again later, or stop the audio, pause for two seconds and start playing it again. 5. Hang up when finished playing audio. Step 4 is accomplished by doing a FFT on the incoming audio into frequency buckets and taking a rolling average of the mean and standard deviation, such that you can detect when a fixed monotone beep occurs at the other end. If you don't want to play audio files and wait for beeps, and want to connect real humans to each other, then there's no decent way to do this, as the only difference between humans and arbitrary answering machines is that the answering machines give you a beep prompt to record your message. Regards, -- Alastair Maw ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Humans tend to say "Hello?" (short burst of audio followed by silence), and answering machines tend to say "I'm sorry I'm not here right now, please leave a message after the beep" (long burst of audio followed by a beep and silence). So, basically you need to decide 1) what is audio and what is background noise and 2) how long should there be audio followed by silence. On Tue, 2003-10-28 at 19:25, Alastair Maw wrote: > On 27/10/03 21:57, DUSTIN WILDES wrote: > > Does anyone have any recommendations on implementing Answering > > Machine detection for call generation programs? > > There's obviously no nice way of doing this. > If you're doing telemarketing, and you're playing pre-recorded audio, > which of course is a nasty thing to do, the algorithm is something like: > > 1. Dial out. > 2. Wait for answer. > 3. Start playing audio. > 4. If you hear something that sounds like a beep, either hang up > and try again later, or stop the audio, pause for two seconds > and start playing it again. > 5. Hang up when finished playing audio. > > Step 4 is accomplished by doing a FFT on the incoming audio into > frequency buckets and taking a rolling average of the mean and standard > deviation, such that you can detect when a fixed monotone beep occurs at > the other end. > > > If you don't want to play audio files and wait for beeps, and want to > connect real humans to each other, then there's no decent way to do > this, as the only difference between humans and arbitrary answering > machines is that the answering machines give you a beep prompt to record > your message. > > Regards, -- Sample configs, scripts, more : http://www.fnords.org/~eric/asterisk/ BTEL Consulting 504-899-1387 or 850-484-4545 or 877-677-9643 ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Alastair Maw wrote: On 27/10/03 21:57, DUSTIN WILDES wrote: Does anyone have any recommendations on implementing Answering Machine detection for call generation programs? There's obviously no nice way of doing this. If you're doing telemarketing, and you're playing pre-recorded audio, which of course is a nasty thing to do, the algorithm is something like: 1. Dial out. 2. Wait for answer. 3. Start playing audio. 4. If you hear something that sounds like a beep, either hang up and try again later, or stop the audio, pause for two seconds and start playing it again. 5. Hang up when finished playing audio. Step 4 is accomplished by doing a FFT on the incoming audio into frequency buckets and taking a rolling average of the mean and standard deviation, such that you can detect when a fixed monotone beep occurs at the other end. How very inefficient. Looking for peaks in the autocorrelation function requires much less compute. If you don't want to play audio files and wait for beeps, and want to connect real humans to each other, then there's no decent way to do this, as the only difference between humans and arbitrary answering machines is that the answering machines give you a beep prompt to record your message. Right. Dialogic and others make a big fuss of the super detection algorithms, and quote 90+% accuracy. In the real world they are utterly useless. Call answering just doesn't fall into a sufficient redular patterm. Regards, Steve ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
See http://resource.intel.com/telecom/support/documentation/unix/SR50_linux/html _files/vox_feat/contents.html#TopOfPage chapter 2 for a basic insight on Dialogic does it... -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Eric Wieling Sent: woensdag 29 oktober 2003 3:12 To: [EMAIL PROTECTED] Subject: Re: [Asterisk-Users] Answering Machine Detection Humans tend to say "Hello?" (short burst of audio followed by silence), and answering machines tend to say "I'm sorry I'm not here right now, please leave a message after the beep" (long burst of audio followed by a beep and silence). So, basically you need to decide 1) what is audio and what is background noise and 2) how long should there be audio followed by silence. On Tue, 2003-10-28 at 19:25, Alastair Maw wrote: > On 27/10/03 21:57, DUSTIN WILDES wrote: > > Does anyone have any recommendations on implementing Answering > > Machine detection for call generation programs? > > There's obviously no nice way of doing this. > If you're doing telemarketing, and you're playing pre-recorded audio, > which of course is a nasty thing to do, the algorithm is something like: > > 1. Dial out. > 2. Wait for answer. > 3. Start playing audio. > 4. If you hear something that sounds like a beep, either hang up > and try again later, or stop the audio, pause for two seconds > and start playing it again. > 5. Hang up when finished playing audio. > > Step 4 is accomplished by doing a FFT on the incoming audio into > frequency buckets and taking a rolling average of the mean and standard > deviation, such that you can detect when a fixed monotone beep occurs at > the other end. > > > If you don't want to play audio files and wait for beeps, and want to > connect real humans to each other, then there's no decent way to do > this, as the only difference between humans and arbitrary answering > machines is that the answering machines give you a beep prompt to record > your message. > > Regards, -- Sample configs, scripts, more : http://www.fnords.org/~eric/asterisk/ BTEL Consulting 504-899-1387 or 850-484-4545 or 877-677-9643 ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Actually, Back in '99, Dialogic used a very simple algorithm, and it was surprisingly accurate. You simply watch and see how long the initial greeting is. If it is short (say, only a few seconds), then it is generally a live person. However, if the initial greeting lasts for much longer (say 20 seconds) then you have contacted an answering machine. That is one of the big reasons CPA on Dialogic used to give so many headaches on drop and insert applications. It would sometimes wait 10 seconds before returning answer supervision to the application and the talk path would be cut through (Had to wait to determine whether it was a human or an answering machine). In this time, if a human answered, he would sometimes hangup because he wouldn't hear any response from the remote side. Properly tuned, just watching how many seconds of energy you get in the initial greeting before silence sets in will give you 90% accuracy in determining answering machine or live person. There are always exceptions however. As a first guess though, you can assume anything less than 5-10 seconds is human, anything greater is a machine. Lots of ways to get it wrong though. Not recognizing a SIT tone and returning "answering machine" for circuit failure, not recognizing when ringing has ended and misinterpreting the "hellohello" as still being ringing cadence (Dialogic did this about 3% of the time). But in theory it should be trivial to implement in Asterisk. Might want to write a new "energy detector" algorithm in dsp.c though based on a wideband/low Q resonator approach (move the pole way in towards the origin) as opposed to narrow band goertzels (pole on the unit circle). More robust for this type of work. Chris At 08:24 PM 10/29/2003 +0800, you wrote: Alastair Maw wrote: On 27/10/03 21:57, DUSTIN WILDES wrote: Does anyone have any recommendations on implementing Answering Machine detection for call generation programs? There's obviously no nice way of doing this. If you're doing telemarketing, and you're playing pre-recorded audio, which of course is a nasty thing to do, the algorithm is something like: 1. Dial out. 2. Wait for answer. 3. Start playing audio. 4. If you hear something that sounds like a beep, either hang up and try again later, or stop the audio, pause for two seconds and start playing it again. 5. Hang up when finished playing audio. Step 4 is accomplished by doing a FFT on the incoming audio into frequency buckets and taking a rolling average of the mean and standard deviation, such that you can detect when a fixed monotone beep occurs at the other end. How very inefficient. Looking for peaks in the autocorrelation function requires much less compute. If you don't want to play audio files and wait for beeps, and want to connect real humans to each other, then there's no decent way to do this, as the only difference between humans and arbitrary answering machines is that the answering machines give you a beep prompt to record your message. Right. Dialogic and others make a big fuss of the super detection algorithms, and quote 90+% accuracy. In the real world they are utterly useless. Call answering just doesn't fall into a sufficient redular patterm. Regards, Steve ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
Thanks for all the info! So I take it I would need to either build an additional APP to asterisk like (voice_detection) or into an AGI and have that application or AGI run after the call is Answered? Fortunately it's not a telemarketing system! :-) It's an appointment reminder system for some of our employees. Calls them up and reminds them of important tasks like meetings and stuff. -Original Message- From: Michiel Betel [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 29, 2003 8:11 AM To: [EMAIL PROTECTED] Subject: RE: [Asterisk-Users] Answering Machine Detection See http://resource.intel.com/telecom/support/documentation/unix/SR50_linux/html _files/vox_feat/contents.html#TopOfPage chapter 2 for a basic insight on Dialogic does it... -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Eric Wieling Sent: woensdag 29 oktober 2003 3:12 To: [EMAIL PROTECTED] Subject: Re: [Asterisk-Users] Answering Machine Detection Humans tend to say "Hello?" (short burst of audio followed by silence), and answering machines tend to say "I'm sorry I'm not here right now, please leave a message after the beep" (long burst of audio followed by a beep and silence). So, basically you need to decide 1) what is audio and what is background noise and 2) how long should there be audio followed by silence. On Tue, 2003-10-28 at 19:25, Alastair Maw wrote: > On 27/10/03 21:57, DUSTIN WILDES wrote: > > Does anyone have any recommendations on implementing Answering > > Machine detection for call generation programs? > > There's obviously no nice way of doing this. > If you're doing telemarketing, and you're playing pre-recorded audio, > which of course is a nasty thing to do, the algorithm is something like: > > 1. Dial out. > 2. Wait for answer. > 3. Start playing audio. > 4. If you hear something that sounds like a beep, either hang up > and try again later, or stop the audio, pause for two seconds > and start playing it again. > 5. Hang up when finished playing audio. > > Step 4 is accomplished by doing a FFT on the incoming audio into > frequency buckets and taking a rolling average of the mean and standard > deviation, such that you can detect when a fixed monotone beep occurs at > the other end. > > > If you don't want to play audio files and wait for beeps, and want to > connect real humans to each other, then there's no decent way to do > this, as the only difference between humans and arbitrary answering > machines is that the answering machines give you a beep prompt to record > your message. > > Regards, -- Sample configs, scripts, more : http://www.fnords.org/~eric/asterisk/ BTEL Consulting 504-899-1387 or 850-484-4545 or 877-677-9643 ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
Why not just ask them to "press-any-key" ? > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > DUSTIN WILDES > Sent: Thursday, 30 October 2003 12:30 AM > To: [EMAIL PROTECTED] > Subject: RE: [Asterisk-Users] Answering Machine Detection > > > Thanks for all the info! > So I take it I would need to either build an additional APP > to asterisk like (voice_detection) or into an AGI and have > that application or AGI run after the call is Answered? > > Fortunately it's not a telemarketing system! :-) > It's an appointment reminder system for some of our > employees. Calls them up and reminds them of important tasks > like meetings and stuff. > > > > > -Original Message- > From: Michiel Betel [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 29, 2003 8:11 AM > To: [EMAIL PROTECTED] > Subject: RE: [Asterisk-Users] Answering Machine Detection > > > See > http://resource.intel.com/telecom/support/documentation/unix/S > R50_linux/html > _files/vox_feat/contents.html#TopOfPage chapter 2 for a basic > insight on > Dialogic does it... > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Eric Wieling > Sent: woensdag 29 oktober 2003 3:12 > To: [EMAIL PROTECTED] > Subject: Re: [Asterisk-Users] Answering Machine Detection > > > Humans tend to say "Hello?" (short burst of audio followed by > silence), and > answering machines tend to say "I'm sorry I'm not here right > now, please > leave a message after the beep" (long burst of audio followed > by a beep and > silence). > > So, basically you need to decide 1) what is audio and what is > background > noise and 2) how long should there be audio followed by silence. > > On Tue, 2003-10-28 at 19:25, Alastair Maw wrote: > > On 27/10/03 21:57, DUSTIN WILDES wrote: > > > Does anyone have any recommendations on implementing Answering > > > Machine detection for call generation programs? > > > > There's obviously no nice way of doing this. > > If you're doing telemarketing, and you're playing > pre-recorded audio, > > which of course is a nasty thing to do, the algorithm is > something like: > > > > 1. Dial out. > > 2. Wait for answer. > > 3. Start playing audio. > > 4. If you hear something that sounds like a beep, either hang up > > and try again later, or stop the audio, pause for two seconds > > and start playing it again. > > 5. Hang up when finished playing audio. > > > > Step 4 is accomplished by doing a FFT on the incoming audio into > > frequency buckets and taking a rolling average of the mean > and standard > > deviation, such that you can detect when a fixed monotone > beep occurs at > > the other end. > > > > > > If you don't want to play audio files and wait for beeps, > and want to > > connect real humans to each other, then there's no decent way to do > > this, as the only difference between humans and arbitrary answering > > machines is that the answering machines give you a beep > prompt to record > > your message. > > > > Regards, > -- > Sample configs, scripts, more : http://www.fnords.org/~eric/asterisk/ > > BTEL Consulting 504-899-1387 or 850-484-4545 or 877-677-9643 > > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > > > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
Because I need detection for the logging functions. Otherwise I won't get accurate logging results. -Original Message- From: Bryan Nolen [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 29, 2003 8:38 AM To: [EMAIL PROTECTED] Subject: RE: [Asterisk-Users] Answering Machine Detection Why not just ask them to "press-any-key" ? > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > DUSTIN WILDES > Sent: Thursday, 30 October 2003 12:30 AM > To: [EMAIL PROTECTED] > Subject: RE: [Asterisk-Users] Answering Machine Detection > > > Thanks for all the info! > So I take it I would need to either build an additional APP > to asterisk like (voice_detection) or into an AGI and have > that application or AGI run after the call is Answered? > > Fortunately it's not a telemarketing system! :-) > It's an appointment reminder system for some of our > employees. Calls them up and reminds them of important tasks > like meetings and stuff. > > > > > -Original Message- > From: Michiel Betel [mailto:[EMAIL PROTECTED] > Sent: Wednesday, October 29, 2003 8:11 AM > To: [EMAIL PROTECTED] > Subject: RE: [Asterisk-Users] Answering Machine Detection > > > See > http://resource.intel.com/telecom/support/documentation/unix/S > R50_linux/html > _files/vox_feat/contents.html#TopOfPage chapter 2 for a basic > insight on > Dialogic does it... > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Eric Wieling > Sent: woensdag 29 oktober 2003 3:12 > To: [EMAIL PROTECTED] > Subject: Re: [Asterisk-Users] Answering Machine Detection > > > Humans tend to say "Hello?" (short burst of audio followed by > silence), and > answering machines tend to say "I'm sorry I'm not here right > now, please > leave a message after the beep" (long burst of audio followed > by a beep and > silence). > > So, basically you need to decide 1) what is audio and what is > background > noise and 2) how long should there be audio followed by silence. > > On Tue, 2003-10-28 at 19:25, Alastair Maw wrote: > > On 27/10/03 21:57, DUSTIN WILDES wrote: > > > Does anyone have any recommendations on implementing Answering > > > Machine detection for call generation programs? > > > > There's obviously no nice way of doing this. > > If you're doing telemarketing, and you're playing > pre-recorded audio, > > which of course is a nasty thing to do, the algorithm is > something like: > > > > 1. Dial out. > > 2. Wait for answer. > > 3. Start playing audio. > > 4. If you hear something that sounds like a beep, either hang up > > and try again later, or stop the audio, pause for two seconds > > and start playing it again. > > 5. Hang up when finished playing audio. > > > > Step 4 is accomplished by doing a FFT on the incoming audio into > > frequency buckets and taking a rolling average of the mean > and standard > > deviation, such that you can detect when a fixed monotone > beep occurs at > > the other end. > > > > > > If you don't want to play audio files and wait for beeps, > and want to > > connect real humans to each other, then there's no decent way to do > > this, as the only difference between humans and arbitrary answering > > machines is that the answering machines give you a beep > prompt to record > > your message. > > > > Regards, > -- > Sample configs, scripts, more : http://www.fnords.org/~eric/asterisk/ > > BTEL Consulting 504-899-1387 or 850-484-4545 or 877-677-9643 > > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > > > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
Might want to write a new > "energy detector" algorithm in dsp.c though based on a wideband/low Q > resonator approach (move the pole way in towards the origin) > as opposed to > narrow band goertzels (pole on the unit circle). More robust > for this type > of work. Where does one go to learn this terminology and the math to implement it? -- Scanned for viruses and dangerous content at http://www.oneunified.net and is believed to be clean. ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Why not just ask them to "press-any-key" ? And if any of them get confused you can refer them to Compaq frequently asked question #2859 http://web14.compaq.com/falco/detail.asp?FAQnum=FAQ2859 :) ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
some information can be found here about algorithm and descriptions of method being used. http://citeseer.nj.nec.com/393112.html Regards, Alexander *** XVOIP network is lunched, get your +1 777 number today. [EMAIL PROTECTED] *** Unofficial Asterisk Forums *** URL : http://asterisk.xvoip.com Registration is : http://asterisk.xvoip.com/profile.php?mode=register *** - Original Message - From: "Ray Burkholder" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, October 29, 2003 9:17 AM Subject: RE: [Asterisk-Users] Answering Machine Detection > Might want to write a new > > "energy detector" algorithm in dsp.c though based on a wideband/low Q > > resonator approach (move the pole way in towards the origin) > > as opposed to > > narrow band goertzels (pole on the unit circle). More robust > > for this type > > of work. > > Where does one go to learn this terminology and the math to implement it? > > > -- > Scanned for viruses and dangerous content at > http://www.oneunified.net and is believed to be clean. > > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Did you mistype or something. That link is about power profiling the consumption of DSPs :-) Regards, Steve Asterisk online forums wrote: some information can be found here about algorithm and descriptions of method being used. http://citeseer.nj.nec.com/393112.html Regards, Alexander *** XVOIP network is lunched, get your +1 777 number today. [EMAIL PROTECTED] *** Unofficial Asterisk Forums *** URL : http://asterisk.xvoip.com Registration is : http://asterisk.xvoip.com/profile.php?mode=register *** ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Hi Chris, That is exactly the Dialogic implementation I was referring to that was utterly useless. It works OK when people are demoing, as they always follow a certain pattern. In real like it I've always found it a recipe for screaming angry users. Depnding on your use it can get over 90% of calls wrong. It is just so dependant on exactly how people behave. Regards, Steve Chris Ziomkowski wrote: Actually, Back in '99, Dialogic used a very simple algorithm, and it was surprisingly accurate. You simply watch and see how long the initial greeting is. If it is short (say, only a few seconds), then it is generally a live person. However, if the initial greeting lasts for much longer (say 20 seconds) then you have contacted an answering machine. That is one of the big reasons CPA on Dialogic used to give so many headaches on drop and insert applications. It would sometimes wait 10 seconds before returning answer supervision to the application and the talk path would be cut through (Had to wait to determine whether it was a human or an answering machine). In this time, if a human answered, he would sometimes hangup because he wouldn't hear any response from the remote side. Properly tuned, just watching how many seconds of energy you get in the initial greeting before silence sets in will give you 90% accuracy in determining answering machine or live person. There are always exceptions however. As a first guess though, you can assume anything less than 5-10 seconds is human, anything greater is a machine. Lots of ways to get it wrong though. Not recognizing a SIT tone and returning "answering machine" for circuit failure, not recognizing when ringing has ended and misinterpreting the "hellohello" as still being ringing cadence (Dialogic did this about 3% of the time). But in theory it should be trivial to implement in Asterisk. Might want to write a new "energy detector" algorithm in dsp.c though based on a wideband/low Q resonator approach (move the pole way in towards the origin) as opposed to narrow band goertzels (pole on the unit circle). More robust for this type of work. Chris At 08:24 PM 10/29/2003 +0800, you wrote: Alastair Maw wrote: On 27/10/03 21:57, DUSTIN WILDES wrote: Does anyone have any recommendations on implementing Answering Machine detection for call generation programs? There's obviously no nice way of doing this. If you're doing telemarketing, and you're playing pre-recorded audio, which of course is a nasty thing to do, the algorithm is something like: 1. Dial out. 2. Wait for answer. 3. Start playing audio. 4. If you hear something that sounds like a beep, either hang up and try again later, or stop the audio, pause for two seconds and start playing it again. 5. Hang up when finished playing audio. Step 4 is accomplished by doing a FFT on the incoming audio into frequency buckets and taking a rolling average of the mean and standard deviation, such that you can detect when a fixed monotone beep occurs at the other end. How very inefficient. Looking for peaks in the autocorrelation function requires much less compute. If you don't want to play audio files and wait for beeps, and want to connect real humans to each other, then there's no decent way to do this, as the only difference between humans and arbitrary answering machines is that the answering machines give you a beep prompt to record your message. Right. Dialogic and others make a big fuss of the super detection algorithms, and quote 90+% accuracy. In the real world they are utterly useless. Call answering just doesn't fall into a sufficient redular patterm. Regards, Steve ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Ray Burkholder wrote: Might want to write a new "energy detector" algorithm in dsp.c though based on a wideband/low Q resonator approach (move the pole way in towards the origin) as opposed to narrow band goertzels (pole on the unit circle). More robust for this type of work. Where does one go to learn this terminology and the math to implement it? Apparantly not to this source. :-) A Goertzel filter finds one output bin of a DFT. Since the width of the bins in a DFT is directly related to the number of samples you include in a processed block, the width of the Goertzel is too. A Geortzel is as wide or as narrow as you want it to be. Oh, and k does not need to be an integer, unless you are trying to evaluate phase. That is a common misconception. There is a sliding window version of a Goertzel filter, but this has the same characteristics as the standard version, as it is just a trick for calculating a continuous stream of Goertzels efficiently. Regards, Steve ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
At 09:17 AM 10/29/2003 -0500, you wrote: Might want to write a new > "energy detector" algorithm in dsp.c though based on a wideband/low Q > resonator approach (move the pole way in towards the origin) > as opposed to > narrow band goertzels (pole on the unit circle). More robust > for this type > of work. Where does one go to learn this terminology and the math to implement it? Caltech. Take PP's class. Just don't fail. Seriously, any introductory book on filter design. When you design a filter, you write out the transfer function. zeroes in the numerator are called "zeroes". Zeroes in the denominator are called "poles". A filter will pass frequencies near its poles. It will suppress frequencies near its zeroes. As you move poles out towards the unit circle, the filter becomes less stable. You can imagine a "hitting" a filter with a burst at a single frequency. A filter with poles near the origin will die off very quickly. As you move towards the unit circle, the filter will "ring" longer and longer. On the unit circle there is no dampening at all. Outside of the unit circle, the filter becomes divergent. The order of the filter is simply the number of zeroes. Goertzel (named after the guy who invented them) filters have their poles on the unit circle. Asterisk uses these to recognize DTMF and other tones. They are easy to calculate mathematically, but they have terrible properties if you need a wide frequency response over a sustained period. A resonator is essentially the same filter but moved inside the unit circle so that it will relax over time. It takes a few more operations to calculate, but you have alot more control over the final shape. If you are interested, I would suggest getting a book on the subject. Just go to Amazon and find one you think meets your requirements. There are several. Any book on Digital Signal Processing will have at least a few chapters on filter design. Pay specific attention to the chapters on IIR filters. They will teach you about poles, zeroes and stability. I would also recommend this tutorial on the web if you're interested: http://www.dewtronics.com/tutorial.html Chris -- Scanned for viruses and dangerous content at http://www.oneunified.net and is believed to be clean. ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
At 11:52 PM 10/29/2003 +0800, you wrote: Ray Burkholder wrote: Might want to write a new "energy detector" algorithm in dsp.c though based on a wideband/low Q resonator approach (move the pole way in towards the origin) as opposed to narrow band goertzels (pole on the unit circle). More robust for this type of work. Where does one go to learn this terminology and the math to implement it? Apparantly not to this source. :-) A Goertzel filter finds one output bin of a DFT. Since the width of the bins in a DFT is directly related to the number of samples you include in a processed block, the width of the Goertzel is too. A Geortzel is as wide or as narrow as you want it to be. Oh, and k does not need to be an integer, unless you are trying to evaluate phase. That is a common misconception. There is a sliding window version of a Goertzel filter, but this has the same characteristics as the standard version, as it is just a trick for calculating a continuous stream of Goertzels efficiently. Now, now, Steve. Let's not get personal. You are correct. I am also correct. It depends on how you look at it. A Goerzel is only as wide as you want it to be if you have short periods and/or infinite representation. Goertzels are on the unit circle, and as such on the edge of stability. They never dampen their responses, so they will grow infinitely large if you keep ringing them. Try using them on a 16 bit fixed point DSP and you'll understand how important this point really is. Regards, Steve ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
"Francois Lambert" <[EMAIL PROTECTED]> At 13:15 31/03/04 +0530, you wrote: Hi, How do I detect an Answering Machine in Asterisk. I saw a post by Francois Lambert on 19 Jan. but am unable to get his email id. http://www.mail-archive.com/[EMAIL PROTECTED]/msg02388.html Can somebody please help? Thank you Navnit ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users Peter Brown ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering Machine Detection
carlos, you got further than I did... AMD didn't work at all on my release.. I think I was using 1.4.11 at the time... I ended up using the below daveC ;---< amdtest (ext 13) starts here > ; ; restructure this for the following conditions: ; 13 using waitforsilence(variable set) then play message ; only works when there is an answering machine picking up and it doesn't ; cut off (hangup) before SILENCEDURATION ms exten => 13,1,NoOp( Starting exten 13 AMD stuff) exten => 13,n,Wait(1) exten => 13,n,Set(SILENCEDURATION=4300) exten => 13,n,Set(SILENCEOCCURANCES="") exten => 13,n,Set(SILENCETIMEOUT=38) exten => 13,n,NoOp( SILENCEDURATION=${SILENCEDURATION} ) exten => 13,n,NoOp( SILENCEOCCURANCES=${SILENCEOCCURANCES} ) exten => 13,n,NoOp( SILENCETIMEOUT=${SILENCETIMEOUT} ) ;exten => 13,n,Answer exten => 13,n,WaitForSilence(${SILENCEDURATION},${SILENCEOCCURANCES},${SILENCETIMEOUT}) exten => 13,n,NoOp(Retnd WAITSTATUS=${WAITSTATUS} ) exten => 13,n,Playback(lax/lax-important-msg-from) exten => 13,n,PlayBack(lax/to-hear-msg-press-1) exten => 13,n,Read(CALL_ACK,beep,1,,,3) exten => 13,n,NoOp(CALL_ACK is >${CALL_ACK}<) exten => 13,n,GotoIf([${CALL_ACK} = ""]?nak13) exten => 13,n(ack13),NoOp( Ack ) exten => 13,n,NoOp( log the ACK acknowlegement here calling the AGI script) ;exten => 13,n,AGI(lax/track-laxcalls.sh,${EXTEN},${CALL_ACK}) exten => 13,n,GotoIf([${CALL_ACK} = ""]?play13) exten => 13,n(nak13),NoOp( Nak ) exten => 13,n,NoOp( log the NAK acknowlegement here calling the AGI script) ;exten => 13,n,AGI(lax/track-laxcalls.sh,${EXTEN},${CALL_ACK}) exten => 13,n(play13),Playback(lax/lax-important-msg-from) exten => 13,n,Playback(tt-weasels) exten => 13,n,Playback(tt-monkeysintro) exten => 13,n,Wait(1) exten => 13,n,Hangup Carlos Chavez wrote: > I am having a bit of a problem getting AMD to work on a new server. On > my regular office server it works like a charm. I am running Asterisk > 1.4.13, Zaptel 1.4.5.1 on both machines. Both servers run CentOS 5 and > I am using a SIP trunk to send out calls (the same one on both servers). > > Here is the output of a call on my office server: > > -- Attempting call on Local/[EMAIL PROTECTED] for [EMAIL PROTECTED]:1 > (Retry > 1) > -- Executing [EMAIL PROTECTED]:1] > Set("Local/[EMAIL PROTECTED],2", "CIDTEMP="1" <5540881644>") in new > stack > -- Executing [EMAIL PROTECTED]:2] > Dial("Local/[EMAIL PROTECTED],2", "SIP/protel-out/0445540881644| > 25") in new stack > -- Called protel-out/0445540881644 > -- SIP/protel-out-0934bb28 is making progress passing it to > Local/[EMAIL PROTECTED],2 > -- SIP/protel-out-0934bb28 answered Local/[EMAIL PROTECTED],2 > -- Executing [EMAIL PROTECTED]:1] NoOp("Local/[EMAIL PROTECTED],1", ""1" > <5540881644>") in new stack > -- Executing [EMAIL PROTECTED]:2] AMD("Local/[EMAIL PROTECTED],1", "") > in new stack > -- AMD: Local/[EMAIL PROTECTED],1 5540881644 (null) (Fmt: 64) > -- AMD: initialSilence [2500] greeting [1500] afterGreetingSilence > [800] totalAnalysisTime [5000] minimumWordLength [100] > betweenWordsSilence [50] maximumNumberOfWords [5] silenceThreshold > [256] > == Spawn extension (CC2, 0445540881644, 2) exited non-zero on > 'Local/[EMAIL PROTECTED],2' > -- Executing [EMAIL PROTECTED]:1] DeadAGI("Local/[EMAIL PROTECTED],2", > "agi://localhost/updateCallStatus.agi?callStatus=hangupcc2") in new > stack > -- AGI Script > agi://localhost/updateCallStatus.agi?callStatus=hangupcc2 completed, > returning 0 > -- AMD: Word detected. iWordsCount:1 > -- AMD: Changed state to STATE_IN_SILENCE > -- AMD: HUMAN: silenceDuration:800 afterGreetingSilence:800 > -- Executing [EMAIL PROTECTED]:3] GotoIf("SIP/protel-out-0934bb28", > "1?7:4") > in new stack > -- Goto (CC,2001,7) > -- Executing [EMAIL PROTECTED]:7] AGI("SIP/protel-out-0934bb28", > "agi://localhost/updateCallStatus.agi?callStatus=answered") in new stack > -- AGI Script > agi://localhost/updateCallStatus.agi?callStatus=answered completed, > returning 0 > -- Executing [EMAIL PROTECTED]:8] Set("SIP/protel-out-0934bb28", > "CALLERID(all)=") in new stack > -- Executing [EMAIL PROTECTED]:9] MixMonitor("SIP/protel-out-0934bb28", > "1192468625.7.wav|b") in new stack > -- Executing [EMAIL PROTECTED]:10] Dial("SIP/protel-out-0934bb28", > "SIP/2001| > 20") in new stack > -- Called 2001 > == Begin MixMonitor Recording SIP/protel-out-0934bb28 > > > And here is the output on the new server: > > -- Attempting call on Local/[EMAIL PROTECTED] for [EMAIL PROTECTED]:1 (Retry > 1) > -- Executing [EMAIL PROTECTED]:1] > Set("Local/[EMAIL PROTECTED],2", "CIDTEMP="1" <5540881644>") in new > stack > -- Executing [EMAIL PROTECTED]:2] > Dial("Local/[EMAIL PROTECTED],2", "SIP/protel-out/0445540881644| > 25") in new stack > -- Called protel-out/0445540881644 > -- SIP/protel-out-09ce0358 is making progress passing it to > Local/[EMAIL PROTECTED],2 >
Re: [asterisk-users] Answering Machine Detection
If i use AMD() or the code below, now the problem is the fax machine/modem detection and answer machine detection get detected as the same. If i need to seperate the two how do i do that? For example, if i use AMD() to detect an answer machine by saying any greeting exceeding 2.5 seconds is a machine, how do i distinguish between a fax/modem and a long greeting? dave cantera <[EMAIL PROTECTED]> wrote: > carlos, > you got further than I did... AMD didn't work at all on my release.. I > think I was using 1.4.11 at the time... > I ended up using the below > daveC > > ;---< amdtest (ext 13) starts here > > ; > ; restructure this for the following conditions: > ; 13 using waitforsilence(variable set) then play message > ; only works when there is an answering machine picking up and it doesn't > ; cut off (hangup) before SILENCEDURATION ms > exten => 13,1,NoOp( Starting exten 13 AMD stuff) > exten => 13,n,Wait(1) > exten => 13,n,Set(SILENCEDURATION=4300) > exten => 13,n,Set(SILENCEOCCURANCES="") > exten => 13,n,Set(SILENCETIMEOUT=38) > exten => 13,n,NoOp( SILENCEDURATION=${SILENCEDURATION} ) > exten => 13,n,NoOp( SILENCEOCCURANCES=${SILENCEOCCURANCES} ) > exten => 13,n,NoOp( SILENCETIMEOUT=${SILENCETIMEOUT} ) > ;exten => 13,n,Answer > exten => > 13,n,WaitForSilence(${SILENCEDURATION},${SILENCEOCCURANCES},${SILENCETIMEOUT}) > exten => 13,n,NoOp(Retnd WAITSTATUS=${WAITSTATUS} ) > exten => 13,n,Playback(lax/lax-important-msg-from) > exten => 13,n,PlayBack(lax/to-hear-msg-press-1) > exten => 13,n,Read(CALL_ACK,beep,1,,,3) > exten => 13,n,NoOp(CALL_ACK is >${CALL_ACK}<) > exten => 13,n,GotoIf([${CALL_ACK} = ""]?nak13) > exten => 13,n(ack13),NoOp( Ack ) > exten => 13,n,NoOp( log the ACK acknowlegement here calling the AGI script) > ;exten => 13,n,AGI(lax/track-laxcalls.sh,${EXTEN},${CALL_ACK}) > exten => 13,n,GotoIf([${CALL_ACK} = ""]?play13) > exten => 13,n(nak13),NoOp( Nak ) > exten => 13,n,NoOp( log the NAK acknowlegement here calling the AGI script) > ;exten => 13,n,AGI(lax/track-laxcalls.sh,${EXTEN},${CALL_ACK}) > exten => 13,n(play13),Playback(lax/lax-important-msg-from) > exten => 13,n,Playback(tt-weasels) > exten => 13,n,Playback(tt-monkeysintro) > exten => 13,n,Wait(1) > exten => 13,n,Hangup > > > > > > Carlos Chavez wrote: > > I am having a bit of a problem getting AMD to work on a new server. On > > my regular office server it works like a charm. I am running Asterisk > > 1.4.13, Zaptel 1.4.5.1 on both machines. Both servers run CentOS 5 and > > I am using a SIP trunk to send out calls (the same one on both servers). > > > > Here is the output of a call on my office server: > > > > -- Attempting call on Local/[EMAIL PROTECTED] for [EMAIL PROTECTED]:1 > > (Retry > > 1) > > -- Executing [EMAIL PROTECTED]:1] > > Set("Local/[EMAIL PROTECTED],2", "CIDTEMP="1" <5540881644>") in new > > stack > > -- Executing [EMAIL PROTECTED]:2] > > Dial("Local/[EMAIL PROTECTED],2", "SIP/protel-out/0445540881644| > > 25") in new stack > > -- Called protel-out/0445540881644 > > -- SIP/protel-out-0934bb28 is making progress passing it to > > Local/[EMAIL PROTECTED],2 > > -- SIP/protel-out-0934bb28 answered Local/[EMAIL PROTECTED],2 > > -- Executing [EMAIL PROTECTED]:1] NoOp("Local/[EMAIL PROTECTED],1", ""1" > > <5540881644>") in new stack > > -- Executing [EMAIL PROTECTED]:2] AMD("Local/[EMAIL PROTECTED],1", "") > > in new stack > > -- AMD: Local/[EMAIL PROTECTED],1 5540881644 (null) (Fmt: 64) > > -- AMD: initialSilence [2500] greeting [1500] afterGreetingSilence > > [800] totalAnalysisTime [5000] minimumWordLength [100] > > betweenWordsSilence [50] maximumNumberOfWords [5] silenceThreshold > > [256] > > == Spawn extension (CC2, 0445540881644, 2) exited non-zero on > > 'Local/[EMAIL PROTECTED],2' > > -- Executing [EMAIL PROTECTED]:1] DeadAGI("Local/[EMAIL PROTECTED],2", > > "agi://localhost/updateCallStatus.agi?callStatus=hangupcc2") in new > > stack > > -- AGI Script > > agi://localhost/updateCallStatus.agi?callStatus=hangupcc2 completed, > > returning 0 > > -- AMD: Word detected. iWordsCount:1 > > -- AMD: Changed state to STATE_IN_SILENCE > > -- AMD: HUMAN: silenceDuration:800 afterGreetingSilence:800 > > -- Executing [EMAIL PROTECTED]:3] GotoIf("SIP/protel-out-0934bb28", > > "1?7:4") > > in new stack > > -- Goto (CC,2001,7) > > -- Executing [EMAIL PROTECTED]:7] AGI("SIP/protel-out-0934bb28", > > "agi://localhost/updateCallStatus.agi?callStatus=answered") in new stack > > -- AGI Script > > agi://localhost/updateCallStatus.agi?callStatus=answered completed, > > returning 0 > > -- Executing [EMAIL PROTECTED]:8] Set("SIP/protel-out-0934bb28", > > "CALLERID(all)=") in new stack > > -- Executing [EMAIL PROTECTED]:9] MixMonitor("SIP/protel-out-0934bb28", > > "1192468625.7.wav|b") in new stack > > -- Executing [EMAIL PROTECTED]:10] Dial("SIP/protel-out-0934bb28", > > "SIP/2001| > > 2
Re: [asterisk-users] Answering Machine Detection
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tong wrote: > If i use AMD() or the code below, now the problem is the fax machine/modem > detection and answer machine detection get detected as the same. If i need > to seperate the two how do i do that? For example, if i use AMD() to detect > an answer machine by saying any greeting exceeding 2.5 seconds is a machine, > how do i distinguish between a fax/modem and a long greeting? This is a well known problem, which has a patch, which has always fixed the problem for me. Please install the patch, and if it fixes it for you, add to the bugtracker: http://bugs.digium.com/view.php?id=9256 - -- Kind Regards, Matt Riddell Director ___ http://www.venturevoip.com (Great new VoIP end to end solution) http://www.venturevoip.com/news.php (Daily Asterisk News - html) http://www.venturevoip.com/newrssfeed.php (Daily Asterisk News - rss) -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHbss7DQNt8rg0Kp4RApW1AJ0eMu4y9Wp2pI83mHKcPre90K8fRQCeLxfK 4shNRHmxmWvhyZmiWrfo7dE= =1nfW -END PGP SIGNATURE- ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering Machine Detection
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tong wrote: > If i use AMD() or the code below, now the problem is the fax machine/modem > detection and answer machine detection get detected as the same. If i need > to seperate the two how do i do that? For example, if i use AMD() to detect > an answer machine by saying any greeting exceeding 2.5 seconds is a machine, > how do i distinguish between a fax/modem and a long greeting? Woops, sorry was responding to an earlier post. The patch before was so that AMD will work. With regard to telling the difference between a fax and a long greeting, you would need to use something like NVFaxDetect (which seems to have disappeared) on VoIP trunks, or you could just turn on fax detection in zapata.conf if you are using Zaptel (and create a fax extension if you want to do something with it). - -- Kind Regards, Matt Riddell Director ___ http://www.venturevoip.com (Great new VoIP end to end solution) http://www.venturevoip.com/news.php (Daily Asterisk News - html) http://www.venturevoip.com/newrssfeed.php (Daily Asterisk News - rss) -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHbsvPDQNt8rg0Kp4RAlBEAJ9SU+VDoENogW+evKDl9OJ4J706ggCgr3/z g/gyQZxtc42dc9vn/uWckko= =lf6I -END PGP SIGNATURE- ___ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
> Anyone aware if Digium or Sangoma, or possibly a function of Asterisk, > supports answering machine detection on an outbound call? > I usually just listen to the voice. If it says something along the lines of "leave a message after the tone" then it's probably a machine. I can then choose to leave a message or just hang up. I imagine that most people would take a similar approach, even though the steps are probably not documented anywhere. -- _/ _/ _/_/_/_/ _/_/ _/_/_/ _/_/ _/_/_/ _/_/ _/_/_/_/_/ _/ K e v i n W a l s h _/ _/_/ _/ _/ _/_/ _/_/[EMAIL PROTECTED] _/ _/ _/_/_/_/ _/_/_/_/ _/_/ ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
Several people have claimed to have an accurate Answering-Machine detection method working on their Asterisk systems, but only a couple of them have made their code or settings public or free. The big problem with Answering Machine detection is that no matter what method you use it requires time(1-3 seconds) after an Answer signal to figure out if it thinks there's a human on the other end of the line and that often leads to more hangups and irritated customers. What kind of application would you be using answering machine detection in? MATT--- On 10/5/05, Cory Andrews <[EMAIL PROTECTED]> wrote: Anyone aware if Digium or Sangoma, or possibly a function of Asterisk,supports answering machine detection on an outbound call?--Cory J AndrewsPartner / Purchasing+++VOIPSupply.com - Everything you need for VOIP 454 Sonwil DriveBuffalo, NY 14225+++tf voice - 800-398-VOIP X22l voice - 716.630.1555 X22f - 716.630.1548e - [EMAIL PROTECTED]AIM - b2Cory ___--Bandwidth and Colocation sponsored by Easynews.com --Asterisk-Users mailing list Asterisk-Users@lists.digium.comhttp://lists.digium.com/mailman/listinfo/asterisk-usersTo UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
On Wed, 5 Oct 2005, Cory Andrews wrote: > Anyone aware if Digium or Sangoma, or possibly a function of Asterisk, > supports answering machine detection on an outbound call? I'll post a detector on Mantis tomorrow (honestly!) Steve ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
It's already built in. AMD. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Wednesday, October 05, 2005 4:05 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [Asterisk-Users] Answering Machine Detection On Wed, 5 Oct 2005, Cory Andrews wrote: > Anyone aware if Digium or Sangoma, or possibly a function of Asterisk, > supports answering machine detection on an outbound call? I'll post a detector on Mantis tomorrow (honestly!) Steve ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users The contents of this email message and any attachments are confidential and are intended solely for addressee. The information may also be legally privileged. This transmission is sent in trust, for the sole purpose of delivery to the intended recipient. If you have received this transmission in error, any use, reproduction or dissemination of this transmission is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply email and delete this message and its attachments, if any. ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
I've read about app_amd and asterisk but there doesn't seem to be much info about it out there. Is it called something else? and where do I look for it? MATT---On 10/5/05, Adam Robins <[EMAIL PROTECTED]> wrote: It's already built in. AMD.On Wed, 5 Oct 2005, Cory Andrews wrote:> Anyone aware if Digium or Sangoma, or possibly a function of Asterisk,> supports answering machine detection on an outbound call? I'll post a detector on Mantis tomorrow (honestly!)Steve ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Answering Machine Detection
I just checked the 1.2 source. It looks like app_AMD is gone. All references to it on the Wiki are also gone. Can someone please tell me why AMD was removed? I am using it in 1.07 for several production applications. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt FlorellSent: Thursday, October 06, 2005 7:13 AMTo: Asterisk Users Mailing List - Non-Commercial DiscussionSubject: Re: [Asterisk-Users] Answering Machine Detection I've read about app_amd and asterisk but there doesn't seem to be much info about it out there. Is it called something else? and where do I look for it?MATT--- On 10/5/05, Adam Robins <[EMAIL PROTECTED]> wrote: It's already built in. AMD.On Wed, 5 Oct 2005, Cory Andrews wrote:> Anyone aware if Digium or Sangoma, or possibly a function of Asterisk,> supports answering machine detection on an outbound call? I'll post a detector on Mantis tomorrow (honestly!)SteveThe contents of this email message and any attachments are confidential and are intended solely for addressee. The information may also be legally privileged. This transmission is sent in trust, for the sole purpose of delivery to the intended recipient. If you have received this transmission in error, any use, reproduction or dissemination of this transmission is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply email and delete this message and its attachments, if any. ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
If you have a copy that was released before it was wiped from existance would you be willing to post it for download or email it to me along with some description of how it works? Thanks, MATT---On 10/6/05, Adam Robins <[EMAIL PROTECTED]> wrote: I just checked the 1.2 source. It looks like app_AMD is gone. All references to it on the Wiki are also gone. Can someone please tell me why AMD was removed? I am using it in 1.07 for several production applications. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Matt FlorellSent: Thursday, October 06, 2005 7:13 AMTo: Asterisk Users Mailing List - Non-Commercial DiscussionSubject: Re: [Asterisk-Users] Answering Machine Detection I've read about app_amd and asterisk but there doesn't seem to be much info about it out there. Is it called something else? and where do I look for it?MATT--- On 10/5/05, Adam Robins <[EMAIL PROTECTED]> wrote: It's already built in. AMD.On Wed, 5 Oct 2005, Cory Andrews wrote:> Anyone aware if Digium or Sangoma, or possibly a function of Asterisk,> supports answering machine detection on an outbound call? I'll post a detector on Mantis tomorrow (honestly!)SteveThe contents of this email message and any attachments are confidential and are intended solely for addressee. The information may also be legally privileged. This transmission is sent in trust, for the sole purpose of delivery to the intended recipient. If you have received this transmission in error, any use, reproduction or dissemination of this transmission is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply email and delete this message and its attachments, if any. ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection
I dont use app_amd but use waitforring to see if someone picked up, if not voicemail... Exten => s,1,wautforring(16) ; abiut 4 rings Exten => s,2,voicemail(1234) Waitforring waits upto N seconds if phone is ringing, if not ringing it returns -1. Dunno if this helps, but that works in my parents asterisk box with zap chan... -Original Message- From: "Matt Florell"<[EMAIL PROTECTED]> Sent: 10/6/05 5:48:09 PM To: "Adam Robins"<[EMAIL PROTECTED]> Cc: "Asterisk Users Mailing List - Non-Commercial Discussion" Subject: Re: [Asterisk-Users] Answering Machine Detection If you have a copy that was released before it was wiped from existance would you be willing to post it for download or email it to me along with some description of how it works? Thanks, MATT--- On 10/6/05, Adam Robins <[EMAIL PROTECTED]> wrote: > > I just checked the 1.2 source. It looks like app_AMD is gone. All > references to it on the Wiki are also gone. Can someone please tell me why > AMD was removed? I am using it in 1.07 for several production > applications. > [Message truncated. Tap Edit->Mark for Download to get remaining portion.] ___ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] answering machine detection
Are you possibly using GnuDialer or VICIDIAL? If so, you would probably get a better response by posting to their forums rather than the general asterisk-users list: GuDialer Forum: http://forum.acmcllc.com/ VICIDIAL Forum: http://www.eflo.net/VICIDIALforum One more thing, there is no Asterisk 1.12. MATT--- On 10/5/06, Raj <[EMAIL PROTECTED]> wrote: i m using asterisk 1.12. and i have followed all the steps define in scratch installation for answering machine detection, but when i m making a call i m getting a lot of answering machine is there any thing i have to change to my extension file . can any one help me out Raj Ahmed ___ --Bandwidth and Colocation provided by Easynews.com -- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users ___ --Bandwidth and Colocation provided by Easynews.com -- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection withapp_machinedetect.c
This is an english speaking listserve. Please speak english so others can know what you are talking about. -Matthew - Original Message - From: "Tigran Petrossian" <[EMAIL PROTECTED]> To: "Asterisk Users Mailing List - Non-Commercial Discussion" Sent: Friday, March 04, 2005 5:34 AM Subject: Re: [Asterisk-Users] Answering Machine Detection withapp_machinedetect.c > Aram jan tun es ? > > >---(RE) MSG (Start)---< > > Hello, > Is there any documentation available on how to use app_machinedetect.c to > detect answering machine? > Or is there anyone who can give me some pointers? > We have compiled * with app_machinedetect.c, but not able to use it > correctly in our configuration. > > Thanks, > > Aram Ter-Martirosyan > > ___ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: >http://lists.digium.com/mailman/listinfo/asterisk-users > >---(RE) MSG (End)-< > Best regards, > Tigran > -- - >\\\|||/// \ Tigran Petrossian \ http://www.hi-teck.com \ > \ ~ ~ / \ Network, System Administrator \ > | @ @ |\ mailto:[EMAIL PROTECTED] \ > oOo---(_)---oOo--\--- > > ___ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: >http://lists.digium.com/mailman/listinfo/asterisk-users ___ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [Asterisk-Users] Answering Machine Detection with app_machinedetect.c
Aram jan tun es ? >---(RE) MSG (Start)---< Hello, Is there any documentation available on how to use app_machinedetect.c to detect answering machine? Or is there anyone who can give me some pointers? We have compiled * with app_machinedetect.c, but not able to use it correctly in our configuration. Thanks, Aram Ter-Martirosyan ___ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users >---(RE) MSG (End)-< Best regards, Tigran -- - \\\|||/// \ Tigran Petrossian \ http://www.hi-teck.com \ \ ~ ~ / \ Network, System Administrator \ | @ @ |\ mailto:[EMAIL PROTECTED] \ oOo---(_)---oOo--\--- ___ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file.
_ From: asterisk-users-boun...@lists.digium.com [mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Asterisk Man Sent: Thursday, March 17, 2011 8:13 AM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file. Hi Group, I have following case scenario. Through call file, Asterisk makes a call to SIP extension. When Extension answers the call, Asterisk reads customer numbers (set in callfile) and calls them one by one untill one of the customers answeres the call. Here customer and SIP extension gets patched and talk to each other. Now if outgoing call is answered by Answering machine,I don't want asterisk to patch it up with SIP extension. Please suggest me how this can be achieved. Thanking you in advance. --AM May or may not help - google for "Asterisk AMD" -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file.
Thanks buddy, But I think, AMD helps when I call customer first and then SIP extension. Any other suggestion! On Thu, Mar 17, 2011 at 6:44 PM, Danny Nicholas wrote: > -- > > *From:* asterisk-users-boun...@lists.digium.com [mailto: > asterisk-users-boun...@lists.digium.com] *On Behalf Of *Asterisk Man > *Sent:* Thursday, March 17, 2011 8:13 AM > *To:* Asterisk Users Mailing List - Non-Commercial Discussion > *Subject:* [asterisk-users] Answering machine detection for a second leg > callgenerated by a call file. > > > > Hi Group, > > I have following case scenario. > > Through call file, Asterisk makes a call to SIP extension. When Extension > answers the call, Asterisk reads customer numbers (set in callfile) and > calls them one by one untill one of the customers answeres the call. Here > customer and SIP extension gets patched and talk to each other. > > Now if outgoing call is answered by Answering machine,I don't want asterisk > to patch it up with SIP extension. Please suggest me how this can be > achieved. > > Thanking you in advance. > --AM > > > > May or may not help – google for “Asterisk AMD” > > -- > _ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file.
_ From: asterisk-users-boun...@lists.digium.com [mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Asterisk Man Sent: Thursday, March 17, 2011 8:27 AM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file. Thanks buddy, But I think, AMD helps when I call customer first and then SIP extension. Any other suggestion! On Thu, Mar 17, 2011 at 6:44 PM, Danny Nicholas wrote: _ From: asterisk-users-boun...@lists.digium.com [mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Asterisk Man Sent: Thursday, March 17, 2011 8:13 AM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file. Hi Group, I have following case scenario. Through call file, Asterisk makes a call to SIP extension. When Extension answers the call, Asterisk reads customer numbers (set in callfile) and calls them one by one untill one of the customers answeres the call. Here customer and SIP extension gets patched and talk to each other. Now if outgoing call is answered by Answering machine,I don't want asterisk to patch it up with SIP extension. Please suggest me how this can be achieved. Thanking you in advance. --AM May or may not help - google for "Asterisk AMD" - round 2 - You could use the "privacy" setting on dial, so the end user has to press 1 to accept the call? -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file.
AMD is used mainly in scenarios like yours where an agent (the SIP extension) is called, then an outbound call is generated and finally the two legs are bridged. In your case you could call the Dial cmd using the M option. The argument of M can be a macro like this simple one: exten => s,1,Background(short_silence) exten => s,n,AMD() exten => s,n,GotoIf($[${AMDSTATUS}=MACHINE]?mach:humn) exten => s,n(humn),MacroExit exten => s,n(mach),Set(MACRO_RESULT=CONTINUE) So if an human is detected the legs will be bridged, if not the called party will be hangup and the next number will be called. The problem is, like previously said, the accuracy of the detection... Best regards, Federico 2011/3/17 Asterisk Man : > Thanks buddy, > But I think, AMD helps when I call customer first and then SIP extension. > Any other suggestion! > > On Thu, Mar 17, 2011 at 6:44 PM, Danny Nicholas wrote: >> >> >> >> From: asterisk-users-boun...@lists.digium.com >> [mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Asterisk Man >> Sent: Thursday, March 17, 2011 8:13 AM >> To: Asterisk Users Mailing List - Non-Commercial Discussion >> Subject: [asterisk-users] Answering machine detection for a second leg >> callgenerated by a call file. >> >> >> >> Hi Group, >> >> I have following case scenario. >> >> Through call file, Asterisk makes a call to SIP extension. When Extension >> answers the call, Asterisk reads customer numbers (set in callfile) and >> calls them one by one untill one of the customers answeres the call. Here >> customer and SIP extension gets patched and talk to each other. >> >> Now if outgoing call is answered by Answering machine,I don't want >> asterisk to patch it up with SIP extension. Please suggest me how this can >> be achieved. >> >> Thanking you in advance. >> --AM >> >> >> >> May or may not help – google for “Asterisk AMD” >> >> -- >> _ >> -- Bandwidth and Colocation Provided by http://www.api-digital.com -- >> New to Asterisk? Join us for a live introductory webinar every Thurs: >> http://www.asterisk.org/hello >> >> asterisk-users mailing list >> To UNSUBSCRIBE or update options visit: >> http://lists.digium.com/mailman/listinfo/asterisk-users > > > -- > _ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering machine detection for a second leg callgenerated by a call file.
This seems better. I will give it a try. Thanks federico. On Thu, Mar 17, 2011 at 11:10 PM, federico cabiddu < federico.cabi...@gmail.com> wrote: > AMD is used mainly in scenarios like yours where an agent (the SIP > extension) is called, then an outbound call is generated and finally > the two legs are bridged. In your case you could call the Dial cmd > using the M option. The argument of M can be a macro like this simple > one: > > exten => s,1,Background(short_silence) > exten => s,n,AMD() > exten => s,n,GotoIf($[${AMDSTATUS}=MACHINE]?mach:humn) > exten => s,n(humn),MacroExit > exten => s,n(mach),Set(MACRO_RESULT=CONTINUE) > > So if an human is detected the legs will be bridged, if not the called > party will be hangup and the next number will be called. > The problem is, like previously said, the accuracy of the detection... > > Best regards, > > Federico > > 2011/3/17 Asterisk Man : > > Thanks buddy, > > But I think, AMD helps when I call customer first and then SIP extension. > > Any other suggestion! > > > > On Thu, Mar 17, 2011 at 6:44 PM, Danny Nicholas > wrote: > >> > >> > >> > >> From: asterisk-users-boun...@lists.digium.com > >> [mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Asterisk > Man > >> Sent: Thursday, March 17, 2011 8:13 AM > >> To: Asterisk Users Mailing List - Non-Commercial Discussion > >> Subject: [asterisk-users] Answering machine detection for a second leg > >> callgenerated by a call file. > >> > >> > >> > >> Hi Group, > >> > >> I have following case scenario. > >> > >> Through call file, Asterisk makes a call to SIP extension. When > Extension > >> answers the call, Asterisk reads customer numbers (set in callfile) and > >> calls them one by one untill one of the customers answeres the call. > Here > >> customer and SIP extension gets patched and talk to each other. > >> > >> Now if outgoing call is answered by Answering machine,I don't want > >> asterisk to patch it up with SIP extension. Please suggest me how this > can > >> be achieved. > >> > >> Thanking you in advance. > >> --AM > >> > >> > >> > >> May or may not help – google for “Asterisk AMD” > >> > >> -- > >> _ > >> -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > >> New to Asterisk? Join us for a live introductory webinar every Thurs: > >> http://www.asterisk.org/hello > >> > >> asterisk-users mailing list > >> To UNSUBSCRIBE or update options visit: > >> http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > -- > > _ > > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > New to Asterisk? Join us for a live introductory webinar every Thurs: > > http://www.asterisk.org/hello > > > > asterisk-users mailing list > > To UNSUBSCRIBE or update options visit: > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > -- > _ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Answering machine detection for a second leg call generated by a call file.
Hi, you could use AMD app (http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+AMD) and connect the two calls or not according to the result of AMD. But: 1) results can be more or less accurate depending on the settings and the goodness of the parameters can depend also on the callee country (some languages have greetings longer then others for example) 2) there will be a more or less long silence time (depending on the totalAnalysisTime parameter), before the two legs are connected. This is a problem for some Call Center. I read once on the list about someone working on an AMD version which allows to have the bridged audio during the analysis period, but I don't know more (I'm talking about version 1.4.x). Regards, Federico 2011/3/17 Asterisk Man : > Hi Group, > > I have following case scenario. > > Through call file, Asterisk makes a call to SIP extension. When Extension > answers the call, Asterisk reads customer numbers (set in callfile) and > calls them one by one untill one of the customers answeres the call. Here > customer and SIP extension gets patched and talk to each other. > > Now if outgoing call is answered by Answering machine,I don't want asterisk > to patch it up with SIP extension. Please suggest me how this can be > achieved. > > Thanking you in advance. > --AM > > -- > _ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users