{"id":40,"date":"2026-04-07T16:23:12","date_gmt":"2026-04-07T16:23:12","guid":{"rendered":"http:\/\/localhost:8080\/knowledge-base\/asterisk-webrtc\/"},"modified":"2026-04-15T20:41:42","modified_gmt":"2026-04-15T20:41:42","slug":"asterisk-webrtc","status":"publish","type":"post","link":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/","title":{"rendered":"Asterisk WebRTC"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Asterisk WebRTC: A Comprehensive Guide<\/h2>\n\n\n\n<p>Web Real-Time Communication (WebRTC) enables real-time audio, video, and data sharing in web applications without plugins. This open-source technology, supported by all major browsers, provides developers with the tools to build P2P communication solutions ideal for voice and video applications.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.asterisk.org\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Asterisk<\/a>, a leading open-source telephony platform, can handle <a href=\"\/kb\/article\/what-is-webrtc\/\">WebRTC<\/a> signaling and media, making it a powerful choice for WebRTC solutions. By configuring Asterisk as a WebRTC-enabled SIP server, developers can enable browser-based calling and other real-time applications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Setting Up Asterisk for WebRTC<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Required Asterisk Modules<\/h3>\n\n\n\n<p>To integrate WebRTC, Asterisk requires several modules and configuration steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>res_http_websocket.so<\/strong>: Supports WebSockets for handling WebRTC signaling.<\/li>\n\n\n\n<li><strong>chan_sip.so<\/strong> or <strong>chan_pjsip.so<\/strong>: The SIP channels, with <code>chan_pjsip<\/code> preferred for newer installations.<\/li>\n\n\n\n<li><strong>res_rtp_asterisk.so<\/strong>: Handles Real-Time Protocol (RTP) streams.<\/li>\n\n\n\n<li><strong>res_srtp.so<\/strong>: Provides Secure Real-Time Protocol (SRTP) encryption for secure media transport.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Asterisk Configuration for WebRTC<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Enabling HTTP and WebSocket Support<\/h4>\n\n\n\n<p>WebRTC uses WebSocket (<code>wss:\/\/<\/code>) for SIP signaling, so enabling Asterisk\u2019s HTTP server is essential:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Edit <code>http.conf<\/code><\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   [general]\n   enabled=yes\n   bindaddr=0.0.0.0\n   bindport=8088\n   tlsenable=yes\n   tlsbindaddr=0.0.0.0:8089\n   tlscertfile=\/etc\/asterisk\/keys\/asterisk.pem<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Generate TLS Certificates<\/strong> (if you haven\u2019t already):<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   mkdir \/etc\/asterisk\/keys\n   cd \/etc\/asterisk\/keys\n   openssl req -new -x509 -days 365 -nodes -out asterisk.pem -keyout asterisk.pem<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Restart Asterisk<\/strong> to apply changes:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   sudo systemctl restart asterisk<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">SIP and WebRTC Configuration<\/h4>\n\n\n\n<p>Next, configure SIP (using <code>pjsip.conf<\/code>) to handle WebRTC clients:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[transport-wss]\ntype=transport\nprotocol=wss\nbind=0.0.0.0\n\n[transport-wss]\ntype=transport\nprotocol=wss\nbind=0.0.0.0\n\n[webrtc_user]\ntype=aor\ncontact=sip:webrtc_user@dynamic\n\n[webrtc_user]\ntype=auth\nauth_type=userpass\nusername=webrtc_user\npassword=your_password\n\n[webrtc_user]\ntype=endpoint\ncontext=default\ndisallow=all\nallow=opus,ulaw,vp8\n<strong>webrtc=yes<\/strong>\ntransport=transport-wss\naors=webrtc_user<\/code><\/pre>\n\n\n\n<p class=\"wp-block-hb-message is-style-info wp-block-hb-message--withicon\"><strong>Note:<\/strong> Since Asterisk 16, simply setting webrtc=yes is all you will need to allow an endpoint to work over WebRTC. This means with Siperb, you can simply enable this flag and make use of the Siperb <a href=\"\/kb\/article\/siperb-webrtc-client-web-tablet-and-mobile\/\">WebRTC Client.<\/a> What remain is to configure access for WebRTC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Explanation of Key Sections<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Transport-WSS<\/strong>: Configures WebSocket over TLS (WSS) for SIP signaling.<\/li>\n\n\n\n<li><strong>WebRTC User Configuration<\/strong>: Sets up a WebRTC-compatible SIP endpoint with DTLS encryption for media.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: WebRTC Client Setup with SIP.js<\/h2>\n\n\n\n<p>To connect to Asterisk, we\u2019ll use <strong>SIP.js<\/strong>, a JavaScript library for SIP over WebSocket.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installing SIP.js<\/h3>\n\n\n\n<p>Include SIP.js in your HTML file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;script src=\"https:\/\/unpkg.com\/sip.js@0.20.0\/dist\/sip.min.js\"&gt;&lt;\/script&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">SIP.js Client Configuration<\/h3>\n\n\n\n<p>Create a basic SIP.js client to connect to Asterisk:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const uri = 'sip:webrtc_user@your-asterisk-domain';\nconst transportOptions = {\n  wsServers: ['wss:\/\/your-asterisk-domain:8089\/ws'],\n  traceSip: true\n};\n\n\/\/ Initialize user agent\nconst userAgent = new SIP.UserAgent({\n  uri: SIP.UserAgent.makeURI(uri),\n  transportOptions: transportOptions,\n  authorizationUsername: 'webrtc_user',\n  authorizationPassword: 'your_password',\n  sessionDescriptionHandlerFactoryOptions: {\n    constraints: {\n      audio: true,\n      video: true\n    }\n  }\n});\n\nuserAgent.start();<\/code><\/pre>\n\n\n\n<p>Make sure you read this article on\u00a0<a href=\"\/kb\/article\/how-secure-is-my-password\/\">How Secure is My Password<\/a>, for valuable insight into SIP password security.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Making a Call with SIP.js<\/h3>\n\n\n\n<p>To make a call, use SIP.js to create a session and invite the destination:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function makeCall(targetUri) {\n  const target = SIP.UserAgent.makeURI(targetUri);\n\n  const options = {\n    sessionDescriptionHandlerOptions: {\n      constraints: {\n        audio: true,\n        video: true\n      }\n    }\n  };\n\n  const inviter = new SIP.Inviter(userAgent, target, options);\n\n  inviter.stateChange.addListener((state) =&gt; {\n    console.log(`Call state: ${state}`);\n  });\n\n  inviter.invite().catch(error =&gt; console.error(\"Call failed\", error));\n}\n\nmakeCall('sip:destination@your-asterisk-domain');<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Receiving a Call with SIP.js<\/h3>\n\n\n\n<p>To handle incoming calls, set up an event listener for <code>INVITE<\/code> requests:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>userAgent.delegate = {\n  onInvite(invitation) {\n    invitation.stateChange.addListener((state) =&gt; {\n      console.log(`Incoming call state: ${state}`);\n    });\n\n    \/\/ Auto-answer the call\n    const options = {\n      sessionDescriptionHandlerOptions: {\n        constraints: {\n          audio: true,\n          video: true\n        }\n      }\n    };\n\n    invitation.accept(options).catch(error =&gt; console.error(\"Failed to answer\", error));\n  }\n};<\/code><\/pre>\n\n\n\n<p>This configuration allows the client to automatically accept incoming calls and establish media connections with audio and video.<\/p>\n\n\n\n<p><strong>Siperb<\/strong>\u00a0simplifies WebRTC by providing a ready-to-use, robust framework that connects your existing PBX systems to WebRTC without the steep learning curve and development overhead. This not only accelerates deployment but also ensures that your solution is built on a foundation of proven reliability and enhanced security features. Additionally, SIPERB offers ongoing support and updates, which means you benefit from continuous improvements and adaptations to the latest communication technologies and standards, without diverting your internal resources away from your core business activities.\u00a0<a href=\"https:\/\/www.siperb.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.siperb.com\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>By following this guide, you can configure Asterisk to work with WebRTC and set up a SIP.js client to handle WebRTC calls. Asterisk\u2019s flexibility and SIP.js\u2019s compatibility make this setup ideal for building real-time web applications with voice and video capabilities.<\/p>\n\n\n\n<p>For production, consider:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Securing WebRTC signaling with firewalls and strong authentication.<\/li>\n\n\n\n<li>Testing NAT traversal solutions for various network setups.<\/li>\n\n\n\n<li>Monitoring and optimizing call quality for high-performance deployments.<\/li>\n<\/ul>\n\n\n\n<p>With this foundation, you can leverage WebRTC and Asterisk to develop scalable, browser-compatible communication solutions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide details how to set up Asterisk for WebRTC, enabling browser-based voice and video calls. It covers essential Asterisk configurations for WebSocket, DTLS, and SIP, along with SIP.js setup to create a WebRTC client for making and receiving calls.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[10],"tags":[],"class_list":["post-40","post","type-post","status-publish","format-standard","hentry","category-asterisk-and-freeswitch"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Configuring Asterisk for WebRTC \u2014 Siperb<\/title>\n<meta name=\"description\" content=\"Step-by-step guide to configuring Asterisk for WebRTC with Siperb \u2014 pjsip endpoint settings, TLS transport, and SRTP media configuration.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Configuring Asterisk for WebRTC \u2014 Siperb\" \/>\n<meta property=\"og:description\" content=\"Step-by-step guide to configuring Asterisk for WebRTC with Siperb \u2014 pjsip endpoint settings, TLS transport, and SRTP media configuration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/\" \/>\n<meta property=\"og:site_name\" content=\"Siperb\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-07T16:23:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-15T20:41:42+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\"},\"headline\":\"Asterisk WebRTC\",\"datePublished\":\"2026-04-07T16:23:12+00:00\",\"dateModified\":\"2026-04-15T20:41:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/\"},\"wordCount\":570,\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"articleSection\":[\"Asterisk and FreeSWITCH\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/\",\"name\":\"Configuring Asterisk for WebRTC \u2014 Siperb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\"},\"datePublished\":\"2026-04-07T16:23:12+00:00\",\"dateModified\":\"2026-04-15T20:41:42+00:00\",\"description\":\"Step-by-step guide to configuring Asterisk for WebRTC with Siperb \u2014 pjsip endpoint settings, TLS transport, and SRTP media configuration.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/asterisk-webrtc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Asterisk WebRTC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\",\"name\":\"Siperb\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\",\"name\":\"SIPERB LTD\",\"alternateName\":\"SIPERB\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/MobilePromo.webp\",\"contentUrl\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/MobilePromo.webp\",\"width\":1200,\"height\":670,\"caption\":\"SIPERB LTD\"},\"image\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/localhost:8080\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Configuring Asterisk for WebRTC \u2014 Siperb","description":"Step-by-step guide to configuring Asterisk for WebRTC with Siperb \u2014 pjsip endpoint settings, TLS transport, and SRTP media configuration.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/","og_locale":"en_US","og_type":"article","og_title":"Configuring Asterisk for WebRTC \u2014 Siperb","og_description":"Step-by-step guide to configuring Asterisk for WebRTC with Siperb \u2014 pjsip endpoint settings, TLS transport, and SRTP media configuration.","og_url":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/","og_site_name":"Siperb","article_published_time":"2026-04-07T16:23:12+00:00","article_modified_time":"2026-04-15T20:41:42+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/#article","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/"},"author":{"name":"admin","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111"},"headline":"Asterisk WebRTC","datePublished":"2026-04-07T16:23:12+00:00","dateModified":"2026-04-15T20:41:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/"},"wordCount":570,"publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"articleSection":["Asterisk and FreeSWITCH"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/","url":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/","name":"Configuring Asterisk for WebRTC \u2014 Siperb","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/#website"},"datePublished":"2026-04-07T16:23:12+00:00","dateModified":"2026-04-15T20:41:42+00:00","description":"Step-by-step guide to configuring Asterisk for WebRTC with Siperb \u2014 pjsip endpoint settings, TLS transport, and SRTP media configuration.","breadcrumb":{"@id":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.siperb.com\/kb\/asterisk-webrtc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.siperb.com\/kb\/"},{"@type":"ListItem","position":2,"name":"Asterisk WebRTC"}]},{"@type":"WebSite","@id":"https:\/\/www.siperb.com\/kb\/#website","url":"https:\/\/www.siperb.com\/kb\/","name":"Siperb","description":"","publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.siperb.com\/kb\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.siperb.com\/kb\/#organization","name":"SIPERB LTD","alternateName":"SIPERB","url":"https:\/\/www.siperb.com\/kb\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/logo\/image\/","url":"https:\/\/www.siperb.com\/kb\/wp-content\/uploads\/2024\/11\/MobilePromo.webp","contentUrl":"https:\/\/www.siperb.com\/kb\/wp-content\/uploads\/2024\/11\/MobilePromo.webp","width":1200,"height":670,"caption":"SIPERB LTD"},"image":{"@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/localhost:8080"]}]}},"_links":{"self":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/40","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/comments?post=40"}],"version-history":[{"count":3,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/40\/revisions"}],"predecessor-version":[{"id":13875,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/40\/revisions\/13875"}],"wp:attachment":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/media?parent=40"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/categories?post=40"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/tags?post=40"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}