WIFI-908: Provision Hotspot20_Config in opensync database via opensync gateway, using new Hotspot/passpoint profiles

WIFI-909: Provision Hotspot20_Icon_Config in opensync database via opensync gateway, using new Hotspot/passpoint profiles
WIFI-910: Provision Hotspot20_OSU_Providers in opensync database via opensync gateway, using new Hotspot/passpoint profiles
WIFI-906: Add new Hotspot, IdProvider, Operator, and Venue profiles to static opensync gateway

Multiple providers, multiple nai realms, multiple icons, address availability derived correctly, VIFs for Access and Open VIF for OSU

Add profile changes in for static gateway
This commit is contained in:
Mike Hansen
2020-10-08 15:29:06 -04:00
parent 98ad16e32e
commit 621ec89889
26 changed files with 3575 additions and 2580 deletions

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 16,
"id": 17,
"customerId": 2,
"profileType": "equipment_ap",
"name": "ApProfile-3-radios",
@@ -39,12 +39,12 @@
},
"profileType": "equipment_ap"
},
"createdTimestamp": 1602113059824,
"lastModifiedTimestamp": 1602113059824,
"createdTimestamp": 1602182806348,
"lastModifiedTimestamp": 1602182806348,
"childProfileIds": [
2,
5,
10,
12
11,
13
]
}

View File

@@ -1,7 +1,6 @@
[
{
"model_type": "Profile",
"id": 2,
"id": 14,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
@@ -12,33 +11,21 @@
"headerContent": "Captive Portal",
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
"successPageMarkdownText": "Welcome to the network",
"redirectURL": "www.google.com",
"redirectURL": "",
"externalCaptivePortalURL": null,
"sessionTimeoutInMinutes": 60,
"logoFile": {
"logoFile": null,
"backgroundFile": null,
"walledGardenAllowlist": [],
"usernamePasswordFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "netExpLogo.png",
"fileCategory": "CaptivePortalLogo",
"fileType": "PNG",
"altSlot": false
"apExportUrl": "userList",
"fileCategory": "UsernamePasswordList",
"fileType": "TEXT",
"altSlot": true
},
"backgroundFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "netExpBackgroud.jpg",
"fileCategory": "CaptivePortalBackground",
"fileType": "JPG",
"altSlot": false
},
"walledGardenAllowlist": [
"1.2.3.4",
"1.2.3.6-2.3.4.5",
"netexperience.com"
],
"usernamePasswordFile": null,
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 42,
@@ -47,12 +34,100 @@
"backgroundRepeat": "no_repeat",
"radiusServiceName": null,
"expiryType": "unlimited",
"userList": [],
"userList": [
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994956,
"expirationTime": 1602212794956,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Pac",
"lastName": "Man",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upO",
"addressAsString": "7c:ab:60:e6:ea:4e"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994957,
"expirationTime": 1602187594957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Q",
"lastName": "Bert",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqho",
"addressAsString": "c0:9a:d0:76:a8:68"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602788794957,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Duke",
"lastName": "Nukem",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upN",
"addressAsString": "7c:ab:60:e6:ea:4d"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602270394957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Missile",
"lastName": "Commander",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqhj",
"addressAsString": "c0:9a:d0:76:a8:63"
}
],
"lastModifiedTimestamp": 0
}
],
"macAllowList": [],
"profileType": "captive_portal"
},
"createdTimestamp": 1595341820188,
"lastModifiedTimestamp": 1595341820188,
"createdTimestamp": 1602183994959,
"lastModifiedTimestamp": 1602183994959,
"childProfileIds": []
}
]

View File

@@ -1,7 +1,7 @@
[
{
"model_type": "Profile",
"id": 9,
"id": 10,
"customerId": 2,
"profileType": "hotspot_2pt0",
"name": "TipWlan-Hotspot20-Config",
@@ -49,35 +49,24 @@
"TipWlan-cloud-hotspot-access"
],
"osuSsidName": "TipWlan-cloud-3-radios",
"mccMnc3gppCellularNetworkInfo": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 720,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Rogers AT&T Wireless",
"mccMncPairing": "302,720"
}
],
"operatorProfileName": "TipWlan-Hotspot20-Operator",
"venueProfileName": "TipWlan-Hotspot20-Venue",
"idProviderProfileNames": [
"TipWlan-Hotspot20-OSU-Provider-2",
"TipWlan-Hotspot20-OSU-Provider"
],
"profileType": "hotspot_2pt0",
"mccMncList": "302,720",
"associatedSsids": [
"TipWlan-cloud-hotspot-access"
]
},
"createdTimestamp": 1602113059532,
"lastModifiedTimestamp": 1602113059532,
"createdTimestamp": 1602182806040,
"lastModifiedTimestamp": 1602182806040,
"childProfileIds": [
6,
7,
8
8,
9
]
}
]

