Busy On Busy mit 2 Asterisk Server

oxirion

Neuer User
Mitglied seit
7 Apr 2005
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich habe folgendes Problem :

2 Asterisk Server und User die an beiden Servern angemeldet sein können. Ich habe zum Wählen das Super-Dial Macro von voip-info.org verwendet und etwas modifiziert. Setzt ein User eine wahl ab wird SetGroup für die Nummer des A-Tln. gesetzt. Ruft jetzt ein weiterer Teilnehmer diese "besetzte" Nebenstelle an , kommt die busy Mailbox. Das funktioniert alles wunderbar solange sich der A und B Tln. auf dem Selben Server angemeldet haben. So wie ich das sehe tauschen die Server via IAX diesen SetGroup Mechanismus nicht aus.
Beispiel zu den folgenden extensions.conf wenn Tln. 110 mit 111 telefoniert und von Server 2 ruft 22 die 110 auf dem Server 1 dann klopft dieses Gespräch bei 110 an und das soll nicht sein (sondern busy MBX von 110).

Server 1:
Code:
;
; Static extension configuration file, used by
; the pbx_config module. This is where you configure all your 
; inbound and outbound calls in Asterisk. 
; 
;
; The "General" category is for certain variables.  
;
[general]
static=yes
writeprotect=no
;
;    globale Einstellungen
;
[globals]
SVEN=Zap/1&IAX2/iaxsven              ;
INTERNETT=xxxxx:xxxxx@xxxxxxx

[default]
ingnorepat => 9
include => keinamt
include => konferenz
include => sven
include => mailbox
exten => 90,1,MeetMe(90)

[mailbox]
exten => 88,1,VoicemailMain(${CALLERIDNUM})
exten => 88,2,Hangup

[amt]
;
;	Teilnehmer die Amt bekommen sollen
;
include => sven
include => keinamt
include => abgehend
include => mailbox
include => konferenz
include => internett

[keinamt]
;
;
; 	Teilnehmer die keine Amtsberechtigung haben
;
;
exten => 111,1,Macro(ddial,SIP/cweber,20,m,,111,1,${CALLERIDNAME},${CALLERIDNUM},111,111,de)
exten => 111,2,Voicemail,u111
exten => 112,1,Macro(ddial,SIP/franke,20,m,,112,1,${CALLERIDNAME},${CALLERIDNUM},112,112,de)
exten => 112,2,Voicemail,u112
exten => 120,1,Macro(ddial,IAX2/iaxgast,20,m,,120,1,${CALLERIDNAME},${CALLERIDNUM},120,,de)

[sven]
exten => 110,1,Macro(ddial,${SVEN},20,m,,110,1,${CALLERIDNAME},${CALLERIDNUM},110,110,de)
exten => 110,2,Voicemail,u110

[incoming]
;
;
; 	ankommende Gespräche auf SVENS
;
;
exten => s,1,Macro(ddial,${SVEN},25,,,10,1,,${CALLERIDNUM},110,110,de)
exten => s,2,Voicemail,u110
exten => xxxxxxxx,1,Macro(ddial,${SVEN},25,,,10,1,,${CALLERIDNUM},110,110,de)
exten => xxxxxxxx,2,Voicemail,u110
exten => xxxx,1,Macro(ddial,${SVEN},25,,,10,1,,${CALLERIDNUM},110,110,de)
exten => xxxx,2,Voicemail,u110


