Auto Dial-out (call files) and call confirm/acknowledgement with a hunt group

Greetings, I am working on a project where I need Freepbx to utilize auto dial-out. In it’s most basic form it works great. However I will be calling a list of cell numbers and when someone answers a message is played. That part works to. The trouble I run into is cell phone voicemail will make the hunt stop obviously. I tried to use “confirm call” but I can see it is clearly documented to only work with ring all and i tried it anyway and while it works on the first caller it will not on additional numbers.

Anyone have any suggestions here? Thank you.

From bash,

rasterisk -x “core show application amd”

I assume you mean agi instead of amd? Obviously I was looking for something a little more specific than that. If you can even just send me in a more specific direction that would be appreciated . Thank you.

You know what they say about assume :slight_smile: , did you try it yet?

(Answering Machine Detection)

Ha. Ok understood. I see where you are taking this now. But I do not show amd as an application. I am sure it is something I am doing but a “core show application ?” does not show amd on my box. This box is v14 based off the distro.

core show applications (tab)

?

Here is that output.

I did find references to this function. But I don’t even see a amd.conf on my system. I checked a couple other systems I have and they do not show it either.

https://www.voip-info.org/wiki/view/Asterisk+cmd+AMD

There are lots of references to it “in the wild”. I seem to recall that AMD as a command was elided from Asterisk in/before Version 13, but I could easily be wrong there.

You don’t NEED amd.conf, if you have it will override the default values. Any options you add as you call it will override what is in amd.conf.

I don’t know why FreePBX built asterisk spedificvally without it, I don’t use rpm’s (debian) so I can’t even check that. But it is still very much in asterisk 15 under applications --extended–

A little googleing will help you here,especially calling background(silence/n) before calling it,

Basically, just

a) try it,
b) tune it,
c) use it.

Yes I googled around and found some examples. What I am failing to understand is how to tie this into what I am doing which is basically just using a call file to call an extension with a follow-me setup. Can you elude to the overall process there? Thank you.

Just checked an SNG7 Distro with Asterisk 15 and lack of amd.conf is an issue. Resolve with

 touch /etc/asterisk/amd.conf
 fwconsole chown
 fwconsole restart

OK thank you. I am switching to asterisk v15 now.

To be clear, changing to 15 is not the fix, it is creating the file amd.conf.

Yes, understood. Thank you. I was swapping to v15 as this is what everyone had mentioned in association with amd.

I can confirm that worked. “core show application amd” now has the proper output when executed.

Only if you share your current “call-file” there are at least 42 ways to do what you want.

(Yes, a nod to @lgaetz , the amd.conf file needs to actually exist, it will if you build asterisk from source with reasonably starting options

;
; Answering Machine Detection Configuration
;

[general]
initial_silence = 2500		; Maximum silence duration before the greeting.
				; If exceeded then MACHINE.
greeting = 1500			; Maximum length of a greeting. If exceeded then MACHINE.
after_greeting_silence = 800	; Silence after detecting a greeting.
				; If exceeded then HUMAN
total_analysis_time = 5000	; Maximum time allowed for the algorithm to decide
				; on a HUMAN or MACHINE
min_word_length = 100		; Minimum duration of Voice to considered as a word
between_words_silence = 50	; Minimum duration of silence after a word to consider
				; the audio what follows as a new word
maximum_number_of_words = 3	; Maximum number of words in the greeting.
				; If exceeded then MACHINE
silence_threshold = 256

)

Sure thing, that is not an issue. My file is relatively simple. I am just calling an extension and using the follow-me on it and then playing a sound file. Although since that seems somewhat hokey I am trying the same right now but with an actual ring group. I am doing this as a hunt. Initially I was trying to use “confirm call” but as documented that is only for “ring all” and not hunt which explains why its hit and miss (sometimes when you press 1 to accept the call it just hangs-up). If I can use amd instead that would be awesome but i need something as I would be calling multiple cellphones which all have voicemail of course.

Call file contents:

Channel: Local/101@from-internal
Application: Playback
Data: test_sound

Thank you.

A simple starting point might be :-

call.file something like

Channel: Local/1NXXNXXXXXX@outbound-allroutes
Context: custom-callfile
Archive: yes

in /etc/asterisk/extensions_custom.conf , add

[custom-callfile]
exten => 1,1,Background(custom/one_tenth_of_a_second_or_so_of_ silence)
exten => 1,n,AMD
exten => 1,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)
exten => 1,n(mach),WaitForSilence(2500)
exten => 1,n,(you can add anything you want here and following)
exten => 1,n,. . . . . . .
exten => 1,n,Hangup
exten => 1,n(humn),WaitForSilence(500)
exten => 1,n,Playback(test-sound)
exten => 1,n,Hangup

(I have never tried this exactly but other much more complicated contexts work fine, you might want to massage all the options as you proceed)

1 Like

Thank you so much for your help. I had tried something to that effect, well basically that exact thing. So I am still massaging that and seeing how that goes. But with that said I have this question. Should amd be used with call confirm or instead of it? Thanks again.

Either, not both

Understood. I will give it a shot and report back.