.titleBar { margin-bottom: 5px!important; }

[Frage] DND für interne Extensions funktioniert, wie von extern anwenden

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von morph027, 31 Dez. 2011.

  1. morph027

    morph027 Neuer User

    Registriert seit:
    24 Jan. 2007
    Beiträge:
    70
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 morph027, 31 Dez. 2011
    Zuletzt bearbeitet: 31 Dez. 2011
    Hi!

    Habe gerade ein Problem, mein DND so zum laufen zu bekommen, wie ich mir das vorstelle. Ich habe am Asterisk 1.8 auf OpenWRT eine gefreezte Eumex 300 IP und ein Cisco 7940 hängen. Der * selbst registriert sich bei Sipgate. Ich möchte, dass die Telefone bei einem einkommenden Gespräch beide klingeln, der erste, der abnimmt, gewinnt. Das läuft auch alles super...

    Das Cisco kann bei aktiviertem DND selbst ein "486 - busy here" schicken, so dass das kein Problem darstellt. Die Klingelsperre der Fritzbox schickt aber nach außen keinen Besetztton, so dass ich das gern einfach über den * realisieren wollte. Steckt ein DND-Eintrag für eine Extension in der Datenbank, kann man diese intern auch nicht erreichen, alles super. Der [sip-incoming] Context schert sich da aber nicht drum...wie krieg ich den dazu, die Nummern zu prüfen, ohne Funktionen doppelt zu haben. Nach [sip-internal] springen geht nicht, da weiß ich nicht, wie ich die zu wählenden Extensions übergeben kann.

    P.S.: Interessanterweise ging das einfach so mit dem * auf DD-WRT...dürfte eigentlich nicht ;)

    Code:
    extensions.conf
    
    [sip-internal]
    include => emergency
    include => sip-outgoing
    include => dnd
    
    ;check dnd-status
    exten => _XXX,1,GotoIf(${DB_EXISTS(DND/${EXTEN})}?DND-ON,1)
    exten => _XXX,n,Dial(SIP/${EXTEN},20,t)
    exten => _XXX,n,Goto(s-${DIALSTATUS},1)
    
    exten => _s-.,1,Busy(10)
    exten => _s-.,n,Hangup
    
    exten => DND-ON,1,Goto(_s-.,1)
    
    [emergency]
    exten => _11.,1,NoOp(Emergency call on sipgate trunk)
    exten => _11.,2,Set(CALLERID(num)=XXXXXX)
    exten => _11.,3,Dial(SIP/${EXTEN}@sipgate.de,30,trg)
    exten => _11.,4,Hangup
    
    [sip-incoming]
    exten => XXXXXX,1,NoOp(Incoming call on sipgate trunk)
    exten => XXXXXX,n,Dial(SIP/100&SIP/200)
    exten => XXXXXX,n,Hangup
    
    [sip-outgoing]
    exten => _XXX.,1,NoOp(Outgoing call on sipgate trunk)
    exten => _XXX.,2,Set(CALLERID(num)=XXXXXX)
    exten => _XXX.,3,Dial(SIP/${EXTEN}@XXXXXX,30,trg)
    exten => _XXX.,4,Hangup
    
    [dnd]
    ;enable
    exten => *78,1,Answer
    exten => *78,n,Set(DB(DND/${CALLERID(num)})=1)
    exten => *78,n,Playback(beep)
    exten => *78,n,Wait(2)
    exten => *78,n,Hangup
    
    ;disable
    exten => *79,1,Answer
    exten => *79,n,NoOp(${DB_DELETE(DND/${CALLERID(num)})})
    exten => *79,n,Playback(beep)
    exten => *79,n,Wait(2)
    exten => *79,n,Hangup
    
    Idee mit Makro:

    Code:
    extensions.conf
    
    [sip-internal]
    include => emergency
    include => sip-outgoing
    include => dnd
    
    [macro-exten]
    exten => s,1,GotoIf(${DB_EXISTS(DND/${ARG1})}?DND-ON,1)
    exten => s,n,Dial(SIP/${ARG1},20,t)
    exten => s,n,Goto(s-${DIALSTATUS},1)
    
    exten => _s-.,1,Busy(10)
    exten => _s-.,n,Hangup
    
    exten => DND-ON,1,Goto(_s-.,1)
    
    [emergency]
    ...
    
    [sip-incoming]
    exten => XXXXXX,1,NoOp(Incoming call on sipgate trunk)
    exten => XXXXXX,n,Macro(exten,100)
    exten => XXXXXX,n,Hangup
    
    [sip-outgoing]
    ...
    
    [dnd]
    ...
    
    Aber wir realisiere ich da klingeln auf mehreren Geräten? Ich möchte eben nicht eine Abfrage pro Gerät haben...wer weiss, wieviel Extensions hier noch kommen ;)

    Bin für Ideen dankbar ;)

    P.S.: Guten Rutsch!