[macro-ddial]
; super macro 
;	${ARG1} - (wie SIP/2201)
;	${ARG2} - timeout in Sekunden
;	${ARG3} - Dial command options 
;	${ARG4} - URL 
;	${ARG5} - Gruppen Name  (um die Größe der Warte-Que anzugeben)
;	${ARG6} - Max. Gruppen Nummer (max. wartende Anrufer)
;	${ARG7} - Caller ID Name 
;	${ARG8} - Caller ID Nummer 
;	${ARG9} - CDR account name (over-rides account group setting in sip.conf or iax.conf)
;	${ARG10} - Mailboxnummer für nichtbenatwortete Anrufe
;	${ARG11} - Sprache für Voicemail (de,fr,en)
; Beispiele :
; 	abgehend: 
;		exten => s,1,Macro(ddial,IAX2/voipjet/${tfnumber},,,,voip,${MAXVOIPCALLS},yourname,8005551234,voipjet) 
;		exten => s,2,Macro(ddial,IAX2/alpeh-com/${tfnumber},,,,voip,${MAXVOIPCALLS},yourname,8005551234,aleph) 
;	der erste freie abgehende Channel wird benutzt
;
;	eingehend: 
;		exten => s,1,Wait(2)
;		exten => s,2,Macro(superdial,${PHONE1},15,Ttm,,pstn,${MAXPSTNCALLS},${CALLERIDNAME},${CALLERIDNUM},pstn,u${GENERALVM})
;		exten => s,3,Macro(superdial,${PHONE1},15,Ttm,,pstn,${MAXPSTNCALLS},${CALLERIDNAME},${CALLERIDNUM},pstn,u${GENERALVM})
;		exten => s,4,Voicemail(b${GENERALVM})
;	geht in u VM wenn Timer abgelaufen .. sonst (besetzt) wird die nächste Extension gerufen 
;	wenn alle besetzt oder nicht erreichbar sind .. gehe in busy Mailbox wenn sonst nix geht
;
exten => s,1,SetLanguage(${ARG11})
exten => s,2,SetGroup(${ARG5})
exten => s,3,CheckGroup(${ARG6})	; springe zu 103 wenn Anzahl der Anrufer in der Gruppe ${ARG5} schon ${ARG6} ist
exten => s,4,GotoIf($["${ARG7}" = ""]?macro-ddial,s,6)
exten => s,5,SetCIDName(${ARG7})	; überspringe wenn ARG7 leer ist
exten => s,6,GotoIf($["${ARG8}" = ""]?macro-ddial,s,8)
exten => s,7,SetCIDNum(${ARG8})		; überspringe wenn ARG8 leer ist
exten => s,8,GotoIf($["${ARG9}" = ""]?macro-ddial,s,10)
exten => s,9,SetAccount(${ARG9})	; überspringe wenn ARG9 leer ist
exten => s,10,Dial(${ARG1},${ARG2},${ARG3},${ARG4})
exten => s,11,Goto(s-${DIALSTATUS},1)
exten => s,104,Goto(s-BUSY,1)
exten => s-BUSY,1,GotoIf($["${ARG10}" = ""]?macro-ddial,s-BUSY,3)
exten => s-BUSY,2,Voicemail(b${ARG10})
exten => s-BUSY,3,Noop
exten => s-NOANSWER,1,GotoIf($["${ARG10}" = ""]?macro-ddial,s-NOANSWER,3)
exten => s-NOANSWER,2,Voicemail(u${ARG10})
exten => s-NOANSWER,3,Noop
exten => _s-.,1,Noop
;
;
;       Die Amtsleitungen
;
;
[abgehend]
exten => _90[02-8].,1,Macro(ddial,SIP/${EXTEN:1}@1und1,,,,${CALLERIDNUM},1,,xxxxxxxx,,,de)
exten => _91.,1,Macro(ddial,Zap/g2/${EXTEN:2},,,,${CALLERIDNUM},1,,xxxxxxx,,,de)
exten => _95.,1,Macro(ddial,SIP/${EXTEN:2}@sipgate,,,,${CALLERIDNUM},1,,,,,de)
;
;
;	Konferenzräume
;
;
[konferenz]
exten => 90,1,MeetMe(90)
;
;
;	Server bei internett
;
;
[internett]
switch => IAX2/${INTERNETT}/intern
Server 2:
Code:
[general]
static=yes
writeprotect=no
[globals]
SVENIAX=xxxxxxxx:[email protected]
HENDRIK=IAX2/hendrik
JOHANNES=IAX2/johannes
SILKE=IAX2/silke
ORGA=IAX2/orga
HANAUER=IAX2/hanauer
WEINMANN=IAX2/weinmann
CHRISTIAN=IAX2/christian
MARKUS=IAX2/markus
JOHANNES=IAX2/johannes
MICHAEL=IAX2/michael
;
; The SWITCH statement permits a server to share the dialplain with
; another server. Use with care: Reciprocal switch statements are not
; allowed (e.g. both A -> B and B -> A), and the switched server needs
; to be on-line or else dialing can be severly delayed.
;

[default]
include => intern

[lokal]
include => intern
exten => 89,1,VoicemailMain(${CALLERIDNUM})
exten => 89,2,Hangup
switch => IAX2/${SVENIAX}/sven

