{"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\/fr\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8","title":{"rendered":"\u00c9tudions le moteur VoIP Mediastreamer2. Partie 8","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Le contenu de cet article est tir\u00e9 de ma <noindex><a rel=\"nofollow\" href=\"https:\/\/zen.yandex.ru\/id\/5e3f8e0751f5346faab4fc7a\">cha\u00eene Zen<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c9tudions le moteur VoIP Mediastreamer2. Partie 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\">Structure du paquet RTP<\/h2>\n<p><\/p>\n<p>Dans le pass\u00e9, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/496490\/\">article<\/a><\/noindex> nous avons r\u00e9alis\u00e9 <em>TShark<\/em> la capture des paquets RTP \u00e9chang\u00e9s entre notre r\u00e9cepteur et notre \u00e9metteur. Dans cette section, nous allons colorer les \u00e9l\u00e9ments du paquet de diff\u00e9rentes couleurs et discuter de leur fonction. <\/p>\n<p><\/p>\n<p>Regardons le m\u00eame paquet, mais avec des champs color\u00e9s et des annotations explicatives\u202f:<br \/>\n<img decoding=\"async\" alt=\"\u00c9tudions le moteur VoIP Mediastreamer2. Partie 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>Dans la partie inf\u00e9rieure de la liste, les octets constituant le paquet RTP sont color\u00e9s, et celui-ci est \u00e0 son tour la charge utile du paquet UDP (son en-t\u00eate est entour\u00e9 d'une ligne noire). Les arri\u00e8re-plans color\u00e9s indiquent les octets de l'en-t\u00eate RTP, et la zone verte met en \u00e9vidence le bloc de donn\u00e9es qui contient la charge utile du paquet RTP. Les donn\u00e9es y sont pr\u00e9sent\u00e9es au format hexad\u00e9cimal. Dans notre cas, il s'agit d'un signal sonore compress\u00e9 selon la loi u (loi mu), c'est-\u00e0-dire qu'un \u00e9chantillon a une taille de 1 octet. \u00c9tant donn\u00e9 que nous avons utilis\u00e9 la fr\u00e9quence d'\u00e9chantillonnage par d\u00e9faut (8000 Hz), avec une fr\u00e9quence de paquets de 50 Hz, chaque paquet RTP doit contenir 160 octets de charge utile. C'est ce que nous allons constater en comptant les octets dans la zone verte, qui devrait contenir 10 lignes. <\/p>\n<p><\/p>\n<p>Selon la norme, la quantit\u00e9 de donn\u00e9es dans la charge utile doit \u00eatre un multiple de quatre, ou en d'autres termes, doit contenir un nombre entier de mots de quatre octets. Si par hasard votre charge utile ne respecte pas cette r\u00e8gle, il faudrait alors ajouter des octets de valeur nulle \u00e0 la fin de la charge utile et activer le bit Padding (Compl\u00e9ment). Ce bit se trouve dans le premier octet de l'en-t\u00eate RTP, il est color\u00e9 en turquoise. Notez que tous les octets de la charge utile ont une valeur de 0xFF \u2014 c'est \u00e0 quoi ressemble le silence au format u-law.<\/p>\n<p><\/p>\n<p>L'en-t\u00eate du paquet RTP est compos\u00e9 de 12 octets obligatoires, mais dans deux cas, il peut \u00eatre plus long\u202f:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Lorsque le paquet transporte un signal sonore r\u00e9sultant du m\u00e9lange de signaux provenant de plusieurs sources (flux RTP), une table avec la liste des identifiants de sources dont les charges utiles ont \u00e9t\u00e9 utilis\u00e9es pour cr\u00e9er la charge utile de ce paquet est plac\u00e9e apr\u00e8s les 12 premiers octets de l'en-t\u00eate. Dans ce cas, les quatre bits inf\u00e9rieurs du premier octet de l'en-t\u00eate (champ <em>Nombre d'identifiants de sources contributrices<\/em>) indique le nombre de sources. La taille du champ est de 4 bits, la table peut donc contenir jusqu'\u00e0 15 identifiants de sources. Chacun occupe 4 octets. Cette table est utilis\u00e9e lors de l'organisation de la conf\u00e9rence.<\/p>\n<p>\n<\/li>\n<li>\n<p>Lorsque l'en-t\u00eate a une extension. Dans ce cas, le premier octet de l'en-t\u00eate a un bit d\u00e9fini <strong>X<\/strong>. Dans l'en-t\u00eate \u00e9tendu, apr\u00e8s la table des participants (s'il y en a), se trouve l'en-t\u00eate d'extension d'une taille d'un mot, suivi des mots d'extension. L'extension est un ensemble d'octets que vous pouvez utiliser pour transmettre des donn\u00e9es suppl\u00e9mentaires. La norme ne sp\u00e9cifie pas le format de ces donn\u00e9es \u2014 il peut \u00eatre quelconque. Par exemple, cela peut \u00eatre des param\u00e8tres suppl\u00e9mentaires pour l'appareil qui re\u00e7oit les paquets RTP. Pour certaines applications, des normes d'en-t\u00eate \u00e9tendu ont n\u00e9anmoins \u00e9t\u00e9 d\u00e9velopp\u00e9es. C'est le cas, par exemple, pour les moyens de communication dans la norme <em>ED-137 (Normes d'interop\u00e9rabilit\u00e9 pour les composants VoIP ATM)<\/em>. <\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Examinons maintenant les champs de l'en-t\u00eate plus en d\u00e9tail. Ci-dessous, une image canonique de la structure de l'en-t\u00eate RTP, que j'ai \u00e9galement colori\u00e9e dans les m\u00eames couleurs.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c9tudions le moteur VoIP Mediastreamer2. Partie 8\" src=\"\/wp-content\/uploads\/2020\/07\/b8839a56fbe4ee484c9d6b19714b541e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>VER<\/strong> \u2014 num\u00e9ro de version du protocole (version actuelle 2);<\/p>\n<p><\/p>\n<p><strong>redicted Frame)<\/strong> \u2014 un drapeau qui est d\u00e9fini dans les cas o\u00f9 le paquet RTP est compl\u00e9t\u00e9 par des octets vides \u00e0 la fin;<\/p>\n<p><\/p>\n<p><strong>X<\/strong> \u2014 un drapeau indiquant que l'en-t\u00eate est \u00e9tendu;<\/p>\n<p><\/p>\n<p><strong>CC<\/strong> \u2014 contient le nombre d'identifiants CSRC suivant l'en-t\u00eate fixe (apr\u00e8s les mots 1..3), dans l'image la table n'est pas montr\u00e9e;<\/p>\n<p><\/p>\n<p><strong>M<\/strong> \u2014 marqueur de d\u00e9but de cadre ou de pr\u00e9sence de parole dans le canal (si un d\u00e9tecteur de pauses dans la parole est utilis\u00e9). Si le r\u00e9cepteur ne contient pas de d\u00e9tecteur de pauses dans la parole, ce bit doit \u00eatre constamment d\u00e9fini;<\/p>\n<p><\/p>\n<p><strong>PTYPE<\/strong> \u2014 indique le format de la charge utile;<\/p>\n<p><\/p>\n<p><strong>Num\u00e9ro de s\u00e9quence<\/strong> \u2014 num\u00e9ro de paquet, utilis\u00e9 pour restaurer l'ordre de lecture des paquets, car en r\u00e9alit\u00e9, il peut y avoir des cas o\u00f9 les paquets atteignent le r\u00e9cepteur dans un ordre diff\u00e9rent de celui dans lequel ils ont \u00e9t\u00e9 envoy\u00e9s. La valeur initiale doit \u00eatre al\u00e9atoire, cela permet, si le flux RTP est crypt\u00e9, de rendre son d\u00e9cryptage plus difficile. Ce champ permet \u00e9galement de d\u00e9tecter les paquets manquants;<\/p>\n<p><\/p>\n<p><strong>Horodatage<\/strong> \u2014 horodatage. Le temps est mesur\u00e9 en \u00e9chantillons de signal, c'est-\u00e0-dire que si le paquet contient 160 \u00e9chantillons, l'horodatage du paquet suivant sera sup\u00e9rieur de 160. La valeur initiale de l'horodatage doit \u00eatre al\u00e9atoire;<\/p>\n<p><\/p>\n<p><strong>SSRC<\/strong> \u2014 identifiant de la source du paquet, il doit \u00eatre unique. Il vaut mieux le g\u00e9n\u00e9rer de mani\u00e8re al\u00e9atoire avant de d\u00e9marrer le flux RTP.<\/p>\n<p><\/p>\n<p>Si vous d\u00e9veloppez votre propre \u00e9metteur ou r\u00e9cepteur de paquets RTP, vous devrez examiner vos paquets plusieurs fois pour am\u00e9liorer l'efficacit\u00e9. Je vous recommande de ma\u00eetriser l'utilisation du filtrage de paquets avec TShark, car cela permet de capturer seulement les paquets qui vous int\u00e9ressent. Dans un environnement o\u00f9 des dizaines de dispositifs RTP fonctionnent sur le r\u00e9seau, c'est tr\u00e8s pr\u00e9cieux. Dans la ligne de commande TShark, les param\u00e8tres de filtrage sont d\u00e9finis par l'option \"-f\". Nous avons utilis\u00e9 cette option lorsque nous voulions capturer des paquets depuis le port 8010 :<br \/>\n<code>-f \"udp port 8010\"<\/code><br \/>\nLes param\u00e8tres de filtrage sont essentiellement un ensemble de crit\u00e8res qu'un paquet \"\u00e0 capturer\" doit respecter. La condition peut v\u00e9rifier l'adresse, le port, la valeur d'un certain octet dans le paquet. Les conditions peuvent \u00eatre combin\u00e9es par des op\u00e9rations logiques telles que \"ET\", \"OU\", etc. C'est un outil tr\u00e8s puissant.<\/p>\n<p><\/p>\n<p>Si vous souhaitez visualiser la dynamique des champs dans les paquets, vous devrez dupliquer la sortie <em>TShark<\/em> dans un fichier, comme cela a \u00e9t\u00e9 montr\u00e9 dans l'article pr\u00e9c\u00e9dent, en transf\u00e9rant la sortie <em>TShark<\/em> en entr\u00e9e <em>tee<\/em>. Ensuite, en ouvrant le fichier journal avec <em>less, vim<\/em> ou un autre outil capable de travailler rapidement avec de grands fichiers texte et d'effectuer des recherches de cha\u00eenes, vous pourrez comprendre tous les d\u00e9tails du comportement des champs de paquets dans le flux RTP.<\/p>\n<p><\/p>\n<p>Si vous devez \u00e9couter le signal transmis par le flux RTP, vous devez utiliser la version <em>TShark<\/em> avec interface graphique <em>Wireshark<\/em>. Avec quelques manipulations simples de la souris, vous pouvez \u00e9couter et voir l'oscillogramme du signal. Mais \u00e0 une condition \u2014 s'il est cod\u00e9 au format u-law ou a-law.<\/p>\n<p><\/p>\n<p>Dans la prochaine <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/496874\/\">article<\/a><\/noindex> nous allons cr\u00e9er un dispositif de communication duplex. Munissez-vous de deux casques et d'un interlocuteur.<\/p>\n<p>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47\u00c9tude du moteur VoIP Mediastreamer2. Partie 8 | ProHoster","description":"Le contenu de cet article est tir\u00e9 de mon canal Zen.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/izuchaem-voip-dvizhok-mediastreamer2-chast-8","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/87043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=87043"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/87043\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/87044"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=87043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=87043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=87043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}