Click through on external webpage

Hi,

i need to personalize with a complex graphics the Click through webpage for guest access.

so i think the only way is using an external webpage. 

I see the example on support site, but which address i need to send the POST form data ?

Can you send me an example ?

Hi,

What you need to do is parse the query strings in the URL on your external web server and get the value of ga_srvr and use the given IP to do a HTTP POST request. This IP address is the AP IP address where the hotspot client got redirected and use port 880 for HTTP and port 444 for HTTPS POST requests. You have to frame a POST  request to following URL /cgi-­‐bin/hotspot_login.cgi and add all the query strings which are part of the first redirection URL. So a request will look something like this:

POST  /cgi-­‐bin/hotspot_login.cgi?ga_ssid=XXX&ga_ap_mac=XXX&ga_nas_id=XXX&ga_srvr=XXX&ga_cmac=XXXX&ga_Qv=XXXX

For click-through guest access policy there will be no POST content.

Best Regards,

Kunal Solanki

Hi Kunal,

is it possible to get an example php-code which does the post-request?

Uwe

Hi,

Right now we don't have any PHP code for it but we do have a nodejs application which we use internally for our testing. I am not able to attach all the code here but if you can send me private message with your email id then I can send it across to you.

Best Regards,

Kunal

2 Likes

Sorry to follow along on this thread but this topic is close to my issue as well:

Are all arguments originally passed required? I tried just ga_user and ga_srvr and ga_Qv and got the error:

truncated query strings, failed to handle the http request.

Bill

Hi,

You have to pass the ga_Qv as a query string in the POST URL, the ga_Qv contents should be passed as it is which client had received in redirection URL. Sometimes in external webserver integration I have seen people end up double encoding this so just ensure you are passing as it is which is already URL encoded.

POST /cgi-bin/hotspot_login.cgi?ga_Qv=xxxxxx

and the post contents as below:

ga_user=user_name&ga_pass=user_password

 

Best Regards,

Kunal

The  posted args are processed (decoded) in Laravel (a php framework). The are in question looks like:

yDN%05%1F%3A%1C%18%00%181%04V%04%00%1B%0E%14Y%15%02%00%26%152%01OA%5DY-%23_RRF%5D%28E"%7BYCUK%06%13%143%0C

Notice the double quote and lots of non printable (when converted) characters. When I dump this value in Laravel the result is binary data.

Please explain the ga_Qv variable in detail. The urldecode - then urlencode does not produce the same string.

Bill 

Ok. I got this to work. It was an encoding issue. What I have now:

redirect to external site -> select service/ pay bill -> redirect to AP's login.htm -> post to hotspot_login.cgi

What I want to do is post directly to the hotspot_login.cgi. I know the credentials so no need to display login.html page....

Is that possible?

Yes, it's possible and lot of vendors have already done it that way. Your select service/pay bill page can take the credentials and either it can post directly from client to AP or it can post to your external webserver and then your external webserver does a post to AP. If you notice the query strings has a ga_srvr field which has the AP IP address and your external webserver can use this IP to frame a POST request directly to AP.

There is a latest document available on cambium support website on how to integrate external webportals with cambium AP. The below link can take you to the specific page where you will find the document on "Guest Access Portal Integration"

https://support.cambiumnetworks.com/files/e400/

I have a prototype webserver written in nodejs which you can try to play around to get to know the whole flow with external webserver. Please let me know if you would like to have that nodejs webserver.

Best Regards,

Kunal


 

Hi sir,

I have problem with external captive portal

I know you have a sample project nodejs for external captive portal with external radius

can you share me, thanks very much! 

My email: nampvcs@gmail.com

Hello, im my case, my captive portal is being redirected with the same address in the ga_srvr query param.

Is there any way to configure in the controller what is the ga_srvr address? 

Thanks!

The ga_srvr value in the query strings of the redirected URL is filled by the AP and it can fill up with following values for external captive portal case:

1. AP Interface IP address through which the external captive portal is reachable.

2. If  Redirect Hostname is configured then this will be filled in. In case you have dns hostname mapping for the AP IP and you plan to use the dns hostname of the AP for communication then you can configure this and use this.

As you have mentioned you have configured Portal Mode as External Hotspot and configured the external URL for the captive Portal so it should redirect the clients to your portal. Are you seeing this issue after the user tries to click on login button of your external splash page?

If possible post a snapshot of the conifguration you have done on the AP to suggest further on it.