[intern]
exten => 11,1,Macro(ddial,${HENDRIK},20,,,11,1,${CALLERIDNAME},${CALLERIDNUM},11,,de)
exten => 11,2,Voicemail,u11
exten => 12,1,Macro(ddial,${SILKE},20,,,12,1,${CALLERIDNAME},${CALLERIDNUM},12,,de)
exten => 12,2,Voicemail,u12
exten => 13,1,Macro(ddial,${ORGA},20,,,13,1,${CALLERIDNAME},${CALLERIDNUM},13,,de)
exten => 13,2,Voicemail,u13
exten => 14,1,Macro(ddial,${HANAUER},20,,,14,1,${CALLERIDNAME},${CALLERIDNUM},14,,de)
exten => 14,2,Voicemail,u14
exten => 15,1,Macro(ddial,${CHRISTIAN},20,,,15,1,${CALLERIDNAME},${CALLERIDNUM},15,,de)
exten => 15,2,Voicemail,u15
exten => 22,1,Macro(ddial,${JOHANNES},20,,,22,1,${CALLERIDNAME},${CALLERIDNUM},22,,de)
exten => 22,2,Voicemail,u22
exten => 23,1,Macro(ddial,${MICHAEL},20,,,23,1,${CALLERIDNAME},${CALLERIDNUM},23,,de)
exten => 23,2,Voicemail,u23
exten => 24,1,Macro(ddial,${MARKUS},20,,,24,1,${CALLERIDNAME},${CALLERIDNUM},24,,de)
exten => 24,2,Voicemail,u24
exten => 33,1,Macro(ddial,${MARKUS},20,,,33,1,${CALLERIDNAME},${CALLERIDNUM},33,,de)
exten => 33,2,Voicemail,u33
exten => 5000,1,SetGroup(${CALLERIDNUM})
exten => 5000,2,DISA(no-password|lokal)

;iaxsven]
;exten => 111,1,Dial(IAX2/${SVENIAX}/111)
;exten => 111,2,Hangup

[macro-ddial]
; super macro
;       ${ARG1} - (wie SIP/2201)
;       ${ARG2} - timeout in Sekunden
;       ${ARG3} - Dial command options
;       ${ARG4} - URL
;       ${ARG5} - Gruppen Name  (um die Größe der Warte-Que anzugeben)
;       ${ARG6} - Max. Gruppen Nummer (max. wartende Anrufer)
;       ${ARG7} - Caller ID Name
;       ${ARG8} - Caller ID Nummer
;       ${ARG9} - CDR account name (over-rides account group setting in sip.conf or iax.conf)
;       ${ARG10} - Mailboxnummer für nichtbenatwortete Anrufe
;       ${ARG11} - Sprache für Voicemail (de,fr,en)
; Beispiele :
;       abgehend:
;               exten => s,1,Macro(ddial,IAX2/voipjet/${tfnumber},,,,voip,${MAXVOIPCALLS},yourname,8005551234,voipjet)
;               exten => s,2,Macro(ddial,IAX2/alpeh-com/${tfnumber},,,,voip,${MAXVOIPCALLS},yourname,8005551234,aleph)
;       der erste freie abgehende Channel wird benutzt
;
;       eingehend:
;               exten => s,1,Wait(2)
;               exten => s,2,Macro(ddial,${PHONE1},15,Ttm,,pstn,${MAXPSTNCALLS},${CALLERIDNAME},${CALLERIDNUM},pstn,u${GENERALVM})
;               exten => s,3,Macro(ddial,${PHONE1},15,Ttm,,pstn,${MAXPSTNCALLS},${CALLERIDNAME},${CALLERIDNUM},pstn,u${GENERALVM})
;               exten => s,4,Voicemail(b${GENERALVM})
;       geht in u VM wenn Timer abgelaufen .. sonst (besetzt) wird die nächste Extension gerufen
;       wenn alle besetzt oder nicht erreichbar sind .. gehe in busy Mailbox wenn sonst nix geht
;
exten => s,1,SetLanguage(${ARG11})
exten => s,2,SetGroup(${ARG5})
exten => s,3,CheckGroup(${ARG6})        ; springe zu 103 wenn Anzahl der Anrufer in der Gruppe ${ARG5} schon ${ARG6} ist
exten => s,4,GotoIf($["${ARG7}" = ""]?macro-ddial,s,6)
exten => s,5,SetCIDName(${ARG7})        ; überspringe wenn ARG7 leer ist
exten => s,6,GotoIf($["${ARG8}" = ""]?macro-ddial,s,8)
exten => s,7,SetCIDNum(${ARG8})         ; überspringe wenn ARG8 leer ist
exten => s,8,GotoIf($["${ARG9}" = ""]?macro-ddial,s,10)
exten => s,9,SetAccount(${ARG9})        ; überspringe wenn ARG9 leer ist
exten => s,10,Dial(${ARG1},${ARG2},${ARG3},${ARG4})
exten => s,11,Goto(s-${DIALSTATUS},1)
exten => s,104,Goto(s-BUSY,1)
exten => s-BUSY,1,GotoIf($["${ARG10}" = ""]?macro-ddial,s-BUSY,3)
exten => s-BUSY,2,Voicemail(b${ARG10})
exten => s-BUSY,3,Noop
exten => s-NOANSWER,1,GotoIf($["${ARG10}" = ""]?macro-ddial,s-NOANSWER,3)
exten => s-NOANSWER,2,Voicemail(u${ARG10})
exten => s-NOANSWER,3,Noop
exten => _s-.,1,Noop
 
Kostenlos!

Statistik des Forums

Themen
248,854
Beiträge
2,302,939
Mitglieder
378,504
Neuestes Mitglied
Hallo61Hallo