AMD Location and Configuration

Let me preface by saying I’ve searched high and low for answers, but if I missed one, I apologize, and please link me… I am trying to use predictive dialing and have chosen Loway’s Wombat Dialer (we already use their QueueMetrics product). My current issue is routing/hanging up on answering machines. Loway has suggested I use Asterisk’s AMD - I just want to hang-up on answering machines, and route real people to a queue. But I cannot find the amd.conf file… I’ve seen other posts stating Asterisk loads the AMD module, but FreePBX doesn’t create the config, and I also see “app_amd.so” in my modules folder so I’m wondering: Can I just create the amd.conf file in /etc/asterisk and get rolling? Do I need to load the module through the FreePBX GUI? How can I get this thing up and running? I can figure out the dialplan and mess with AMD’s timing and level checks, but I don’t even know where to start on getting the dang AMD running - and knowing that often FreePBX doesn’t want me to edit the standard conf files, I don’t want to blindly throw a new config file and change my dialplan, without getting some advisement.

Thank you all!

If you have amd built and working you can define a custom context to use it, I do not think that FreePBX supports it but equally, it would be equally unaware of the customizations you do yourself.

Digium resources document it’s use, search at:-

https://wiki.asterisk.org/wiki/

I guess the first part is my problem - I don’t have it built… wondering the proper way to do that… On Digium’s install and configuring page they mention downloading it to /usr/src/asterisk/apps, but that folder doesn’t exist in my FreePBX distro install…

To stay within the Distro, you can’t build your own asterisk, options include build your own system, “go rogue” and do it anyway , :wink: it will certainly work if you get the right tools and Digium will guide you through that . . .

(you could also ask the distributor’s to include it)

So essentially, unless I figure it out on my own, I can’t run AMD in FreePBX?

I believe so. FreePBX doesn’t use amd so the point is moot, but it weill certainly coexist with it. If you are stuck with the “distro” and are uncomfortable with how FreePBX/Asterisk work on their own, then take this to the distro specific forum, this one is clearly called “general help”

If FreePBX does not use AMD, does it use some other answering machine detection process/tool that I can utilize? I tried to check for my version of the freePBX distro, but I do not have the freepbxdistro-version file in /etc/asterisk.

Sorry for the n00b questions - took this system over from the former IT Manager with zero documentation, and I don’t have any previous experience with Asterisk. All help you’re providing is very much appreciated!

To put in a formal feature request you can post a “feature request” to: http://issues.freepbx.org/

To maintain stability and to allow proper support things are set up to be constants. The FreePBX distro is tested and vetted with known components. Changing the components takes it from “we know this works” to “that hasn’t been tested.” You are free to do as you wish but when a system is tainted it may become impossible to support. Note also that there may be patches applied to certain components and recompiling them may remove those patches and break the functionality they provide.

If you are adding in a dialer to your server then the “is the system tainted” boat has long sailed.

Your best bet to get something in officially is to make a feature request at the url above. This may or may not happen in a timely manner depending on demand and work involved.

Then you are not using the ‘freepbx’ distribution, just FreePBX in it’s pure form, it dosn’t use that functionality but feel free to add what you want to asterisk , which probably warrents recompiling it from source, but that is surprisingly easy and well documented :slight_smile:

(having got access to the amd app, it is equally trivial ton7se in FreePBX or standalone with your needs)

Thanks for the feedback - I’d definitely like to make a feature request, but right now I need to try and get AMD up and working as soon as possible. The dialer is setup on a separate server, and only has an AMI connection to Asterisk. Regardless, I think I’ve got some progress with AMD, any additional help you could provide would be much appreciated,I’m stumped at the moment:
I was able to find app_amd.so in my modules folder, and when we run a module list command form asterisk CLI, it is listed. How can we confirm it is working/loaded? When we run “module reload app_amd” or “module reload amd” from the asterisk cli in freepbx, it does not give us any output. I also created the amd.conf file manually and believe I have it configured correctlty. We added the following stack in extensions_additional.conf, but it does not appear to be working, as every call is connected, whether a voicemail or not:

exten => 1088,1,Macro(user-callerid,)
exten => 1088,n,Answer
exten => 1088,n,AMD
exten => 1088,n,GotoIf($[${AMDSTATUS}= HUMAN]?human:machine)

exten => 1088,n(machine),WaitForSilence(100)
exten => 1088,n,Hangup

exten => 1088,n(human),WaitForSilence(500)

exten => 1088,n(queue),Queue(agent_queue)

exten => 1088,n,Set(__NODEST=${EXTEN})
exten => 1088,n,Set(__MIXMON_FORMAT=wav49)
exten => 1088,n,Gosub(sub-record-check,s,1(q,1088,always))
exten => 1088,n,Set(__MOHCLASS=none)
exten => 1088,n,Set(__CWIGNORE=TRUE)
exten => 1088,n,Set(__CFIGNORE=TRUE)
exten => 1088,n,Set(__FORWARD_CONTEXT=block-cf)
exten => 1088,n,QueueLog(1088,${UNIQUEID},NONE,DID,${FROM_DID})
exten => 1088,n,Queue(1088,t,)
exten => 1088,n,Gosub(sub-record-cancel,s,1())
exten => 1088,n,Set(__NODEST=)
exten => 1088,n,Set(__CWIGNORE=)
exten => 1088,n,Set(__CFIGNORE=)
exten => 1088,n,Set(__FORWARD_CONTEXT=from-internal)
exten => 1088,n,Goto(app-blackhole,hangup,1)

We also tried to remove the AMD pieces from that stack, adding this to extensions_custom.conf:

exten => 1088,n,Answer
exten => 1088,n,AMD
exten => 1088,n,GotoIf($[${AMDSTATUS}= HUMAN]?human:machine)

exten => 1088,n(machine),WaitForSilence(100)
exten => 1088,n,Hangup

exten => 1088,n(human),WaitForSilence(500)

exten => 1088,n(queue),Queue(agent_queue)