Kein Inbound Routing (DID wirkunslos)

pinky

Neuer User
Mitglied seit
11 Sep 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo Gemeine,

ich hab es nun nach ein par Tagen geschafft mein AAH fast komplett nach meinen Wünschen zu konfigurieren. Nur eine Sache will nicht so recht klappen.
Das Routing der Inbound Anrufe per DID geht nicht. Die Gespräche werden immer auf den standart Anschluss, der über "Incoming Calls" konfiguriert ist geleitet. Im speziellen ein SIP Softphone.

Evtl. kann mir jemand helfen. Hier mal ein par Infos:

Es ist AAH 1.5 mir 'nem eigenen 2.6.13er Kernel
AVM Fritz!USB
T-Online und Sipgate als VOIP Provider
Ein par Softphones sind konfiguriert

extensions.conf
Code:
; Asterisk Management Portal (AMP)
; Copyright (C) 2004 Coalescent Systems Inc

; dialparties.agi (http://www.sprackett.com/asterisk/)
; Asterisk::AGI (http://asterisk.gnuinter.net/)
; gsm (http://www.ibiblio.org/pub/Linux/utils/compress/!INDEX.short.html)
; loligo sounds (http://www.loligo.com/asterisk/sounds/)
; mpg123 (http://voip-info.org/wiki-Asterisk+config+musiconhold.conf)


; include extension contexts generated from AMP
#include extensions_additional.conf

; Customizations to this dialplan should be made in extensions_custom.conf
; See extensions_custom.conf.sample for an example
#include extensions_custom.conf

[from-trunk]							; just an alias since VoIP shouldn't be called PSTN
include => from-pstn

[from-pstn]
include => from-pstn-custom                     ; create this context in extensions_custom.conf to include customizations
include => ext-did
include => from-pstn-timecheck          ; this has to be included otherwise it overrides ext-did

[from-pstn-timecheck]
exten => .,1,Goto(s,1)		; catch-all matching for calls that have DID info (if a DID route hasn't matched them)
exten => s,1,GotoIf($[${IN_OVERRIDE} = forcereghours]?from-pstn-reghours,s,1:)
exten => s,2,GotoIf($[${IN_OVERRIDE} = forceafthours]?from-pstn-afthours,s,1:)
exten => s,3,GotoIfTime(${REGTIME}|${REGDAYS}|*|*?from-pstn-reghours,s,1:)
exten => s,4,Goto(from-pstn-afthours,s,1)

[from-pstn-reghours]
exten => s,1,GotoIf($[${FAX_RX} = disabled]?from-pstn-reghours-nofax,s,1:2)	; if fax detection is disabled, then jump to from-pstn-nofax - else continue
exten => s,2,Answer	
exten => s,3,Wait(1)
exten => s,4,SetVar(intype=${INCOMING})
exten => s,5,Cut(intype=intype,-,1) 
exten => s,6,GotoIf($[${intype} = EXT]?7:9)		; If INCOMING starts with EXT, then assume its an extension
exten => s,7,Wait(3) 							;wait 3 more second to make sure this isn't a fax before dialing someone
exten => s,8,Goto(ext-local,${INCOMING:4},1)
exten => s,9,GotoIf($[${intype} = GRP]?10:12) 	; If INCOMING starts with GRP, then assume its a ring group
exten => s,10,Wait(3)
exten => s,11,Goto(ext-group,${INCOMING:4},1)
exten => s,12,GotoIf($[${intype} = QUE]?13:15)
exten => s,13,Wait(3)
exten => s,14,Goto(ext-queues,${INCOMING:4},1)
exten => s,15,Goto(${INCOMING},s,1) 			; not EXT or GR1 - it's an auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

[from-pstn-reghours-nofax]
exten => s,1,SetVar(intype=${INCOMING})
exten => s,2,Cut(intype=intype,-,1) 
exten => s,3,GotoIf($[${intype} = EXT]?4:5)		; If INCOMING starts with EXT, then assume its an extension
exten => s,4,Goto(ext-local,${INCOMING:4},1)
exten => s,5,GotoIf($[${intype} = GRP]?6:7) 	; If INCOMING starts with GRP, then assume its a ring group
exten => s,6,Goto(ext-group,${INCOMING:4},1)
exten => s,7,GotoIf($[${intype} = QUE]?8:11) ;queue
exten => s,8,Answer        						; answer call before queue
exten => s,9,Wait(1)
exten => s,10,Goto(ext-queues,${INCOMING:4},1)
exten => s,11,Answer        						; answer call before auto attendant
exten => s,12,Wait(1)							
exten => s,13,Goto(${INCOMING},s,1) 				; not EXT or GR1 - it's an auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

[from-pstn-afthours]
exten => s,1,GotoIf($[${FAX_RX} = disabled]?from-pstn-afthours-nofax,s,1:2)	; if fax detection is disabled, then jump to from-pstn-nofax - else continue
exten => s,2,Answer	
exten => s,3,Wait(1)
exten => s,4,SetVar(intype=${AFTER_INCOMING})
exten => s,5,Cut(intype=intype,-,1) 
exten => s,6,GotoIf($[${intype} = EXT]?7:9)		; If INCOMING starts with EXT, then assume its an extension
exten => s,7,Wait(3) 							;wait 3 more second to make sure this isn't a fax before dialing someone
exten => s,8,Goto(ext-local,${AFTER_INCOMING:4},1)
exten => s,9,GotoIf($[${intype} = GRP]?10:12) 	; If INCOMING starts with GRP, then assume its a ring group
exten => s,10,Wait(3)
exten => s,11,Goto(ext-group,${AFTER_INCOMING:4},1)
exten => s,12,GotoIf($[${intype} = QUE]?13:15)
exten => s,13,Wait(3)
exten => s,14,Goto(ext-queues,${AFTER_INCOMING:4},1)
exten => s,15,Goto(${AFTER_INCOMING},s,1) 			; not EXT or GR1 - it's an auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

[from-pstn-afthours-nofax]
exten => s,1,SetVar(intype=${AFTER_INCOMING})
exten => s,2,Cut(intype=intype,-,1) 
exten => s,3,GotoIf($[${intype} = EXT]?4:5)		; If INCOMING starts with EXT, then assume its an extension
exten => s,4,Goto(ext-local,${AFTER_INCOMING:4},1)
exten => s,5,GotoIf($[${intype} = GRP]?6:7) 	; If INCOMING starts with GRP, then assume its a ring group
exten => s,6,Goto(ext-group,${AFTER_INCOMING:4},1)
exten => s,7,GotoIf($[${intype} = QUE]?8:11) ;queue
exten => s,8,Answer        						; answer call before queue
exten => s,9,Wait(1)
exten => s,10,Goto(ext-queues,${AFTER_INCOMING:4},1)
exten => s,11,Answer        						; answer call before auto attendant
exten => s,12,Wait(1)							
exten => s,13,Goto(${AFTER_INCOMING},s,1) 				; not EXT or GR1 - it's an auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

; ############################################################################
; Macros [macro]
; ############################################################################

; Rings one or more extensions.  Handles things like call forwarding and DND
; We don't call dial directly for anything internal anymore.
; ARGS: $TIMER, $OPTIONS, $EXT1, $EXT2, $EXT3, ...
; Use a Macro call such as the following: 
;  Macro(dial,$DIAL_TIMER,$DIAL_OPTIONS,$EXT1,$EXT2,$EXT3,...)
[macro-dial]
exten => s,1,GotoIf($[ "${MACRO_CONTEXT}" = "macro-rg-group" ]?4:2)  ; if this is from rg-group, don't strip prefix
exten => s,2,GotoIf($[${CALLERIDNAME:0:${LEN(${RGPREFIX})}} != ${RGPREFIX}]?4:3)  ; check for ring-group prefix
exten => s,3,SetCIDName(${CALLERIDNAME:${LEN(${RGPREFIX})}}) ; strip off prefix
exten => s,4,AGI,dialparties.agi
exten => s,5,NoOp(Returned from dialparties with no extensions to call)
exten => s,6,SetVar(DIALSTATUS=BUSY)
exten => s,10,Dial(${ds})                               ; dialparties will set the priority to 10 if $ds is not null

; Ring an extension, if the extension is busy or there is no answer send it
; to voicemail
; ARGS: $VMBOX, $EXT
[macro-exten-vm]
exten => s,1,Setvar(FROMCONTEXT=exten-vm)
exten => s,2,Macro(record-enable,${ARG2},IN)
exten => s,3,Macro(dial,${RINGTIMER},${DIAL_OPTIONS},${ARG2})
exten => s,4,GotoIf($[${CHANNEL:0:5} = Local]?s-${DIALSTATUS},1) ; if the channel is Local, then do not go to voicemail.  This is primarily to avoid vm for call-forwarded extensions in ring groups
exten => s,5,GotoIf($[${ARG1} = novm]?s-${DIALSTATUS},1) ; no voicemail in use for this extension
exten => s,6,NoOp(Sending to Voicemail box ${ARG1})
exten => s,7,Macro(vm,${ARG1},${DIALSTATUS})
exten => s-BUSY,1,NoOp(Extension is reporting BUSY and has no Voicemail)
exten => s-BUSY,2,Busy()
exten => s-BUSY,3,Wait(60)
exten => s-BUSY,4,NoOp()
exten => _s-.,1,Congestion()

[macro-vm]
exten => s,1,Goto(s-${ARG2},1)
exten => s-BUSY,1,Voicemail(b${ARG1})   ; Voicemail Busy message
exten => s-BUSY,2,Hangup()
exten => _s-.,1,Voicemail(u${ARG1})     ; Voicemail Unavailable message
exten => _s-.,2,Hangup()
exten => o,1,Background(one-moment-please)      ; 0 during vm message will hangup
exten => o,2,GotoIf($["foo${FROM_DID}" = "foo"]?from-pstn,s,1:from-pstn,${FROM_DID},1)
exten => a,1,VoiceMailMain(${ARG1})
exten => a,2,Hangup

; For some reason, if I don't run setCIDname, CALLERIDNAME will be blank in my AGI
; ARGS: none
[macro-fixcid]
exten => s,1,SetCIDName(${CALLERIDNAME})

; Ring groups of phones
; ARGS: comma separated extension list
; 1 - ringtimer
; 2 - preifx
; 3 - extension list
[macro-rg-group]
exten => s,1,GotoIf($[${CALLERIDNAME:0:${LEN(${RGPREFIX})}} != ${RGPREFIX}]?3:2)  ; check for old prefix
exten => s,2,SetCIDName(${CALLERIDNAME:${LEN(${RGPREFIX})}}) ; strip off old prefix
exten => s,3,Setvar(RGPREFIX=${ARG2})  ; set new prefix
exten => s,4,SetCIDName(${RGPREFIX}${CALLERIDNAME})  ; add prefix to callerid name
exten => s,5,Setvar(RecordMethod=Group)  ; set new prefix
exten => s,6,Macro(record-enable,${MACRO_EXTEN},${RecordMethod})
exten => s,7,Macro(dial,${ARG1},${DIAL_OPTIONS},${ARG3})


;exten => s,1,GotoIf($[${CALLERIDNAME:0:${LEN(${RGPREFIX})}} != ${RGPREFIX}]?3:2)  ; check for old prefix
;exten => s,2,SetCIDName(${CALLERIDNAME:${LEN(${RGPREFIX})}}) ; strip off old prefix
;exten => s,3,Setvar(RGPREFIX=${ARG2})  ; set new prefix
;;exten => s,4,Noop(${RGPREFIX}  ${CALLERIDNAME})
;exten => s,4,SetCIDName(${RGPREFIX}${CALLERIDNAME})  ; add prefix to callerid name
;;exten => s,6,Noop(Dial group ${ARG3})
;exten => s,5,Macro(dial,${ARG1},${DIAL_OPTIONS},${ARG3})

;exten => s,1,Setvar(GRP=${GRP})   ;my original choice of variable GROUP is now overwritten by SetGroup.  Copy contents to GRP
;exten => s,2,SetGroup(${CALLERIDNUM})
;exten => s,3,Setvar(FROMCONTEXT=rg-group)
;exten => s,4,SetCIDName(${PRE}${CALLERIDNAME})
;exten => s,5,Macro(dial,${RINGTIMER},${DIAL_OPTIONS},${GRP})

;
; Outgoing channel(s) are busy ... inform the client
;
[macro-outisbusy]
exten => s,1,Playback(allison7/all-circuits-busy-now)
exten => s,2,Playback(allison7/pls-try-call-later)
exten => s,3,Macro(hangupcall)

; What to do on hangup.
[macro-hangupcall]
exten => s,1,ResetCDR(w)
exten => s,2,NoCDR()
exten => s,3,Wait(5)
exten => s,4,Hangup

[macro-faxreceive]
exten => s,1,SetVar(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
exten => s,2,SetVar(EMAILADDR=${FAX_RX_EMAIL})
exten => s,3,rxfax(${FAXFILE})
exten => s,103,SetVar(EMAILADDR=${FAX_RX_EMAIL})
exten => s,104,Goto(3)

; dialout and strip the prefix
[macro-dialout]
exten => s,1,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?4) 	;check for CID override for exten
exten => s,2,SetCallerID(${ECID${CALLERIDNUM}})
exten => s,3,Goto(6)
exten => s,4,GotoIf($[foo${OUTCID_${ARG1}} = foo]?6) 		;check for CID override for trunk
exten => s,5,SetCallerID(${OUTCID_${ARG1}})
exten => s,6,SetVar(length=${LEN(${DIAL_OUT_${ARG1}})})
exten => s,7,Dial(${OUT_${ARG1}}/${ARG2:${length}})
exten => s,8,Congestion
exten => s,108,Macro(outisbusy)


; dialout using default OUT trunk - no prefix
[macro-dialout-default]
exten => s,1,Macro(record-enable,${CALLERIDNUM},OUT)
exten => s,2,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?5) 	;check for CID override for exten
exten => s,3,SetCallerID(${ECID${CALLERIDNUM}})
exten => s,4,Goto(7)
exten => s,5,GotoIf($[foo${OUTCID} = foo]?7) 	;check for CID override for trunk
exten => s,6,SetCallerID(${OUTCID})
exten => s,7,Dial(${OUT}/${ARG1})
exten => s,8,Congestion
exten => s,108,Macro(outisbusy)

; dialout using a trunk, using pattern matching (don't strip any prefix)
; arg1 = trunk number, arg2 = number, arg3 = route password
[macro-dialout-trunk]
exten => s,1,GotoIf($[foo${ARG3} = foo]?3:2))	; arg3 is pattern password
exten => s,2,Authenticate(${ARG3})
exten => s,3,Macro(record-enable,${CALLERIDNUM},OUT)
exten => s,4,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?7)  ;check for CID override for exten
exten => s,5,SetCallerID(${ECID${CALLERIDNUM}})
exten => s,6,Goto(9)
exten => s,7,GotoIf($[foo${OUTCID_${ARG1}} = foo]?9)  ;check for CID override for trunk
exten => s,8,SetCallerID(${OUTCID_${ARG1}})
exten => s,9,SetGroup(OUT_${ARG1})
exten => s,10,CheckGroup(${OUTMAXCHANS_${ARG1}})
; if we've used up the max channels, continue at 109 (n+101)
exten => s,11,SetVar(DIAL_NUMBER=${ARG2})
exten => s,12,SetVar(DIAL_TRUNK=${ARG1})
exten => s,13,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk
exten => s,14,SetVar(OUTNUM=${OUTPREFIX_${ARG1}}${DIAL_NUMBER})  ; OUTNUM is the final dial number
exten => s,15,Cut(custom=OUT_${ARG1},:,1)  ; Custom trunks are prefixed with "AMP:"
exten => s,16,GotoIf($[${custom} = AMP]?19)
exten => s,17,Dial(${OUT_${ARG1}}/${OUTNUM})  ; Regular Trunk Dial
exten => s,18,Goto(s-${DIALSTATUS},1)

; This is a custom trunk.  Substitute $OUTNUM$ with the actual number and rebuild the dialstring
; example trunks: "AMP:CAPI/XXXXXXXX:b$OUTNUM$,30,r", "AMP:OH323/[email protected]:XXXX"
exten => s,19,Cut(pre_num=OUT_${ARG1},$,1)
exten => s,20,Cut(the_num=OUT_${ARG1},$,2)  ; this is where we expect to find string OUTNUM
exten => s,21,Cut(post_num=OUT_${ARG1},$,3)
exten => s,22,GotoIf($[${the_num} = OUTNUM]?23:24) ; if we didn't find "OUTNUM", then skip to Dial
exten => s,23,SetVar(the_num=${OUTNUM}) ; replace "OUTNUM" with the actual number to dial
exten => s,24,Dial(${pre_num:4}${the_num}${post_num})
exten => s,25,Goto(s-${DIALSTATUS},1)

exten => s,111,Noop(max channels used up)
exten => s-BUSY,1,NoOp(Trunk is reporting BUSY)
exten => s-BUSY,2,Busy()
exten => s-BUSY,3,Wait(60)
exten => s-BUSY,4,NoOp()

exten => _s-.,1,NoOp(Dial failed due to ${DIALSTATUS})

; Adds a dynamic agent/member to a Queue
; Prompts for call-back number - in not entered, uses CIDNum
[macro-agent-add]
exten => s,1,Wait(1)
exten => s,2,NoOp
exten => s,3,Read(CALLBACKNUM,agent-user)  	; get callback number from user
exten => s,4,GotoIf($[foo${CALLBACKNUM} = foo]?5:7))	; if user just pressed # or timed out, use cidnum
exten => s,5,SetVar(CALLBACKNUM=${CALLERIDNUM})
exten => s,6,GotoIf($[foo${CALLBACKNUM} = foo]?2))	; if still no number, start over
exten => s,7,GotoIf($[foo${ARG2} = foo]?9:8))	; arg2 is queue password
exten => s,8,Authenticate(${ARG2})
exten => s,9,AddQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal)	; using chan_local allows us to have agents over trunks
exten => s,10,Wait(1)
exten => s,11,Playback(agent-loginok)
exten => s,12,Hangup()

