ENUM Nummern => Catch them all

Blackmore

Neuer User
Mitglied seit
2 Feb 2005
Beiträge
166
Punkte für Reaktionen
0
Punkte
0
Ich hab mir einen * aufgebaut, mit folgender extension.conf:

1) Echotest
2) Mailbox (eigene Nummer gewählt)
3) darf der Anrufer die Nummer überhaupt anrufen (User muss Nummern freischalten)
4) ENUM Abfrage


Code:
[lokal]
exten => _Z.,1,NoOP(Hier kommt die Abfrage)
exten => _Z.,2,Set(CALLING=${EXTEN})

; ABfrage, ob Echotest angewält wurde
exten => _Z.,3,GotoIf($[${CALLING} = 61000]?4:11)
exten => _Z.,4,NoCDR
exten => _Z.,5,answer
exten => _Z.,6,wait,1
exten => _Z.,7,playback,demo-echotest
exten => _Z.,8,echo
exten => _Z.,9,playback,demo-echodone
exten => _Z.,10,Goto(_Z.,30)

; Abfrage, ob Mailbox (eigene Nummer) angewält wurde
exten => _Z.,11,GotoIf($[${CALLING} = ${CALLERID(num)}]?12:17)
exten => _Z.,12,NoOP(CDR)
exten => _Z.,13,answer
exten => _Z.,14,wait,1
exten => _Z.,15,VoicemailMain,s${CALLERID(num)}
exten => _Z.,16,Goto(_Z.,30)

; Abfrage, ob gewälte Nummer erlaubt ist
exten => _Z.,17,MYSQL(Connect connid IP USER PASSWD TABLE)
exten => _Z.,18,MYSQL(Query resultid ${connid} SELECT\ guest\ FROM\ userauth\ WHERE\ user=${CALLING}\ AND\ guest=${CALLERID(num)})
exten => _Z.,19,MYSQL(Fetch fetchid ${resultid} getting)
exten => _Z.,20,MYSQL(Clear ${resultid})
exten => _Z.,21,MYSQL(Disconnect ${connid})
exten => _Z.,22,NoOP(Fetch: ${fetchid} - getting: ${getting})
exten => _Z.,23,GotoIf(${fetchid} = "1"?24:28)
exten => _Z.,24,Dial,SIP/${EXTEN}|30|r
exten => _Z.,25,NoOP()
exten => _Z.,26,Goto,r-${DIALSTATUS}|1
exten => _Z.,27,Goto(_Z.,30)
exten => _Z.,28,NoCDR
exten => _Z.,29,playback,conf-locked
exten => _Z.,30,Hangup

exten => r-BUSY,1,voicemail,b${CALLING}
exten => r-BUSY,2,Goto(_Z.,26)

exten => r-NOANSWER,1,voicemail,u${CALLING}
exten => r-NOANSWER,2,Goto(_Z.,26)

exten => _r-.,1,NoOP(NoCDR deleted)
exten => _r-.,n,answer
exten => _r-.,n,wait,1
exten => _r-.,n,playback,invalid
exten => _r-.,n,playback,vm-goodbye
exten => _r-.,n,hangup


[shortdial]
exten => _0Z.,1,Set(enumlist=openenum.eu e164.arpa e164.org e164.info|tree=0)
exten => _0Z.,n,While($["${SET(e164=${CUT(enumlist, ,${SET(tree=$[${tree} + 1])})})}" != ""])
exten => _0Z.,n,Set(sipcount=${ENUMLOOKUP(+49${EXTEN:1},sip,c,${ e164})}|counter=0)
exten => _0Z.,n,While($[${counter}<0${sipcount}])
exten => _0Z.,n,Set(counter=$[${counter}+1])
exten => _0Z.,n,Gotoif($["${SET(e=${ENUMLOOKUP(+49${EXTEN:1},sip,${counter},${e 164})})}"=""]?ew)
exten => _0Z.,n,Dial(SIP/${e},120)
exten => _0Z.,n(ew),EndWhile
exten => _0Z.,n,EndWhile
exten => _0Z.,n,Hangup

[default]
include => lokal
include => shortdial

zusätzlich hab ich in der sip.conf verschiedene User angelegt
a) User, die nur VoIP machen dürfen
b) User, jede meiner ENUM-Nummern ein User

bei der ENUM-abfrage bekomme ich jeweils die zuordnung:
ISDN NUmmer 1 -> user1@IP
ISDN Nummer 2 -> user2@IP
etc

Jetzt möchte ich, das ich bei meinem VoIP-Client nur einen User eintragen muss, und alle ISDN Nummern gehen automatisch auf diesen User, ABER...

wenn ich die Nummern trennen will, möchte ich nur die Nummer aus dem Schema rausnehmen, und einem anderen User zuordnen...
In etwa so:

User ISDN: <= ENUM1, ENUM2, ENUM3, ENUM4
User Geschäft <= ENUM5, ENUM6

und wenn ich etwas verändern will, einfach nur ENUM4 eine Zeile nach unten verschieben, und nun klingelt das Telefon Geschäft, nicht mehr ISDN...

Leider bin ich immo einfach nur blind und blöd, weil ich gar nicht weiß, und auch gar keine Idee hab, wie ich das anstellen könnte...

Gebt mir bitte einen Tritt in den Allerwertesten, das ich in die richtige Richtung gucken kann.

[edit]

sowas geht zumindest:
extension.conf erweiterung
Code:
[isdn]
exten => isdn-account,1,Dial,SIP/***SammelAcc1|30|r
exten => isdn-account,1,Dial,SIP/***SammelAcc1|30|r
exten => isdn-account,1,Dial,SIP/***SammelAcc1|30|r
exten => isdn-account,1,Dial,SIP/***SammelAcc2|30|r
exten => isdn-account,1,Dial,SIP/***SammelAcc2|30|r

[global]
include => isdn
include...
aber geht des auch einfacher???
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.