
{"id":9773,"date":"2022-06-21T13:52:44","date_gmt":"2022-06-21T13:52:44","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/"},"modified":"2025-03-25T05:18:34","modified_gmt":"2025-03-25T05:18:34","slug":"captive_portal","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/","title":{"rendered":"Captive Portal"},"content":{"rendered":"\n <div class=\"toc-macro client-side-toc-macro  conf-macro output-block\" data-headerelements=\"H1,H2,H3,H4,H5,H6,H7\" data-hasbody=\"false\" data-macro-name=\"toc\"> <\/div><h2 class=\"wp-main-header wp-block-heading\">Overview<\/h2><ul><li><span>Captive portal is part of onboarding process which is presented to user once device is activated.<\/span><\/li><li><span> It allows user to configure his\/her WiFi credentials to be personalized which user can remember. It is presented to user if user does factory reset too.<\/span><\/li><li><span>It is presented to user if user does factory reset too.<\/span><\/li><li><p><span>On fresh boot-up and factory-reset, Captive Portal prompts to change the default ssid name and password for browsing on connected client&rsquo;s through Gateway network<\/span><\/p><\/li><li><p><span>On fresh boot-up and factory-reset,, anything user tries in browser will redirect to local captive portal<\/span><\/p><div class=\"panel conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"panel\"><div class=\"panelContent\">\n<p><span>&nbsp;https:\/\/&lt;LAN IP &gt;\/captiveportal.php<\/span><\/p>\n<\/div><\/div><\/li><\/ul><h2 class=\"wp-main-header wp-block-heading\">Code Flow<\/h2><p><strong>&nbsp;The below diagram depicts the captive portal flow via CcspPandM module.<\/strong><\/p><p>    \n\n<\/p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/captive%20portal%20flow%20via%20CcspPandM%20module.drawio.png\"><p><strong>&nbsp;The below diagram depicts the captive portal flow via CcspWifiAgent module.<\/strong><\/p><p>    \n\n<\/p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/captive%20portal%20flow%20via%20CcspWifiAgent%20module.drawio.png\"><h2 class=\"wp-main-header wp-block-heading\">Objects<\/h2><div class=\"table-wrap\"> <table class=\"wrapped confluenceTable\"><colgroup><col><col><col><\/colgroup><tbody><tr><th class=\"confluenceTh\"><p><strong>MODULE<\/strong><\/p><\/th><th class=\"confluenceTh\"><p><strong>XML file<\/strong><\/p><\/th><th class=\"confluenceTh\"><p><strong>PARAMETERS<\/strong><\/p><\/th><\/tr><tr><td rowspan=\"2\" class=\"confluenceTd\"><p>CcspPandM<\/p><p><br><\/p><\/td><td rowspan=\"2\" class=\"confluenceTd\">TR181-USGv2.XML<\/td><td class=\"confluenceTd\"><p>Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi<\/td><\/tr><tr><td rowspan=\"4\" class=\"confluenceTd\"><p>CcspWiFiAgent<\/p><\/td><td rowspan=\"4\" class=\"confluenceTd\"><p>TR181-WiFi-USGv2.XML<\/p><br><br><br><\/td><td class=\"confluenceTd\"><p>Device.WiFi.SSID.1.SSID<\/p><\/td><\/tr><tr><td class=\"confluenceTd\"><p>Device.WiFi.SSID.2.SSID<\/p><\/td><\/tr><tr><td class=\"confluenceTd\"><p>Device.WiFi.AccessPoint.1.Security.KeyPassphrase<\/p><\/td><\/tr><tr><td class=\"confluenceTd\"><p>Device.WiFi.AccessPoint.2.Security.KeyPassphrase<\/p><\/td><\/tr><\/tbody><\/table> <\/div><h2 class=\"wp-main-header wp-block-heading\">Supported Languages<\/h2><ul><li>Currently the supported languages are &ldquo;English&rdquo; , &ldquo;French&rdquo;<\/li><li>The default language is &ldquo;eng&rdquo;<\/li><\/ul><p><span class=\"confluence-embedded-file-wrapper confluence-embedded-manual-size\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/image2020-3-17_15-41-45.png\"><\/span><\/p><ul><li>The default language will be obtained as a string through &ldquo;Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.RDKB_UIBranding.DefaultLanguage&#8221;.<\/li><\/ul><h2 class=\"wp-main-header wp-block-heading\">Trouble Shooting<\/h2><ul><li>During any captive portal issues, verify the below commands .<\/li><\/ul><p><strong>syscfg get redirection_flag<\/strong><\/p><p>To get value of redirection_flag (true\/false)<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~# syscfg get redirection_flag\ntrue<\/pre>\n<\/div><\/div><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<\/p><p><strong>&nbsp;syscfg get&nbsp;HTTPS_Server_IP<\/strong><\/p><p>To get HTTPS_Server_IP to which it is connected.<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~# syscfg get&nbsp;HTTPS_Server_IP\n10.0.0.1\n<\/pre>\n<\/div><\/div><p><strong>&nbsp;<\/strong><\/p><p><strong>&nbsp;syscfg get PartnerID<\/strong><\/p><p>To get partern id of syndication partners<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~#&nbsp;syscfg get PartnerID\nRDKM<\/pre>\n<\/div><\/div><p><br><\/p><p><strong>&nbsp;ifconfig erouter0 , brlan0<\/strong><\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~# ifconfig erouter0\nerouter0  Link encap:Ethernet  HWaddr B8:27:EB:50:C1:CF\n          inet addr:192.168.0.4  Bcast:0.0.0.0  Mask:255.255.255.0\n          inet6 addr: fe80::ba27:ebff:fe50:c1cf\/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:238 errors:0 dropped:0 overruns:0 frame:0\n          TX packets:276 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000\n          RX bytes:38241 (37.3 KiB)  TX bytes:34078 (33.2 KiB)\n\nroot@RaspberryPi-Gateway:~# ifconfig brlan0\nbrlan0    Link encap:Ethernet  HWaddr B8:27:EB:05:94:9A\n          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0\n          inet6 addr: fe80::e862:39ff:fe51:dde7\/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000\n          RX bytes:0 (0.0 B)  TX bytes:3811 (3.7 KiB)<\/pre>\n<\/div><\/div><p><br><\/p><p><strong>dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi<\/strong><\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~#  dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi\nCR component name is: eRT.com.cisco.spvtg.ccsp.CR\nsubsystem_prefix eRT.\ngetv from\/to component(eRT.com.cisco.spvtg.ccsp.pam): Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi\nExecution succeed.\nParameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi\n               type:       bool,    value: false<\/pre>\n<\/div><\/div><p><br><\/p><p><strong>&nbsp;dmcli eRT getv&nbsp; Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable<\/strong><\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~#  dmcli eRT getv  Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable\nCR component name is: eRT.com.cisco.spvtg.ccsp.CR\nsubsystem_prefix eRT.\ngetv from\/to component(eRT.com.cisco.spvtg.ccsp.pam): Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable\nExecution succeed.\nParameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable\n               type:       bool,    value: true<\/pre>\n<\/div><\/div><p><br><\/p><p><strong>ps | grep lighttpd \/\/ Lighttpd process should be running<\/strong><\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root@RaspberryPi-Gateway:~# ps | grep lighttpd\n 3562 root       0:00 lighttpd -f \/var\/lighttpd.conf\n12172 root       0:00 grep lighttpd<\/pre>\n<\/div><\/div><p><br><\/p>\n<p><br><\/p><p><br><\/p><p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview Captive portal is part of onboarding process which is presented to user once device [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":9751,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-9773","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Captive Portal - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Captive Portal - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"Overview Captive portal is part of onboarding process which is presented to user once device [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-25T05:18:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/\",\"name\":\"Captive Portal - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T13:52:44+00:00\",\"dateModified\":\"2025-03-25T05:18:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Broadband\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Webui\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Captive Portal\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Captive Portal - RDK Documentation Portal | Documentation","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:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/","og_locale":"en_US","og_type":"article","og_title":"Captive Portal - RDK Documentation Portal | Documentation","og_description":"Overview Captive portal is part of onboarding process which is presented to user once device [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2025-03-25T05:18:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/","name":"Captive Portal - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T13:52:44+00:00","dateModified":"2025-03-25T05:18:34+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/captive_portal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Broadband","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"Webui","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/webui\/"},{"@type":"ListItem","position":6,"name":"Captive Portal"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=9773"}],"version-history":[{"count":7,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9773\/revisions"}],"predecessor-version":[{"id":12224,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9773\/revisions\/12224"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9751"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=9773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}