[Erledigt] Feststellen ob ausgehend Leitung belegt (VoIP)

padowa76

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,275
Punkte für Reaktionen
9
Punkte
38
Hallo zusammen,

wir nutzen hier für eine Kundenhotline einen VoIP-Account des Richtfunkanbieters TGNET. Ausgehend haben wir nur 1 Kanal mit Flatrate zu Verfügung, eingehend gibt es hier keine Begrenzung. Problem ist, dass ich feststellen muss ob die Leitung ausgehend belegt ist und dann ein Fallback auf ISDN mache. Der Anbieter meldet dann kein Busy, sonders es kommt eine Ansage das alle ausgehenden Kanäle bereits belegt sind und man es später nochmal probieren soll. Laut deren Hotline steht es zwar auf der Wunschliste, aber die Relaisierung ist nicht absehbar.

Wie kann man so etwas am geschicktesten realisieren? Aktuell habe ich es so, dass er sich das in einer MySQL-DB merkt, aber ab und zu vergisst der Asterisk eine Variable, und schon stimmt der Status in der DB nicht :(

Das call-limit in der sip.conf gilt ja für ein- und ausgehende Anrufe, sonst wäre hier am optimalsten.


Gruß Patrick
 
Zuletzt bearbeitet:
ich verwende in so einem Fall vor jedem 'Dial ...' erst einen GROUP(). Der zaehlt mit wieoft schon einer vorher hier war (und noch aktiv ist).

- Asterisk func group - voip-info.org
http://www.voip-info.org/wiki/view/Asterisk+func+group

wenn hier z.B. ein Wert > 1 geliefert wird weiss man dass das 'Lock' schon einer geholt hat und man kann woanders hin verzweigen. Z.B auf Busy() oder in deinem Fall ins ISDN

- sparkie
 
Zuletzt bearbeitet:
Ich hab es nochmal überarbeitet, die Anzahl der aktiven Gespräche speichert er jetzt scheinbar zuverlässig in einer globalen Variable und wenn diese > 0 ist, wird automatisch im Wählplan auf die ISDN-Leitung verzweigt. Wieso das vorher nicht ging ist mir auch ein Rätsel. Danke für deinen Tipp, das werde ich mir morgen auch nochmal anschauen
 
GROUP() iVm. GROUP_COUNT() ist die deutlich zuverlässigere Methode, weil Du Dich nicht selbst ums "aufräumen" kümmern musst.
 
Off topic:
Nur aus Neugier, hat das einen Grund warum dieser Trunk so konfiguriert ist bzw. diese Produkteigenschaft hat? Normalerweise haben Provider ja durchaus ein Interesse daran das so viel Gespräche wie möglich über Ihre Leitungen abgewickelt werden...
 
Ich hab gestern länger mit TGNET telefoniert. Das scheint eine historisch gewachsene Ursache beim Technologiepartner zu sein, was sich auch nicht so einfach ab/umstellen lässt
 
die Anzahl der aktiven Gespräche speichert er jetzt scheinbar zuverlässig in einer globalen Variable und wenn diese > 0 ist,
normale Variablen sind dafuer weder gedacht noch geeignet. Das Problem sind Race-Conditions, die entstehen wenn mehrere gleichzeitig Werte lesen und Schreiben und das Ganze dadurch nicht konsistent ist. Es muessen echte 'Locks' verwendet werden. Ansonsten siehe auch Kommentar von 'rentier-s'
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.