1. Um die RufNr. in das ENUMLOOKUP Format zu bringen, ersetze ich 00 durch ein + mit (+${EXTEN:2} ...)
Beispiel: Die RufNr. 004922897167160 wird zu ENUMLOOKUP(+4922897167160)
2. Wenn die variable ${Sipuri} ungleich nix ist, dann Goto dialenum
Beispiel: ENUMLOOKUP http://enumquery.com/lookup?e164=%2B492 ... ery=%C2%BB
3. Ein ENUMLOOKUP(+4922897167160) setzt die variable ${Sipuri} auf "sip:3010@sip.soho-piper.de"
4. Um auf die ${Sipuri} anzurufen, schneide ich noch das sip: mit Dial(SIP/${Sipuri:4} ab.
Das ergibt dann ein ... Dial(SIP/3010@sip.soho-piper.de,60,r)
Code: Alles auswählen
exten => _00X.,1,Set(Sipuri=${ENUMLOOKUP(+${EXTEN:2},sip,u,1,e164.arpa)})
exten => _00X.,n,GotoIf($["${Sipuri}" != ""]?dialenum)
exten => _00X.,n,Set(Sipuri=${ENUMLOOKUP(+${EXTEN:2},sip,u,1,e164.org)})
exten => _00X.,n,GotoIf($["${Sipuri}" != ""]?dialenum)
exten => _00X.,n,Set(Sipuri=${ENUMLOOKUP(+${EXTEN:2},sip,u,1,e164.info)})
exten => _00X.,n,GotoIf($["${Sipuri}" != ""]?dialenum)
exten => _00X.,n,Set(Sipuri=${ENUMLOOKUP(+${EXTEN:2},sip,u,1,enum.org)})
exten => _00X.,n,GotoIf($["${Sipuri}" != ""]?dialenum)
; dial ohne enum
exten => _00X.,n,Set(CALLERID(num)=4922897167160)
exten => _00X.,n,Set(CALLERID(name)=4922897167160)
exten => _00X.,n,Set(SIP_CODEC_INBOUND=alaw)
exten => _00X.,n,Set(SIP_CODEC_OUTBOUND=alaw)
exten => _00X.,n,Dial(SIP/${EXTEN}@sipgate-outgoing,,rg)
exten => _00X.,n,Hangup()
; dial mit enum/sipuri
exten => _00X.,n(dialenum),NoOp(**** ${Sipuri} ****)
exten => _00X.,n,Set(CALLERID(num)=${CALLERID(num)}@sip.soho-piper.de)
exten => _00X.,n,Set(CALLERID(name)=Rainer Piper)
exten => _00X.,n,Dial(SIP/${Sipuri:4},60,r)
exten => _00X.,n,Hangup()