Hallo Allerseits,
ich versuche gerade via Group() einen Anklopfschutz für zwei parallel klingelnde Telefone umzusetzen.
Der Aufbau ist dabei wie folgt.
Sip Accounts "20" und "*20" sind im Asterisk vorhanden und mit verschiedenen Endgeräten belegt. (Festgerät + Dect Telefon).
Beide Accounts sind über einen verknüpften Dial Aufruf in der extensions.conf hinterlegt. Beide Accounts haben als Callerid die Nummer 20 hinterlegt. Vereinfacht in etwa so:
exten => 20,1,Dial(SIP/20&SIP/*20)
Nun möchte ich es so realisieren, dass sobald auf einem der beiden Endgeräte ein Gesräch geführt wird (eingehend wie ausgehend), der Anschluss für weitere Anrufer belegt ist. Es ist leicht störend wenn während dem Telefonat das andere Telefon reinklingelt...
Dabei bin ich hergegangen und habe bei ausgehenden internen Anrufen den Group Counter an Hand der Callerid um eins hochgesetzt:
exten => 20,1,Set(GROUP=${CALLERIDNUM})
exten => 20,2,Macro(groupdialout,SIP/20&SIP/*20,${EXTEN})
Gleiches tue ich bei ausgehenden Anrufen zum Amt via ISDN (Smartnode Gateway)...
exten => _0X.,1,Set(GROUP=${CALLERIDNUM})
exten => _0X.,n,Dial(SIP/${EXTEN:1}@smartnode)
Innerhalb des besagten Macros setze ich dann
[macro-groupdialout]
exten => s,1,Set(GROUP=${ARG2})
exten => s,n,Checkgroup(1)
exten => s,n,NoOP(Active Calls: ${GROUP_COUNT()})
exten => s,n,NoOp(${CHECKGROUPSTATUS})
exten => s,n,GotoIf($["${CHECKGROUPSTATUS}" = "OVERMAX"]?100:6)
exten => s,n,Dial(${ARG1})
exten => s,100,Hangup(17)
Nach meinem Verständnis müsste nun bei Anrufen auf die 30 der Groupcounter für 30 erhöht werden sowie weiterhin der Counter der abgehenden Nummer (z.B. die 20).
Leider funktioniert dies nicht so wie ich mir das vorstelle und mir fehlt gerade die zündende Idee, wie dies richtig zu implementieren wäre. Das komische daran ist, dass es bei Anrufen zum Festnetz funktioniert. Wähle ich aber "Anlagenintern" funktioniert der Anklopfschutz nicht.
Ich befürchte, dass sich dies mit Group auf Grund des Channels Bezugs gar nicht realisieren lässt...
Hat mir vielleicht jemand eine Idee oder einen vielleicht passenden Code Schnipsel, mit dem man sowas realisieren könnte?
Bin für jeden Tipp dankbar...
Gruß
Michael
ich versuche gerade via Group() einen Anklopfschutz für zwei parallel klingelnde Telefone umzusetzen.
Der Aufbau ist dabei wie folgt.
Sip Accounts "20" und "*20" sind im Asterisk vorhanden und mit verschiedenen Endgeräten belegt. (Festgerät + Dect Telefon).
Beide Accounts sind über einen verknüpften Dial Aufruf in der extensions.conf hinterlegt. Beide Accounts haben als Callerid die Nummer 20 hinterlegt. Vereinfacht in etwa so:
exten => 20,1,Dial(SIP/20&SIP/*20)
Nun möchte ich es so realisieren, dass sobald auf einem der beiden Endgeräte ein Gesräch geführt wird (eingehend wie ausgehend), der Anschluss für weitere Anrufer belegt ist. Es ist leicht störend wenn während dem Telefonat das andere Telefon reinklingelt...
Dabei bin ich hergegangen und habe bei ausgehenden internen Anrufen den Group Counter an Hand der Callerid um eins hochgesetzt:
exten => 20,1,Set(GROUP=${CALLERIDNUM})
exten => 20,2,Macro(groupdialout,SIP/20&SIP/*20,${EXTEN})
Gleiches tue ich bei ausgehenden Anrufen zum Amt via ISDN (Smartnode Gateway)...
exten => _0X.,1,Set(GROUP=${CALLERIDNUM})
exten => _0X.,n,Dial(SIP/${EXTEN:1}@smartnode)
Innerhalb des besagten Macros setze ich dann
[macro-groupdialout]
exten => s,1,Set(GROUP=${ARG2})
exten => s,n,Checkgroup(1)
exten => s,n,NoOP(Active Calls: ${GROUP_COUNT()})
exten => s,n,NoOp(${CHECKGROUPSTATUS})
exten => s,n,GotoIf($["${CHECKGROUPSTATUS}" = "OVERMAX"]?100:6)
exten => s,n,Dial(${ARG1})
exten => s,100,Hangup(17)
Nach meinem Verständnis müsste nun bei Anrufen auf die 30 der Groupcounter für 30 erhöht werden sowie weiterhin der Counter der abgehenden Nummer (z.B. die 20).
Leider funktioniert dies nicht so wie ich mir das vorstelle und mir fehlt gerade die zündende Idee, wie dies richtig zu implementieren wäre. Das komische daran ist, dass es bei Anrufen zum Festnetz funktioniert. Wähle ich aber "Anlagenintern" funktioniert der Anklopfschutz nicht.
Ich befürchte, dass sich dies mit Group auf Grund des Channels Bezugs gar nicht realisieren lässt...
Hat mir vielleicht jemand eine Idee oder einen vielleicht passenden Code Schnipsel, mit dem man sowas realisieren könnte?
Bin für jeden Tipp dankbar...
Gruß
Michael