Konfigurace odchozích hovorů přes ENUM

Macro pro použití ENUMu v číslovacím plánu Asterisku (extensions.conf):

[macro-enum]  
; ARG1 je hledane cislo, ARG2 je schema (sip, iax2)  
exten => s,1,Set(sipcount=${ENUMLOOKUP(+${ARG1},${ARG2},c)}|counter=0)  
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?start:end)  
exten => s,n(start),Set(counter=$[${counter}+1])  
exten => s,n,Dial(SIP/${ENUMLOOKUP(+${ARG1},${ARG2},${counter})})  
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?start:end)  
exten => s,n(end),NoOp("No valid ${ARG2} entries in e164.arpa for ${ARG1}")

Následně použijete v odchozím bloku tento kód:

[outgoing]  
; tisnove linky volame primo  
exten => _112,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})  
exten => _158,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})  
exten => _156,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})  
exten => _150,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})  
exten => _155,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})  

; ENUM pro mezinarodni cisla  
; je zapotrebi odstranit dve nuly na zacatku  
exten => _00X.,1,Macro(enum,${EXTEN:2},sip)  
exten => _00X.,n,Macro(enum,${EXTEN:2},iax2)  
exten => _00X.,n,Dial(${OUTBOUNDTRUNK}/${EXTEN})  

; ENUM pro ceska cisla  
exten => _X.,1,Macro(enum,${EXTEN:3},sip)  
exten => _X.,n,Macro(enum,${EXTEN:3},iax2)  
; ostatni - volame pres PSTN  
exten => _X.,n,Dial(${OUTBOUNDTRUNK}/${EXTEN})