Итак, схема моего построения выглядит так

Как видно из схемы, часть пользователей зарегистрировано на cisco 3825, а часть на asterisk 1.6. Но, автодозвон должен быть доступен как для тех, кто зарегистрирован на CISCO так и для тех, кто зарегистрирован на Asterisk. Итак я сделал все это следующим образом:

  • Создал правило на CISCO, в котором сказано, что "Все кто набирает 33T" убегают на asterisk по SIP и им еще на выходе дописывается опознавательный код ( может потом понадобится )
  • На Asterisk создано правило, прописано в /etc/asterisk/extension_custom.conf. Выглядит следующим образом:
    exten => _33.,1,Dial(Local/${EXTEN:2}@from-internal,10,tr)
    exten => _33.,2,GotoIF($[ "${DIALSTATUS}" == "ANSWER" ]?end)
    exten => _33.,n,GotoIF($[ "${DIALSTATUS}" == "ANSWERED" ]?end)
    exten => _33.,n,GotoIF($[ ${CDR(billsec)} >0 ]?end)
    exten => _33.,n,Wait(10)
    exten => _33.,n,Goto(${EXTEN},1)
    exten => _33.,n(end),Hangup
    
По каждой строке долго расписывать нечего, их формирование и синтаксис станет понятен после чтения документации, тут все просто. Замеччу только что в строке
exten => _33.,1,Dial(Local/${EXTEN:2}@from-internal,10,tr)

Я использовал tr чтобы пользователь с ума не сходил от постоянного пиликанья "BUSY" в линии.
Итак, у меня до этого было сформировано правило, по которому звонящий - набравший 0 в начале отправлялся в транк который смотрел в сторону той же CISCO 3825 и там уже отрезался 0 и номер кидался в E1 для выхода в город. Соответсвенно тут происходил набор 33 + 0 + номер производился дозвон. По расширению 33 Asterisk определял - что надо повторять до посинения звонки.

P.S. Ко всему этому замечу, что все это делалось на конфигурации Asterisk "по-умолчанию"