View File

@@ -7,7 +7,7 @@
"name": "TipWlan-Hotspot20-OSU-Provider",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "example.com",
"domainName": "rogers.com",
"mccMncList": [
{
"model_type": "MccMnc",
@@ -24,8 +24,7 @@
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"example.net",
"example.com"
"rogers.com"
],
"encoding": 0,
"eapMethods": [
@@ -50,36 +49,58 @@
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32.png",
"filePath": "/tmp/icon32.png",
"imageUrl": "https://localhost:9096",
"hs20IconString": "32:32:eng:image/png:icon32.png:/tmp/icon32.png"
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/",
"osuServerUri": "https://example.com/osu/rogers/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider",
"dupleName": "Example provider rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider"
"asDuple": "eng:Example provider rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur",
"dupleName": "Exemple de fournisseur rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur"
"asDuple": "fra:Exemple de fournisseur rogers"
}
],
"osuNaiStandalone": "anonymous@example.com",
"osuNaiShared": "anonymous@example.com",
"osuNaiStandalone": "anonymous@rogers.com",
"osuNaiShared": "anonymous@rogers.com",
"osuMethodList": [
1,
0
@@ -89,23 +110,153 @@
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services",
"dupleName": "Example services rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services"
"asDuple": "eng:Example services rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services",
"dupleName": "Exemples de services rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services"
"asDuple": "fra:Exemples de services rogers"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602113059086,
"lastModifiedTimestamp": 1602113059086,
"createdTimestamp": 1602182805654,
"lastModifiedTimestamp": 1602182805654,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 9,
"customerId": 2,
"profileType": "id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "telus.com",
"mccMncList": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 220,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Telus Mobility",
"mccMncPairing": "302,220"
}
],
"naiRealmList": [
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"telus.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/telus/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur telus"
}
],
"osuNaiStandalone": "anonymous@telus.com",
"osuNaiShared": "anonymous@telus.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services telus"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602182805660,
"lastModifiedTimestamp": 1602182805660,
"childProfileIds": []
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 12,
"id": 13,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
@@ -250,7 +250,7 @@
},
"profileType": "rf"
},
"createdTimestamp": 1602113059555,
"lastModifiedTimestamp": 1602113059555,
"createdTimestamp": 1602182806063,
"lastModifiedTimestamp": 1602182806063,
"childProfileIds": []
}

View File

@@ -62,12 +62,12 @@
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
9
10
]
},
{
"model_type": "Profile",
"id": 10,
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios",
@@ -75,9 +75,9 @@
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
"is2dot4GHz",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "open",
@@ -125,10 +125,11 @@
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113059549,
"lastModifiedTimestamp": 1602113059549,
"createdTimestamp": 1602183994766,
"lastModifiedTimestamp": 1602183994766,
"childProfileIds": [
8
8,
9
]
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 16,
"id": 17,
"customerId": 2,
"profileType": "equipment_ap",
"name": "ApProfile-3-radios",
@@ -39,12 +39,12 @@
},
"profileType": "equipment_ap"
},
"createdTimestamp": 1602113059824,
"lastModifiedTimestamp": 1602113059824,
"createdTimestamp": 1602182806348,
"lastModifiedTimestamp": 1602182806348,
"childProfileIds": [
2,
5,
10,
12
11,
13
]
}

View File

@@ -1,7 +1,6 @@
[
{
"model_type": "Profile",
"id": 2,
"id": 14,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
@@ -18,7 +17,15 @@
"logoFile": null,
"backgroundFile": null,
"walledGardenAllowlist": [],
"usernamePasswordFile": null,
"usernamePasswordFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "userList",
"fileCategory": "UsernamePasswordList",
"fileType": "TEXT",
"altSlot": true
},
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 42,
@@ -27,12 +34,100 @@
"backgroundRepeat": "no_repeat",
"radiusServiceName": null,
"expiryType": "unlimited",
"userList": [],
"userList": [
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994956,
"expirationTime": 1602212794956,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Pac",
"lastName": "Man",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upO",
"addressAsString": "7c:ab:60:e6:ea:4e"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994957,
"expirationTime": 1602187594957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Q",
"lastName": "Bert",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqho",
"addressAsString": "c0:9a:d0:76:a8:68"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602788794957,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Duke",
"lastName": "Nukem",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upN",
"addressAsString": "7c:ab:60:e6:ea:4d"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602270394957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Missile",
"lastName": "Commander",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqhj",
"addressAsString": "c0:9a:d0:76:a8:63"
}
],
"lastModifiedTimestamp": 0
}
],
"macAllowList": [],
"profileType": "captive_portal"
},
"createdTimestamp": 1595341820188,
"lastModifiedTimestamp": 1595341820188,
"createdTimestamp": 1602183994959,
"lastModifiedTimestamp": 1602183994959,
"childProfileIds": []
}
]

