[Frage] Wie kann ich bei der Ausführung des Bridge-Befehls die Dauer der hergestellten Verbindung begrenzen?

Jung-Fernmelder

Neuer User
Mitglied seit
15 Dez 2016
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
Sehr geehrte Damen und Herren,

um meine anderen auf Asterisk-Telefonanlagen bezogenen Probleme möglichst eigenständig lösen zu können, arbeite ich mich zurzeit etwas in die einzelnen für Dialpläne zur Verfügung stehenden Befehle ein. Im Moment habe ich Fragen zu den Optionen L und S des Bridge-Befehls. Ich habe beide Optionen ausprobiert und folgende Kontexte in meinen Dialplan eingebunden:
Code:
[test7]
exten => 50,1,Originate(SIP/31,exten,test7,neu,1)
exten => neu,1,Bridge(SIP/32,L(5000))
[test8]
exten => 51,1,Originate(SIP/31,exten,test8,neu,1)
exten => neu,1,Bridge(SIP/32,S(5))
Wähle ich nun von der Nebenstelle 32 (der SIP-Klient Phoner 3.7, betrieben auf einem Klapprechner mit Windows 10) die 50 beziehungsweise 51, so erwarte ich, dass die Nebenstelle 31 (ein SIP-Tischtelefon vom Typ Cisco SPA303) klingelt. Weiterhin erwarte ich, dass nach dem Abheben des Hörers der Nebenstelle 31 ein Gespräch zur Nebenstelle 32 aufgebaut wird, welches nach fünf Sekunden wieder getrennt wird. Der folgenden Ausgabe, welche ich mit dem Linux-Befehl "asterisk -rvvvvv" einholte, nach zu urteilen scheint es auch zu funktionieren:
Code:
Connected to Asterisk 11.23.1 currently running on (none) (pid = 5595)
  == Using SIP RTP CoS mark 5
    -- Executing [50@Endgeraete:1] Originate("SIP/32-00000000", "SIP/31,exten,test7,neu,1") in new stack
  == Using SIP RTP CoS mark 5
    -- Executing [neu@test7:1] Bridge("SIP/31-00000001", "SIP/32,L(5000)") in new stack
    -- Setting call duration limit to 5.000 seconds.
       > 0x79197c01fa10 -- Probation passed - setting RTP source address to 192.168.5.7:5062
       > 0x791970015e00 -- Probation passed - setting RTP source address to 192.168.5.8:16414
    -- Auto fallthrough, channel 'SIP/32-00000000' status is 'UNKNOWN'
       > Saved useragent "Cisco/SPA303-7.6.2b" for peer 31
  == Using SIP RTP CoS mark 5
    -- Executing [51@Endgeraete:1] Originate("SIP/32-00000002", "SIP/31,exten,test8,neu,1") in new stack
  == Using SIP RTP CoS mark 5
    -- Executing [neu@test8:1] Bridge("SIP/31-00000003", "SIP/32,S(5)") in new stack
       > 0x79197c0083b0 -- Probation passed - setting RTP source address to 192.168.5.7:5062
       > 0x79197c04a7e0 -- Probation passed - setting RTP source address to 192.168.5.8:16416
    -- Auto fallthrough, channel 'SIP/32-00000002' status is 'UNKNOWN'
(none)*CLI>
In der Tat sind die beiden Kontexte im Dialplan dahingehend funktionsfähig, als dass die beschriebene Erwartungshaltung bis zur vierten Sekunde des jeweiligen Gesprächs auch erfüllt wird, jedoch wird das jeweilige Gespräch nach fünf Sekunden nicht wie erwartet getrennt. Ich habe die Gespräche jeweils bis zu Sekunde 15 weitergeführt und es sind keinerlei Anstalten erkennbar gewesen, dass die Trennung des Gesprächs bevorstünde, sondern die Gespräche liefen einfach weiter, als wäre die Beschränkung der Gesprächszeit auf fünf Sekunden gar nicht vorhanden.

Um grundsätzliche Probleme mit den internen Zeitgebern der Asterisk-Telefonanlage auszuschließen, habe ich noch folgenden Kontext in den Dialplan eingebunden, der die untenstehende Ausgabe zu Tage brachte:
Code:
[test6]
exten => 49,1,Dial(SIP/31,,L(5000))
Code:
  == Using SIP RTP CoS mark 5
    -- Executing [49@Endgeraete:1] Dial("SIP/32-00000004", "SIP/31,,L(5000)") in new stack
    -- Setting call duration limit to 5.000 seconds.
  == Using SIP RTP CoS mark 5
    -- Called SIP/31
    -- SIP/31-00000005 is ringing
    -- SIP/31-00000005 answered SIP/32-00000004
       > 0x79197c03bb60 -- Probation passed - setting RTP source address to 192.168.5.7:5062
       > 0x79192c013a00 -- Probation passed - setting RTP source address to 192.168.5.8:16418
  == Spawn extension (Endgeraete, 49, 1) exited non-zero on 'SIP/32-00000004'
(none)*CLI>
Als ich von der Nebenstelle 32 die 49 wählte, klingelte erwartungsgemäß die Nebenstelle 31 und nach dem Abnehmen des Hörers derer kam ein Gespräch zustande. Dieses Gespräch wurde erwartungsgemäß nach fünf Sekunden getrennt.

Nun möchte ich zur Fragestellung kommen. Wie muss ich den Bridge-Befehl anpassen, sodass die Begrenzung der Gesprächsdauer wie in der Erwartungshaltung beschrieben funktioniert? Warum tritt der geschilderte Fehler überhaupt auf? Welche Fehler habe ich bei der Programmierung der Kontexte test7 und test8 gemacht? Ausdrücklich möchte ich darauf hinweisen, dass es mir bei dieser Frage nicht darum geht, Alternativen zur Erfüllung der beschriebenen Erwartungshaltung aufgezeigt zu bekommen. Schließlich habe ich auch schon eine funktionsfähige Alternative erarbeitet. Mir geht es bei dieser Frage überhaupt nicht darum, eine bestimmte Aufgabe zu erfüllen, sondern es geht mir lediglich darum, den Umgang mit dem Bridge-Befehl und vor allem mit dessen Möglichkeit, die Dauer der Verbindung zu begrenzen, zu erlernen. In diesem Sinne hoffe ich nun auf Antworten, die mich in dieser Angelegenheit weiterbringen werden. Ferner möchte ich Ihnen sehr herzlich dafür danken, dass Sie sich meine Fragestellung durchgelesen haben und vor allem, dass Sie sich mit meinen Problemen auseinandersetzen. Nun wünsche ich Ihnen noch einen angenehmen Sonntag und verbleibe


Mit freundlichen Grüßen

Jung-Fernmelder
 

Statistik des Forums

Themen
244,885
Beiträge
2,220,166
Mitglieder
371,619
Neuestes Mitglied
Lebeat
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.