{"id":169992,"date":"2024-07-26T08:39:37","date_gmt":"2024-07-26T12:39:37","guid":{"rendered":"https:\/\/innowise.com\/?p=169992"},"modified":"2025-09-05T09:20:08","modified_gmt":"2025-09-05T13:20:08","slug":"what-is-webrtc","status":"publish","type":"post","link":"https:\/\/innowise.com\/it\/blog\/what-is-webrtc\/","title":{"rendered":"Cos\u2019\u00e8 WebRTC | Comunicazione in tempo reale"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"169992\" class=\"elementor elementor-169992\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-202b490 main-block elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"202b490\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-64e776f\" data-id=\"64e776f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e2487f4 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"e2487f4\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"breadcrumbs flex\">\n    <div class=\"info\"> \n    <a href=\"https:\/\/innowise.com\/\">\n  Main\n  <\/a>\n    <\/div>\n    <div class=\"info\">\n         <a href=\"https:\/\/innowise.com\/about-us\/\">\n  About us\n  <\/a>\n    <\/div>\n     <div class=\"info\">\n          <a href=\"https:\/\/innowise.com\/blog\/\">\n  Blog\n  <\/a>\n    <\/div>\n<\/div>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\/\", \n  \"@type\": \"BreadcrumbList\", \n  \"itemListElement\": [{\n    \"@type\": \"ListItem\", \n    \"position\": 1, \n    \"name\": \"Innowise is on Top: We Are No. 554 on Inc. 5000 Annual List\",\n    \"item\": \"https:\/\/innowise.com\/blog\/inc-5000-puts-innowise-group-among-the-fastest-growing-technology-companies-in-the-usa-2022\/\"  \n  },{\n    \"@type\": \"ListItem\", \n    \"position\": 2, \n    \"name\": \"Blog\",\n    \"item\": \"https:\/\/innowise.com\/blog\/\"  \n  },{\n    \"@type\": \"ListItem\", \n    \"position\": 3, \n    \"name\": \"Main\",\n    \"item\": \"https:\/\/innowise.com\/\"  \n  }]\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4604f78 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"4604f78\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"article-info flex\">\n    <div class=\"info\"> \n    9 min read\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ed5a57 title-container elementor-widget elementor-widget-text-editor\" data-id=\"1ed5a57\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h1 style=\"font-weight: 400; color: #ffffff;\"><span style=\"font-weight: 400;\">What is WebRTC? Extending real-time communication<\/span><\/h1>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42fcee3 elementor-widget__width-initial elementor-widget elementor-widget-shortcode\" data-id=\"42fcee3\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[display_tags]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fa36b0a article-description elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fa36b0a\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-a7ef543 author-article\" data-id=\"a7ef543\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b2d91e7 elementor-widget elementor-widget-heading\" data-id=\"b2d91e7\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What is WebRTC? Extending real-time communication<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9601a73 elementor-widget elementor-widget-text-editor\" data-id=\"9601a73\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Hate to state the obvious here, but the modern world has gone full digital. And as you talk to your colleagues over Zoom, and cars talk to mobile apps, and ACs talk to thermostats, and doorbells talk to home servers, there\u2019s one thing that renders this arrangement less efficient as we\u2019d like.<\/span><\/p><p><span style=\"font-weight: 400;\">It\u2019s latency and bad connection that ultimately lead to customer dissatisfaction with connected products and services.<\/span><\/p><p><span style=\"font-weight: 400;\">Today, we discuss how WebRTC improves connection between peers, enhancing user experience.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf3c389 elementor-widget-tablet__width-initial elementor-widget elementor-widget-image\" data-id=\"cf3c389\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Frame-1214135189.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"Frame 1214135189\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTcwMDE2LCJ1cmwiOiJodHRwczpcL1wvaW5ub3dpc2UuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wN1wvRnJhbWUtMTIxNDEzNTE4OS5qcGcifQ%3D%3D\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"459\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Frame-1214135189.jpg\" class=\"attachment-full size-full wp-image-170016\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Frame-1214135189.jpg 1000w, https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Frame-1214135189-300x138.jpg 300w, https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Frame-1214135189-768x353.jpg 768w, https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Frame-1214135189-18x8.jpg 18w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-efc6e7e elementor-widget elementor-widget-text-editor\" data-id=\"efc6e7e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Overview of WebRTC development<\/span><\/h2><p><span style=\"font-weight: 400;\">Before getting into it, we\u2019ll first debunk the notion of technology.<\/span><\/p><p><span style=\"font-weight: 400;\">WebRTC is an open real-time communication technology that streamlines data transfers over the internet, prioritizing low latency and high speed. Built on API without the reliance on plugins, it is highly compatible and supported by all major browsers. For native Android and iOS applications, a library offers the same functionality as on the web and is easy to implement. The WebRTC project is open-source and enjoys support from industry leaders like Apple, Google, Microsoft, and Mozilla.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3729ae1 e-con-full e-flex e-con e-parent\" data-id=\"3729ae1\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6f57f3e elementor-widget elementor-widget-text-editor\" data-id=\"6f57f3e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>&#8220;Before open protocols came along, businesses had to build proprietary software for video conferencing. This meant not only taking on a big upfront investment but also keeping around a permanent in-house team to support the solution, fix bugs, and make sure it worked with other parts of the organization\u2019s digital system.<\/p><p>With WebRTC, things have changed. They\u2019ve brought the same functionality directly to your browser. No more tinkering around with clunky, limited software \u2013 simply use a browser to connect from almost any device and you\u2019re good to go.&#8221;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b44647d e-grid e-con-full e-con e-child\" data-id=\"b44647d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-530b1f1 elementor-widget elementor-widget-image\" data-id=\"530b1f1\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"80\" height=\"80\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Ellipse-644.png\" class=\"attachment-full size-full wp-image-169999\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Ellipse-644.png 80w, https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Ellipse-644-12x12.png 12w\" sizes=\"(max-width: 80px) 100vw, 80px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa47e69 quoters elementor-widget elementor-widget-text-editor\" data-id=\"aa47e69\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"\"><strong><a href=\"https:\/\/innowise.com\/authors\/dmitry-nazarevich\/\">Dmitry Nazerevich<\/a><\/strong><\/p><p class=\"grey\">CTO at Innowise<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-516aa5b elementor-widget elementor-widget-text-editor\" data-id=\"516aa5b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Imagine the convenience and efficiency this brings to your team meetings or client consultations \u2013 allowing easy, straightforward communication minus the traditional hurdles.<\/span><\/p><p><span style=\"font-weight: 400;\">But WebRTC&#8217;s usefulness doesn\u2019t end at video conferencing: its ability to transfer almost any data with low latency makes it a go-to solution for IoT developers. In the IoT industry, WebRTC facilitates low latency data transmissions for smart home devices, telehealth solutions, supply management, and more. With this technology becoming more and more available along with demand growth, companies are looking for ways to safely and quickly relay data \u2013 and many are turning to WebRTC for this very reason.<\/span><\/p><p><span style=\"font-weight: 400;\">Consider a scenario where a doctor needs to monitor a patient&#8217;s vital signs remotely in real time. Using WebRTC, the data can be securely transmitted with minimal delay, ensuring well-timed medical interventions. Or think about smart home devices, where instant video feeds from security cameras or doorbells are relayed to your smartphone. The low latency and high reliability of WebRTC make it an ideal choice for these kinds of tasks.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2cc1ed5 e-flex e-con-boxed e-con e-parent\" data-id=\"2cc1ed5\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-131a66a elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"131a66a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Need a solution for your IoT products?<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a21850a cta-desc-text elementor-widget elementor-widget-text-editor\" data-id=\"a21850a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">We leverage WebRTC to build software solutions that guarantee stable performance.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67205c5 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"67205c5\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Connect your ecosystem<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-667b6cc elementor-widget elementor-widget-text-editor\" data-id=\"667b6cc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">How WebRTC works<\/span><\/h2><p><span style=\"font-weight: 400;\">The main shtick of WebRTC is that it directly connects the peers without the need of an intermediary. Here\u2019s a breakdown of the entire data transmission process that allows us to see how WebRTC achieves minimal latency.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cfec492 e-grid e-con-full e-con e-parent\" data-id=\"cfec492\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1f18126 e-grid e-con-boxed e-con e-child\" data-id=\"1f18126\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-bc6bb31 e-flex e-con-boxed e-con e-child\" data-id=\"bc6bb31\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d354d9 elementor-widget elementor-widget-heading\" data-id=\"6d354d9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">01<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c0dc73 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"4c0dc73\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"8\" height=\"17\" viewBox=\"0 0 8 17\" fill=\"none\"><path d=\"M4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5ZM4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5Z\" fill=\"#2E2E2E\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-526604e e-grid e-con-full e-con e-child\" data-id=\"526604e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67143cf andr-app-h3 elementor-widget elementor-widget-heading\" data-id=\"67143cf\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Peer connection establishment<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52e626c elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"52e626c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The ICE framework finds the best path to connect the peers by collecting network candidates (IP addresses and ports) and testing connectivity. ICE can work over different network configurations, including Network Address Translations (NATs) and firewalls, to keep this connection stable.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-266840d e-grid e-con-boxed e-con e-child\" data-id=\"266840d\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a3d6344 e-flex e-con-boxed e-con e-child\" data-id=\"a3d6344\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-739599e elementor-widget elementor-widget-heading\" data-id=\"739599e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">02<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-247c25e elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"247c25e\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"8\" height=\"17\" viewBox=\"0 0 8 17\" fill=\"none\"><path d=\"M4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5ZM4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5Z\" fill=\"#2E2E2E\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-30b3a2c e-grid e-con-full e-con e-child\" data-id=\"30b3a2c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9adbbf1 andr-app-h3 elementor-widget elementor-widget-heading\" data-id=\"9adbbf1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Network address translation traversal<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-895d484 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"895d484\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">WebRTC uses STUN servers to discover the public IP address and port allocated by the NAT. If direct peer-to-peer communication isn\u2019t possible, TURN servers are used to relay the media traffic \u2013 meaning that the connection is maintained even through NATs and firewalls.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-19cb360 e-grid e-con-boxed e-con e-child\" data-id=\"19cb360\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-233bc28 e-flex e-con-boxed e-con e-child\" data-id=\"233bc28\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24c2103 elementor-widget elementor-widget-heading\" data-id=\"24c2103\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">03<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c737a98 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"c737a98\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"8\" height=\"17\" viewBox=\"0 0 8 17\" fill=\"none\"><path d=\"M4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5ZM4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5Z\" fill=\"#2E2E2E\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f2ea1f e-grid e-con-full e-con e-child\" data-id=\"1f2ea1f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-34723dd andr-app-h3 elementor-widget elementor-widget-heading\" data-id=\"34723dd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Encryption<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62b99e9 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"62b99e9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">WebRTC encrypts data channels and media streams using Datagram Transport Layer Security (DTLS) and Secure Real-time Transport Protocol (SRTP). This ensures that all communication is secure and protected from eavesdropping or tampering.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1038b03 e-grid e-con-boxed e-con e-child\" data-id=\"1038b03\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-fa1589c e-flex e-con-boxed e-con e-child\" data-id=\"fa1589c\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca524c4 elementor-widget elementor-widget-heading\" data-id=\"ca524c4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">04<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-189b3e5 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"189b3e5\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"8\" height=\"17\" viewBox=\"0 0 8 17\" fill=\"none\"><path d=\"M4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5ZM4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5Z\" fill=\"#2E2E2E\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5a1fc31 e-grid e-con-full e-con e-child\" data-id=\"5a1fc31\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32c5dae andr-app-h3 elementor-widget elementor-widget-heading\" data-id=\"32c5dae\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Media stream handling<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54892c7 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"54892c7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The GetUserMedia API allows web applications to access media streams from the user&#8217;s device. Once it\u2019s grabbed that media, it hands it over to WebRTC, which gets it ready to share. These media streams are then packetized and transmitted over Real-time Transport Protocol (RTP), making sure everything is in sync and time-stamped.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-319cfad e-grid e-con-boxed e-con e-child\" data-id=\"319cfad\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e8a3901 e-flex e-con-boxed e-con e-child\" data-id=\"e8a3901\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8a7140 elementor-widget elementor-widget-heading\" data-id=\"d8a7140\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">05<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf27bd1 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"bf27bd1\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"8\" height=\"17\" viewBox=\"0 0 8 17\" fill=\"none\"><path d=\"M4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5ZM4.35355 16.3536C4.15829 16.5488 3.84171 16.5488 3.64644 16.3536L0.464464 13.1716C0.269202 12.9763 0.269202 12.6597 0.464464 12.4645C0.659727 12.2692 0.976309 12.2692 1.17157 12.4645L4 15.2929L6.82843 12.4645C7.02369 12.2692 7.34027 12.2692 7.53553 12.4645C7.73079 12.6597 7.73079 12.9763 7.53553 13.1716L4.35355 16.3536ZM4.5 6.55671e-08L4.5 1L3.5 1L3.5 -6.55671e-08L4.5 6.55671e-08ZM4.5 3L4.5 5H3.5L3.5 3H4.5ZM4.5 7L4.5 9H3.5L3.5 7H4.5ZM4.5 11L4.5 13H3.5L3.5 11H4.5ZM4.5 15L4.5 16H3.5L3.5 15H4.5Z\" fill=\"#2E2E2E\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3ed7e2b e-grid e-con-full e-con e-child\" data-id=\"3ed7e2b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d296eca andr-app-h3 elementor-widget elementor-widget-heading\" data-id=\"d296eca\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Codec negotiation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f7a4ee3 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"f7a4ee3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">During the signaling process, the peers negotiate the codecs for the communication session. This ensures that both parties can encode and decode the media streams in a compatible format, allowing for smooth communication.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f90482e e-grid e-con-boxed e-con e-child\" data-id=\"f90482e\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-7b58657 e-flex e-con-boxed e-con e-child\" data-id=\"7b58657\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a29ac24 elementor-widget elementor-widget-heading\" data-id=\"a29ac24\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">06<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-408b168 e-grid e-con-full e-con e-child\" data-id=\"408b168\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-db495e7 andr-app-h3 elementor-widget elementor-widget-heading\" data-id=\"db495e7\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Real-time communication<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1bc8af elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"e1bc8af\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Once the connection is established, the peers exchange media streams directly without an intermediary server. This peer-to-peer setup helps achieve low-latency, real-time communication \u2013 resulting in a stutter-free and responsive user experience.<\/span><\/p><p><span style=\"font-weight: 400;\">These protocols let WebRTC guarantee a stable connection between peers, which is beneficial for cases that require real-time data exchange, such as video streaming, calls, telemedicine, IoT, and other use cases.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5a0c5e elementor-widget elementor-widget-text-editor\" data-id=\"b5a0c5e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">Benefits of WebRTC for web and mobile app development<\/span><\/h2>\n<span style=\"font-weight: 400;\">WebRTC is favored by developers looking to implement real-time communication features thanks to its numerous advantages regarding ease of implementation and connection stability. So, what exactly are these advantages?<\/span>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-66f4184 e-flex e-con-boxed e-con e-parent\" data-id=\"66f4184\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97577ff tabs-container horisontal-tabs e-n-tabs-mobile elementor-widget elementor-widget-n-tabs\" data-id=\"97577ff\" data-element_type=\"widget\" data-settings=\"{&quot;tabs_justify_horizontal&quot;:&quot;start&quot;,&quot;horizontal_scroll&quot;:&quot;enable&quot;}\" data-widget_type=\"nested-tabs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-n-tabs\" data-widget-number=\"158693375\" aria-label=\"Schede. Apri gli elementi con Invio o Spazio, chiudili con Esc e naviga con i tasti freccia.\">\n\t\t\t<div class=\"e-n-tabs-heading\" role=\"tablist\">\n\t\t\t\t\t<button id=\"e-n-tab-title-1586933751\" class=\"e-n-tab-title\" aria-selected=\"true\" data-tab-index=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-n-tab-content-1586933751\" style=\"--n-tabs-title-order: 1;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tReal-time communication\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1586933752\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1586933752\" style=\"--n-tabs-title-order: 2;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tSecurity\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1586933753\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1586933753\" style=\"--n-tabs-title-order: 3;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tInteroperability\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1586933754\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"4\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1586933754\" style=\"--n-tabs-title-order: 4;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tCost efficiency\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1586933755\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"5\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1586933755\" style=\"--n-tabs-title-order: 5;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tFlexibility and scalability\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t<div class=\"e-n-tabs-content\">\n\t\t\t\t<div id=\"e-n-tab-content-1586933751\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1586933751\" data-tab-index=\"1\" style=\"--n-tabs-title-order: 1;\" class=\"e-active elementor-element elementor-element-2af9ef6 e-con-full tab-content-container e-flex e-con e-child\" data-id=\"2af9ef6\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3d566d0 e-grid e-con-full e-con e-child\" data-id=\"3d566d0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57ff108 elementor-widget elementor-widget-text-editor\" data-id=\"57ff108\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"margin-bottom: 20px;\"><span style=\"font-weight: 400;\">Low latency and high efficiency: WebRTC makes real-time communication with minimal delay a breeze. Its peer-to-peer architecture lets data be transmitted directly between users \u2013 eliminating server-related delays, which is important for apps where even minor setbacks can impact user experience.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-1586933752\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1586933752\" data-tab-index=\"2\" style=\"--n-tabs-title-order: 2;\" class=\" elementor-element elementor-element-011068d e-con-full tab-content-container e-flex e-con e-child\" data-id=\"011068d\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e6a18db e-grid e-con-full e-con e-child\" data-id=\"e6a18db\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-200ef18 elementor-widget elementor-widget-text-editor\" data-id=\"200ef18\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"margin-bottom: 20px;\"><span style=\"font-weight: 400;\">Built-in encryption: WebRTC encrypts the data using protocols such as DTLS and SRTP. to protect users from data breaches. The measures implemented in WebRTC also eliminate the need for additional features.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-1586933753\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1586933753\" data-tab-index=\"3\" style=\"--n-tabs-title-order: 3;\" class=\" elementor-element elementor-element-a6eac27 e-con-full e-flex e-con e-child\" data-id=\"a6eac27\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-eb5523e e-grid e-con-full e-con e-child\" data-id=\"eb5523e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-301deef elementor-widget elementor-widget-text-editor\" data-id=\"301deef\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"margin-bottom: 20px;\"><span style=\"font-weight: 400;\">Compatibility with various platforms: WebRTC is an open standard supported by all major web browsers and operating systems. This allows developers to target a broader audience with their apps without worrying about compatibility issues.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-1586933754\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1586933754\" data-tab-index=\"4\" style=\"--n-tabs-title-order: 4;\" class=\" elementor-element elementor-element-bd4b826 e-con-full e-flex e-con e-child\" data-id=\"bd4b826\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-29630d0 e-grid e-con-full e-con e-child\" data-id=\"29630d0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13e3c30 elementor-widget elementor-widget-text-editor\" data-id=\"13e3c30\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<span style=\"font-weight: 400;\">Lower server load: WebRTC exchanges data between peers, lessening the strain on server resources. This reduction in server load translates to lower operational costs for developers and businesses.<\/span>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-1586933755\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1586933755\" data-tab-index=\"5\" style=\"--n-tabs-title-order: 5;\" class=\" elementor-element elementor-element-cfe3278 e-flex e-con-boxed e-con e-child\" data-id=\"cfe3278\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-1ba4a0e e-grid e-con-full e-con e-child\" data-id=\"1ba4a0e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e91d73a elementor-widget elementor-widget-text-editor\" data-id=\"e91d73a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"margin-bottom: 20px;\"><span style=\"font-weight: 400;\">Adaptable to different network conditions: WebRTC uses ICE to find the best path for data transmission, which helps it optimize performance and maintain connection in challenging environments.<\/span><\/p>\n<p style=\"margin-bottom: 20px;\"><span style=\"font-weight: 400;\">Easily scalable: whether for small-scale usage like personal video calls or large-scale implementations such as live streaming events, WebRTC offers the scalability needed to meet different demands.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1a8578 elementor-widget elementor-widget-text-editor\" data-id=\"c1a8578\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<span style=\"font-weight: 400;\">To sum it up, WebRTC is a solid, secure, and cost-effective platform for real-time communication, offering significant benefits for web and mobile app development. Its low latency, built-in security, broad compatibility, and adaptability make it an invaluable tool for developers aiming to deliver high-quality, real-time communication experiences.<\/span>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e36562d e-flex e-con-boxed e-con e-parent\" data-id=\"e36562d\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b07c4c6 elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"b07c4c6\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Boost retention and satisfaction rates with your users.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-275f48e elementor-widget elementor-widget-text-editor\" data-id=\"275f48e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">With a reliable connection, your service becomes an extension of their everyday lives.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4b77aa elementor-align-center elementor-widget elementor-widget-button\" data-id=\"c4b77aa\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Collaborate with experts<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9111f1a elementor-widget elementor-widget-text-editor\" data-id=\"9111f1a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><span style=\"font-weight: 400;\">WebRTC use cases<\/span><\/h2><p>WebRTC is a versatile, lightning-fast solution that many businesses love and others can\u2019t live without. Here are some critical use cases where WebRTC shines:<\/p><h3>Real-time communication and conferencing<\/h3><p>Because WebRTC enables high-quality audio and video calls directly in the browser, there\u2019s no need to build separate apps or plugins to talk to people over the internet. Additionally, a browser-only conferencing solution is much more convenient for the end user: all they have to do is head to the website. No software to install or figure out: inviting other people is just a matter of sending a link.<\/p><p>One of the big names using WebRTC is Google Meet. While apps like Zoom may be native to the platform, they make it easy to send invites via web links.<\/p><p><span style=\"font-weight: 400;\">At Innowise, we have also completed several projects using WebRTC to transfer data without latency. Partnering with one of our clients, we have built a <\/span><a href=\"https:\/\/innowise.com\/services\/mobile-application-development\/\"><span style=\"font-weight: 400;\">comprehensive conferencing tool<\/span><\/a><span style=\"font-weight: 400;\"> that not only featured stable connection during virtual meetings, but also included schedule management and AI integration.<\/span><\/p><h3>Gaming<\/h3><p><span style=\"font-weight: 400;\">Regarding online gaming, lag is a foe more formidable than the opposing team. It is important that the in-game data and communications are transmitted without delay, as it is shier seconds that decide the outcome.<\/span><\/p><p><span style=\"font-weight: 400;\">This is why many gaming companies build their products relying on WebRTC for data transmission. Cloud gaming services like NVIDIA GeForce Now and chat apps used by gamers like Discord are prime examples.<\/span><\/p><h3>Video streaming<\/h3><p><span style=\"font-weight: 400;\">WebRTC&#8217;s ability to handle real-time media streams makes it an excellent choice for video streaming applications, providing a smooth and responsive viewing experience.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Notable examples include Netflix Party: an extension that uses WebRTC to synchronize video playback and enable real-time chat among viewers watching Netflix together. Twitch, a popular streaming platform for gamers, also uses WebRTC to allow viewers to experience real-time interaction with streamers.<\/span><\/p><h3>Internet of Things<\/h3><p><span style=\"font-weight: 400;\">IoT is another field of technology where responsiveness is expected, not appreciated. Devices like Nest Cam use WebRTC to stream data to users&#8217; smartphones in real time, and platforms like Teladoc use it to facilitate real-time video consultations between doctors and patients.<\/span><\/p><h3>Customer service and support<\/h3><p>Having a stable and quick connection with WebRTC can seriously boost the overall user experience by providing immediate assistance whenever it\u2019s needed. Apps like Zendesk and Intercom integrate WebRTC to offer real-time chat and video support, helping businesses solve their customers\u2019 issues as quickly as possible.<\/p><h3>Online education<\/h3><p>WebRTC helps make education more accessible through online learning tools that leverage WebRTC for high-quality connection. For people in underserved communities where reliable internet may be hard to access, WebRTC is a big help.<\/p><p>The online education sector greatly benefits from WebRTC&#8217;s real-time capabilities, which facilitate interactive and engaging learning experiences. Online LMSs like Coursera rely on WebRTC to offer real-time discussions and collaborative learning experiences, enhancing the effectiveness of their online courses.<\/p><p>In short, WebRTC&#8217;s flexibility and speed make it a must-have for all sorts of industries \u2013 from communication and gaming to IoT and online education. By enabling real-time interactions, WebRTC dramatically improves the user experience and meets the growing demand for immediate connectivity.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5bf148a conclusion-section elementor-widget elementor-widget-text-editor\" data-id=\"5bf148a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>To wrap things up<\/h2><p>Whether you\u2019re boosting your remote work setup to eradicating gaming lag, WebRTC has proven to be a must-have piece of tech. Its ability to deliver low-latency, high-quality communication directly through browsers or mobile apps eliminates many traditional barriers to connectivity.<\/p><p>WebRTC&#8217;s broad compatibility and ease of implementation have made it a popular choice for businesses across many industries. By reducing the need for proprietary software and extensive server infrastructure, WebRTC not only lowers operational costs but also accelerates the deployment of real-time communication features. Its robust security protocols ensure that data transmission remains secure \u2013 addressing one of the biggest concerns in today&#8217;s digital landscape.<\/p><p>As the adoption of this tech continues to grow, WebRTC is set to make even more waves in how we connect and communicate online.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-369fef3 table-content-container\" data-id=\"369fef3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t<div class=\"elementor-element elementor-element-384e6c7 author-wrapper e-flex e-con-boxed e-con e-parent\" data-id=\"384e6c7\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ce3732 elementor-widget elementor-widget-html\" data-id=\"9ce3732\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"author-wrap\">\r\n       <div class=\"author-info\">\r\n        <img decoding=\"async\"\r\n        class=\"author-info__img\"\r\n          src=\"https:\/\/innowise.com\/wp-content\/uploads\/2024\/07\/Ellipse-644.png\"\r\n          width=\"50\"\r\n          height=\"50\"\r\n          alt=\"author\"\r\n        \/>\r\n        <div class=\"author-info__personal-data\">\r\n          <a class=\"author-info__personal-data__name\" href=\"https:\/\/innowise.com\/authors\/dmitry-nazarevich\/\">\r\n            Dmitry Nazerevich\r\n          <\/a>\r\n          <span class=\"author-info__role\">CTO<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"author-gray-line\"><\/div>\r\n      <div class=\"author-date-publish\">\r\n        <span>Date:<\/span> <span>Jul 26, 2024<\/span>\r\n      <\/div>\r\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-886451f table-content-container stickyWrapper72 e-con-full e-flex e-con e-child\" data-id=\"886451f\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3a9c7fd e-con-full stickyTable e-flex e-con e-child\" data-id=\"3a9c7fd\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3899031 author-block e-con-full e-flex e-con e-child\" data-id=\"3899031\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-982e092 ddcv elementor-widget elementor-widget-html\" data-id=\"982e092\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n\r\n.article-description > .e-con-inner{\r\n     align-items: baseline !important;\r\n}\r\n\r\n.toc-wrapper{\r\n    height: 100%;\r\n}\r\n\r\n.toc-wrapper .toc-2{\r\n    overflow-y: auto;\r\n}\r\n\r\n.toc-wrapper .toc-2::-webkit-scrollbar\r\n {\r\n    position: absolute !important;\r\n    width: 4px !important;\r\n    background-color: #F5F5F7 !important;\r\n}\r\n\r\n.toc-wrapper .toc::-webkit-scrollbar-thumb {\r\n    position: absolute !important;\r\n    background-color: #999999 !important;\r\n    border-radius: 4px !important;\r\n}\r\n\r\n.stickyWrapper72 {\r\n    position: sticky;\r\n    top: 132px;\r\n    bottom: auto;   \r\n}  \r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", ()=>{\r\n        \r\nconst headerElement = document.querySelector(\".new-menu\");\r\n\r\nconst stickyElement = document.querySelector(\".stickyWrapper72\");\r\n\r\nconst headerElementH = headerElement.clientHeight;\r\n\r\nstickyElement.style.top =  headerElementH + 60 + \"px\"\r\n        \r\n});\r\n<\/script>\r\n\r\n<!--NOTE Change data-id in wrapper styles for hide this block on the mobile device screen-->\r\n<div class=\"toc-wrapper\">\r\n  <h4 class=\"toc-title\">Table of contents<\/h4>\r\n  <div class=\"toc toc-2\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n  \/\/NOTE Add the value from h2 as the key and the text you want to display as the key value in LINKS variable:\r\n  \/\/   const LINKS = {\r\n  \/\/       \"The demand for retail digital transformation\": \"The demand\"\r\n  \/\/   }\r\n\r\n  const LINKS = {\r\n    \"Unleashing the power of .NET 8\": \"gggggg\",\r\n    \"Revamping legacy systems: unlocking business potential through software modernization\":\r\n      \"hello\",\r\n  };\r\n\r\n  const OFFSET = 70;\r\n   const PADDING_BOTTOM_FOR_SCROLL = 100;\r\n  let headerList = [];\r\n  let allLinks = [];\r\n  \r\n  let ticking = false;\r\n     \r\n\r\n  const createList = () => {\r\n      \r\n      console.log('create');\r\n      \r\n      \r\n    const tocTarget = document.querySelector(\".toc.toc-2\");\r\n    const toc = document.createElement(\"ul\");\r\n    \r\n    \r\n    \r\n     headerList = [...document.querySelectorAll(\"h2\")];\r\n\r\n\r\n    \r\n    headerList = headerList.slice(0, -3);\r\n    \r\n    \r\n    \r\n    \r\n   headerList.forEach((header,index) => {\r\n      const headerId = header.getAttribute(\"id\");\r\n      const headerText =\r\n        header.dataset.title && header.dataset.title !== \"\"\r\n          ? header.dataset.title\r\n          : header.textContent;\r\n          \r\n\r\n      const headerTocText = header.dataset.title;\r\n\r\n      const idFromText =\r\n        !headerId || headerId === \"\"\r\n          ? headerText\r\n              .toLowerCase()\r\n              .replace(\/[^\\w ]+\/g, \"\")\r\n              .replace(\/ +\/g, \"-\")\r\n          : headerId;\r\n          \r\n         \r\n\r\n      const newListItem = document.createElement(\"li\");\r\n      const newLink = document.createElement(\"a\");\r\n      newLink.setAttribute(\"href\", \"#\" + idFromText);\r\n      newLink.textContent = LINKS[headerText] || headerText;\r\n\r\n      newLink.addEventListener(\"click\", (e) => {\r\n          \r\n        e.preventDefault();\r\n        const y =\r\n          header.getBoundingClientRect().top +\r\n          window.pageYOffset -\r\n          PADDING_BOTTOM_FOR_SCROLL -\r\n          OFFSET;\r\n          ticking = true; \r\n        window.scrollTo({ top: y, behavior: \"smooth\" });\r\n        \r\n        setTimeout(()=>{\r\n            ticking = false;\r\n        },500);\r\n        \r\n      });\r\n      \r\n\r\n      newListItem.appendChild(newLink);\r\n    toc.appendChild(newListItem);\r\n    \r\n    \r\n    });\r\n    tocTarget.appendChild(toc);\r\n    allLinks = Array.from(document.querySelector(\".toc.toc-2\").querySelectorAll(\"ul li\"));\r\n  };\r\n\r\n  const setContainerHeight = () => {\r\n    const windowHeight = window.innerHeight;\r\n    const tocContainer = document.querySelector(\".ddcv\");\r\n\r\n    tocContainer.style.maxHeight = \"calc(100vh - 230px)\";\r\n    tocContainer.style.minHeight = \"200px\";\r\n  };\r\n\r\n\r\n  const checkScroll = () => {\r\n      const windowHeight = window.innerHeight;\r\n      const scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n\r\n      let selectedHeaderIndex = -1;\r\n\r\n      headerList.forEach((header, index) => {\r\n        \r\n  const posTop = header.getBoundingClientRect().top;\r\n       \r\n\r\n const isInViewport = posTop + elem.clientHeight <= window.innerHeight ;\r\n \r\n console.log(isInViewport,index);\r\n \r\n if(isInViewport){\r\n      selectedHeaderIndex = index;\r\n }\r\n        \r\n\r\n\r\n        \r\n      });\r\n      \r\n\r\n\r\n        allLinks.forEach((link, i) => {\r\n            if(i === selectedHeaderIndex){\r\n              link.classList.remove(\"pre-active\");  \r\n              link.classList.add(\"active\");\r\n            }\r\n            if(i < selectedHeaderIndex){\r\n              link.classList.add(\"pre-active\"); \r\n               link.classList.remove(\"active\");\r\n            }\r\n             if(i > selectedHeaderIndex){\r\n            link.classList.remove(\"pre-active\");\r\n            link.classList.remove(\"active\");\r\n            }\r\n            \r\n            \r\n            \r\n        });\r\n        \r\n\r\n\r\n  };\r\n\r\n  const loadAllImages = () => {\r\n    const images = document.getElementsByTagName(\"img\");\r\n\r\n    for (let i = 0; i < images.length; i++) {\r\n      const img = images[i];\r\n      const src = img.getAttribute(\"data-src\") || img.src;\r\n      img.src = src;\r\n    }\r\n  };\r\n\r\n  loadAllImages();\r\n  \r\n  \r\n  \r\n\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n     setTimeout(()=>{\r\n           createList();\r\n    setContainerHeight();\r\n  \r\n    \r\n    document.addEventListener(\"scroll\", (event) => {\r\n  if (!ticking) {\r\n    checkScroll();\r\n  }\r\n});\r\n    \r\n    \r\n},300) \r\n\r\n    \r\n  });\r\n\r\n\r\n  \r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-4ba29f4 e-flex e-con-boxed e-con e-parent\" data-id=\"4ba29f4\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f62c7f2 elementor-widget elementor-widget-shortcode\" data-id=\"f62c7f2\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f100240-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"100240\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/it\/wp-json\/wp\/v2\/posts\/169992#wpcf7-f100240-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"100240\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f100240-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<style>\n#form-templates .contact__info {\n  background-color: #f4f4f4;\n  padding: 70px 44px 70px 50px;\n  position: relative;\n  max-width: 540px;\n  width: 100%;\nborder: 1px solid #AEB1B7;\n}\n\n#form-templates .contact__info-background {\n  z-index: -1;\n  position: absolute;\n  top: 20px;\n  left: 20px;\n  width: 100%;\n  height: 100%;\n  border: 1px dashed #ef4557;\n}\n\n\n#form-templates .new-container{\ndisplay: flex;\njustify-content: space-between;\nflex-wrap: wrap;\n}\n\n\n#form-templates{\npadding: 100px 15px 100px 15px;        \n}\n\n#form-templates .contact__info-heading {\n  font-family: 'Sora' !important;\n  font-style: normal !important;\n  font-weight: 400 !important;\n  font-size: 36px !important;\n  line-height: 46px !important;\n  color: #2E2E2E !important;\n   margin-bottom: 60px !important;\n\n}\n\n\n#form-templates .message label{\ncolor: #585858 !important;   \n}\n\n.elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n font-size: 60px !important;\n  line-height: 70px !important;\n  font-family: \"Sora\", Sans-serif;\n  font-weight: 400;\n  margin: 0;  \n  margin-bottom: 20px;\n}\n\n\n\n\n.elementor-widget-container.form-template p{\n  font-family: \"Karla\", Sans-serif;\n  font-size: 22px;\n  font-weight: 400;\n  line-height: 28px;\n  color: var( --e-global-color-primary );\n  max-width: 700px;\n  margin: 0; \n  margin-bottom: 40px;\n} \n  \n\n\n.new-container #spinner{\nwidth: 50%;\nmax-width: 700px;\n}\n\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:30px; \n    \n}\n\n\n#form-templates .contact__info-heading {\n  margin-bottom: 67px;\n  font-size: 36px;\n  font-family: karla;\n  color:  #2E2E2E;\n\n  line-height: 49px;\n}\n\n#form-templates .contact__info-steps {\n  display: flex;\n  flex-direction: column;\n  max-width: 425x;\n  row-gap: 20px;\n  border-left: 1px solid #2e2e2e;\n}\n\n#form-templates .contact__info-block {\n  position: relative;\n  padding-left: 45px;\n}\n\n#form-templates .contact__info-block:last-child {\n  box-shadow: -1px 0 0 1px #f4f4f4;\n}\n\n#form-templates .contact__info-step {\n  position: absolute;\n  border: 1px solid #2e2e2e;\n  width: 40px;\n  height: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 20px;\n  left: -20px;\n  top: -8px;\n  background-color: #F4F4F4;\n  color:  #2E2E2E;\n\nfont-family: Karla;\nfont-weight: 700;\nfont-size: 18px;\nline-height: 28px;\n\n}\n\n.elementor-widget-global .contact__info-step {\n        color:  #2E2E2E;\n}\n\n#form-templates .contact__info-text {\n  margin: 0;\n  font-size: 16px;\n  line-height: 26px;\n  color: #2E2E2E;\n  font-family: karla;\n\n  width: 100%;\n}\n\n\n#form-templates .contact-us__send{\nflex-shrink: 0;\nmargin-top:0;\n}\n\n\n\n@media screen and (max-width: 1279px) {\n    .new-container #spinner{\n        width: 100%;\n        max-width:100%;\n        margin-bottom:40px;\n    }\n    \n\n    .new-container .contact__info {\n        max-width: 700px !important;\n    }\n    \n}\n\n\n@media screen and (max-width: 1279px) {\n#form-templates{\npadding: 60px 15px 70px 15px;     \n}\n}\n\n\n\n@media screen and (max-width: 767px) {\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:20px; \n \n}\n\n\n  #form-templates .contact__info {\n    padding: 20px 20px 40px 40px;\n    margin: 0 auto;\n  }\n\n\n#form-templates{\npadding: 40px 15px 50px 15px;  \n    \n}\n\n  \n   .new-container #spinner{\n       \n    margin-bottom:30px;   \n   }\n   \n   \n   .elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n   font-size: 32px !important;\n    line-height: 42px !important;    \n   }\n   \n   \n   .elementor-widget-container.form-template p{\n       \n    font-size: 16px;\n    line-height: 20px;  \n    margin-bottom: 30px;\n \n       \n   }\n   \n   #form-templates .contact__info-heading{\n   font-size: 24px !important;\n    line-height: 49px !important;    \n       \n   }\n   \n\n.mailToContact{\nmargin-top: 10px !important;        \n}\n   \n\n  #form-templates .contact__info-heading {\n    font-size: 24px;\n    margin-bottom: 37px;\n  }\n\n  #form-templates .contact__info-background {\n    top: 10px;\n    left: 10px;\n  }\n\n  #form-templates .contact__info-text {\n    font-size: 12px;\n    line-height: 20px;\n  }\n  \n  \n  #form-templates .contact__info-heading {\n   margin-bottom: 35px !important;\n\n}\n\n}\n\n@media (max-width: 767px) {\n    .mailToContact {\n        max-width: 100%;\n    }\n}\n<\/style>\n\n<script>\nwindow.addEventListener('hashchange',function(e){if(window.history.pushState){window.history.pushState('','\/',window.location.pathname)}else{window.location.hash=''}})\n<\/script>\n\n\n<div id=\"form-templates\">\n<div class=\"elementor-widget-container form-template\">\n<a name=\"contact-form\"><\/a>\n<h2>Contact us<\/h2>\n<p><a id=\"calendlylink\" style=\"color: #c63031; border-bottom: 1px solid #c63031; padding: 0;\">Book a call<\/a> or fill out the form below and we\u2019ll get back to you once we\u2019ve processed your request.<\/p>\n<\/div>\n\n<div class=\"new-container\">\n\n\n<div class=\"contact-us__main\" id=\"spinner\" data-no-defer=\"1\">\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"name\">\n<label>Name<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"field_name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__name\" id=\"contact-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name*\" value=\"\" type=\"text\" name=\"field_name\" \/><\/span>\n<\/div>\n\n<div class=\"company\">\n<label>Company<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__company\" id=\"contact-company\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company*\" value=\"\" type=\"text\" name=\"company\" \/><\/span>\n<\/div>\n\n<\/div>\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"email\">\n<label>Email<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email contact-us__email\" id=\"contact-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Corporate email*\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n<\/div>\n\n<div class=\"phone\">\n<label>Phone<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"tel\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel contact-us__phone\" id=\"contact-phone\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Phone*\" value=\"\" type=\"tel\" name=\"tel\" \/><\/span>\n<\/div>\n\n<\/div>\n<div class=\"contact-us__wrapper subj\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-recipient\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-subj_js\" aria-invalid=\"false\" name=\"your-recipient\"><option value=\"\">Subject*<\/option><option value=\"IT staff augmentation\">IT staff augmentation<\/option><option value=\"Turnkey product development\">Turnkey product development<\/option><option value=\"Support and enhancement\">Support and enhancement<\/option><option value=\"Careers\">Careers<\/option><option value=\"Other\">Other<\/option><\/select><\/span>\n\n<span class=\"wpcf7-form-control-wrap\" data-name=\"form-field-budget_js\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-budget_js\" aria-invalid=\"false\" name=\"form-field-budget_js\"><option value=\"\">Project budget<\/option><option value=\"Under $15K\">Under $15K<\/option><option value=\"$15K-$30K\">$15K-$30K<\/option><option value=\"$30K-$100K\">$30K-$100K<\/option><option value=\"$100K-$250K\">$100K-$250K<\/option><option value=\"$250K-$500K\">$250K-$500K<\/option><option value=\"More than $500K\">More than $500K<\/option><\/select><\/span>\n\n<\/div>\n\n\n<div class=\"message\">\n<label>Message<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"message\"><textarea cols=\"40\" rows=\"1\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required contact-us__message\" id=\"contact-message\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Describe your needs in detail*\" name=\"message\"><\/textarea><\/span>\n<\/div>\n\n<div class=\"atvoice-wrap\">\n\n<div class=\"voice-wrap\">\n<span id=\"voice-mut\" class=\"voicetext\">Send us a voice message<\/span>\n         <div class=\"qc_voice_audio_wrapper\">\n            <div class=\"qc_voice_audio_container\">\n                <div class=\"qc_voice_audio_upload_main\" id=\"qc_audio_main\">\n                    <a class=\"qc_audio_record_button\" id=\"qc_audio_record\" href=\"#\" aria-label=\"Record an audio message\">\n                        <span class=\"dashicons dashicons-microphone\"><\/span> \u00a0<\/a> \n                <\/div>\n\n                <div class=\"qc_voice_audio_recorder\" id=\"qc_audio_recorder\" style=\"display:none\">\n\n                <\/div>\n                <div class=\"qc_voice_audio_display\" id=\"qc_audio_display\"  style=\"display:none\">\n                    <audio id=\"qc-audio\" controls src=\"\"><\/audio>\n                    <span title=\"Remove and back to main upload screen.\" class=\"qc_audio_remove_button dashicons dashicons-trash\"><\/span>\n                <\/div>\n            <\/div>\n            <input type=\"hidden\" value=\"\" name=\"qcwpvoicemessage\" id=\"qc_audio_url\" \/>\n        <\/div>\n        \n<\/div>\n\n\n<div class=\"attach-wrap\">\n<span class=\"voicetext\">Attach documents<\/span>\n\n<div class='attachment'>\n\n<div class=\"downloaded\">\n<span><\/span>\n<div class=\"deleteFile\"><\/div>\n<\/div>\n\n<div class=\"attachmentButton\" onclick=\"(function cl(e){if(e.target.nodeName == 'DIV'){e.target.parentNode.children[1].children[0].click(); }})(arguments[0]);\">\n\n<div class=\"innerText\">Upload file<\/div>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"att-files\"><input size=\"40\" class=\"wpcf7-form-control wpcf7-file\" accept=\".jpg,.png,.jpeg,.pdf\" aria-invalid=\"false\" type=\"file\" name=\"att-files\" \/><\/span>\n\n<div class=\"tip\" onclick=\"event.stopPropagation()\">\n<p>You can attach 1 file up to 2MB. Valid file formats: pdf, jpg, jpeg, png.<\/p>\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<\/div>\n\n<div class=\"contact-us__wrapper\"> \n<p class=\"pp\">By clicking Send, you consent to Innowise processing your personal data per our<a href=\"\/privacy-notice\/\"> Privacy Policy <\/a>to provide you with relevant information. By submitting your phone number, you agree that we may contact you via voice calls, SMS, and messaging apps. Calling, message, and data rates may apply.<\/p>\n\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"scoring_point\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmCampaign\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmContent\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmMedium\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmSource\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmTerm\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"location\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"city\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"ip\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"Summ\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"gclid\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"rating\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlCompany\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlWithParams\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"audioMessageLink\" \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner contact-us__send\" id=\"contact-send-button\" type=\"submit\" value=\"Send\" \/>\n<\/div>\n\n<div class='mailToContact'>You can also send us your request <\/br>to <a href=\"mailto:contact@innowise.com\">contact@innowise.com<\/a><\/div>\n\n<\/div>\n\n<div class=\"elementor-widget-container\" style=\"z-index:1;\">\n<div class=\"contact__info\">\n  <div class=\"contact__info-background\"><\/div>\n  <div class=\"contact__info-heading\">What happens next?<\/div>\n  <div class=\"contact__info-steps\">\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">1<\/div>\n      <p class=\"contact__info-text\">Once we\u2019ve received and processed your request, we\u2019ll get back to you to detail your\n        project needs and sign an NDA to ensure confidentiality.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">2<\/div>\n      <p class=\"contact__info-text\">After examining your wants, needs, and expectations, our team will devise a project\n        proposal with the scope of work, team size, time, and cost estimates.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">3<\/div>\n      <p class=\"contact__info-text\">We\u2019ll arrange a meeting with you to discuss the offer and nail down the details.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">4<\/div>\n      <p class=\"contact__info-text\">Finally, we\u2019ll sign a contract and start working on your project right away.<\/p>\n    <\/div>\n  <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\n<\/div>\n\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"related_content_blog_container\">[related_content_list]<\/div><script>\n            jQuery( document ).ready(function($) {\n            var parentSection = $('[data-elementor-type=\"wp-page\"]');\n            if($('[data-elementor-type=\"wp-post\"]').length){\n                var parentSection = $('[data-elementor-type=\"wp-post\"]');\n            }\n            \n                parentSection.children().last().before($('.related_content_blog_container'));\n            });\n            <\/script><div class=\"other_services_container\">[need_other_services_v2]<\/div><script>\n                    jQuery( document ).ready(function($) {\n                        var parentSection = $('[data-elementor-type=\"wp-page\"]');\n                        if($('[data-elementor-type=\"wp-post\"]').length){\n                            var parentSection = $('[data-elementor-type=\"wp-post\"]');\n                        }\n                        \n                        console.log(parentSection);\n                        parentSection.children().last().before($('.other_services_container'));\n                        var sections = parentSection.find('.net-15.dt-16');\n                        for(var i = 0; i<sections.length; i++){\n                            if($(sections[i]).hasClass( 'net-15' ) && $(sections[i]).hasClass( 'dt-16' ) && $(sections[i]).hasClass( 'elementor-hidden-desktop' )==false){\n                                $(sections[i]).before($('.other_services_container'));   \n                            }\n                        }\n                        \n                    });\n                <\/script>","protected":false},"excerpt":{"rendered":"<p>Main About us Blog 9 min read What is WebRTC? Extending real-time communication [display_tags] What is WebRTC? Extending real-time communication Hate to state the obvious here, but the modern world has gone full digital. And as you talk to your colleagues over Zoom, and cars talk to mobile apps, and ACs talk to thermostats, and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":171954,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":true,"inline_featured_image":false,"footnotes":""},"categories":[128,1021,721,19],"class_list":["post-169992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-dmitry_author","category-solution","category-technology","tag-back-end-development","tag-mobile","tag-web"],"acf":[],"_links":{"self":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/posts\/169992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/comments?post=169992"}],"version-history":[{"count":0,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/posts\/169992\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/media\/171954"}],"wp:attachment":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/media?parent=169992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/categories?post=169992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/tags?post=169992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}