Nur ein ausgehendes Gerspräch pro Voip-Account zulassen

Heike

Neuer User
Mitglied seit
16 Mai 2006
Beiträge
90
Punkte für Reaktionen
0
Punkte
0
Guten Tag,

manche Provider ( Arcor z.B.) lassen es zu, über einen Account mehrere Gespräche parallel zu führen, ohne das Mehrkosten dadurch entstehen :D . Es gibt aber auch Anbieter, welche das erste Gespräch über eine gebuchte Flat abrechnen, und das zweite parallele Gespräch dann kostenpflichtig machen:mad: :mad: :mad: .
Wie kann ich im Asterisk verhindern oder einstellen, das über einen Sip-Account (natürlich bei Asterisk angemeldet) genau nur ein Gespräch geführt wird?

Danke für Eure Hilfe

Heike
 
Heike schrieb:
Wie kann ich im Asterisk verhindern oder einstellen, das über einen Sip-Account (natürlich bei Asterisk angemeldet) genau nur ein Gespräch geführt wird?

Hallo Heike,

[voipstunt]
exten => _X.,1,Set(GROUP()=voipstunt)
exten => _X.,2,GotoIf($["${GROUP_COUNT(voipstunt)}"="2"]?5:3
exten => _X.,3,Dial(SIP/${EXTEN}@voipstunt)
exten => _X.,4,Hangup
exten => _X.,5,Goto(verboten,${EXTEN},1)

Jetzt musst du voipstunt nur noch durch einen dir genehmen Ausdruck ersetzen und irgendeinen sinnvollen Context [verboten] kreieren.

Ich benutze das um Script um zwischen verschiedenen Accounts hin- und herzuspringen, wenn einer belegt ist.
Das ganze Script findest du hier: http://www.asterisk.li/belegt.htm
 
Hallo kombjuder,

ich sag mal ganz lieb danke-obwohl ich nichts verstanden habe. Aber: Probieren geht vor studieren!

Heike
 
Heike schrieb:
obwohl ich nichts verstanden habe.

Also hier eine Beschreibung dazu:
Code:
[voipstunt]
exten => _X.,1,Set(GROUP()=voipstunt)

Setzt unter Benutzung des GROUP()-Befehls eine von Asterisk verwaltete Variable (hier voipstunt) um eins hoch.

Code:
exten => _X.,2,GotoIf($["${GROUP_COUNT(voipstunt)}"="2"]?5:3

Wenn die Leitung in Benutzung ist, ist der Wert 1 und wird in Zeile 1 um 1 hochgezählt. Wenn er 1 +1 =2 ist, gehe nach Zeile 5 sonst nach Zeile 3

Code:
exten => _X.,3,Dial(SIP/${EXTEN}@voipstunt)

Wähle über voipstunt raus

Code:
exten => _X.,4,Hangup

Hänge auf, sonst wird Zeile 5 ausgeführt

Code:
exten => _X.,5,Goto(verboten,${EXTEN},1)

Da telefoniert schon ein anderer, also führe die Anweisung in context verboten Zeile 1 aus und nimm die Rufnummer (${EXTEN}) dorthin mit.

und hier noch ein möglicher Kontext verboten:

Code:
[verboten]
exten => _X.,1,Playback(privacy-incorrect)
exten => _X.,n,Wait(2)
exten => _X.,n,Hangup

In Zeile 1 eine in Asterisk vorhandene Ansage abspielen, 2 Sekunden warten und dann auflegen.
 
Au weia,

ich habe gar nicht gemerkt, das ich noch eine Antwort bekommen habe:D . Es wird jetzt aktuell, da ich zwei Leitungen für ca. 10 Teilnehmer habe, und ich möchte nicht per Hand zuteilen, welche Nutzer sich welche Leitung teilen.
Also ran an den Speck- da muss ich durch.

Vielen Dank nochmal für Deine Erklärung

Heike
 
Hallo kombjuder,

hole die Seite nochmal hoch, da ich im ersten Anlauf folgendes nicht verstehe:
Mit jedem belegten Kanal wird die Variable "voipstunt" um eins hochgezählt. So wird erkannt, wieviel Kanäle belegt sind.
Was passiert, wenn alle Kanäle belgt sind, und die "untersten Kanäle werden frei. Wird dann "voipstunt" wieder auf 1 zurück gesetzt, oder bleibt sie oben. Wenn an "voipstunt" nichts geändert wird, bekommt das nächste Gespräch ein Besetzt-Zeichen, obwohl einige Kanäle frei sind.
Drücke ich mich verständlich aus, oder präsentiere ich mit meiner Frage meine Dummheit??:mad: :mad:

Vielen Dank für Deine jetzige und kommende Geduld mit mir.

Danke Heike
 
Heike schrieb:
Was passiert, wenn alle Kanäle belgt sind, und die "untersten Kanäle werden frei. Wird dann "voipstunt" wieder auf 1 zurück gesetzt, oder bleibt sie oben.

Wenn ein Kanal frei wird, zieht asterisk wieder eins ab.

Wenn auf der Linie auch Anrufe eingehen, müssen die eingehenden Anrufe den Zähler auch hochsetzen.
 
Danke für Deine schnelle Antwort.
Wenn ein kanal frei wird, und "voipstunt" um 1 erniedrigt wird, kann doch nur an "voipstunt" erkannt werden, wieviel Kanäle frei sind- oder keiner ist frei, aber ich kann doch nicht erkennen, welcher Kanal belegt ist?? Und wie erkenn ich, welchen Kanal ich nehmen kann??

Ich nerve, ist mir bekannt-aber irgendwas abschreiben und nicht kapieren hilft hier m.M. nicht weiter.

Wenn auf der Linie auch Anrufe eingehen, müssen die eingehenden Anrufe den Zähler auch hochsetzen
Ist klar

Danke Heike
 
Heike schrieb:
aber ich kann doch nicht erkennen, welcher Kanal belegt ist?? Und wie erkenn ich, welchen Kanal ich nehmen kann??

Wenn du nur einen Kanal pro Account hast, ist das einfach:
dann voipstunt1, voipstunt2 ...
Dann klapperst du einfach mit gotoif die einzelnen voipstuts ab, bis du einen freien findest.

Wenn du mehrere Kanäle pro Account hast, habe ich auch keine Lösung.
 
Kostenlos!

Statistik des Forums

Themen
248,894
Beiträge
2,304,377
Mitglieder
378,588
Neuestes Mitglied
k3rp