Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

This page is under development

Table of Contents

Overview

  • Captive portal is part of onboarding process which is presented to user once device is activated.
  • 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.
  • It is presented to user if user does factory reset too.
  • A captive portal is a landing GUI page to users before they gain broader access to gateway services.
  • To configure Wi-Fi SSID, credentials
  • On fresh boot-up and factory-reset, Captive Portal prompts to change the default ssid name and password for browsing a any http url's on connected client's client’s through Gateway network

  • Can be accessed by both LAN and WANOn fresh boot-up and factory-reset,, anything user tries in browser will redirect to local captive portal

    Panel

    LAN    https:  http://10.0.0.1

    WAN  :  http://<WAN IP Address of device>:8080

    //<LAN IP >/captiveportal.php

Code Flow

1) The  The below diagram depicts the captive portal flow via CcspPandM module.

Image Removed

draw.io Diagram
diagramNamecaptive portal flow via CcspPandM module.drawio
revision1

 The 2) The below diagram depicts the captive portal flow via CcspWifiAgent module.

...

draw.io Diagram
diagramNamecaptive portal flow via CcspWifiAgent module.drawio
revision1

Objects

MODULE

XML file

PARAMETERS

CcspPandM


TR181-USGv2.XML

Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable

Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi

CcspWiFiAgent

TR181-WiFi-USGv2.XML




Device.WiFi.SSID.1.SSID

Device.WiFi.SSID.2.SSID

Device.WiFi.AccessPoint.1.Security.KeyPassphrase

Device.WiFi.AccessPoint.2.Security.KeyPassphrase

Dmcli command to enable captive portal

Code Block
$ dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable bool true

$ dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi bool true

...

...

If "Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable" is set to True , Captive Portal should be UP instead of WebUI.

Supported Languages

  • Currently the supported languages are “English” , “French”
  • The default language is “eng”

...

  • The default language will be obtained as a string through “Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.RDKB_UIBranding.DefaultLanguage".

TroubleShootingTrouble Shooting

  • During any captive portal issues, verify the below commands

...

  • .

syscfg get redirection_flag

To get value of redirection_flag (true/false)

Code Block
root@RaspberryPi-Gateway:~# syscfg get redirection_flag
true

          

 syscfg get HTTPS_Server_IP

To get HTTPS_Server_IP to which it is connected.

Code Block
root@RaspberryPi-Gateway:~# syscfg get HTTPS_Server_IP

...

10.0.0.1

...


 

 syscfg get PartnerID

To get partern id of syndication partners

Code Block
root@RaspberryPi-Gateway:~# syscfg get PartnerID
RDKM


 ifconfig erouter0 , brlan0

...

Code Block
root@RaspberryPi-Gateway:~# ifconfig erouter0
erouter0  Link encap:Ethernet  HWaddr B8:27:EB:50:C1:CF
          inet addr:192.168.0.4  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:fe50:c1cf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:238 errors:0 dropped:0 overruns:0 frame:0
          TX packets:276 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:38241 (37.3 KiB)  TX bytes:34078 (33.2 KiB)

root@RaspberryPi-Gateway:~# ifconfig brlan0
brlan0    Link encap:Ethernet  HWaddr B8:27:EB:05:94:9A
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::e862:39ff:fe51:dde7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:3811 (3.7 KiB)


dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi

Code Block
root@RaspberryPi-Gateway:~#  dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.pam): Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi
Execution succeed.
Parameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi
               type:       bool,    value: false


 dmcli eRT getv  Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable

Code Block
root@RaspberryPi-Gateway:~#  dmcli eRT getv  Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.pam): Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable
Execution succeed.
Parameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable
               type:       bool,    value: true


ps | grep lighttpd // Lighttpd process should be running

Code Block
root@RaspberryPi-Gateway:~# ps | grep lighttpd
 3562 root       0:00 lighttpd -f /var/lighttpd.conf
12172 root       0:00 grep lighttpd


/nvram/hostapd0.conf

...

Code Block
root@RaspberryPi-Gateway:/nvram# cat /nvram/hostapd0.conf
# This is the name of the WiFi interface we configured above
interface=wlan0

 

#wlan0 is part of bridge br0
bridge=brlan0

 

# Use the nl80211 driver with the brcmfmac ( Broadcom BCM4334) driver
driver=nl80211
# This is the name of the network
ssid=RPi3_RDKB-AP0
# Use the 2.4GHz band
hw_mode=g
# Use channel 6
channel=06

 

# Enable 802.11n
ieee80211n=1

 

# Enable WMM
wmm_enabled=1

 

# Enable 40MHz channels with 20ns guard interval
#ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

 

# Accept all MAC addresses
macaddr_acl=0

 

# Use WPA authentication
auth_algs=1
# Require clients to know the network name
ignore_broadcast_ssid=0

 


# Use WPA2
wpa=2

 

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

 

# The network passphrase
wpa_passphrase=rdk@1234

 

# Use AES, instead of TKIP
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

 

#set the operating channel bandwidth to 20 MHz
vht_oper_chwidth=0

 

# The list of supported rates in units of 100kbps
supported_rates=10 20 55 110 60 90 120 180 240 360 480 540

 

# Basic rate set in units of 100kbps
basic_rates=10 20

 

#Interface for separate control program. hostapd_cli command will use it when trying to connect with hostapd.
ctrl_interface_group=0
ctrl_interface=/var/run/hostapd0

 

wpa_psk_file=/etc/hostapd/hostapd0.psk
eap_server=1
#wps_state=2
ap_setup_locked=1
ap_pin=45276453
wps_pin_requests=/var/run/hostapd0.pin-req
device_name=Raspberrypi
manufacturer=Broadcom
model_name=RPI-3B
model_number=BCM43438
serial_number=8965324
device_type=6-0050F204-1
os_version=01020300
config_methods=push_button keypad label display