View File

@@ -1,7 +1,7 @@
[
{
"model_type": "Profile",
"id": 9,
"id": 10,
"customerId": 2,
"profileType": "hotspot_2pt0",
"name": "TipWlan-Hotspot20-Config",
@@ -49,35 +49,24 @@
"TipWlan-cloud-hotspot-access"
],
"osuSsidName": "TipWlan-cloud-3-radios",
"mccMnc3gppCellularNetworkInfo": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 720,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Rogers AT&T Wireless",
"mccMncPairing": "302,720"
}
],
"operatorProfileName": "TipWlan-Hotspot20-Operator",
"venueProfileName": "TipWlan-Hotspot20-Venue",
"idProviderProfileNames": [
"TipWlan-Hotspot20-OSU-Provider-2",
"TipWlan-Hotspot20-OSU-Provider"
],
"profileType": "hotspot_2pt0",
"mccMncList": "302,720",
"associatedSsids": [
"TipWlan-cloud-hotspot-access"
]
},
"createdTimestamp": 1602113059532,
"lastModifiedTimestamp": 1602113059532,
"createdTimestamp": 1602182806040,
"lastModifiedTimestamp": 1602182806040,
"childProfileIds": [
6,
7,
8
8,
9
]
}
]

View File

@@ -7,7 +7,7 @@
"name": "TipWlan-Hotspot20-OSU-Provider",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "example.com",
"domainName": "rogers.com",
"mccMncList": [
{
"model_type": "MccMnc",
@@ -24,8 +24,7 @@
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"example.net",
"example.com"
"rogers.com"
],
"encoding": 0,
"eapMethods": [
@@ -50,36 +49,58 @@
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32.png",
"filePath": "/tmp/icon32.png",
"imageUrl": "https://localhost:9096",
"hs20IconString": "32:32:eng:image/png:icon32.png:/tmp/icon32.png"
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/",
"osuServerUri": "https://example.com/osu/rogers/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider",
"dupleName": "Example provider rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider"
"asDuple": "eng:Example provider rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur",
"dupleName": "Exemple de fournisseur rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur"
"asDuple": "fra:Exemple de fournisseur rogers"
}
],
"osuNaiStandalone": "anonymous@example.com",
"osuNaiShared": "anonymous@example.com",
"osuNaiStandalone": "anonymous@rogers.com",
"osuNaiShared": "anonymous@rogers.com",
"osuMethodList": [
1,
0
@@ -89,23 +110,153 @@
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services",
"dupleName": "Example services rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services"
"asDuple": "eng:Example services rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services",
"dupleName": "Exemples de services rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services"
"asDuple": "fra:Exemples de services rogers"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602113059086,
"lastModifiedTimestamp": 1602113059086,
"createdTimestamp": 1602182805654,
"lastModifiedTimestamp": 1602182805654,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 9,
"customerId": 2,
"profileType": "id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "telus.com",
"mccMncList": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 220,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Telus Mobility",
"mccMncPairing": "302,220"
}
],
"naiRealmList": [
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"telus.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/telus/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur telus"
}
],
"osuNaiStandalone": "anonymous@telus.com",
"osuNaiShared": "anonymous@telus.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services telus"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602182805660,
"lastModifiedTimestamp": 1602182805660,
"childProfileIds": []
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 12,
"id": 13,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
@@ -250,7 +250,7 @@
},
"profileType": "rf"
},
"createdTimestamp": 1602113059555,
"lastModifiedTimestamp": 1602113059555,
"createdTimestamp": 1602182806063,
"lastModifiedTimestamp": 1602182806063,
"childProfileIds": []
}

View File

@@ -62,12 +62,12 @@
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
9
10
]
},
{
"model_type": "Profile",
"id": 10,
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios",
@@ -75,9 +75,9 @@
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
"is2dot4GHz",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "open",
@@ -125,10 +125,11 @@
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113059549,
"lastModifiedTimestamp": 1602113059549,
"createdTimestamp": 1602183994766,
"lastModifiedTimestamp": 1602183994766,
"childProfileIds": [
8
8,
9
]
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 16,
"id": 17,
"customerId": 2,
"profileType": "equipment_ap",
"name": "ApProfile-3-radios",
@@ -39,12 +39,12 @@
},
"profileType": "equipment_ap"
},
"createdTimestamp": 1602113059824,
"lastModifiedTimestamp": 1602113059824,
"createdTimestamp": 1602182806348,
"lastModifiedTimestamp": 1602182806348,
"childProfileIds": [
2,
5,
10,
12
11,
13
]
}

View File

