Понимание Asterisk extensions

И так для понимания как Asterisk обрабатывает правила , необходимо понимать что в первую очередь Asterisk находит наиболее подходящее правило по маске :

К примеру имеем след. конфиг extensions.conf

[internal]
; Правила вызовов от клиентов 
exten => _X.,1,Macro(authtrunkdial|SIP/Mediant/${EXTEN}) (под это правило будут попадать те кто не попал под любое другое правило)
exten => _8608X.,1,Macro(authtrunkdial|SIP/SVYAZ/8997${EXTEN:4})
exten => _860810X.,1,Macro(authtrunkdial|SIP/SVYAZ/899${EXTEN:6})
exten => _XXXXXXX,1,Macro(authtrunkdial|SIP/SVYAZ/8997495${EXTEN})
exten => _8XXXXXXXXXX,1,Macro(authtrunkdial|SIP/SVYAZ/8997${EXTEN:1})
exten => _810X.,1,Macro(authtrunkdial|SIP/SVYAZ/899${EXTEN:3})
exten => _8301X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8341X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8342X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8346X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8352X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8353X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8382X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8391X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8394X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8424X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8427X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8473X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8475X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8481X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8482X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8483X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8484X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8485X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8487X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})
exten => _8491X.,1,Macro(authtrunkdial|SIP/RTCom/7${EXTEN:1})

 

Вот как то так ….

К примеру если же вам необходимо производить манипуляции с номером А , тогда можно воспользоваться следующим контекстом :

Ваш макрос , который просто транзитом переводит звонки из одного транка в другой

[macro-trunkdial-nauka]

exten => s,1,Noop()^
exten => s,n,Set(CDR(remote_signal_ip)=${SIPCHANINFO(recvip)})^
exten => s,n,Set(CALLERID(number)=7${CALLERID(number)}) # вот эта строка к любому номеру А будет добавлять 7 ку
exten => s,n,Dial(${ARG1})^
exten => s,n,Goto(s-${DIALSTATUS},1)^
exten => s-NOANSWER,1,Hangup^
exten => s-BUSY,1,Hangup^
exten => _s-.,1,NoOp^