{"id":87043,"date":"2020-07-02T19:42:04","date_gmt":"2020-07-02T17:42:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8"},"modified":"2020-07-02T19:42:04","modified_gmt":"2020-07-02T17:42:04","slug":"izuchaem-voip-dvizhok-mediastreamer2-chast-8","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8","title":{"rendered":"Wir erforschen die VoIP-Engine Mediastreamer2. Teil 8","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Der Artikelinhalt stammt von meinem <noindex><a rel=\"nofollow\" href=\"https:\/\/zen.yandex.ru\/id\/5e3f8e0751f5346faab4fc7a\">Zen-Kanal<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wir erforschen die VoIP-Engine Mediastreamer2. Teil 8\" src=\"\/wp-content\/uploads\/2020\/07\/ddc5dba3a090dec9927b46a82dda760f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"struktura-rtp-paketa\">Die Struktur des RTP-Pakets<\/h2>\n<p><\/p>\n<p>Letzte Woche <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/496490\/\">Artikel<\/a><\/noindex> Wir haben mithilfe von <em>TShark<\/em> die Erfassung von RTP-Paketen durchgef\u00fchrt, die zwischen unserem Empf\u00e4nger und Sender ausgetauscht wurden. In diesem Abschnitt werden wir die Elemente des Pakets in verschiedenen Farben darstellen und \u00fcber ihre Funktion sprechen. <\/p>\n<p><\/p>\n<p>Schauen wir uns dasselbe Paket an, jedoch mit hervorgehobenen Feldern und erl\u00e4uternden Beschriftungen:<br \/>\n<img decoding=\"async\" alt=\"Wir erforschen die VoIP-Engine Mediastreamer2. Teil 8\" src=\"\/wp-content\/uploads\/2020\/07\/a2ee8fb10bc6daa48dcd0bc9a8596fd7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Im unteren Teil des Listings sind die Bytes farblich hervorgehoben, die das RTP-Paket bilden, welches wiederum die Nutzlast des UDP-Pakets ist (seine Kopfzeile ist durch eine schwarze Linie umrahmt). Die RTP-Header-Bytes sind durch farbige Hintergr\u00fcnde gekennzeichnet, w\u00e4hrend der Datenblock, der die Nutzlast des RTP-Pakets enth\u00e4lt, gr\u00fcn hervorgehoben ist. Die Daten sind dort im hexadezimalen Format dargestellt. In unserem Fall handelt es sich um ein Audiosignal, das gem\u00e4\u00df u-law (M\u00fc-law) komprimiert wurde, d.h. ein Sample hat eine Gr\u00f6\u00dfe von 1 Byte. Da wir die standardm\u00e4\u00dfig festgelegte Abtastrate von 8000 Hz verwendet haben, muss jedes RTP-Paket bei einer Paketfrequenz von 50 Hz 160 Byte Nutzlast enthalten. Das sehen wir, wenn wir die Bytes im gr\u00fcnen Bereich z\u00e4hlen; es sollten 10 Zeilen erscheinen. <\/p>\n<p><\/p>\n<p>Laut Standard muss die Menge an Daten in der Nutzlast ein Vielfaches von vier sein oder anders gesagt, sie muss eine ganze Anzahl von vier Byte-W\u00f6rtern enthalten. Sollte es vorkommen, dass Ihre Nutzlast dieser Regel nicht entspricht, m\u00fcssen am Ende der Nutzlast Bytes mit nullen Werten hinzugef\u00fcgt werden, und das Padding-Bit (Zusatz) muss gesetzt werden. Dieses Bit befindet sich im ersten Byte des RTP-Headers und ist t\u00fcrkisfarben hervorgehoben. Beachten Sie, dass alle Bytes der Nutzlast den Wert 0xFF haben - so sieht Stille im u-law-Format aus.<\/p>\n<p><\/p>\n<p>Der RTP-Paketkopf besteht aus 12 obligatorischen Bytes, kann jedoch in zwei F\u00e4llen l\u00e4nger sein:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Wenn das Paket ein Audiosignal enth\u00e4lt, das durch Mischen von Signalen aus mehreren Quellen (RTP-Streams) erhalten wurde, wird nach den ersten 12 Bytes des Headers eine Tabelle mit einer Liste von Identifikationsnummern der Quellen angeordnet, deren Nutzlasten zur Erstellung der Nutzlast dieses Pakets verwendet wurden. Dabei sind die vier niedrigsten Bits des ersten Bytes des Headers (Feld <em>Anzahl der beitragenden Quellenidentifikatoren<\/em>) wird die Anzahl der Quellen angegeben. Die Feldgr\u00f6\u00dfe betr\u00e4gt 4 Bit, entsprechend kann die Tabelle bis zu 15 Quellen-IDs enthalten. Jede davon belegt 4 Byte. Diese Tabelle wird bei der Organisation von Konferenzgespr\u00e4chen verwendet.<\/p>\n<p>\n<\/li>\n<li>\n<p>Wenn der Header eine Erweiterung hat. In diesem Fall wird im ersten Byte des Headers ein Bit gesetzt <strong>X<\/strong>. Im erweiterten Header befindet sich nach der Teilnehmerliste (falls vorhanden) der Erweiterungsheader mit der Gr\u00f6\u00dfe eines Wortes, gefolgt von den Erweiterungsw\u00f6rtern. Die Erweiterung ist eine Menge von Bytes, die Sie verwenden k\u00f6nnen, um zus\u00e4tzliche Daten zu \u00fcbertragen. Der Standard spezifiziert das Format dieser Daten nicht \u2013 es kann beliebig sein. Zum Beispiel k\u00f6nnen dies zus\u00e4tzliche Einstellungen f\u00fcr das Ger\u00e4t sein, das RTP-Pakete empf\u00e4ngt. F\u00fcr einige Anwendungen wurden jedoch Standards f\u00fcr den erweiterten Header entwickelt. So wurde es beispielsweise f\u00fcr Kommunikationsmittel im Standard <em>ED-137 (Interoperabilit\u00e4tsstandards f\u00fcr VoIP-ATM-Komponenten)<\/em>. <\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Lassen Sie uns die Headerfelder nun detaillierter betrachten. Unten sehen Sie eine kanonische Darstellung der RTP-Headerstruktur, die ich ebenfalls farbig gestaltet habe.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wir erforschen die VoIP-Engine Mediastreamer2. Teil 8\" src=\"\/wp-content\/uploads\/2020\/07\/b8839a56fbe4ee484c9d6b19714b541e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>VER<\/strong> \u2014 Versionsnummer des Protokolls (aktuelle Version 2);<\/p>\n<p><\/p>\n<p><strong>P<\/strong> \u2014 ein Flag, das gesetzt wird, wenn das RTP-Paket mit leeren Bytes am Ende erg\u00e4nzt wird;<\/p>\n<p><\/p>\n<p><strong>X<\/strong> \u2014 ein Flag, das angibt, dass der Header erweitert ist;<\/p>\n<p><\/p>\n<p><strong>CC<\/strong> \u2014 enth\u00e4lt die Anzahl der CSRC-IDs, die nach dem konstanten Header folgen (nach den W\u00f6rtern 1..3), die Tabelle ist in der Abbildung nicht dargestellt;<\/p>\n<p><\/p>\n<p><strong>M<\/strong> \u2014 Marker f\u00fcr den Beginn eines Frames oder das Vorhandensein von Sprache im Kanal (falls ein Spracherkennungssystem verwendet wird). Wenn der Empf\u00e4nger keinen Spracherkennungssystem hat, sollte dieses Bit st\u00e4ndig gesetzt sein;<\/p>\n<p><\/p>\n<p><strong>PTYPE<\/strong> \u2014 gibt das Format der Nutzlast an;<\/p>\n<p><\/p>\n<p><strong>Sequenznummer<\/strong> \u2014 Paketnummer, die zur Wiederherstellung der Wiedergabe-Reihenfolge der Pakete verwendet wird, da in der Realit\u00e4t Pakete den Empf\u00e4nger nicht in der Reihenfolge erreichen, in der sie gesendet wurden. Der Anfangswert sollte zuf\u00e4llig sein, um das Knacken des verschl\u00fcsselten RTP-Streams zu erschweren. Dieses Feld erm\u00f6glicht auch die Erkennung von Paketverlusten;<\/p>\n<p><\/p>\n<p><strong>Zeitstempel<\/strong> \u2014 Zeitstempel. Die Zeit wird in Signalproben gemessen, d.h. wenn ein Paket 160 Proben enth\u00e4lt, wird der Zeitstempel des n\u00e4chsten Pakets um 160 erh\u00f6ht. Der Anfangswert des Zeitstempels sollte zuf\u00e4llig sein;<\/p>\n<p><\/p>\n<p><strong>SSRC<\/strong> \u2014 der Identifikator des Paketquellen, der einzigartig sein muss. Es ist besser, ihn zuf\u00e4llig zu generieren, bevor der RTP-Stream gestartet wird.<\/p>\n<p><\/p>\n<p>Wenn Sie Ihren eigenen RTP-Paket-Transmitter oder -Empf\u00e4nger entwickeln, m\u00fcssen Sie Ihre Pakete h\u00e4ufig untersuchen, um die Effizienz zu steigern. Ich empfehle Ihnen, sich mit der Paketfilterung in TShark vertraut zu machen, da sie es erm\u00f6glicht, nur die Pakete zu erfassen, die f\u00fcr Sie von Interesse sind. In einer Umgebung, in der Dutzende von RTP-Ger\u00e4ten im Netzwerk aktiv sind, ist dies \u00e4u\u00dferst wertvoll. In der TShark-Befehlszeile werden Filterparameter mit der Option \"-f\" festgelegt. Wir haben diese Option verwendet, als wir Pakete vom Port 8010 erfassen wollten:<br \/>\n<code>-f \"udp port 8010\"<\/code><br \/>\nFilterparameter sind im Wesentlichen eine Reihe von Kriterien, die das \"erfasste\" Paket erf\u00fcllen muss. Die Bedingungen k\u00f6nnen Adresse, Port, den Wert eines bestimmten Bytes im Paket \u00fcberpr\u00fcfen. Bedingungen k\u00f6nnen mit logischen Operatoren wie \"UND\", \"ODER\" usw. kombiniert werden. Ein sehr leistungsf\u00e4higes Werkzeug.<\/p>\n<p><\/p>\n<p>Wenn Sie die Dynamik der Ver\u00e4nderung von Feldern in Paketen beobachten m\u00f6chten, m\u00fcssen Sie die Ausgabe <em>TShark<\/em> in eine Datei duplizieren, wie es im letzten Artikel gezeigt wurde, indem Sie die Ausgabe <em>TShark<\/em> an den Eingang <em>tee<\/em>. Danach, wenn Sie die Logdatei mit <em>less, vim<\/em> oder einem anderen Tool, das schnell mit gro\u00dfen Textdateien arbeiten und Zeilen durchsuchen kann, \u00f6ffnen, k\u00f6nnen Sie alle Nuancen des Verhaltens der Paketfelder im RTP-Stream herausfinden.<\/p>\n<p><\/p>\n<p>Wenn Sie das Signal, das durch den RTP-Stream \u00fcbertragen wird, abh\u00f6ren m\u00fcssen, sollten Sie die Version <em>TShark<\/em> mit einer grafischen Benutzeroberfl\u00e4che <em>Wireshark<\/em>. Durch einige einfache Mausklicks k\u00f6nnen Sie den Signalton anh\u00f6ren und das Oszilloskop-Signal sehen. Aber nur unter der Bedingung, dass es im Format u-law oder a-law kodiert ist.<\/p>\n<p><\/p>\n<p>Im n\u00e4chsten <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/496874\/\">Artikel<\/a><\/noindex> werden wir zusammen ein duplexes Kommunikationsger\u00e4t erstellen. Besorgen Sie sich ein Paar Headsets und einen Gespr\u00e4chspartner.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/496666\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 RTP-\u043f\u0430\u043a\u0435\u0442\u0430 \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e TShark \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u0437\u0430\u0445\u0432\u0430\u0442 RTP-\u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0448\u0438 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a. \u041d\u0443 \u0430 \u0432 \u044d\u0442\u043e\u0439 \u043c\u044b \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0430\u043a\u0435\u0442\u0430 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0445 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438. \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u043f\u0430\u043a\u0435\u0442, \u043d\u043e \u0443\u0436\u0435 \u0441 \u043f\u043e\u0434\u043a\u0440\u0430\u0448\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438 \u0438 \u0441 \u043f\u043e\u044f\u0441\u043d\u044f\u044e\u0449\u0438\u043c\u0438 \u043d\u0430\u0434\u043f\u0438\u0441\u044f\u043c\u0438: \u0412 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87044,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87043","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0437\u0443\u0447\u0430\u0435\u043c VoIP-\u0434\u0432\u0438\u0436\u043e\u043a Mediastreamer2. \u0427\u0430\u0441\u0442\u044c 8 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-02T17:42:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-02T17:42:04+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lernen Sie die VoIP-Engine Mediastreamer2. Teil 8 | ProHoster","description":"Das Material des Artikels stammt von meinem Zen-Kanal.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0437\u0443\u0447\u0430\u0435\u043c VoIP-\u0434\u0432\u0438\u0436\u043e\u043a Mediastreamer2. \u0427\u0430\u0441\u0442\u044c 8 | ProHoster","og:description":"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0437\u044f\u0442 \u0441 \u043c\u043e\u0435\u0433\u043e \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u0430.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-02T17:42:04+00:00","article:modified_time":"2020-07-02T17:42:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87043","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:59:56","updated":"2022-10-07 20:48:50","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=87043"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87043\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/87044"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=87043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=87043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=87043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}