Wireshark: VoIP-Telefonate mitschneiden und anhören nach Beginn des Gesprächs

Wireshark Logo

In meinem Artikel „FRITZ!Box – VoIP-Telefonate mitschneiden und anhören“ habe ich aufgezeigt, wie VoIP-Telefonate ganz einfach mitgeschnitten werden können. Die dort aufgeführte Methode funktioniert allerdings nur, wenn der Paketmitschnitt vor dem Telefonat gestartet wird. Beginnt der Paketmitschnitt erst nach dem Anfang des Gesprächs, funktioniert das dort beschriebene Vorgehen leider nicht.

Vor dem Mitschneiden von VoIP-Telefonaten sollte jedoch die aktuelle Rechtslage beachtet werden! Bei unerlaubten Aufzeichnungen sind sogar strafrechtliche Konsequenzen möglich. Ich übernehme keine Haftung.

Erklärung

Wenn der Paketmitschnitt erst nach Beginn des Telefonats gestartet wird, fehlt logischerweise auch die Protokollierung des Verbindungsaufbaus. Der Auf- und Abbau von VoIP-Verbindungen wird auch Signalisierung bzw. Verbindungssteuerung genannt. Dies kann mit unterschiedlichen Signalisierungsprotokollen (SIP, MGCP, H.248, …) geschehen, wobei sehr häufig SIP zum Einsatz kommt. Innerhalb des SIP-Protokolls wird das Session Description Protocol (SDP) zur Beschreibung der Eigenschaften von Multimediadatenströmen verwendet. Konkret gesagt kommt SDP bei der Aushandlung von Codecs, Transportprotokollen und IP-Adressen zum Einsatz. Ohne diese Daten kann Wireshark nicht automatisch herausfinden, welche UDP-Pakete zum RTP-Stream gehören und welche nicht.

Lösung

Damit der RTP-Stream, welcher die Audio-Daten enthält, dennoch extrahiert werden kann, müssen die UDP-Pakete innerhalb des Paketmitschnitts als RTP identifiziert werden. Dies funktioniert ab Wireshark 2.x folgendermaßen:

Im Menü müssen unter „Analyse“ und “ Protokolle aktivieren…“ zwei Optionen aktiviert werden. Unterhalb vom Protokoll „RTP“ bei „rtp_stun“ und „rtp_udp“ ein Häckchen setzen. Anschließend hier mit Punkt 2 fortfahren.

Sollte das nicht zum Ziel führen, gibt es noch eine zweite Möglichkeit, welche aber auch die oben genannten Einstellungen voraussetzt. Öffnet einen Paketmitschnitt und wählt anschließend im Menü unter „Telephonie“ die Punkte „RTP“ und „RTP Streams“. Im neu geöffneten Fenster wählt ihr einen Stream aus und klickt dann unten auf den Button „Den Entgegengesetzten finden“. Sofern ein passender zweiter Stream vorhanden ist, wird dieser nun automatisch mit ausgewählt (siehe Screenshot).

Jetzt könnt ihr auf „Analysieren“ klicken. Erneut öffnet sich ein neues Fenster, welches eine Übersicht und Statistiken über alle in den RTP-Streams enthaltenen Datenpakete gibt. Dies ist aber nicht was uns interessiert und wir fahren mit einem Klick auf „Steams abspielen“ fort. Abermals erscheint ein neues Fenster, in welchem die beiden Streams angehört werden können.

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter, Facebook, Google+ und Google+ (privat) folgt.

12 Antworten

  1. Karsten sagt:

    leider existiert der Punkt „Try to decode RTP outside of conversations“ in meiner neusten Version nicht.

  2. Sam sagt:

    Hallo Tobi,

    wenn der Paketmitschnitt bereits läuft und dann ein selbst initiertes Gespräch beginnt, ist alles ok – beide RTP-Streams (beide Kanäle) sind vorhanden. Probleme habe ich leider nach wie vor bei folgenden Szenarien:

    a) Paketmitschnitt läuft bereits, im weiteren Verlauf kommt ein Telefonat von außen rein -> keine RTP-Streams vorhanden.
    b) Paketmitschnitt startet erst, nachdem Anruf von extern reinkommt -> keine RTP-Streams vorhanden
    c) Paketmitschnitt startet erst, nachdem Anruf selbst initiert wird -> nur eigener Kanal vorhanden

    Bei Paketmitschnitten NACH Beginn des Telefonates kann zudem die obige Anleitung mit dem Screenshot „Wireshark: Decode As“ ab Version 2.2.4 nicht mehr nachvollzogen werden. Diesen Dialog gibt es so nicht mehr. Auch der Sprungpunkt „Anschließend hier mit Punkt 3 fortfahren“ scheint nicht zu stimmen (ich vermute, es ist der dann nachfolgende Punkt 3 gemeint).

    • Tobi sagt:

      Also a) sollte definitiv klappen! Bei b) und c) habe ich herausgefunden, dass einige User mit FRITZ!OS 6.80 ähnliche Probleme haben. Geh mal auf die 6.50 zurück und teste erneut, dann sollte es wieder klappen.

  3. Peter sagt:

    Hallo Tobi,
    Kann der Paketmitschnitt nur mit Fritzbox erfolgen ? Wenn man über PC VoiP Sip Programe telefoniert und der PC sich ganz beliebig (z.B. über Mobilfunk, oder Hotel WLAN, ….) mit dem Internet verbindet ?
    Kann man wenn man VoIP Telefonate vom PC ausfühert kann man d. Paketmitschnitt mit Programme auf d. Rechner durchführebn, z.B. mit Wireshark mitzeichnen? D.h. d. Netzverkehr am eigenen PC LAN/ WLAN interface vornehmen?

  4. Volker sagt:

    Dieses hier: „Für die zweite Möglichkeit muss zuerst der Paketmitschnitt im Wireshark geöffnet werden. Anschließend im Menü unter „Analyze“ den Punkt „Decode As…“ anklicken. Dort beide UDP-Streams auswählen und rechts „RTP“ auswählen. “ gibt es so unter Version 2.4.1 nicht mehr.

    WIe soll ich in dieser Version vorgehen?

  5. Volker sagt:

    Aber was genau muss ich eingeben?

    • Tobi sagt:

      Ich habe mir das Ganze nochmal genauer angeschaut. Scheinbar bringt „Decode As…“ ab Wireshark 2.4.x keinen zusätzlichen Nutzen gegenüber der Aktivierung von „rtp_stun“ und „rtp_udp“. Deshalb habe ich diesen Punkt in meinem Artikel entfernt.

      Außerdem habe ich alles, was sich auf Wireshark 1.x bezog entfernt, da mittlerweile jeder auf die neue Version 2.x setzen sollte. Des Weiteren habe ich den Artikel aktualisiert.

  6. Ralf sagt:

    Hallo Tobi,
    Ich habe auch das Problem das bei mir nur 1 Stream funktioniert. Der Stream von mir nach draussen ist
    Vollständig da, der rein nur meistens 3 Pakete.
    Kann ich außer die 2 Haken bei rtp oder das downgrade von 6.90 auf 6.50 etwas anderes tun??
    Gruß
    Ralf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.