; Removes a dynamic agent/member from a Queue
; Prompts for call-back number - in not entered, uses CIDNum
[macro-agent-del]
exten => s,1,Wait(1)
exten => s,2,NoOp
exten => s,3,Read(CALLBACKNUM,agent-user)  	; get callback number from user
exten => s,4,GotoIf($[foo${CALLBACKNUM} = foo]?5:7))	; if user just pressed # or timed out, use cidnum
exten => s,5,SetVar(CALLBACKNUM=${CALLERIDNUM})
exten => s,6,GotoIf($[foo${CALLBACKNUM} = foo]?2))	; if still no number, start over
exten => s,7,RemoveQueueMember(${ARG1}|Local/${CALLBACKNUM}@from-internal)
exten => s,8,Wait(1)
exten => s,9,Playback(agent-loggedoff)
exten => s,10,Hangup()

; arg1 = trunk number, arg2 = number
[macro-dialout-enum]
exten => s,1,Macro(record-enable,${CALLERIDNUM},OUT)
exten => s,2,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?3)        ;check for CID override for exten
exten => s,3,SetCallerID(${ECID${CALLERIDNUM}})
exten => s,4,Goto(7)
exten => s,5,GotoIf($[foo${OUTCID_${ARG1}} = foo]?7)            ;check for CID override for trunk
exten => s,6,SetCallerID(${OUTCID_${ARG1}})
exten => s,7,SetGroup(OUT_${ARG1})
exten => s,8,CheckGroup(${OUTMAXCHANS_${ARG1}})		; if we've used up the max channels, continue at 108 (n+101)
exten => s,9,SetVar(DIAL_NUMBER=${ARG2})
exten => s,10,SetVar(DIAL_TRUNK=${ARG1})
exten => s,11,AGI(fixlocalprefix) 						; this sets DIAL_NUMBER to the proper dial string for this trunk
exten => s,12,EnumLookup(${DIAL_NUMBER})
exten => s,13,GotoIf($[$[${ENUM:0:3} = SIP] | $[${ENUM:0:3} = IAX]]?14:63)
exten => s,14,Dial(${ENUM})
exten => s,15,Goto(s-${DIALSTATUS},1)
; if dial fails (ie, all channels are busy), continue at 116 (n+101)

