[Problem] Asterisk ankommend --> ausgehend kein Ton

Ossie

Neuer User
Mitglied seit
22 Nov 2019
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo Forumsmitglieder,
ich bin neu in diesem klasse Forum - herzliche Grüße an alle!
Ich bin alter IT- und Netzwerkhase und habe auch bei meinen Kunden in den vergangenen Jahren mittlere bis größere ISDN-Anlagen installiert und betreut.
Da im Moment ja die große Zwangsumstellungs-Welle ISDN auf VoIP immer noch rollt, beschäftige ich mich seit einem Jahr immer mal wieder mit Asterisk.
Mittlerweile habe ich bei zwei Kunden (die mit der Fritzbox nicht auskommen ...) einen Linux-Pc mit Asterisk 15.4.1 und entsprechenden SIP-Telefonen aufgestellt.

Alles funktioniert prima, ankommend als auch ausgehend. Aber ein Problem habe ich bisher nicht lösen können.

Der Kunde hat einen Notdienst. Abends nach Feierabend wird eine Weiterleitung auf das Telefon des Mitarbeiters, der Notdienst hat, eingeschaltet.
Kommt ein Anruf, wird der sofort weitergeleitet. Das Telefon des Mitarbeiters klingelt, aber nach dem Abheben ist Stille - kein Ton.
Nach langem Recherchieren habe ich in den PJSIP-Endpoint des Providers den Parameter "inband_progress=yes" eingefügt. Ab da war der Ton da, die Teilnehmer konnten sich unterhalten.
Aber: nun hört der Anrufer keinen Rufton mehr. Es herrscht Stille, bis der Notdienst-Mitarbeiter abnimmt.

Seitdem recherchiere und probiere ich herum. Obwohl "normale" Telefonate (rein und raus) funktionieren, ohne Ports am Router weiterzuleiten, habe ich diverse Ports (5060 und 10000-20000) im Router geöffnet, ohne Verbesserung. SIP-ALG ist ausgeschaltet.

Nochmal: es betrifft nur Telefonate, die reinkommen und gleich wieder (per Dial-Funktion) wieder rausgehen.

Ich bin ratlos. Hat jemand mit mehr Erfahrung einen heißen Tipp für mich?

Gruß Ossie
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
11,752
Punkte für Reaktionen
242
Punkte
63
Moinsen


Progress() wird auch gerne für "Early Media" genutzt.
Versuchs doch mal ohne Progress aber mit einem Flag im Dial() ...
Dial(PJSIP/whatever,120,m(default))
...hört der Anrufer "Early Media" anstatt "Tuuuut .... Tuuuut" ?

PS: Kenn mich mit der PJSIP Syntax ( noch nicht ) so gut aus ;)
PPS: Welcome aboard :)
 
Zuletzt bearbeitet:

Ossie

Neuer User
Mitglied seit
22 Nov 2019
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo koyaanisqatsi,
>> PPS: Welcome aboard
Danke - und danke für Deine schnelle Antwort.
Ich habe deinen Tipp gleich mal ausprobiert.
"inband_progress" wieder rausgenommen, "m(default)" ans Dial-Kommando gehängt.
Jetzt ist auch ohne "inband_progress" erstaunlicherweise Ton da, man kann miteinander reden.
Aber: Jetzt ist auch ohne "inband_progress" kein Rufton zu hören.
Arghhh!!!
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
11,752
Punkte für Reaktionen
242
Punkte
63
Das ist korrekt ;)
Das Flag m() sollte statt "Tuuut Tuuut" nämlich "Music on hold" abspielen.
...macht aber, genau wie Progress(), die Audiokanäle ( RTP ) vor einem Abnehmen auf.
Hast du keine moh konfiguriert/aktiviert (musiconhold.conf) ?
Denn dort liesse sich eine Klasse für "Early Media Ansage"/MoH in der Form hinterlegen...
"Bitte warten - Ein Mitarbeiter ist gleich für sie da"
 
Zuletzt bearbeitet:

sonyKatze

Mitglied
Mitglied seit
6 Aug 2009
Beiträge
559
Punkte für Reaktionen
33
Punkte
28
Kommt ein Anruf, wird der sofort weitergeleitet. Das Telefon des Mitarbeiters klingelt, aber nach dem Abheben ist Stille […] inband_progress=yes […] nun hört der Anrufer keinen Rufton mehr
Bei solchen Feinheiten bist Du erstmal auf Dich allein gestellt. Du bist gezwungen genau zu analysieren, was überhaupt auf den beiden Leitungen passiert. Eine Möglichkeit ist Wireshark mitlaufen zu lassen.
  1. Welche Stati erhältst Du vom Provider: Trying (100) und dann Ringing (180) oder Progress (183)?
  2. Welche Stati gibst Du weiter?
  3. Falls Du 183 erhältst, ist darin SDP enthalten; kommt bereits RTP?
  4. Falls Du RTP erhältst, wohin (IP-Adresse : Port) gibst Du dieses RTP weiter?
  5. Falls Du SDP erhältst, wie ist die Direction? a=sendonly
Daher bitte nicht Recherchieren, sondern erstmal analysieren und berichten. Für den Start würde ich ein Dial() ganz ohne irgendwelche Optionen nutzen.
 

Ossie