@@ -1,7 +1,6 @@
[
{
"model_type": "Profile",
"id": 2,
"id": 14,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
@@ -18,7 +17,15 @@
"logoFile": null,
"backgroundFile": null,
"walledGardenAllowlist": [],
"usernamePasswordFile": null,
"usernamePasswordFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "userList",
"fileCategory": "UsernamePasswordList",
"fileType": "TEXT",
"altSlot": true
},
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 42,
@@ -27,12 +34,100 @@
"backgroundRepeat": "no_repeat",
"radiusServiceName": null,
"expiryType": "unlimited",
"userList": [],
"userList": [
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994956,
"expirationTime": 1602212794956,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Pac",
"lastName": "Man",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upO",
"addressAsString": "7c:ab:60:e6:ea:4e"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994957,
"expirationTime": 1602187594957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Q",
"lastName": "Bert",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqho",
"addressAsString": "c0:9a:d0:76:a8:68"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602788794957,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Duke",
"lastName": "Nukem",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upN",
"addressAsString": "7c:ab:60:e6:ea:4d"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602270394957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Missile",
"lastName": "Commander",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqhj",
"addressAsString": "c0:9a:d0:76:a8:63"
}
],
"lastModifiedTimestamp": 0
}
],
"macAllowList": [],
"profileType": "captive_portal"
},
"createdTimestamp": 1595341820188,
"lastModifiedTimestamp": 1595341820188,
"createdTimestamp": 1602183994959,
"lastModifiedTimestamp": 1602183994959,
"childProfileIds": []
}
]

View File

@@ -1,7 +1,7 @@
[
{
"model_type": "Profile",
"id": 9,
"id": 10,
"customerId": 2,
"profileType": "hotspot_2pt0",
"name": "TipWlan-Hotspot20-Config",
@@ -49,35 +49,24 @@
"TipWlan-cloud-hotspot-access"
],
"osuSsidName": "TipWlan-cloud-3-radios",
"mccMnc3gppCellularNetworkInfo": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 720,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Rogers AT&T Wireless",
"mccMncPairing": "302,720"
}
],
"operatorProfileName": "TipWlan-Hotspot20-Operator",
"venueProfileName": "TipWlan-Hotspot20-Venue",
"idProviderProfileNames": [
"TipWlan-Hotspot20-OSU-Provider-2",
"TipWlan-Hotspot20-OSU-Provider"
],
"profileType": "hotspot_2pt0",
"mccMncList": "302,720",
"associatedSsids": [
"TipWlan-cloud-hotspot-access"
]
},
"createdTimestamp": 1602113059532,
"lastModifiedTimestamp": 1602113059532,
"createdTimestamp": 1602182806040,
"lastModifiedTimestamp": 1602182806040,
"childProfileIds": [
6,
7,
8
8,
9
]
}
]

View File

@@ -7,7 +7,7 @@
"name": "TipWlan-Hotspot20-OSU-Provider",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "example.com",
"domainName": "rogers.com",
"mccMncList": [
{
"model_type": "MccMnc",
@@ -24,8 +24,7 @@
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"example.net",
"example.com"
"rogers.com"
],
"encoding": 0,
"eapMethods": [
@@ -50,36 +49,58 @@
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32.png",
"filePath": "/tmp/icon32.png",
"imageUrl": "https://localhost:9096",
"hs20IconString": "32:32:eng:image/png:icon32.png:/tmp/icon32.png"
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/",
"osuServerUri": "https://example.com/osu/rogers/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider",
"dupleName": "Example provider rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider"
"asDuple": "eng:Example provider rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur",
"dupleName": "Exemple de fournisseur rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur"
"asDuple": "fra:Exemple de fournisseur rogers"
}
],
"osuNaiStandalone": "anonymous@example.com",
"osuNaiShared": "anonymous@example.com",
"osuNaiStandalone": "anonymous@rogers.com",
"osuNaiShared": "anonymous@rogers.com",
"osuMethodList": [
1,
0
@@ -89,23 +110,153 @@
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services",
"dupleName": "Example services rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services"
"asDuple": "eng:Example services rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services",
"dupleName": "Exemples de services rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services"
"asDuple": "fra:Exemples de services rogers"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602113059086,
"lastModifiedTimestamp": 1602113059086,
"createdTimestamp": 1602182805654,
"lastModifiedTimestamp": 1602182805654,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 9,
"customerId": 2,
"profileType": "id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "telus.com",
"mccMncList": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 220,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Telus Mobility",
"mccMncPairing": "302,220"
}
],
"naiRealmList": [
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"telus.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/telus/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur telus"
}
],
"osuNaiStandalone": "anonymous@telus.com",
"osuNaiShared": "anonymous@telus.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services telus"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602182805660,
"lastModifiedTimestamp": 1602182805660,
"childProfileIds": []
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 12,
"id": 13,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
@@ -250,7 +250,7 @@
},
"profileType": "rf"
},
"createdTimestamp": 1602113059555,
"lastModifiedTimestamp": 1602113059555,
"createdTimestamp": 1602182806063,
"lastModifiedTimestamp": 1602182806063,
"childProfileIds": []
}