; exit points for macro
exten => s,63,NoOp(EnumLookup failed)
exten => s,109,NoOp(max channels used up)

exten => s-BUSY,1,NoOp(Trunk is reporting BUSY)
exten => s-BUSY,2,Busy()
exten => s-BUSY,3,Wait(60)
exten => s-BUSY,4,NoOp()

exten => _s-.,1,NoOp(Dial failed due to ${DIALSTATUS})

[macro-record-enable]
exten => s,1,GotoIf(${LEN(${BLINDTRANSFER})} > 0?2:4)
exten => s,2,ResetCDR(w)
exten => s,3,StopMonitor()
exten => s,4,GotoIf($["${ARG2}" = "OUT"]?5:8) 
exten => s,5,DBGet(RecEnable=RECORD-OUT/${ARG1}) 
exten => s,6,SetVar(CALLFILENAME=OUT${ARG1}-${TIMESTAMP}-${UNIQUEID})
exten => s,7,Goto(s,14)
exten => s,8,GotoIf($["${ARG2}" = "Group"]?9:12) 
exten => s,9,AGI(recordingcheck)
exten => s,10,SetVar(CALLFILENAME=g${ARG1}-${TIMESTAMP}-${UNIQUEID})
exten => s,11,Goto(s,14)
exten => s,12,DBGet(RecEnable=RECORD-IN/${ARG1}) 
exten => s,13,SetVar(CALLFILENAME=${TIMESTAMP}-${UNIQUEID})
exten => s,14,GotoIf($["${RecEnable}" = "ENABLED"]?15:99) 
exten => s,15,Monitor(wav49,${CALLFILENAME}, mb)
exten => s,99,Noop(NO RECORDING NEEDED) 
;exten => s,3,BackGround(for-quality-purposes)
;exten => s,4,BackGround(this-call-may-be)
;exten => s,5,BackGround(recorded)

