- Mitglied seit
- 8 Feb 2022
- Beiträge
- 11
- Punkte für Reaktionen
- 0
- Punkte
- 1
Moin Moin,
meine Anfrage stammt von einem sehr alten Thread daher eröffne ich einen frischen, neuen um die Wahrscheinlichkeit auf Erfolg und Unterstützung zu erhöhen.
Ursprünglicher Thread -> Sprachkanäle beschränken
Folgendes Problem:
Wird eine Rufnummer X angerufen so sollen 3 Telefone gleichzeitig klingeln. Nun ist eins der Telefone im Gespräch und ein weiterer Anruf geht ein sodass nun zwei von drei Telefone klingelt. Nun ist auch das zweite von drei Telefone besetzt und wenn ein dritte Anruf rein kommt klingelt natürlich das dritte Telefon.
Nun würde ich es gerne so einrichten, dass wenn zwei Telefone (egal welche) mit einem Anruf belegt sind, ein dritter Anruf abgewiesen werden soll bzw. ein Besetztton hört. Das dritte Telefon soll erst gar nicht klingeln wenn beide Telefone mit einem Anruf belegt sind.
Nun bin ich auf diesen wunderbaren Thread gestoßen und habe versucht dies in meiner Anlage umzusetzen wobei das Limit bei max. zwei "Kanälen" liegt. Natürlich weicht meine Asterisk und Debian Version mit der obigen extrem ab, nichts desto trotz sollte das Ergebnis mit kleinen Anpassungen umsetzbar sein.
Ich nutze Asterisk 16.3.0 (und höher)
Auf: Debian 9.12 (Stretch) (und höher)
Hier die Quellen die mir etwas geholfen haben zu verstehen: AsteriskDocs, Voip-Info, Voip-Info/functions
Nun zur Praxis:
Ich habe die Datenbank in der CLI angelegt -> debian*CLI>: database put ContextX Value 2
So sieht nun mein Context in der extensions.conf aus:
Nun gibt die CLI foglendes aus:
Bei jedem laufenden Anruf wird die Value um 1 reduziert aber nach dem Hangup nicht wieder eins hochgezählt.
Außerdem wirft Asterisk einen Syntax-Error wegen dem '=' zeichen.
Ich hoffe genügend Infos mitgeteilt zu haben und bin über jeglichen Lösungsvorschlag sehr dankbar!
meine Anfrage stammt von einem sehr alten Thread daher eröffne ich einen frischen, neuen um die Wahrscheinlichkeit auf Erfolg und Unterstützung zu erhöhen.
Ursprünglicher Thread -> Sprachkanäle beschränken
Folgendes Problem:
Wird eine Rufnummer X angerufen so sollen 3 Telefone gleichzeitig klingeln. Nun ist eins der Telefone im Gespräch und ein weiterer Anruf geht ein sodass nun zwei von drei Telefone klingelt. Nun ist auch das zweite von drei Telefone besetzt und wenn ein dritte Anruf rein kommt klingelt natürlich das dritte Telefon.
Nun würde ich es gerne so einrichten, dass wenn zwei Telefone (egal welche) mit einem Anruf belegt sind, ein dritter Anruf abgewiesen werden soll bzw. ein Besetztton hört. Das dritte Telefon soll erst gar nicht klingeln wenn beide Telefone mit einem Anruf belegt sind.
Nun bin ich auf diesen wunderbaren Thread gestoßen und habe versucht dies in meiner Anlage umzusetzen wobei das Limit bei max. zwei "Kanälen" liegt. Natürlich weicht meine Asterisk und Debian Version mit der obigen extrem ab, nichts desto trotz sollte das Ergebnis mit kleinen Anpassungen umsetzbar sein.
Ich nutze Asterisk 16.3.0 (und höher)
Auf: Debian 9.12 (Stretch) (und höher)
Hier die Quellen die mir etwas geholfen haben zu verstehen: AsteriskDocs, Voip-Info, Voip-Info/functions
Nun zur Praxis:
Ich habe die Datenbank in der CLI angelegt -> debian*CLI>: database put ContextX Value 2
So sieht nun mein Context in der extensions.conf aus:
Code:
[eingehend]
exten => _X.,1,NoOp(Anruf fuer Gruppe Zentrale)
same => n,Set(ANZAHL=${DB(ContextX/Value)})
same => n,GotoIf($[${ANZAHL} > 0]?5:9)
same => n,Set(SCHALTER=1)
same => n,Set(ANZAHLNEU=$[${ANZAHL} - 1])
same => n,Set(DB(ContextX/Value)=${ANZAHLNEU})
same => n,Set(CALLERID(num)=0${CALLERID(num)})
same => n,Verbose(Eingehender Anruf von Rufnummer ${CALLERID(num)}.)
same => n,Dial(SIP/50&SIP/60&SIP/70,20)
same => n,Set(SCHALTER=0)
same => n,Playback(busy-signal)
same => n,Congestion
same => 102,Busy
exten => h,1,GotoIf($[${SCHALTER} = 1]?4:8)
exten => h,2,Set(ANZAHL=${DB(ContextX/Value)})
exten => h,3,Set(ANZAHLNEU=$[${ANZAHL} + 1])
exten => h,4,Set(DB(ContextX/Value)=${ANZAHLNEU})
exten => h,5,Set(SCHALTER=0)
exten => h,6,Hangup
Nun gibt die CLI foglendes aus:
Bei jedem laufenden Anruf wird die Value um 1 reduziert aber nach dem Hangup nicht wieder eins hochgezählt.
Außerdem wirft Asterisk einen Syntax-Error wegen dem '=' zeichen.
Ich hoffe genügend Infos mitgeteilt zu haben und bin über jeglichen Lösungsvorschlag sehr dankbar!