View File

@@ -62,12 +62,12 @@
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
9
10
]
},
{
"model_type": "Profile",
"id": 10,
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios",
@@ -75,9 +75,9 @@
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
"is2dot4GHz",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "open",
@@ -125,10 +125,11 @@
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113059549,
"lastModifiedTimestamp": 1602113059549,
"createdTimestamp": 1602183994766,
"lastModifiedTimestamp": 1602183994766,
"childProfileIds": [
8
8,
9
]
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 16,
"id": 17,
"customerId": 2,
"profileType": "equipment_ap",
"name": "ApProfile-3-radios",
@@ -39,12 +39,12 @@
},
"profileType": "equipment_ap"
},
"createdTimestamp": 1602113059824,
"lastModifiedTimestamp": 1602113059824,
"createdTimestamp": 1602182806348,
"lastModifiedTimestamp": 1602182806348,
"childProfileIds": [
2,
5,
10,
12
11,
13
]
}

View File

@@ -0,0 +1,133 @@
{
"model_type": "Profile",
"id": 14,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
"details": {
"model_type": "CaptivePortalConfiguration",
"name": "Captive-portal",
"browserTitle": "Access the network as Guest",
"headerContent": "Captive Portal",
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
"successPageMarkdownText": "Welcome to the network",
"redirectURL": "",
"externalCaptivePortalURL": null,
"sessionTimeoutInMinutes": 60,
"logoFile": null,
"backgroundFile": null,
"walledGardenAllowlist": [],
"usernamePasswordFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "userList",
"fileCategory": "UsernamePasswordList",
"fileType": "TEXT",
"altSlot": true
},
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 42,
"externalPolicyFile": null,
"backgroundPosition": "left_top",
"backgroundRepeat": "no_repeat",
"radiusServiceName": null,
"expiryType": "unlimited",
"userList": [
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994956,
"expirationTime": 1602212794956,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Pac",
"lastName": "Man",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upO",
"addressAsString": "7c:ab:60:e6:ea:4e"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer",
"password": "testing123",
"activationTime": 1602183994957,
"expirationTime": 1602187594957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Q",
"lastName": "Bert",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqho",
"addressAsString": "c0:9a:d0:76:a8:68"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602788794957,
"numDevices": 1,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Duke",
"lastName": "Nukem",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "fKtg5upN",
"addressAsString": "7c:ab:60:e6:ea:4d"
}
],
"lastModifiedTimestamp": 0
},
{
"model_type": "TimedAccessUserRecord",
"username": "customer2",
"password": "testing1234",
"activationTime": 1602183994957,
"expirationTime": 1602270394957,
"numDevices": 0,
"userDetails": {
"model_type": "TimedAccessUserDetails",
"firstName": "Missile",
"lastName": "Commander",
"passwordNeedsReset": false
},
"userMacAddresses": [
{
"model_type": "MacAddress",
"address": "wJrQdqhj",
"addressAsString": "c0:9a:d0:76:a8:63"
}
],
"lastModifiedTimestamp": 0
}
],
"macAllowList": [],
"profileType": "captive_portal"
},
"createdTimestamp": 1602183994959,
"lastModifiedTimestamp": 1602183994959,
"childProfileIds": []
}

View File

@@ -1,7 +1,7 @@
[
{
"model_type": "Profile",
"id": 9,
"id": 10,
"customerId": 2,
"profileType": "hotspot_2pt0",
"name": "TipWlan-Hotspot20-Config",
@@ -49,35 +49,24 @@
"TipWlan-cloud-hotspot-access"
],
"osuSsidName": "TipWlan-cloud-3-radios",
"mccMnc3gppCellularNetworkInfo": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 720,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Rogers AT&T Wireless",
"mccMncPairing": "302,720"
}
],
"operatorProfileName": "TipWlan-Hotspot20-Operator",
"venueProfileName": "TipWlan-Hotspot20-Venue",
"idProviderProfileNames": [
"TipWlan-Hotspot20-OSU-Provider-2",
"TipWlan-Hotspot20-OSU-Provider"
],
"profileType": "hotspot_2pt0",
"mccMncList": "302,720",
"associatedSsids": [
"TipWlan-cloud-hotspot-access"
]
},
"createdTimestamp": 1602113059532,
"lastModifiedTimestamp": 1602113059532,
"createdTimestamp": 1602182806040,
"lastModifiedTimestamp": 1602182806040,
"childProfileIds": [
6,
7,
8
8,
9
]
}
]

View File