; This macro is for dev purposes and just dumps channel/app variables.  Useful when designing new contexts. 
[macro-dumpvars]
exten => s,1,Noop(ACCOUNTCODE=${ACCOUNTCODE})
exten => s,2,Noop(ANSWEREDTIME=${ANSWEREDTIME})
exten => s,3,Noop(BLINDTRANSFER=${BLINDTRANSFER})
exten => s,4,Noop(CALLERID=${CALLERID})
exten => s,5,Noop(CALLERIDNAME=${CALLERIDNAME})
exten => s,6,Noop(CALLERIDNUM=${CALLERIDNUM})
exten => s,7,Noop(CALLINGPRES=${CALLINGPRES})
exten => s,8,Noop(CHANNEL=${CHANNEL})
exten => s,9,Noop(CONTEXT=${CONTEXT})
exten => s,10,Noop(DATETIME=${DATETIME})
exten => s,11,Noop(DIALEDPEERNAME=${DIALEDPEERNAME})
exten => s,12,Noop(DIALEDPEERNUMBER=${DIALEDPEERNUMBER})
exten => s,13,Noop(DIALEDTIME=${DIALEDTIME})
exten => s,14,Noop(DIALSTATUS=${DIALSTATUS})
exten => s,15,Noop(DNID=${DNID})
exten => s,16,Noop(EPOCH=${EPOCH})
exten => s,17,Noop(EXTEN=${EXTEN})
exten => s,18,Noop(HANGUPCAUSE=${HANGUPCAUSE})
exten => s,19,Noop(INVALID_EXTEN=${INVALID_EXTEN})
exten => s,20,Noop(LANGUAGE=${LANGUAGE})
exten => s,21,Noop(MEETMESECS=${MEETMESECS})
exten => s,22,Noop(PRIORITY=${PRIORITY})
exten => s,23,Noop(RDNIS=${RDNIS})
exten => s,24,Noop(SIPDOMAIN=${SIPDOMAIN})
exten => s,25,Noop(SIP_CODEC=${SIP_CODEC})
exten => s,26,Noop(SIPCALLID=${SIPCALLID})
exten => s,27,Noop(SIPUSERAGENT=${SIPUSERAGENT})
exten => s,28,Noop(TIMESTAMP=${TIMESTAMP})
exten => s,29,Noop(TXTCIDNAME=${TXTCIDNAME})
exten => s,30,Noop(UNIQUEID=${UNIQUEID})
exten => s,31,Noop(TOUCH_MONITOR=${TOUCH_MONITOR})
exten => s,32,Noop(MACRO_CONTEXT=${MACRO_CONTEXT})
exten => s,33,Noop(MACRO_EXTEN=${MACRO_EXTEN})
exten => s,34,Noop(MACRO_PRIORITY=${MACRO_PRIORITY})


; ############################################################################
; Applications [app]
; ############################################################################
;
[app-directory]
;DIR-CONTEXT set in Digital Receptionist
exten => #,1,Wait(1)
exten => #,2,AGI(directory,${DIR-CONTEXT},ext-local,${DIRECTORY:0:1}${DIRECTORY_OPTS}o)
exten => #,3,Playback(vm-goodbye)
exten => #,4,Hangup
; *411 will access the entire directory (not just a single context)
exten => *411,1,Answer
exten => *411,2,Wait(1)
exten => *411,3,AGI(directory,general,ext-local,${DIRECTORY:0:1}${DIRECTORY_OPTS})
exten => *411,4,Playback(vm-goodbye)
exten => *411,5,Hangup
exten => h,1,Hangup
exten => o,1,GotoIf($["foo${FROM_DID}" = "foo"]?from-pstn,s,1:from-pstn,${FROM_DID},1)

[app-dnd]
exten => *78,1,Answer
exten => *78,2,Wait(1)
exten => *78,3,DBput(DND/${CALLERIDNUM}=YES)
exten => *78,4,Playback(allison7/do-not-disturb)
exten => *78,5,Playback(activated)
exten => *78,6,Macro(hangupcall)
exten => *79,1,Answer
exten => *79,2,Wait(1)
exten => *79,3,DBdel(DND/${CALLERIDNUM})
exten => *79,4,Playback(allison7/do-not-disturb)
exten => *79,5,Playback(de-activated)
exten => *79,6,Macro(hangupcall)

[app-messagecenter]
exten => *98,1,Answer
exten => *98,2,Wait(1)
exten => *98,3,VoiceMailMain(default)
exten => *98,4,Macro(hangupcall)
exten => _*98X.,1,Answer			; can dial *98<exten> to skip 'mailbox' prompt.  Useful for speedial.
exten => _*98X.,2,Wait(1)
exten => _*98X.,3,VoiceMailMain(${EXTEN:3}@default)
exten => _*98X.,4,Macro(hangupcall)
exten => *97,1,Answer
exten => *97,2,Wait(1)
exten => *97,3,VoicemailMain(${CALLERIDNUM}@default)
exten => *97,4,Macro(hangupcall)

