{"id":63,"date":"2014-06-02T16:43:40","date_gmt":"2014-06-02T14:43:40","guid":{"rendered":"http:\/\/www.meetecho.com\/blog\/?p=63"},"modified":"2016-12-22T18:17:12","modified_gmt":"2016-12-22T17:17:12","slug":"habemus-data-channels","status":"publish","type":"post","link":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/","title":{"rendered":"Habemus Data Channels!"},"content":{"rendered":"<p>Work is moving on fast on our <a title=\"Janus: the general purpose WebRTC Gateway\" href=\"https:\/\/www.meetecho.com\/blog\/janus-the-general-purpose-webrtc-gateway\/\" target=\"_blank\">WebRTC gateway Janus<\/a>. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more.<\/p>\n<p>One of the most interesting new features provided by WebRTC, though, are <a title=\"WebRTC Data Channels\" href=\"http:\/\/tools.ietf.org\/html\/draft-ietf-rtcweb-data-channel-09\" target=\"_blank\">Data Channels<\/a>, a way to allow WebRTC users to exchange real-time data other than audio and video in a peer-to-peer fashion. So far, Janus didn&#8217;t support them yet. And I mean so far because, as you might have guessed by the enthusiastic and self-revealing post title, we finally implemented support for Data Channels as well!\u00a0This was made possible thanks to the help of the excellent <a title=\"Reference Implementation for SCTP - RFC4960\" href=\"http:\/\/code.google.com\/p\/sctp-refimpl\/\" target=\"_blank\">usrsctp<\/a> library, which allows for user space usage of SCTP, and was already used for Data Channels by both Chrome and Firefox.<\/p>\n<p>Data Channels in Janus are a really exciting opportunity. The image below shows a first example of the new Data Channel integration within the Echo Test plugin demo:<\/p>\n<figure id=\"attachment_64\" aria-describedby=\"caption-attachment-64\" style=\"width: 599px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-64 \" src=\"https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels.jpg\" alt=\"Data Channels in the Janus EchoTest demo\" width=\"599\" height=\"289\" srcset=\"https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels.jpg 999w, https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels-300x144.jpg 300w, https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels-250x120.jpg 250w, https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels-600x288.jpg 600w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/a><figcaption id=\"caption-attachment-64\" class=\"wp-caption-text\">Data Channels in the Janus EchoTest demo<\/figcaption><\/figure>\n<p>The EchoTest plugin does a very simple manipulation: whenever it receives a string through a Data Channel, it builds a new one that integrates it, and returns it to the user as it does for audio and video frames. Of course this is a very trivial and silly usage of Data Channels, but it indeed proves that data is available and that it can be messed with. Integrating this in other plugins (e.g., to provide real-time chat features to a video call or conference) or writing new plugins from scratch that take explicit advantage of this functionality would be just as easy. If you consider that you can reflect the same Data Channel message to several different users at the same time, you can understand why we&#8217;re so excited!<\/p>\n<p>That said, at the time of writing this new feature has not been pushed to <a title=\"Janus on GitHub\" href=\"https:\/\/github.com\/meetecho\/janus-gateway\" target=\"_blank\">GitHub<\/a> yet. We&#8217;ve just finished integrating SCTP and DataChannels within the Janus core and, since it took some changes here and there, we want to make sure nothing else broke in the process! This won&#8217;t take more than a few days, though, so if you&#8217;re as excited as we are about it, stay tuned and get ready to play with it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way to allow WebRTC users to exchange real-time data other than audio and video in a peer-to-peer fashion. So far, Janus didn&#8217;t support them yet. And I mean so far because, as you might have guessed by the enthusiastic and self-revealing post title, we finally implemented support for Data Channels as well!\u00a0This was made possible thanks to the help of the excellent usrsctp library, which allows for user space usage of SCTP, and was already used for Data Channels by both Chrome and Firefox. Data Channels in Janus are a really exciting opportunity. The image below shows a first example of the new Data Channel integration within the Echo Test plugin demo: The EchoTest plugin does a very simple manipulation: whenever it receives a string through a Data Channel, it builds a new one that integrates it, and returns it to the user as it does for audio and video frames. Of course this is a very trivial and silly usage of Data Channels, but it indeed proves that data is available and that it can be messed with. Integrating this in other plugins (e.g., to provide real-time chat features to a video call or conference) or writing new plugins from scratch that take explicit advantage of this functionality would be just as easy. If you consider that you can reflect the same Data Channel message to several different users at the same time, you can understand why we&#8217;re so excited! That said, at the time of writing this new feature has not been pushed to GitHub yet. We&#8217;ve just finished integrating SCTP and DataChannels within the Janus core and, since it took some changes here and there, we want to make sure nothing else broke in the process! This won&#8217;t take more than a few days, though, so if you&#8217;re as excited as we are about it, stay tuned and get ready to play with it!<\/p>\n","protected":false},"author":1,"featured_media":64,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,4],"tags":[],"class_list":["post-63","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-janus","category-webrtc"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Lorenzo Miniero\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Meetecho Blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Habemus Data Channels! | Meetecho Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-06-02T14:43:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2016-12-22T17:17:12+00:00\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DelusionsMaster\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Habemus Data Channels! | Meetecho Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@elminiero\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#article\",\"name\":\"Habemus Data Channels! | Meetecho Blog\",\"headline\":\"Habemus Data Channels!\",\"author\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/author\\\/lminiero\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/janus_datachannels.jpg\",\"width\":999,\"height\":481,\"caption\":\"Data Channels in the Janus EchoTest demo\"},\"datePublished\":\"2014-06-02T16:43:40+02:00\",\"dateModified\":\"2016-12-22T18:17:12+01:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#webpage\"},\"articleSection\":\"Janus, WebRTC\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/category\\\/webrtc\\\/#listItem\",\"name\":\"WebRTC\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/category\\\/webrtc\\\/#listItem\",\"position\":2,\"name\":\"WebRTC\",\"item\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/category\\\/webrtc\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#listItem\",\"name\":\"Habemus Data Channels!\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#listItem\",\"position\":3,\"name\":\"Habemus Data Channels!\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/category\\\/webrtc\\\/#listItem\",\"name\":\"WebRTC\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#organization\",\"name\":\"Meetecho Blog\",\"description\":\"What's cooking in Meetecho?\",\"url\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/author\\\/lminiero\\\/#author\",\"url\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/author\\\/lminiero\\\/\",\"name\":\"Lorenzo Miniero\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/707575f6a309d306fb03999a70ebc19b339d6ee4fe328021506d790862012022?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Lorenzo Miniero\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/DelusionsMaster\",\"https:\\\/\\\/twitter.com\\\/elminiero\",\"https:\\\/\\\/www.instagram.com\\\/lminier0\\\/\",\"https:\\\/\\\/it.linkedin.com\\\/in\\\/lorenzo-miniero-8738606\",\"https:\\\/\\\/soundcloud.com\\\/lminiero\",\"https:\\\/\\\/fosstodon.org\\\/@lminiero\",\"https:\\\/\\\/lminiero.bandcamp.com\\\/\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#webpage\",\"url\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/\",\"name\":\"Habemus Data Channels! | Meetecho Blog\",\"description\":\"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/author\\\/lminiero\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/author\\\/lminiero\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/janus_datachannels.jpg\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#mainImage\",\"width\":999,\"height\":481,\"caption\":\"Data Channels in the Janus EchoTest demo\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/habemus-data-channels\\\/#mainImage\"},\"datePublished\":\"2014-06-02T16:43:40+02:00\",\"dateModified\":\"2016-12-22T18:17:12+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/\",\"name\":\"Meetecho Blog\",\"description\":\"What's cooking in Meetecho?\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.meetecho.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Habemus Data Channels! | Meetecho Blog","description":"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way","canonical_url":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#article","name":"Habemus Data Channels! | Meetecho Blog","headline":"Habemus Data Channels!","author":{"@id":"https:\/\/www.meetecho.com\/blog\/author\/lminiero\/#author"},"publisher":{"@id":"https:\/\/www.meetecho.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels.jpg","width":999,"height":481,"caption":"Data Channels in the Janus EchoTest demo"},"datePublished":"2014-06-02T16:43:40+02:00","dateModified":"2016-12-22T18:17:12+01:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#webpage"},"isPartOf":{"@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#webpage"},"articleSection":"Janus, WebRTC"},{"@type":"BreadcrumbList","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/www.meetecho.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/category\/webrtc\/#listItem","name":"WebRTC"}},{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/category\/webrtc\/#listItem","position":2,"name":"WebRTC","item":"https:\/\/www.meetecho.com\/blog\/category\/webrtc\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#listItem","name":"Habemus Data Channels!"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#listItem","position":3,"name":"Habemus Data Channels!","previousItem":{"@type":"ListItem","@id":"https:\/\/www.meetecho.com\/blog\/category\/webrtc\/#listItem","name":"WebRTC"}}]},{"@type":"Organization","@id":"https:\/\/www.meetecho.com\/blog\/#organization","name":"Meetecho Blog","description":"What's cooking in Meetecho?","url":"https:\/\/www.meetecho.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.meetecho.com\/blog\/author\/lminiero\/#author","url":"https:\/\/www.meetecho.com\/blog\/author\/lminiero\/","name":"Lorenzo Miniero","image":{"@type":"ImageObject","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/707575f6a309d306fb03999a70ebc19b339d6ee4fe328021506d790862012022?s=96&d=mm&r=g","width":96,"height":96,"caption":"Lorenzo Miniero"},"sameAs":["https:\/\/www.facebook.com\/DelusionsMaster","https:\/\/twitter.com\/elminiero","https:\/\/www.instagram.com\/lminier0\/","https:\/\/it.linkedin.com\/in\/lorenzo-miniero-8738606","https:\/\/soundcloud.com\/lminiero","https:\/\/fosstodon.org\/@lminiero","https:\/\/lminiero.bandcamp.com\/"]},{"@type":"WebPage","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#webpage","url":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/","name":"Habemus Data Channels! | Meetecho Blog","description":"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.meetecho.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#breadcrumblist"},"author":{"@id":"https:\/\/www.meetecho.com\/blog\/author\/lminiero\/#author"},"creator":{"@id":"https:\/\/www.meetecho.com\/blog\/author\/lminiero\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.meetecho.com\/blog\/wp-content\/uploads\/2014\/06\/janus_datachannels.jpg","@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#mainImage","width":999,"height":481,"caption":"Data Channels in the Janus EchoTest demo"},"primaryImageOfPage":{"@id":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/#mainImage"},"datePublished":"2014-06-02T16:43:40+02:00","dateModified":"2016-12-22T18:17:12+01:00"},{"@type":"WebSite","@id":"https:\/\/www.meetecho.com\/blog\/#website","url":"https:\/\/www.meetecho.com\/blog\/","name":"Meetecho Blog","description":"What's cooking in Meetecho?","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.meetecho.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Meetecho Blog","og:type":"article","og:title":"Habemus Data Channels! | Meetecho Blog","og:description":"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way","og:url":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/","article:published_time":"2014-06-02T14:43:40+00:00","article:modified_time":"2016-12-22T17:17:12+00:00","article:author":"https:\/\/www.facebook.com\/DelusionsMaster","twitter:card":"summary","twitter:title":"Habemus Data Channels! | Meetecho Blog","twitter:description":"Work is moving on fast on our WebRTC gateway Janus. Just these latest weeks, besides improving the overall architecture and performances, we added several features that we were interested in supporting, like RTCP muxing, bundling, Trickle ICE and more. One of the most interesting new features provided by WebRTC, though, are Data Channels, a way","twitter:creator":"@elminiero"},"aioseo_meta_data":{"post_id":"63","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"","og_description":"","og_object_type":"article","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":"","og_custom_url":null,"og_article_section":"","og_article_tags":"","twitter_use_og":false,"twitter_card":"summary","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":"Article","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,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-05-27 09:13:46","updated":"2025-09-17 10:20:39","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.meetecho.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.meetecho.com\/blog\/category\/webrtc\/\" title=\"WebRTC\">WebRTC<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHabemus Data Channels!\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.meetecho.com\/blog\/"},{"label":"WebRTC","link":"https:\/\/www.meetecho.com\/blog\/category\/webrtc\/"},{"label":"Habemus Data Channels!","link":"https:\/\/www.meetecho.com\/blog\/habemus-data-channels\/"}],"_links":{"self":[{"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":2,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"predecessor-version":[{"id":130,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/posts\/63\/revisions\/130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/media\/64"}],"wp:attachment":[{"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.meetecho.com\/blog\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}