@@ -7,7 +7,7 @@
"name": "TipWlan-Hotspot20-OSU-Provider",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "example.com",
"domainName": "rogers.com",
"mccMncList": [
{
"model_type": "MccMnc",
@@ -24,8 +24,7 @@
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"example.net",
"example.com"
"rogers.com"
],
"encoding": 0,
"eapMethods": [
@@ -50,36 +49,58 @@
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32.png",
"filePath": "/tmp/icon32.png",
"imageUrl": "https://localhost:9096",
"hs20IconString": "32:32:eng:image/png:icon32.png:/tmp/icon32.png"
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/",
"osuServerUri": "https://example.com/osu/rogers/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider",
"dupleName": "Example provider rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider"
"asDuple": "eng:Example provider rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur",
"dupleName": "Exemple de fournisseur rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur"
"asDuple": "fra:Exemple de fournisseur rogers"
}
],
"osuNaiStandalone": "anonymous@example.com",
"osuNaiShared": "anonymous@example.com",
"osuNaiStandalone": "anonymous@rogers.com",
"osuNaiShared": "anonymous@rogers.com",
"osuMethodList": [
1,
0
@@ -89,23 +110,153 @@
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services",
"dupleName": "Example services rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services"
"asDuple": "eng:Example services rogers"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services",
"dupleName": "Exemples de services rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services"
"asDuple": "fra:Exemples de services rogers"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602113059086,
"lastModifiedTimestamp": 1602113059086,
"createdTimestamp": 1602182805654,
"lastModifiedTimestamp": 1602182805654,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 9,
"customerId": 2,
"profileType": "id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2",
"details": {
"model_type": "Hotspot20IdProviderProfile",
"domainName": "telus.com",
"mccMncList": [
{
"model_type": "MccMnc",
"mcc": 302,
"mnc": 220,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Telus Mobility",
"mccMncPairing": "302,220"
}
],
"naiRealmList": [
{
"model_type": "NaiRealmInformation",
"naiRealms": [
"telus.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "OsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"radiusProfileAuth": "Radius-Profile",
"radiusProfileAccounting": "Radius-Profile",
"osuSsid": "TipWlan-cloud-3-radios",
"osuServerUri": "https://example.com/osu/telus/",
"osuFriendlyName": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example provider telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur telus"
}
],
"osuNaiStandalone": "anonymous@telus.com",
"osuNaiShared": "anonymous@telus.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "Hotspot20Duple",
"locale": "en_CA",
"dupleIso3Language": "eng",
"dupleName": "Example services telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services telus"
},
{
"model_type": "Hotspot20Duple",
"locale": "fr_CA",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services telus"
}
],
"profileType": "id_provider"
},
"createdTimestamp": 1602182805660,
"lastModifiedTimestamp": 1602182805660,
"childProfileIds": []
}
]

View File

@@ -1,6 +1,6 @@
{
"model_type": "Profile",
"id": 12,
"id": 13,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
@@ -250,7 +250,7 @@
},
"profileType": "rf"
},
"createdTimestamp": 1602113059555,
"lastModifiedTimestamp": 1602113059555,
"createdTimestamp": 1602182806063,
"lastModifiedTimestamp": 1602182806063,
"childProfileIds": []
}

View File

@@ -62,12 +62,12 @@
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
9
10
]
},
{
"model_type": "Profile",
"id": 10,
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios",
@@ -75,9 +75,9 @@
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
"is2dot4GHz",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "open",
@@ -125,10 +125,11 @@
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113059549,
"lastModifiedTimestamp": 1602113059549,
"createdTimestamp": 1602183994766,
"lastModifiedTimestamp": 1602183994766,
"childProfileIds": [
8
8,
9
]
}
]

View File