Neuer User
Mitglied seit
22 Nov 2019
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo koyaanisqatsi:
Du hast mich auf den richtigen Weg geschubst.
Ich habe mit MOH herumgespielt und diverse Variationen ausprobiert. Wie Du schon schriebst: MOH öffnet die Audiokanäle.
Weiteres Lesen in der Asterisk-Bibel (O'Reilly: "Asterisk - The Definitive Guide") brachte mich zur "Answer()"-Funktion. "Progress()" hatte ich vorher schon mal ohne Erfolg ausprobiert, aber "Answer()" hat's dann gebracht!

Bei dem Kunden läuft das so: Der Chef drückt bei Feierabend eine "forward"-Taste an seinem Telefon. Kommt ein Anruf (im Kontext "ankommend"), meldet Asterisk
"302 moved temporarily"
"Now forwarding PJSIP/49xxxxxx-00000039 to 'Local/[email protected]' (thanks to PJSIP/jens20-0000003a)"
Der Anruf geht in den Kontext "ausgehend". Dort frage ich den Channeltype ab. Ist er "Local", mache ich "Answer()" und anschließend den "Dial()". Ist der Channeltype nicht "Local", wird der "Answer()" übergangen.
Nun klappt alles - ohne "inband_progress" (welches ja den Rufton killte) und sogar ohne "m" im Dial-Kommando - man hört das (Asterisk-generierte) Rufzeichen.

Danke für Deinen Anschubser!

sonyKatze:
Du hast natürlich völlig recht: Bei Problemen geht nichts über systematisches Sammeln von Informationen, um dann analysieren zu können. Als jemand, der in der Vor-PC-Zeit Mainframes installiert und repariert hat, habe ich (manchmal schmerzhaft ...) gelernt, wie wichtig das ist.

Ich habe natürlich mit "PJSIP set logger on" Daten gesammelt und z.B. dabei gesehen, daß ein "Ringing (180)" rausging. Aber Du weißt ja auch, daß das alles sehr aufwendig (und vor allem zeitaufwendig) ist - und mir saß die Zeit (sprich: der Kunde) im Nacken - und so habe ich eben herumprobiert - sorry.

An beide:
Seitdem ich mich mit Asterisk beschäftige, habe ich Stunden über Stunden recherchiert, viele, viele Internetseiten (auch die originalen von Digium, asterisk.org usw.) gelesen und viele Foren besucht. Dabei hat man viel über Detail-Lösungen von speziellen Problemen gelernt.

Aber irgendwie sind das alles immer nur Bruchstücke. Was ich vermisse, ist eine umfassende Übersicht über die gesamten Zusammenhänge - die Logik, die dahinter steckt - was an einzelnen Schritten passiert (oder passieren muß), damit ein Anruf erfolgreich ist. Wer sendet welche Nachrichten wohin, welche Pakete verschiedensten Inhalts von wem wohin geschickt werden und wie beantwortet werden müssen. Im Groben weiß man das eigentlich, aber wenn man ein Problem lösen muß, kommt es ja auf das Detail an. Siehe mein geschildertes Problem - jetzt scheint es zu klappen, aber warum genau es jetzt funktioniert, kann man nur vermuten.

Ich habe natürlich viel in der Asterisk-Bibel gelesen (ich hatte eine ältere Version als PDF). Mit deren Hilfe kann man sich sehr schnell einen kleinen funktionierenden Dialplan zusammenbauen - aber das große umfassende Hintergrundwissen finde ich da nicht.

Ich habe mir sogar kurzfristig die neueste (5.) Ausgabe beschafft, die schon Asterisk 16 abdeckt. Ich war etwas schockiert: Die wichtige "pjsip.conf" und deren Inhalt wird gar nicht erwähnt, sondern beschrieben, wie man mit händisch einzugebenden SQL-Befehlen die Daten in die Asterisk-Datenbank einspeist.

Geht's noch? Ein Asterisk-Anfänger (und das sind ja die, die in dieser Bibel lesen) muß jetzt auch noch SQL-Befehle können? Eine Textdatei ist doch viel schneller und einfacher geändert, wenn man erstmalig herumprobiert, als wenn man die Daten in der Datenbank umständlich mit "Insert-", "Delete-" und "Update"-Befehlen bearbeiten muß. Und "Music on Hold" finde ich in dieser Ausgabe nicht mal im Stichwortverzeichnis ....

Tja - genug gejammert. Trotzdem halte ich Asterisk für eine tolle Software und werde mich weiter damit beschäftigen.

Ich danke Euch beiden für Mühe, Zeit und Hilfe und kämpfe weiter.

Wie sagt dieser Naturmensch im Fernsehen immer am Ende seiner Sendung? "Bleiben Sie fasziniert" ....
 

sonyKatze

Mitglied
Mitglied seit
6 Aug 2009
Beiträge
559
Punkte für Reaktionen
33
Punkte
28
Didaktik in der Informatik … Problem bei SIP ist, dass es so flexibel ist, dass es kaum eine Antwort gibt. Teilweise findest Du in Hochschul-Vorlesungen Diagramme, wie einige Fälle normalerweise ablaufen, siehe Universität Ulm. Teilweise in SIP-Schulungen. Teilweise in RFCs, siehe 3665 und 5589. Aber solche Dinge katalogisiert eine Internet-Suchmaschine falsch. Wenn ich eine SIP-Fibel finde, in der einfach nur Abläufe dokumentiert sind, poste ich das hier. Übrigens mein Tipp: Wenn Du beim Kunden schon reine VoIP/SIP-Infrastrukturen hast, würde ich statt Asterisk mal FreeSWITCH anschauen. Dessen Kern ist nicht wie bei Asterisk SS7 sondern schon rein SIP. Das macht einiges einfacher.
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,300
Beiträge
2,032,532
Mitglieder
351,842
Neuestes Mitglied
deadfm137