[app-callwaiting]
exten => *70,1,Answer
exten => *70,2,Wait(1)
exten => *70,3,DBput(CW/${CALLERIDNUM}=ENABLED)
exten => *70,4,Playback(callwaiting)
exten => *70,5,Playback(activated)
exten => *70,6,Macro(hangupcall)
exten => *71,1,Answer
exten => *71,2,Wait(1)
exten => *71,3,DBdel(CW/${CALLERIDNUM})
exten => *71,4,Playback(callwaiting)
exten => *71,5,Playback(de-activated)
exten => *71,6,Macro(hangupcall)

[app-callforward]
; dialed call forward app - forwards calling extension
exten => _*72.,1,DBput(CF/${CALLERIDNUM}=${EXTEN:3})
exten => _*72.,2,Answer
exten => _*72.,3,Wait(1)
exten => _*72.,4,Playback(loligo/call-fwd-unconditional)
exten => _*72.,5,Playback(loligo/for)
exten => _*72.,6,Playback(loligo/extension)
exten => _*72.,7,SayDigits(${CALLERIDNUM})
exten => _*72.,8,Playback(loligo/is-set-to)
exten => _*72.,9,SayDigits(${EXTEN:3})
exten => _*72.,10,Macro(hangupcall)
; prompting call forward app - forwards entered extension
exten => *72,1,Answer
exten => *72,2,Wait(1)
exten => *72,3,BackGround(allison7/please-enter-your)
exten => *72,4,Playback(extension)
exten => *72,5,Read(fromext,then-press-pound)
exten => *72,6,Wait(1)
exten => *72,7,BackGround(ent-target-attendant)
exten => *72,8,Read(toext,then-press-pound)
exten => *72,9,Wait(1)
exten => *72,10,DBput(CF/${fromext}=${toext})
exten => *72,11,Playback(call-fwd-unconditional)
exten => *72,12,Playback(for)
exten => *72,13,Playback(extension)
exten => *72,14,SayDigits(${fromext})
exten => *72,15,Playback(is-set-to)
exten => *72,16,SayDigits(${toext})
exten => *72,17,Macro(hangupcall)
; cancels dialed extension call forward
exten => _*73.,1,DBdel(CF/${EXTEN:3})
exten => _*73.,2,Answer
exten => _*73.,3,Wait(1)
exten => _*73.,4,SayDigits(${EXTEN:3})
exten => _*73.,5,Playback(call-fwd-cancelled)
exten => _*73.,6,Macro(hangupcall)
; cancels call forward for calling extension
exten => *73,1,DBdel(CF/${CALLERIDNUM})
exten => *73,2,Answer
exten => *73,3,Wait(1)
exten => *73,4,Playback(loligo/call-fwd-cancelled)
exten => *73,5,Macro(hangupcall)
; dialed call forward on busy app - forwards calling extension when busy
exten => _*90.,1,DBput(CFB/${CALLERIDNUM}=${EXTEN:3})
exten => _*90.,2,Answer
exten => _*90.,3,Wait(1)
exten => _*90.,4,Playback(loligo/call-fwd-on-busy)
exten => _*90.,5,Playback(loligo/for)
exten => _*90.,6,Playback(loligo/extension)
exten => _*90.,7,SayDigits(${CALLERIDNUM})
exten => _*90.,8,Playback(loligo/is-set-to)
exten => _*90.,9,SayDigits(${EXTEN:3})
exten => _*90.,10,Macro(hangupcall)
; cancels call forward on busy for calling extension
exten => *91,1,DBdel(CFB/${CALLERIDNUM})
exten => *91,2,Answer
exten => *91,3,Wait(1)
exten => *91,4,Playback(call-fwd-on-busy)
exten => *91,5,Playback(de-activated)
exten => *91,6,Macro(hangupcall)
exten => h,1,Hangup

[app-calltrace]
; We can't have our timeouts or dial digits collide with other applications
; or extensions, so we build the app in pieces
exten => *69,1,Goto(app-calltrace-perform,s,1)

[app-calltrace-perform]
exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,Background(allison7/info-about-last-call)
exten => s,4,Background(allison7/telephone-number)
exten => s,5,Dbget(lastcaller=CALLTRACE/${CALLERIDNUM})
exten => s,6,GotoIf($[${lastcaller}]?7:13)
exten => s,7,SayDigits(${lastcaller})
exten => s,8,DigitTimeout(3)
exten => s,9,ResponseTimeout(7)
exten => s,10,Background(loligo/to-call-this-number)
exten => s,11,Background(allison7/press-1)
exten => s,12,Goto(15)
exten => s,13,Playback(loligo/from-unknown-caller)
exten => s,14,Macro(hangupcall)
exten => s,15,NoOp
exten => 1,1,Goto(from-internal,${lastcaller},1);
exten => i,1,Playback(vm-goodbye)
exten => i,2,Macro(hangupcall)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Macro(hangupcall)


; ############################################################################
; Inbound Contexts [from]
; ############################################################################

[from-sip-external]

;give external sip users congestion and hangup
;exten => _.,1,AbsoluteTimeout(15)
;exten => _.,2,Congestion 
;exten => _.,3,Hangup

exten => _.,1,Goto(from-pstn,s,1) 

[capi-in]

exten => _.,1,Goto(from-pstn,s,1).  


[from-internal]
;allow phones to use applications
include => app-directory
include => app-dnd
include => app-callforward
include => app-callwaiting
include => app-messagecenter
include => app-calltrace
include => parkedcalls
include => from-internal-custom
;allow phones to dial other extensions
include => ext-fax
include => ext-local
include => ext-group
include => ext-queues
include => ext-zapbarge
include => ext-meetme
include => ext-record
include => ext-test
;allow phones to access trunks
include => outbound-allroutes
exten => s,1,Macro(hangupcall)
exten => h,1,Macro(hangupcall)

; ############################################################################
; Extension Contexts [ext]
; ############################################################################

[ext-zapbarge]
exten => 888,1,SetGroup(${CALLERIDNUM})
exten => 888,2,Answer
exten => 888,3,Wait(1)
exten => 888,4,ZapBarge
exten => 888,5,Hangup

[ext-meetme]
exten => _8X,1,Answer
exten => _8X,2,Wait(1)
exten => _8X,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4)
exten => _8X,4,MeetMe(${EXTEN}|sM)
exten => _8X,5,MeetMe(${EXTEN}|asM)

exten => _8XX,1,Answer
exten => _8XX,2,Wait(1)
exten => _8XX,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4)
exten => _8XX,4,MeetMe(${EXTEN}|sM)
exten => _8XX,5,MeetMe(${EXTEN}|asM)

exten => _8XXX,1,Answer
exten => _8XXX,2,Wait(1)
exten => _8XXX,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4)
exten => _8XXX,4,MeetMe(${EXTEN}|sM)
exten => _8XXX,5,MeetMe(${EXTEN}|asM)

