{"id":41,"date":"2026-04-07T16:23:12","date_gmt":"2026-04-07T16:23:12","guid":{"rendered":"http:\/\/localhost:8080\/knowledge-base\/opensips-webrtc\/"},"modified":"2026-04-21T18:26:40","modified_gmt":"2026-04-21T18:26:40","slug":"opensips-webrtc","status":"publish","type":"post","link":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/","title":{"rendered":"OpenSIPS WebRTC"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">OpenSIPS WebRTC: A Comprehensive Guide with SIP.js<\/h2>\n\n\n\n<p>WebRTC (Web Real-Time Communication) is an open-source project supported by major web browsers, allowing real-time communication directly within web applications. It enables peer-to-peer (P2P) voice, video, and data sharing, and when integrated with a SIP server like <a href=\"https:\/\/www.opensips.org\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">OpenSIPS<\/a>, allows for robust, browser-based VoIP solutions. Click here for a more details explanation on <a href=\"\/kb\/article\/what-is-webrtc\/\">What is WebRTC<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Setting Up OpenSIPS for WebRTC<\/h2>\n\n\n\n<p>To bridge WebRTC with OpenSIPS, certain OpenSIPS modules and configurations are required.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Essential OpenSIPS Modules<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>nathelper<\/strong>: Helps handle Network Address Translation (NAT) issues by relaying SIP and RTP packets.<\/li>\n\n\n\n<li><strong>rtpproxy<\/strong> or <strong>mediaproxy<\/strong>: Facilitates RTP stream relays.<\/li>\n\n\n\n<li><strong>tls_mgm<\/strong>: Provides TLS support for encrypting SIP signaling.<\/li>\n\n\n\n<li><strong>proto_wss<\/strong>: Manages WebSocket connections over TLS, required for WebRTC\u2019s secure signaling.<\/li>\n\n\n\n<li><strong>sdpops<\/strong>: Handles SDP (Session Description Protocol) body modifications in SIP messages for WebRTC\u2019s SDP negotiation.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Basic OpenSIPS Configuration<\/h3>\n\n\n\n<p>Below is an example configuration for OpenSIPS that includes necessary modules for WebRTC integration. This example uses <code>rtpproxy<\/code> to relay RTP media streams and supports WebSocket-based SIP signaling.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Load necessary modules\nloadmodule \"nathelper.so\"\nloadmodule \"rtpproxy.so\"\nloadmodule \"tls_mgm.so\"\nloadmodule \"sipmsgops.so\"\nloadmodule \"sdpops.so\"\n\n# RTPProxy configuration for relaying media\nmodparam(\"rtpproxy\", \"rtpproxy_sock\", \"udp:localhost:7722\")\n\n# NAT and SDP adjustments for WebRTC clients\nroute {\n    # WebRTC-specific NAT handling\n    if (is_method(\"REGISTER\") &amp;&amp; $hdr(User-Agent) =~ \"WebRTC\") {\n        force_rtp_proxy();\n        setflag(FLT_NATS);\n    }\n\n    # Adjust SDP for NAT\n    if (has_body(\"application\/sdp\")) {\n        if (isflagset(FLT_NATS)) {\n            fix_nated_sdp(\"external_ip\");\n            rtpproxy_manage(\"co\");\n        }\n    }\n}\n\n# Enable TLS (for secure WebRTC signaling)\nloadmodule \"tls_mgm.so\"\nmodparam(\"tls_mgm\", \"server_id\", \"my_tls_server\")\nmodparam(\"tls_mgm\", \"verify_cert\", \"1\")\n\n# SIP over WebSocket configuration\nloadmodule \"proto_wss.so\"\nmodparam(\"proto_wss\", \"tls_method\", \"TLSv1\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: WebRTC Client Setup with SIP.js<\/h2>\n\n\n\n<p>Now, let\u2019s configure a WebRTC client using <strong>SIP.js<\/strong>, a lightweight JavaScript library that supports SIP over WebSockets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installing SIP.js<\/h3>\n\n\n\n<p>To use SIP.js, include it in your project:<\/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>Initialize SIP.js to connect to your OpenSIPS server using WebSocket.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const uri = 'sip:username@your-opensips-domain';\nconst transportOptions = {\n  wsServers: ['wss:\/\/your-opensips-domain:8089\/ws'], \/\/ Secure WebSocket\n  traceSip: true\n};\n\n\/\/ Create a user agent\nconst userAgent = new SIP.UserAgent({\n  uri: SIP.UserAgent.makeURI(uri),\n  transportOptions: transportOptions,\n  authorizationUsername: 'username', \/\/ OpenSIPS SIP username\n  authorizationPassword: 'password', \/\/ OpenSIPS SIP password\n  sessionDescriptionHandlerFactoryOptions: {\n    constraints: {\n      audio: true,\n      video: true \/\/ Enable video if required\n    }\n  }\n});\n\n\/\/ Start the user agent to register with OpenSIPS\nuserAgent.start();<\/code><\/pre>\n\n\n\n<p>Make sure you read this article on <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 initiate a call from SIP.js, configure the user agent to send an invite to the desired SIP URI.<\/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 changed to: ${state}`);\n  });\n\n  inviter.invite().catch(error =&gt; console.error(\"Call failed\", error));\n}\n\n\/\/ Make a call to the target SIP URI\nmakeCall('sip:destination@your-opensips-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 set up SIP.js for handling incoming calls, add an event listener for incoming <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 changed to: ${state}`);\n    });\n\n    \/\/ Auto-answer the call with audio and video constraints\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 the call\", error));\n  }\n};<\/code><\/pre>\n\n\n\n<p>This setup allows the SIP.js client to receive incoming calls, automatically answer them, and establish media connections as configured.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testing and Debugging<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>TLS Configuration<\/strong>: Ensure OpenSIPS is correctly set up for secure WebSocket connections (<code>wss:\/\/<\/code>). WebRTC requires a secure connection, so OpenSIPS must have a valid TLS configuration.<\/li>\n\n\n\n<li><strong>NAT Traversal<\/strong>: Test across networks to confirm that RTPProxy is handling NAT traversal effectively.<\/li>\n\n\n\n<li><strong>Session Handling<\/strong>: Debug connection issues by enabling SIP.js logging through <code>traceSip: true<\/code> in the configuration. This logs SIP messages to the console, helping diagnose connection or signaling issues.<\/li>\n<\/ul>\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>With OpenSIPS configured as a WebRTC-compatible SIP server and SIP.js set up as the client, you can enable real-time audio and video communication in the browser. This article has covered essential OpenSIPS configurations, sample SIP.js setup, and code snippets for both outgoing and incoming calls. By following this guide, you can integrate SIP-based communication into any web application, leveraging the power of WebRTC and SIP for real-time interaction.<\/p>\n\n\n\n<p>For production deployment:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Secure your signaling and media paths with firewalls and proper access controls.<\/li>\n\n\n\n<li>Test WebRTC compatibility across browsers and network conditions.<\/li>\n\n\n\n<li>Monitor performance for optimal call quality, adjusting configurations as needed.<\/li>\n<\/ul>\n\n\n\n<p>This foundation allows you to create scalable and robust WebRTC applications that connect seamlessly to OpenSIPS.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide explores how to integrate WebRTC with OpenSIPS, enabling browser-based voice and video calls. It covers essential OpenSIPS modules, TLS setup, and using SIP.js for WebRTC clients, complete with code examples for making and receiving calls. Perfect for building SIP-compatible, real-time communication in web applications.<\/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":[11],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-sip-over-webrtc"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Connecting OpenSIPS to Siperb<\/title>\n<meta name=\"description\" content=\"Connecting OpenSIPS to Siperb \u2014 WebSocket gateway configuration, SIP routing setup, and OpenSIPS WebRTC proxy integration.\" \/>\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\/opensips-webrtc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connecting OpenSIPS to Siperb\" \/>\n<meta property=\"og:description\" content=\"Connecting OpenSIPS to Siperb \u2014 WebSocket gateway configuration, SIP routing setup, and OpenSIPS WebRTC proxy integration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.siperb.com\/kb\/opensips-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-21T18:26:40+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\\\/opensips-webrtc\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\"},\"headline\":\"OpenSIPS WebRTC\",\"datePublished\":\"2026-04-07T16:23:12+00:00\",\"dateModified\":\"2026-04-21T18:26:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/\"},\"wordCount\":591,\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"articleSection\":[\"SIP Over WebRTC\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/\",\"name\":\"Connecting OpenSIPS to Siperb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\"},\"datePublished\":\"2026-04-07T16:23:12+00:00\",\"dateModified\":\"2026-04-21T18:26:40+00:00\",\"description\":\"Connecting OpenSIPS to Siperb \u2014 WebSocket gateway configuration, SIP routing setup, and OpenSIPS WebRTC proxy integration.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/opensips-webrtc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenSIPS 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":"Connecting OpenSIPS to Siperb","description":"Connecting OpenSIPS to Siperb \u2014 WebSocket gateway configuration, SIP routing setup, and OpenSIPS WebRTC proxy integration.","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\/opensips-webrtc\/","og_locale":"en_US","og_type":"article","og_title":"Connecting OpenSIPS to Siperb","og_description":"Connecting OpenSIPS to Siperb \u2014 WebSocket gateway configuration, SIP routing setup, and OpenSIPS WebRTC proxy integration.","og_url":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/","og_site_name":"Siperb","article_published_time":"2026-04-07T16:23:12+00:00","article_modified_time":"2026-04-21T18:26:40+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\/opensips-webrtc\/#article","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/"},"author":{"name":"admin","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111"},"headline":"OpenSIPS WebRTC","datePublished":"2026-04-07T16:23:12+00:00","dateModified":"2026-04-21T18:26:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/"},"wordCount":591,"publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"articleSection":["SIP Over WebRTC"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/","url":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/","name":"Connecting OpenSIPS to Siperb","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/#website"},"datePublished":"2026-04-07T16:23:12+00:00","dateModified":"2026-04-21T18:26:40+00:00","description":"Connecting OpenSIPS to Siperb \u2014 WebSocket gateway configuration, SIP routing setup, and OpenSIPS WebRTC proxy integration.","breadcrumb":{"@id":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.siperb.com\/kb\/opensips-webrtc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.siperb.com\/kb\/opensips-webrtc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.siperb.com\/kb\/"},{"@type":"ListItem","position":2,"name":"OpenSIPS 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\/41","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=41"}],"version-history":[{"count":2,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":13971,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/41\/revisions\/13971"}],"wp:attachment":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}