@@ -78,6 +78,9 @@ import com.telecominfraproject.wlan.profile.models.common.ManagedFileInfo;
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
import com.telecominfraproject.wlan.profile.passpoint.hotspot.models.Hotspot2Profile;
import com.telecominfraproject.wlan.profile.passpoint.models.Hotspot20Duple;
import com.telecominfraproject.wlan.profile.passpoint.models.IPv4PasspointAddressType;
import com.telecominfraproject.wlan.profile.passpoint.models.IPv6PasspointAddressType;
import com.telecominfraproject.wlan.profile.passpoint.models.MccMnc;
import com.telecominfraproject.wlan.profile.passpoint.operator.models.OperatorProfile;
import com.telecominfraproject.wlan.profile.passpoint.provider.models.AuthenticationParameterTypes;
import com.telecominfraproject.wlan.profile.passpoint.provider.models.CredentialType;
@@ -3484,20 +3487,39 @@ public class OvsdbDao {
Set<Uuid> osuProvidersUuids = new HashSet<>();
Set<Uuid> osuIconUuids = new HashSet<>();
Set<Atom<String>> domainNames = new HashSet<>();
StringBuffer mccMncBuffer = new StringBuffer();
Set<Atom<String>> naiRealms = new HashSet<>();
for (Profile provider : providerList) {
Hotspot20IdProviderProfile providerProfile = (Hotspot20IdProviderProfile) provider
.getDetails();
if (osuProviders.containsKey(providerProfile.getOsuServerUri())) {
osuProvidersUuids.add(osuProviders.get(providerProfile.getOsuServerUri()).uuid);
osuIconUuids.addAll(osuProviders.get(providerProfile.getOsuServerUri()).osuIcons);
getNaiRealms(providerProfile, rowColumns);
Hotspot20OsuProviders hotspot2OsuProviders = osuProviders
.get(providerProfile.getOsuServerUri());
osuProvidersUuids.add(hotspot2OsuProviders.uuid);
osuIconUuids.addAll(hotspot2OsuProviders.osuIcons);
domainNames.add(new Atom<>(providerProfile.getDomainName()));
getNaiRealms(providerProfile, naiRealms);
for (MccMnc mccMnc : providerProfile.getMccMncList()) {
mccMncBuffer.append(mccMnc.getMccMncPairing());
mccMncBuffer.append(";");
}
// osuProviders.get(providerProfile.getOsuServerUri()).osuNai.stream().forEach(n -> {
// osuNai.add(new Atom<String>(n));
// });
}
}
String mccMncString = mccMncBuffer.toString();
if (mccMncString.endsWith(";")) {
mccMncString = mccMncString.substring(0, mccMncString.lastIndexOf(";"));
}
rowColumns.put("mcc_mnc", new Atom<>(mccMncString));
com.vmware.ovsdb.protocol.operation.notation.Set naiRealmsSet = com.vmware.ovsdb.protocol.operation.notation.Set
.of(naiRealms);
rowColumns.put("nai_realm", naiRealmsSet);
if (osuProvidersUuids.size() > 0) {
com.vmware.ovsdb.protocol.operation.notation.Set providerUuids = com.vmware.ovsdb.protocol.operation.notation.Set
@@ -3511,6 +3533,13 @@ public class OvsdbDao {
rowColumns.put("operator_icons", iconUuids);
}
if (domainNames.size() > 0) {
com.vmware.ovsdb.protocol.operation.notation.Set domainNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
.of(domainNames);
rowColumns.put("domain_name", domainNameSet);
}
hs2Profile.getIpAddressTypeAvailability();
rowColumns.put("deauth_request_timeout", new Atom<>(hs2Profile.getDeauthRequestTimeout()));
rowColumns.put("osen",
new Atom<>(operatorProfile.isServerOnlyAuthenticatedL2EncryptionNetwork()));
@@ -3528,18 +3557,11 @@ public class OvsdbDao {
rowColumns.put("gas_addr3_behavior", new Atom<>(hs2Profile.getGasAddr3Behaviour().getId()));
rowColumns.put("operating_class", new Atom<>(hs2Profile.getOperatingClass()));
rowColumns.put("anqp_domain_id", new Atom<>(hs2Profile.getAnqpDomainId()));
Set<Atom<String>> mccMnc = new HashSet<>();
hs2Profile.getMccMnc3gppCellularNetworkInfo().stream()
.forEach(c -> {
String pair = c.getMccMncPairing() + ";";
mccMnc.add(new Atom<>(pair));
});
com.vmware.ovsdb.protocol.operation.notation.Set mccMncSet = com.vmware.ovsdb.protocol.operation.notation.Set
.of(mccMnc);
rowColumns.put("mcc_mnc", mccMncSet);
Set<Atom<String>> connectionCapabilities = new HashSet<>();
hs2Profile.getConnectionCapabilitySet().stream().forEach(
c -> connectionCapabilities.add(new Atom<>(c.getConnectionCapabilitiesIpProtocol().getId() + ":"
hs2Profile.getConnectionCapabilitySet().stream()
.forEach(c -> connectionCapabilities
.add(new Atom<>(c.getConnectionCapabilitiesIpProtocol().getId() + ":"
+ c.getConnectionCapabilitiesPortNumber() + ":"
+ c.getConnectionCapabilitiesStatus().getId())));
com.vmware.ovsdb.protocol.operation.notation.Set connectionCapabilitySet = com.vmware.ovsdb.protocol.operation.notation.Set
@@ -3570,6 +3592,25 @@ public class OvsdbDao {
rowColumns.put("venue_group_type", new Atom<>(groupType));
// # format: <1-octet encoded value as hex str>
// # (ipv4_type & 0x3f) << 2 | (ipv6_type & 0x3) << 2
// 0x3f = 63 in decimal
// 0x3 = 3 in decimal
if (IPv6PasspointAddressType.getByName(
hs2Profile.getIpAddressTypeAvailability()) != IPv6PasspointAddressType.UNSUPPORTED) {
int availability = IPv6PasspointAddressType
.getByName(hs2Profile.getIpAddressTypeAvailability()).getId();
String hexString = Integer.toHexString((availability & 3) << 2);
rowColumns.put("ipaddr_type_availability", new Atom<>(hexString));
} else if (IPv4PasspointAddressType.getByName(
hs2Profile.getIpAddressTypeAvailability()) != IPv4PasspointAddressType.UNSUPPORTED) {
int availability = IPv4PasspointAddressType
.getByName(hs2Profile.getIpAddressTypeAvailability()).getId();
String hexString = Integer.toHexString((availability & 63) << 2);
rowColumns.put("ipaddr_type_availability", new Atom<>(hexString));
}
Map<String, WifiVifConfigInfo> vifConfigMap = getProvisionedWifiVifConfigs(ovsdbClient);
Set<Uuid> vifConfigs = new HashSet<>();
@@ -3656,7 +3697,8 @@ public class OvsdbDao {
Hotspot20IdProviderProfile providerProfile = (Hotspot20IdProviderProfile) provider.getDetails();
Map<String, Value> rowColumns = new HashMap<>();
rowColumns.put("osu_nai", new Atom<>(providerProfile.getOsuNaiStandalone()));
// rowColumns.put("osu_nai2", new Atom<>(providerProfile.getOsuNaiShared()));
// rowColumns.put("osu_nai2", new
// Atom<>(providerProfile.getOsuNaiShared()));
getOsuIconUuidsForOsuProvider(ovsdbClient, providerProfile, rowColumns);
getOsuProviderFriendlyNames(providerProfile, rowColumns);
@@ -3770,9 +3812,7 @@ public class OvsdbDao {
}
protected void getNaiRealms(Hotspot20IdProviderProfile providerProfile,
Map<String, Value> rowColumns) {
Set<Atom<String>> naiRealms = new HashSet<>();
protected void getNaiRealms(Hotspot20IdProviderProfile providerProfile, Set<Atom<String>> naiRealms) {
providerProfile.getNaiRealmList().stream().forEach(c -> {
StringBuffer naiBuffer = new StringBuffer();
@@ -3849,9 +3889,7 @@ public class OvsdbDao {
});
com.vmware.ovsdb.protocol.operation.notation.Set naiRealmsSet = com.vmware.ovsdb.protocol.operation.notation.Set
.of(naiRealms);
rowColumns.put("nai_realm", naiRealmsSet);
}
public void provisionHotspot2IconConfig(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {

View File

@@ -7,11 +7,10 @@ import com.vmware.ovsdb.protocol.operation.notation.Uuid;
public class Hotspot20IconConfig implements Cloneable {
public static String[] ovsdbColumns = { "_version", "name", "path", "url", "lang_code", "height", "img_type",
public static String[] ovsdbColumns = { "_version", "name", "url", "lang_code", "height", "img_type",
"_uuid", "width" };
public String name;
public String path;
public String url;
public String langCode;
public Integer height;
@@ -31,10 +30,6 @@ public class Hotspot20IconConfig implements Cloneable {
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.name = row.getStringColumn("name");
}
if ((row.getColumns().get("path") != null) && row.getColumns().get("path").getClass()
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.path = row.getStringColumn("path");
}
if ((row.getColumns().get("url") != null) && row.getColumns().get("url").getClass()
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.url = row.getStringColumn("url");
@@ -74,14 +69,14 @@ public class Hotspot20IconConfig implements Cloneable {
@Override
public String toString() {
return "Hotspot20IconConfig [name=" + name + ", path=" + path + ", url=" + url + ", langCode=" + langCode
return "Hotspot20IconConfig [name=" + name + ", url=" + url + ", langCode=" + langCode
+ ", height=" + height + ", imgType=" + imgType + ", width=" + width + ", uuid=" + uuid + ", version="
+ version + "]";
}
@Override
public int hashCode() {
return Objects.hash(height, imgType, langCode, name, path, url, uuid, version, width);
return Objects.hash(height, imgType, langCode, name, url, uuid, version, width);
}
@Override
@@ -95,7 +90,7 @@ public class Hotspot20IconConfig implements Cloneable {
Hotspot20IconConfig other = (Hotspot20IconConfig) obj;
return Objects.equals(height, other.height) && Objects.equals(imgType, other.imgType)
&& Objects.equals(langCode, other.langCode) && Objects.equals(name, other.name)
&& Objects.equals(path, other.path) && Objects.equals(url, other.url)
&& Objects.equals(url, other.url)
&& Objects.equals(uuid, other.uuid) && Objects.equals(version, other.version)
&& Objects.equals(width, other.width);
}