exten => _8XXXX,1,Answer
exten => _8XXXX,2,Wait(1)
exten => _8XXXX,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4)
exten => _8XXXX,4,MeetMe(${EXTEN}|sM)
exten => _8XXXX,5,MeetMe(${EXTEN}|asM)


[ext-fax]
exten => s,1,Answer
exten => s,2,Goto(in_fax,1)
exten => in_fax,1,GotoIf($[${FAX_RX} = system]?2:analog_fax,1)
exten => in_fax,2,Macro(faxreceive)
exten => in_fax,3,system(tiff2ps -2eaz -w 8.5 -h 11 ${FAXFILE} | ps2pdf - ${FAXFILE}.pdf)
exten => in_fax,4,system(mime-construct --to ${EMAILADDR} --subject "Fax from ${CALLERIDNUM} ${CALLERIDNAME}" --attachment ${FAXFILE}.pdf --type application/pdf --file ${FAXFILE}.pdf)
exten => in_fax,5,system(rm ${FAXFILE} ${FAXFILE}.pdf)
exten => in_fax,6,Hangup
exten => analog_fax,1,GotoIf($[${FAX_RX} = disabled]?3:2)  ;if fax is disabled, just hang up
exten => analog_fax,2,Dial(${FAX_RX},20,d)
exten => analog_fax,3,Hangup
;exten => out_fax,1,wait(7)
exten => out_fax,1,txfax(${TXFAX_NAME}|caller)
exten => out_fax,2,Hangup
exten => h,1,Hangup()

[ext-record]
exten => *77,1,Wait(2)
exten => *77,2,Record(${CALLERIDNUM}ivrrecording:wav) 
exten => *77,3,Wait(2)
exten => *77,4,Hangup
exten => *99,1,Playback(${CALLERIDNUM}ivrrecording) 
exten => *99,2,Wait(2) 
exten => *99,3,Hangup 

;this is where parked calls go if they time-out.  Should probably re-ring
[default]
include => ext-local
exten => s,1,Playback(vm-goodbye)
exten => s,2,Macro(hangupcall)

[ext-test]
exten => 7777,1,Goto(from-pstn,s,1)
exten => 666,1,Goto(ext-fax,in_fax,1)
exten => h,1,Macro(hangupcall)

;echo test
exten => *43,1,Answer
exten => *43,2,Wait(2)
exten => *43,3,Playback(demo-echotest)
exten => *43,4,Echo
exten => *43,5,Playback(demo-echodone)
exten => *43,6,Hangup

include extensions_additional.conf:
Code:
[globals]
VM_PREFIX = *
RECORDEXTEN = ""
PARKNOTIFY = SIP/200
OUT_4 = AMP:CAPI/contr1/$OUTNUM$
OUT_3 = SIP/t-online
OUT_2 = SIP/sipgate
OUT_1 = ZAP/g0
OUTPREFIX_4 = 
OUTPREFIX_3 = 
OUTPREFIX_2 = 
OUTMAXCHANS_4 = 2
OUTMAXCHANS_3 = 
OUTMAXCHANS_2 = 
OUTCID_4 = MYMSN
OUTCID_3 = MYTONLINENUMBER
OUTCID_2 = MYSIPGATENUMBER
OPERATOR = 
NULL = ""
IN_OVERRIDE = forcereghours
INCOMING = GRP-1
FAX_RX_EMAIL = [email][email protected][/email]
FAX_RX = disabled
FAX = 
E202 = SIP
E201 = SIP
E200 = SIP
DIRECTORY_OPTS = 
DIRECTORY = last
DIAL_OUT = 9
DIAL_OPTIONS = tr
DIALOUTIDS = 1/2/3/4/
CALLFILENAME = ""
AFTER_INCOMING = GRP-1

[aa_1]
include => aa_1-custom
exten => 1,1,Macro(vm,200)	; 
exten => 2,1,Goto(ext-group,1,1)	; 
exten => 3,1,Goto(aa_1,s,1)	; 
exten => fax,1,Goto(ext-fax,in_fax,1)	; 
exten => h,1,Hangup()	; 
exten => i,1,Playback(invalid)	; 
exten => i,2,Goto(s,7)	; 
include => ext-local
include => app-messagecenter
include => app-directory
exten => s,1,GotoIf($[${DIALSTATUS} = ANSWER]?4)	; 
exten => s,2,Answer()	; 
exten => s,3,Wait(1)	; 
exten => s,4,SetVar(DIR-CONTEXT=general)	; 
exten => s,5,DigitTimeout(3)	; Main
exten => s,6,ResponseTimeout(7)	; 
exten => s,7,Background(custom/aa_1)	; 

[ext-did]
include => ext-did-custom
exten => MYMSN,1,SetVar(FROM_DID=MYMSN)	; 
exten => MYMSN,2,Goto(ext-group,2,1)	; 

[ext-group]
include => ext-group-custom
exten => 1,1,Macro(rg-group,60,,200-202)	; 
exten => 1,2,Goto(aa_1,s,1)	; 
exten => 2,1,Macro(rg-group,60,,201)	; 
exten => 2,2,Goto(aa_1,s,1)	; 

[ext-local]
include => ext-local-custom
exten => 200,1,Macro(exten-vm,200@default,200)
exten => ${VM_PREFIX}200,1,Macro(vm,200)
exten => 201,1,Macro(exten-vm,novm,201)
exten => 202,1,Macro(exten-vm,novm,202)

[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-001-default
include => outrt-002-Mobile

[outrt-001-default]
include => outrt-001-default-custom
exten => _0N.,1,Macro(dialout-trunk,3,${EXTEN},)
exten => _0N.,2,Macro(outisbusy)	; No available circuits
exten => _N.,1,Macro(dialout-trunk,3,${EXTEN},)
exten => _N.,2,Macro(outisbusy)	; No available circuits

[outrt-002-Mobile]
include => outrt-002-Mobile-custom
exten => _01.,1,Macro(dialout-trunk,4,${EXTEN},)
exten => _01.,2,Macro(outisbusy)	; No available circuits
 
Du musst bei den Register String in der Trunk Config ein user:p[email protected] /12345 anhängen.
Aloso user:p[email protected]/12345

Dann kannst du eine DID Rote erstellen für 12345

So müsste es gehen.
 
Das habe ich schon gemacht. Es geht ja weder per ISDN/CAPI noch per SIP.

Hier mal das log für einen Anruf:

Code:
Sep 12 17:09:11 VERBOSE[3909]:     -- started pbx on channel (callgroup=0)!
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing Goto("CAPI/contr1/MYMSN-5", "from-pstn|s|1") in new stack
Sep 12 17:09:12 VERBOSE[11627]:     -- Goto (from-pstn,s,1)
Sep 12 17:09:12 DEBUG[11627]: Expression is '1'
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "1?from-pstn-reghours|s|1:") in new stack
Sep 12 17:09:12 VERBOSE[11627]:     -- Goto (from-pstn-reghours,s,1)
Sep 12 17:09:12 DEBUG[11627]: Expression is '1'
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "1?from-pstn-reghours-nofax|s|1:2") in new stack
Sep 12 17:09:12 VERBOSE[11627]:     -- Goto (from-pstn-reghours-nofax,s,1)
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing SetVar("CAPI/contr1/MYMSN-5", "intype=GRP-1") in new stack
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing Cut("CAPI/contr1/MYMSN-5", "intype=intype|-|1") in new stack
Sep 12 17:09:12 DEBUG[11627]: Expression is '0'
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "0?4:5") in new stack
Sep 12 17:09:12 VERBOSE[11627]:     -- Goto (from-pstn-reghours-nofax,s,5)
Sep 12 17:09:12 DEBUG[11627]: Expression is '1'
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "1?6:7") in new stack
Sep 12 17:09:12 VERBOSE[11627]:     -- Goto (from-pstn-reghours-nofax,s,6)
Sep 12 17:09:12 VERBOSE[11627]:     -- Executing Goto("CAPI/contr1/MYMSN-5", "ext-group|1|1") in new stack
Sep 12 17:09:13 VERBOSE[11627]:     -- Goto (ext-group,1,1)
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing Macro("CAPI/contr1/MYMSN-5", "rg-group|60||200-202") in new stack
Sep 12 17:09:13 WARNING[11627]: ast_yyerror(): syntax error: syntax error; Input:
 !=

    ^
