Hallo Leute,
Folgendes Szenario.
Asterisk 1.4.11
mISDN 1.1.11
1 x Beronet BNE1 1 Port Karte
1 x Beronet BN4S0 4 Port S0 Karte
Folgendes Problem.
Wie haben eine Warteschlange konfiguriert, Die Agents können sich anmelden usw.
Angemeldete Agenten:
Agent 1 Prio 1
Agent 2 Prio 2
Wenn nun jemand auf die Warteschlange anruft und der Agent 1 mit der Prio 1 besetzt ist geht die Mailbox ran. Er geht also nicht weiter zur nächsten Priorität oder bleibt nicht in der Warteschleife.
Er geht direkt zur Mailbox des Agent 1.
Hier mal die Konfiguration:
[Agents.conf]
[sip.conf]
[queues.conf]
extensions.conf
Habt ihr ne Ahnung warum dass so ist?
MFG tmace85
Edit Guard-X: Bitte nächstes mal Code-Tags verwenden!
Folgendes Szenario.
Asterisk 1.4.11
mISDN 1.1.11
1 x Beronet BNE1 1 Port Karte
1 x Beronet BN4S0 4 Port S0 Karte
Folgendes Problem.
Wie haben eine Warteschlange konfiguriert, Die Agents können sich anmelden usw.
Angemeldete Agenten:
Agent 1 Prio 1
Agent 2 Prio 2
Wenn nun jemand auf die Warteschlange anruft und der Agent 1 mit der Prio 1 besetzt ist geht die Mailbox ran. Er geht also nicht weiter zur nächsten Priorität oder bleibt nicht in der Warteschleife.
Er geht direkt zur Mailbox des Agent 1.
Hier mal die Konfiguration:
[Agents.conf]
Code:
persistentagents=yes
autologoff=35
;autologoffunavail=yes
ackcall=no
endcall=no
wrapuptime=60000
updatecdr=yes
group=1
agent=>111,,Agent 1 level 1
agent=>112,,Agent 2 level 1
agent=>113,,Agent 3 level 1
agent=>114,,Agent 4 level 1
agent=>121,,Agent 5 level 1
agent=>122,,Agent 6 level 1
group=2
agent=>211,,Agent 1 level 2
agent=>212,,Agent 2 level 2
agent=>213,,Agent 3 level 2
agent=>214,,Agent 4 level 2
agent=>221,,Agent 5 level 2
agent=>222,,Agent 6 level 2
group=3
agent=>311,,Agent 1 level 3
agent=>312,,Agent 2 level 3
agent=>313,,Agent 3 level 3
agent=>314,,Agent 4 level 3
agent=>321,,Agent 5 level 3
agent=>322,,Agent 6 level 3
Code:
[13]
type=friend
user=13
secret=13
callerid=Name <13>
host=dynamic
mailbox=00
canreinvite=yes
pickupgroup=1
callgroup=1
;call-limit=2
nat=yes
Code:
persistentmembers = yes
autofill = yes
monitor-type = MixMonitor
[keyaccount]
musiconhold=warteschlange
strategy = roundrobin
timeout = 15
reportholdtime= yes
wrapuptime= 60
maxlen = 10
announce-frequency = 0
announce-holdtime = no
joinempty = yes
timeoutrestet = no
;memberdelay = 0
member => Agent/11
member => Agent/12
member => Agent/13
member => Agent/14
member => Agent/21
member => Agent/22
[warteschlange]
musiconhold=daphi-warteschlange
strategy = roundrobin
timeout = 15
reportholdtime= yes
wrapuptime= 60
maxlen = 10
announce-frequency = 0
announce-holdtime = no
joinempty = yes
timeoutreset = no
;memberdelay = 0
member => Agent/11
member => Agent/12
member => Agent/13
member => Agent/14
member => Agent/21
member => Agent/22
;PRIO = 1
member => Agent/111,1
member => Agent/112,1
member => Agent/113,1
member => Agent/114,1
member => Agent/121,1
member => Agent/122,1
extensions.conf
Code:
; extensions.conf - the Asterisk dial plan
;
; Static extension configuration file, used by
; the pbx_config module. This is where you configure all your
; inbound and outbound calls in Asterisk.
;
; This configuration file is reloaded
; - With the "dialplan reload" command in the CLI
; - With the "reload" command (that reloads everything) in the CLI
;
; The "General" category is for certain variables.
;
[general]
;
; If static is set to no, or omitted, then the pbx_config will rewrite
; this file when extensions are modified. Remember that all comments
; made in the file will be lost when that happens.
;
; XXX Not yet implemented XXX
;
static=yes
;
; if static=yes and writeprotect=no, you can save dialplan by
; CLI command "dialplan save" too
;
writeprotect=yes
;
; If autofallthrough is set, then if an extension runs out of
; things to do, it will terminate the call with BUSY, CONGESTION
; or HANGUP depending on Asterisk's best guess. This is the default.
;
; If autofallthrough is not set, then if an extension runs out of
; things to do, Asterisk will wait for a new extension to be dialed
; (this is the original behavior of Asterisk 1.0 and earlier).
;
autofallthrough=no
;
; If clearglobalvars is set, global variables will be cleared
; and reparsed on an extensions reload, or Asterisk reload.
;
; If clearglobalvars is not set, then global variables will persist
; through reloads, and even if deleted from the extensions.conf or
; one of its included files, will remain set to the previous value.
;
; NOTE: A complication sets in, if you put your global variables into
; the AEL file, instead of the extensions.conf file. With clearglobalvars
; set, a "reload" will often leave the globals vars cleared, because it
; is not unusual to have extensions.conf (which will have no globals)
; load after the extensions.ael file (where the global vars are stored).
; So, with "reload" in this particular situation, first the AEL file will
; clear and then set all the global vars, then, later, when the extensions.conf
; file is loaded, the global vars are all cleared, and then not set, because
; they are not stored in the extensions.conf file.
;
clearglobalvars=no
;
; If priorityjumping is set to 'yes', then applications that support
; 'jumping' to a different priority based on the result of their operations
; will do so (this is backwards compatible behavior with pre-1.2 releases
; of Asterisk). Individual applications can also be requested to do this
; by passing a 'j' option in their arguments.
;
priorityjumping=yes
;
; User context is where entries from users.conf are registered. The
; default value is 'default'
;
;userscontext=default
;
; You can include other config files, use the #include command
; (without the ';'). Note that this is different from the "include" command
; that includes contexts within other contexts. The #include command works
; in all asterisk configuration files.
;#include "filename.conf"
; The "Globals" category contains global variables that can be referenced
; in the dialplan with the GLOBAL dialplan function:
; ${GLOBAL(VARIABLE)}
; ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
; Unix/Linux environmental variables can be reached with the ENV dialplan
; function: ${ENV(VARIABLE)}
;
[globals]
CONSOLE=Console/dsp ; Console interface for demo
RINGTIME1 => 30
RINGTIME2 => 50
;ANSCHLUSS
LEITUNG1_NR => nummer
;Anderes
FAX => mISDN/g:ISDN-NT/01
ISDNFONWERKSTATT => mISDN/g:ISDN-NT/34
; Support
SUPPORT1 => SIP/11
SUPPORT2 => SIP/12
SUPPORT3 => SIP/13
;SUPPORT4 => mISDN/g:ISDN-TE/nummer
SUPPORT4 => SIP/14
SUPPORT5 => SIP/17
SUPPORT_ALL = ${SUPPORT1}&${SUPPORT2}&${SUPPORT3}&${SUPPORT4}
;GL
GL_ALL => ${GL2}
GL1 => SIP/21
GL2 => SIP/22
;Sekki
SEK1 => SIP/15
SEK2 => SIP/18
[default]
include => isdn-nt
[isdn-te]
;exten => 200,1,Macro(setze-callerid-eingehend)
;exten => 200,n,Goto(von-extern,${EXTEN:1},1)
exten => _${LEITUNG1_NR}XX,1,Macro(setze-callerid-eingehend)
exten => _${LEITUNG1_NR}XX,n,Goto(von-extern,${EXTEN:7},1)
[isdn-nt]
;nach extern telefonieren
exten => _9.,1,Goto(nach-extern,${EXTEN},1)
exten => _9.,n,Hangup
exten => _XX,1,Goto(intern,${EXTEN},1)
[von-extern]
exten => 00,1,GotoIfTime(19:00-09:00,mon-fri,*,*?nachtschaltung,s,1)
exten => 00,n,GotoIfTime(00:00-23:59,sat-sun,*,*?nachtschaltung,s,1)
exten => 00,n,GotoIfTime(18:00-19:00,wed,13-13,feb?schulung,s,1)
;exten => 00,n,GotoIfTime(13:00-19:00,fri,14-14,dec?weihnachten,s,1)
exten => 00,n,GotoIfTime(13:00-23:59,mon,31-31,dec?silvester,s,1)
;exten => 00,n,GotoIfTime(00:00-23:59,tue,1-1,jan?silvester,s,1)
exten => 00,n,Macro(callin-direkt,${SUPPORT_ALL},${RINGTIME1})
exten => 21,1,Macro(callin-gl,${GL_ALL},${RINGTIME1})
;exten => 21,1,Macro(callin-direkt,SIP/22,${RINGTIME1})
;exten => 21,2,hangup
exten => 01,1,misdn_set_opt(n:!e) ; optionen: n= don't detect dtmf tones on called channel: !e=no echo cancelation on this channel:
exten => 01,2,Dial(${FAX})
exten => 01,n,Hangup
;exten => 04,1,Answer()
;exten => 04,2,set(TIMEOUT(absolute)=59)
;exten => 04,3,Set(FAXFILE=/tmp/incomingfax.tif)
;exten => 04,4,rxfax(${FAXFILE})
;exten => T,1,hangup()
; Konferenzraum
exten => 03,1,Ringing
exten => 03,n,Wait(2)
exten => 03,n,MeetMe(03,Mic)
exten => 03,n,Hangup
exten => 05,1,Answer()
exten => 05,2,Playback(test/testfile)
exten => 05,n,Hangup
;DISA-Funktion
exten => 09,1,Answer()
exten => 09,n,Set(TIMEOUT(digit)=5)
exten => 09,n,Set(TIMEOUT(response)=20)
exten => 09,n,Authenticate(4041)
exten => 09,n,DISA(no-password|nach-extern)
exten => 09,n,Hangup
;WARTESCHLANGE
exten => 06,1,Answer
;exten => 06,n,Background(warteschlange/begruessung1)
exten => 06,2,SetMusicOnHold(daphi-warteschlange)
exten => 06,3,Queue(warteschlange|tT,,,180)
;exten => 06,n,Goto(von-extern,3)
;exten => 06,4,Hangup()
exten => 20,1,GotoIfTime(19:00-09:00,mon-fri,*,*?nachtschaltung,s,1)
exten => 20,n,GotoIfTime(00:00-23:59,sat-sun,*,*?nachtschaltung,s,1)
exten => 20,n,Macro(callin-gl,${GL_ALL},${RINGTIME1})
t
exten => 28,1,Playback(xxx/alte_nummer_umleitung)
exten => 28,n,Goto(00,1)
exten => 29,1,Goto(01,1)
; alles andere
exten => _XX,1,Goto(intern,${EXTEN},1)
[nach-extern]
exten => _9.,1,Macro(setze-callerid-ausgehend)
exten => _9.,n,Dial(mISDN/g:ISDN-TE/${EXTEN:1},,Tm(daphi-intern))
[intern]
include => warteschlange
include => voicemail
; SIP HINTs
exten => 18,hinz,SIP,18
exten => 17,hinz,SIP,17
exten => 16,hint,SIP/16
exten => 15,hint,SIP/15
exten => 14,hint,SIP/14
exten => 13,hint,SIP/13
exten => 12,hint,SIP/12
exten => 11,hint,SIP/11
exten => 21,hint,SIP/22
exten => 210,hint,SIP/210
exten => 22,hint,SIP/22
; SIPGATE-Anrufe
exten => xxx,1,Goto(von-extern,00,1)
exten => xxx,1,Goto(von-extern,00,1)
;nach ausserhalb telefonieren
exten => _9.,1,Goto(nach-extern,${EXTEN},1)
exten => _9.,n,Hangup
;Faxe empfangen
exten => 01,1,Goto(von-extern,${EXTEN},1)
;exten => 04,1,Goto(von-extern,${EXTEN},1)
exten => 20,1,Goto(von-extern,${EXTEN},3)
exten => 20,n,Hangup
;die SIP-Teilnehmer anrufen
exten => _1X,1,Macro(callin-direkt,SIP/${EXTEN},${RINGTIME2})
exten => _1X,n,Hangup
exten => _2X,1,Macro(callin-direkt,SIP/${EXTEN},${RINGTIME1})
exten => _2X,n,Hangup
;exten => _21X,1,Macro(callin-direkt,SIP/22,${RINGTIME1})
;exten => _21X,n,Hangup
;ISDN-Geräte anrufen
exten => _3X,1,Dial(mISDN/g:ISDN-NT/${EXTEN})
exten => _3X,n,Hangup
exten => 49,1,Answer
exten => 49,n,MusicOnHold
[warteschlange]
;#an der Warteschlange anmelden
exten => 800,1,Answer()
;exten => 800,2,AgentCallbackLogin(${CALLERID(num)},s,${CALLERID(num)}@warteschlange)
exten => 800,n,AgentCallbackLogin(,${CALLERID(num)}@warteschlange)
exten => 800,n,Playback(agent-loginok)
exten => 800,n,Hangup()
;#Agent abmelden
exten => 801,1,Answer()
exten => 801,2,system(asterisk -rx "agent logoff agent/${AGENTBYCALLERID_${CALLERID(num)}}")
exten => 801,n,Playback(agent-loggedoff)
exten => 801,n,Hangup()
;Konfig für Nachtanrufe
[nachtschaltung]
exten => s,1,Playback(xxx/ausserhalb_gz)
exten => s,n,Voicemail(00)
exten => s,n,Hangup()
[weihnachten2]
exten => s,1,Answer()
exten => s,2,NoOp(Hallo)
exten => s,n,Background(weihnachten2)
exten => s,n,Voicemail(00)
exten => s,n,Hangup()
[silvester]
exten => s,1,Answer()
exten => s,2,NoOp(Hallo)
exten => s,n,Background(silvester)
exten => s,n,Voicemail(00)
exten => s,n,Hangup()
[schulung]
exten => s,1,Answer()
exten => s,2,NoOp(Hallo)
exten => s,n,Background(schulung)
exten => s,n,Voicemail(00)
exten => s,n,Hangup()
;1 wird angesprungen, wenn 1 bei backround weihnachten gedruekt wird
exten => 1,1,Dial(mISDN/g:ISDN-TE/Nummer)
exten => 1,2,Hangup()
[voicemail]
; persoenliche mailboxen
exten => 1111,1,VoicemailMain(s${CALLERID(num)})
exten => 1111,n,Hangup
; zentrale mailbox fuer die 0
exten => 1110,1,VoicemailMain(s00)
exten => 1110,n,Hangup
;#########################################################################################
; M A C R O S
;#########################################################################################
; Makro fuer die direkte Anwahl einer Nummer
[macro-callin-direkt]
; ARG1= Protokoll(SIP od. IAX2) und Rufnummer z.B. SIP/11 oder SIP/11&SIP/12
; ARG2= Timeout beim Klingeln
; waehle RINGIMTE1 Sekunden und liefere dann den dialstatus
exten => s,1,NoOp(Dialing ${ARG1} ARG2})
exten => s,2,Dial(${ARG1},${ARG2},tT)
exten => s,n,Goto(s-${DIALSTATUS},1)
; In abhaengigkeit des Dialstatus aktionen ausfuehren
exten => s-NOANSWER,1,Voicemail(u${MACRO_EXTEN})
exten => s-NOANSWER,n,Hangup
exten => s-CHANUNAVAIL,1,Voicemail(u${MACRO_EXTEN})
exten => s-CHANUNAVAIL,n,Hangup
exten => s-BUSY,1,Voicemail(b${MACRO_EXTEN})
exten => s-BUSY,n,Hangup
exten => s-CONGESTION,1,Voicemail(u${MACRO_EXTEN})
exten => s-CONGESTION,n,Hangup
; Makro fuer die GL Rufnummer (-20)
[macro-callin-gl]
; ARG1= Protokoll(SIP od. IAX2) und Rufnummer z.B. SIP/11 oder SIP/11&SIP/12
; ARG2= Timeout beim Klingeln
; waehle RINGIMTE1 Sekunden und liefere dann den dialstatus
exten => s,1,Dial(${ARG1},${ARG2},t)
exten => s,n,Goto(s-${DIALSTATUS},1)
; In abhaengigkeit des Dialstatus aktionen ausfuehren
exten => s-NOANSWER,1,Voicemail(u00)
exten => s-NOANSWER,n,Hangup
exten => s-CHANUNAVAIL,1,Voicemail(u00)
exten => s-CHANUNAVAIL,n,Hangup
exten => s-BUSY,1,Voicemail(b00)
exten => s-BUSY,n,Hangup
exten => s-CONGESTION,1,Voicemail(u00)
exten => s-CONGESTION,n,Hangup
[macro-setze-callerid-eingehend]
;# Setzt die Caller ID (Namen) für eingehende Anrufe
;# keine Parameter
exten => s,1,Set(CALLERID(num)=9${CALLERID(num)})
exten => s,n,GotoIf($[${CALLERID(num)} = 9]?unbekannt:weiter)
exten => s,n(unbekannt),Set(CALLERID(name)="Unbekannte Rufnummer")
exten => s,n,Set(CALLERID(num)=Unbekannt)
exten => s,n(weiter),NoOp(${CALLERID(all)})
;wenn der Anruf nicht aus Deutschland kommt (Callerid beginnt mit 900), dann schalte den Kanal auf Englisch
exten => s,n,GotoIf($[${CALLERID(num):0:3} = 900 ]?en:ende)
exten => s,n(en),Set(CHANNEL(language)=en)
exten => s,n(ende),NoOp(Kanalsprache: ${CHANNEL(language)})
[macro-setze-callerid-ausgehend]
;# Setzt CallerID für ausgehende Anrufe
exten => s,1,Set(CALLERID(num)=00)
Habt ihr ne Ahnung warum dass so ist?
MFG tmace85
Edit Guard-X: Bitte nächstes mal Code-Tags verwenden!
Zuletzt bearbeitet: