Asterisk — Автоматический дозвон до внешнего абонента с уведомлением в линию

На днях потребовалось сделать автоматический дозвон с уведомлением в линию  вот решение:

[from-internal-custom]
exten => _*20X.,1,Macro(autodial,${EXTEN:3},${CALLERID(number)})
exten => _*20X.,2,Busy()

[macro-autodial]
exten => s,1,ExecIf($["${ARG1:0:1}" = "*" | ${LEN(${ARG2})} != 4 ],Hangup)
exten => s,n,System(echo "Channel: Local/${ARG1}@autodial-outside/n" > /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo "MaxRetries: 10" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo "RetryTime: 20" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo "WaitTime: 40" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo -e "Callerid: \\x22CallBack ${ARG1}\\x22 \\x3C${ARG2}\\x3E" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo "Context: autodial-internal" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo "Extension: ${ARG2}" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(echo "Priority: 1" >> /tmp/${ARG2}${UNIQUEID}.call)
exten => s,n,System(sleep 15 && mv -f /tmp/${ARG2}${UNIQUEID}.call /var/spool/asterisk/outgoing/ &)

[autodial-outside]
exten => _X.,1,Dial(SIP/"Trunk_Name"/${EXTEN:1},15,A(autodial-client))

[autodial-internal]
exten => _XXXX,1,Dial(SIP/${EXTEN},15,A(autodial-office))
exten => _XXXX,2,Hangup()

Как пользоваться :

Добавляем все это добро в /etc/asterisk/extensions_custom.conf делаем /etc/init.d/asterisk reload

Набираем *20НОМЕР-АБОНЕНТА получаем гудок занято кладем трубку и ждем пока АТС дозвонится абоненту , как атс дозвонится проговорит запись autodial-client и соединит с Вами и также проговорит Вам запись autodial-office.