Sep 12 17:09:13 DEBUG[11627]: Expression is '0'
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "0?3:2") in new stack
Sep 12 17:09:13 VERBOSE[11627]:     -- Goto (macro-rg-group,s,2)
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing SetCIDName("CAPI/contr1/MYMSN-5", "ANRUFENDENUMMER") in new stack
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing SetVar("CAPI/contr1/MYMSN-5", "RGPREFIX=") in new stack
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing SetCIDName("CAPI/contr1/MYMSN-5", "ANRUFENDENUMMER") in new stack
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing SetVar("CAPI/contr1/MYMSN-5", "RecordMethod=Group") in new stack
Sep 12 17:09:13 VERBOSE[11627]:     -- Executing Macro("CAPI/contr1/MYMSN-5", "record-enable|1|Group") in new stack
Sep 12 17:09:14 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "0 > 0?2:4") in new stack
Sep 12 17:09:14 VERBOSE[11627]:     -- Goto (macro-record-enable,s,4)
Sep 12 17:09:14 DEBUG[11627]: Expression is '0'
Sep 12 17:09:14 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "0?5:8") in new stack
Sep 12 17:09:14 VERBOSE[11627]:     -- Goto (macro-record-enable,s,8)
Sep 12 17:09:14 DEBUG[11627]: Expression is '1'
Sep 12 17:09:14 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "1?9:12") in new stack
Sep 12 17:09:14 VERBOSE[11627]:     -- Goto (macro-record-enable,s,9)
Sep 12 17:09:14 VERBOSE[11627]:     -- Executing AGI("CAPI/contr1/MYMSN-5", "recordingcheck") in new stack
Sep 12 17:09:14 VERBOSE[11627]:     -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
Sep 12 17:09:15 DEBUG[11627]: Unable to find key '200' in family 'RECORD-IN'
Sep 12 17:09:15 DEBUG[11627]: Unable to find key '202' in family 'RECORD-IN'
Sep 12 17:09:15 VERBOSE[11627]:     -- AGI Script recordingcheck completed, returning 0
Sep 12 17:09:15 VERBOSE[11627]:     -- Executing SetVar("CAPI/contr1/MYMSN-5", "CALLFILENAME=g1-20050912-170915-1126537751.8") in new stack
Sep 12 17:09:15 VERBOSE[11627]:     -- Executing Goto("CAPI/contr1/MYMSN-5", "s|14") in new stack
Sep 12 17:09:15 VERBOSE[11627]:     -- Goto (macro-record-enable,s,14)
Sep 12 17:09:15 DEBUG[11627]: Expression is '0'
Sep 12 17:09:15 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "0?15:99") in new stack
Sep 12 17:09:15 VERBOSE[11627]:     -- Goto (macro-record-enable,s,99)
Sep 12 17:09:15 VERBOSE[11627]:     -- Executing NoOp("CAPI/contr1/MYMSN-5", "NO RECORDING NEEDED") in new stack
Sep 12 17:09:15 VERBOSE[11627]:     -- Executing Macro("CAPI/contr1/MYMSN-5", "dial|60|tr|200-202") in new stack
Sep 12 17:09:15 DEBUG[11627]: Expression is '1'
Sep 12 17:09:15 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "1?4:2") in new stack
Sep 12 17:09:16 VERBOSE[11627]:     -- Goto (macro-dial,s,4)
Sep 12 17:09:16 VERBOSE[11627]:     -- Executing AGI("CAPI/contr1/MYMSN-5", "dialparties.agi") in new stack
Sep 12 17:09:16 VERBOSE[11627]:     -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: request = dialparties.agi
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: priority = 4
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: extension = s
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: language = en
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: accountcode =
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: uniqueid = 1126537751.8
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: channel = CAPI/contr1/MYMSN-5
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: callerid = ANRUFENDENUMMER <ANRUFENDENUMMER>
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: context = macro-dial
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: type = CAPI
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: rdnis = unknown
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: enhanced = 0.0
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: dnid = MYMSN
Sep 12 17:09:18 VERBOSE[11627]:   dialparties.agi: Caller ID name is 'ANRUFENDENUMMER' number is 'ANRUFENDENUMMER'
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: Added extension 200 to extension map
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: Added extension 202 to extension map
Sep 12 17:09:18 DEBUG[11627]: Unable to find key '200' in family 'CF'
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: Extension 200 cf is disabled
Sep 12 17:09:18 DEBUG[11627]: Unable to find key '202' in family 'CF'
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: Extension 202 cf is disabled
Sep 12 17:09:18 DEBUG[11627]: Unable to find key '200' in family 'DND'
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: Extension 200 do not disturb is disabled
Sep 12 17:09:18 DEBUG[11627]: Unable to find key '202' in family 'DND'
Sep 12 17:09:18 VERBOSE[11627]:     --  dialparties.agi: Extension 202 do not disturb is disabled
Sep 12 17:09:18 DEBUG[11630]: Manager received command 'Login'
Sep 12 17:09:18 VERBOSE[11630]:   == Parsing '/etc/asterisk/manager.conf': Sep 12 17:09:18 VERBOSE[11630]:   == Parsing '/etc/asterisk/manager.conf': Found
Sep 12 17:09:18 VERBOSE[11630]:   == Parsing '/etc/asterisk/manager_custom.conf': Sep 12 17:09:18 VERBOSE[11630]:   == Parsing '/etc/asterisk/manager_custom.conf': Found
Sep 12 17:09:18 WARNING[11630]: Unknown directive 'permit=192.168.1.0/255.255.255.0' at line 18 of manager_custom.conf
Sep 12 17:09:18 DEBUG[11630]: 0.0.0.0/0.0.0.0/0.0.0.0 appended to acl for peer
Sep 12 17:09:18 DEBUG[11630]: 127.0.0.1/255.255.255.0/255.255.255.0 appended to acl for peer
Sep 12 17:09:18 DEBUG[11630]: ##### Testing 127.0.0.1 with 0.0.0.0
Sep 12 17:09:18 DEBUG[11630]: ##### Testing 127.0.0.1 with 127.0.0.0
Sep 12 17:09:18 VERBOSE[11630]:   == Manager 'admin' logged on from 127.0.0.1
Sep 12 17:09:18 DEBUG[11630]: Manager received command 'command'
Sep 12 17:09:18 DEBUG[11627]: Unable to find key '200' in family 'CW'
Sep 12 17:09:18 VERBOSE[11627]:   dialparties.agi: Extension 200 has call waiting disabled
Sep 12 17:09:18 DEBUG[11627]: Unable to find key '202' in family 'CW'
Sep 12 17:09:18 VERBOSE[11627]:   dialparties.agi: Extension 202 has call waiting disabled
Sep 12 17:09:18 DEBUG[11630]: Manager received command ''
Sep 12 17:09:18 DEBUG[11630]: Manager received command 'Logoff'
Sep 12 17:09:18 VERBOSE[11630]:   == Manager 'admin' logged off from 127.0.0.1
Sep 12 17:09:19 VERBOSE[11627]:     --  dialparties.agi: DbSet CALLTRACE/200 to ANRUFENDENUMMER
Sep 12 17:09:19 VERBOSE[11627]:     --  dialparties.agi: DbSet CALLTRACE/202 to ANRUFENDENUMMER
Sep 12 17:09:19 VERBOSE[11627]:   dialparties.agi: Dial string is SIP/200&SIP/202|60|tr
Sep 12 17:09:19 VERBOSE[11627]:     -- AGI Script dialparties.agi completed, returning 0
Sep 12 17:09:19 VERBOSE[11627]:     -- Executing Dial("CAPI/contr1/MYMSN-5", "SIP/200&SIP/202|60|tr") in new stack
Sep 12 17:09:19 DEBUG[11627]: SIMPLE DIAL (NO URL)
Sep 12 17:09:19 DEBUG[11627]: Setting NAT on RTP to 0
Sep 12 17:09:19 NOTICE[11627]: Unable to create channel of type 'SIP'
Sep 12 17:09:19 DEBUG[11627]: Setting NAT on RTP to 0
Sep 12 17:09:19 NOTICE[11627]: Unable to create channel of type 'SIP'
Sep 12 17:09:19 VERBOSE[11627]:   == Everyone is busy/congested at this time
Sep 12 17:09:19 DEBUG[11627]: Exiting with DIALSTATUS=CHANUNAVAIL.
Sep 12 17:09:19 VERBOSE[11627]:     -- Executing Goto("CAPI/contr1/MYMSN-5", "aa_1|s|1") in new stack
Sep 12 17:09:19 VERBOSE[11627]:     -- Goto (aa_1,s,1)
Sep 12 17:09:19 DEBUG[11627]: Expression is '0'
Sep 12 17:09:19 VERBOSE[11627]:     -- Executing GotoIf("CAPI/contr1/MYMSN-5", "0?4") in new stack
Sep 12 17:09:19 DEBUG[11627]: Not taking any branch
Sep 12 17:09:19 VERBOSE[11627]:     -- Executing Answer("CAPI/contr1/MYMSN-5", "") in new stack
Sep 12 17:09:19 VERBOSE[11627]:     -- Executing Wait("CAPI/contr1/MYMSN-5", "1") in new stack
Sep 12 17:09:19 DEBUG[11627]: Dropping duplicate answer!
Sep 12 17:09:20 VERBOSE[11627]:     -- Executing SetVar("CAPI/contr1/MYMSN-5", "DIR-CONTEXT=general") in new stack
Sep 12 17:09:20 VERBOSE[11627]:     -- Executing DigitTimeout("CAPI/contr1/MYMSN-5", "3") in new stack
Sep 12 17:09:20 VERBOSE[11627]:     -- Set Digit Timeout to 3
Sep 12 17:09:20 VERBOSE[11627]:     -- Executing ResponseTimeout("CAPI/contr1/MYMSN-5", "7") in new stack
Sep 12 17:09:20 VERBOSE[11627]:     -- Set Response Timeout to 7
Sep 12 17:09:20 VERBOSE[11627]:     -- Executing BackGround("CAPI/contr1/MYMSN-5", "custom/aa_1") in new stack
Sep 12 17:09:20 VERBOSE[11627]:     -- Playing 'custom/aa_1' (language 'en')
Sep 12 17:09:20 DEBUG[11627]: Request to schedule in the past?!?!
Sep 12 17:09:21 VERBOSE[11627]:   == Spawn extension (aa_1, s, 7) exited non-zero on 'CAPI/contr1/MYMSN-5'
Sep 12 17:09:21 VERBOSE[11627]:     -- Executing Hangup("CAPI/contr1/MYMSN-5", "") in new stack
Sep 12 17:09:21 VERBOSE[11627]:   == Spawn extension (aa_1, h, 1) exited non-zero on 'CAPI/contr1/MYMSN-5'
Sep 12 17:09:21 DEBUG[11627]: cdr_mysql: inserting a CDR record.
Sep 12 17:09:21 DEBUG[11627]: cdr_mysql: SQL command as follows:  INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode) VALUES ('2005-09-12 17:09:12','\"ANRUFENDENUMMER\" <ANRUFENDENUMMER>','ANRUFENDENUMMER','s','aa_1', 'CAPI/contr1/MYMSN-5','','Hangup','',9,2,'ANSWERED',3,'')


Und wenn's noch hilft die capi.conf:

Code:
;
; CAPI config
;
;
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8


[interfaces]

; mode: ptmp (point-to-multipoint) or ptp (point-to-point)
isdnmode=ptmp
; allow incoming calls to this list of MSNs, * == any
;incomingmsn=*
incomingmsn=MYMSN
; capi controller number
controller=1
; dialout group
group=1
; enable/disable software dtmf detection, recommended for AVM cards
softdtmf=1
; accountcode to use in CDRs
accountcode=
; context for incoming calls
context=capi-in
; _VERY_PRIMITIVE_ echo suppression
;echosquelch=1
; EICON DIVA SERVER echo cancelation
;echocancel=yes
;echotail=64
; call group
;callgroup=1
; deflect incoming calls to 12345678 if all B channels are busy
;deflect=12345678
; number of concurrent calls on this controller (2 makes sense for single BRI)
devices => 2


;PointToPoint (55512-0)
;isdnmode=ptp
;msn=55512
;controller=2
;devices => 30
 
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.