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})