So i am quite new to asterisk, With that said, I managed to do a fresh install from scratch, Installing Fedora and Asterisk onto a system, copiled and all that. Asterisk is running and for a test i made 2 sip phone ext’s and can make calls to and from them, Also added a ISP to it, so can make outgoing calls, But now im struggling with something i want to try to learn more about asterisk and their functions. EG AMD. I cannot get my head around this. I tried various google attempts and all that, Some add AMD before dialing, Other adds AMD after dialing but then hangs up or sends it to a human context that makes the same call again. Its all a mess, and i cannot figure it out to get it working. Would anyone be willing to give me some idea or breakdown on how AMD works and should work and where i should add my code or something like that. below is the code in general.
I would recommend 1.20 as your current starting point.
Oh, and don’t use chan_sip - it’s deprecated and unsupported - use chan_pjsip
instead.
We can see you’re using chan_sip because you’ve said:
exten => _1XXX,n,Dial(SIP/${EXTEN})
this should be
exten => _1XXX,n,Dial(PJSIP/${EXTEN})
and you should configure pjsip.conf, not sip.conf
I did not use PJSIP cause i could not figure out how the AOR and stuff works so i turned it off and used chan_sip. i can try it again on 1.20 maybe its a bit more user something than not doing what i want to do.
HI, So the AMD is to detected if i call someone that has voicemail or an answer machine, to not sit and waste presious seconds on my calling bill via the SP.
So all i want to do is, if it picks up “You have reached the voicemail” it should drop it. or if it picks up Fax tone it should drop. cause i believe it would be faster for the system to drop than for myself to click hangup. i might be wrong on that but that is what i am thinking.
But with all that said i did some more searching and i think the AMD program on asterisk does not work when its on the same system as the SP. so i should have 2 systems then it wont work cause im limited to 1 system only. then its ok. i tried.
HI, So the AMD is to detected if i call someone that has voicemail or an
answer machine, to not sit and waste presious seconds on my calling bill
via the SP.
Does your telecoms provider really bill you per second, starting from zero?
So all i want to do is, if it picks up “You have reached the voicemail” it
should drop it. or if it picks up Fax tone it should drop. cause i believe
it would be faster for the system to drop than for myself to click hangup.
Most telecoms providers I’m familiar with use one of two methods of billing:
Per “unit of time” which is generally 60 seconds but may be smaller, and rounded up which means that if you use one second, that counts as 60. If
you use 59 seconds, that counts as 60. If you use 61 seconds, that counts as
120, etc.
X currency units for anythign up to the first T seconds, then billed per
second thereafter, where T is again commonly 60 but may be smaller.
Either of these billing mechanisms mean that if you take 5 seconds to realise
you’re connected to an answering machine and hang up by hand, you’re no worse
off than if some automatic system managed to detect the same thing in under a
second (which it can’t, but it illustrates the point).
I suspect you can reliably identify an answering machine faster than the system can. It’s a pattern recognition task, and machines are not good at that, certainly not with simple algorithms used by Asterisk.
If you want to use AMD, you need to do it from a post-answer Dial subroutine.
Also note that AMD will add a delay before you are connected to the human, so may increase the average length of a call.