diemilz
Goto Top

Asterisk als SIP-Client an Swyx-Anlage betreiben für Monitoring

Hallo zusammen,

ich hatte unter diesem Thread versucht, ein Monitoring-System (Check_MK Enterprise 1.2.8p19 auf Debian 8.7 Server) über Asterisk an eine Swyx/T-Com NetPhone-TK-Anlage zu binden. Dies ist mir auch soweit gelungen, ich habe jedoch noch folgendes Problem:

Check_MK erzeugt die Meldung, die mithilfe des Programms "picotts" in eine Wave-Datei umgewandelt wird. Anschließend konvertiert das Programm "sox" die Wave-Datei in eine für Asterisk lesbare Datei um. Anschließend wird ein Call-File erzeugt und Asterisk baut die Verbindung auf. Mein Telefon klingelt, doch wenn ich abnehme, legt das System gleich wieder auf. In der Asterisk-Konsole tauchen mit aktiviertem SIP-Debugging folgende Fehler auf:


Der Monitoring-Server hat die Durchwahl 777 (IP-Adresse 192.168.100.240), die angerufene Nummer ist die 720, die Telefonanlage hat die IP-Adresse 192.168.100.10. Ich kann soviel erkennen, dass es anscheinend Probleme mit dem A-Law-Codec im Zusammenhang mit den abzuspielenden Wave-Dateien gibt. Ich habe schon die T-Com angerufen, doch bisher noch keine Infos erhalten.

Die Datei "sip.conf" sieht in der Peer-Definition so aus:


Alle anderen Werte innerhalb der Datei sind auf Auslieferzustand. Es gibt in der "extensions.conf" nocht einen entsprechenden Wählplan.

Hat jemand einen Tipp für mich?

Content-Key: 333445

Url: https://administrator.de/contentid/333445

Printed on: February 2, 2023 at 23:02 o'clock

Member: LordGurke
LordGurke Mar 28, 2017 updated at 17:06:46 (UTC)
Goto Top
Ich vermute, die Asterisk stört sich daran, dass von der Swyx-Anlage im Media-Element im SDP-Teil das Casing nicht eingehalten wird.
Eigentlich sind die Werte "Case-Significant" und demzufolge ist "rtp/avp" etwas anderes als "RTP/AVP".
Deshalb bekommt die Asterisk keine gültige Media-Destination zusammen (denn es gibt dadurch keinen gültigen Media-Teil) und hat keine nutzbaren Codecs.

Versuche mal bitte, in der Asterisk im [general]-Teil der sip.conf folgende Zeile hinzuzufügen:

Eventuell wird dann der SDP korrekt geparsed und du bekommst eine Audioverbindung.
Member: diemilz
diemilz Mar 29, 2017 at 06:19:32 (UTC)
Goto Top
Hat leider nichts gebracht, die Fehlermeldung ist die gleiche. Ist Asterisk hier so empfindlich, dass es zwingend Groß- und Kleinschreibung unterscheiden muss?
Member: LordGurke
LordGurke Mar 30, 2017 updated at 21:30:21 (UTC)
Goto Top
Es scheint, dass auch der ausgeschaltete "pedantic"-Modus da nichts ausrichtet.
Laut dem Sourcecode wird tatsächlich Case-Sensitive/Binärsicher geprüft:


Und da haben die Asterisk-Leute nicht ganz unrecht - denn im Standard (RFC 4317) steht auf Seite 7 geschrieben, dass der Value üblicherweise Case-Sensitive ist. Und in allen Beispielen im RFC finden sich ausschließlich "RTP/AVP" in Großbuchstaben.

Setze dich da am Besten mal mit dem Hersteller eurer Telefonanlage in Verbindung und frage mal nach, ob die das nicht mal anpassen mögen.
Natürlich ist es nicht schön, dass sich die Asterisk da jetzt so dermaßen anstellt, aber andererseits ist das auch einfach ein Fehler.

Nachtrag:
Natürlich könnte man jetzt auch eine Asterisk nehmen und an dieser Stelle die Verwendungen von "strcmp" durch "strcasecmp" ersetzen, welches Case-Insensitive prüft. Aber das kann andere Implikationen haben...

Nachtrag 2:
Ich habe gerade auf meiner heimischen Asterisk einen solchen SDP reingeworfen und die exakt gleiche Fehlermeldung wie du bekommen. Passe ich das "rtp/avp" auf Großbuchstaben an geht es. Es liegt also definitiv und nachgetestet genau daran.
Member: diemilz
diemilz Mar 31, 2017 updated at 13:24:16 (UTC)
Goto Top
Ich versuche das noch mit T-Com zu klären, was wir auf Seiten der Telefonanlage für Möglichkeiten haben.

Auf Seiten Asterisk müsste ich also die betroffenen Codezeilen oben anpassen und dann prüfen, ob es läuft? Gibt es keinerlei Konfigurationsparameter, die diese Prüfung "abschwächen", damit es doch funktioniert oder kann man diesen Parameter umschreiben, bevor Asterisk die Daten erhält?

Ich muss auch mal saublöd fragen: Der Media-Offer stammt doch von dem Client/Telefon, von wo aus der Anruf angenommen wird und nicht von der Anlage, richtig?
Member: diemilz
diemilz Apr 05, 2017 at 11:27:00 (UTC)
Goto Top
So, ich konnte Asterisk nun endlich dazu bewegen, mit der NetPhone zu kommunizieren. Der hier genannte Fehler entsteht, wenn ich mit meinem Mobile-Client auf meinem SmartPhone den Anruf annehme. Er bleibt aber auch erstmal auf unbestimmte Zeit bestehen, denn weder T-Com noch Swyx sehen da Handlungsbedarf, da es sich bei den Mobile-Clients von Swyx um "keine richtigen SIP-Clients" handelt und bei Swyx sich keiner für Case-Sensitive interessiert. Änderungen sollen immer bei den 3rd-Party-Clients gemacht werden, das sei auch bekannt. So die Aussage der T-Com.

Zwar funktioniert jetzt dennoch soweit alles, aber ich bin dennoch enttäuscht über Swyx/T-Com, dass die so eine Aussage treffen.