aaronparker / evergreen

Create evergreen Windows image build pipelines with the latest version numbers and download URLs for common applications
http://stealthpuppy.com/evergreen/
MIT License
385 stars 66 forks source link

Cisco WebEx - new app available, Evergreen returning legacy version only #197

Open DanGough opened 3 years ago

DanGough commented 3 years ago

Hi Aaron,

I have CiscoWebex in Nevergreen that I'll probably deprecate at some point now that it's in Evergreen, but right now they are actually returning different products!

According to https://www.webex.com/downloads.html, they have an 'all new' Webex app (that is labelled as Webex Teams in URLs but seemingly not in the marketing) that Nevergreen is returning, and their previous app Meetings, that Evergreen is returning.

Confusingly their versions are not far off each other with their previous app having a higher version!

Evergreen

Nevergreen

I don't use the product myself so unaware of the differences. Also the main download page has links for the VDI version that relates to this new app 41.6.x, that Nevergreen is not currently supporting and is different to the VDI package that Evergreen returns: https://www.webex.com/downloads/teams-vdi.html.

endoleg commented 3 years ago

https://binaries.webex.com/WebexTeamsDesktop-Windows-Gold/Webex.msi in Nevergreen is "Cisco Webex Teams" aka "Cisco Webex"

https://welcome.webex.com/client/T33L/webexapp.msi in Evergreen is "Cisco Webex Meetings"

That are different products. I think, webex meetings will not be developed further and is deprecated. The future is (Cisco) Webex (Teams).

DanGough commented 3 years ago

Meetings does seem to still be in development (for now), see here for the features planned for July. Also they have separate channels for 'Latest' and 'Slow':

https://help.webex.com/en-us/xcwws1/What-s-New-for-the-Latest-Channel-of-Webex-Meetings

https://help.webex.com/en-us/n5rdoxq/What-s-New-for-the-Slow-Channel-of-Cisco-Webex-Meetings

aaronparker commented 3 years ago

Right now, we use this to return version numbers and downloads, which is the same call that https://welcome.webex.com uses:

irm https://welcome.webex.com/webappng/api/v1/download

webexAPPFileLink       : https://welcome.webex.com/client/T33L/mac/arm64/Cisco_Webex_Meetings.pkg
pageBuildVersion       : 41.7.2.6
webexAPPBuildVersion   : 41.7.2.13
xmlAPIBuildVersion     : 41.7.1.118
thinClientBuildVersion : 41.7.1.926
videoPlatformVersion   : 2.0
appleAppStoreLink      : https://itunes.apple.com/us/app/cisco-webex-meetings/id298844386
googleAppStoreLink     : https://play.google.com/store/apps/details?id=com.cisco.webex.meetings
lockdown               : False
supportWbxPlugin       : False
webexAPPFileLink4Mac   : https://welcome.webex.com/client/T33L/mac/arm64/Cisco_Webex_Meetings.pkg
webexAPPFileLink4Win   : https://welcome.webex.com/client/T33L/webexapp.msi
supportVdiDownload     : True
windowsVdiFileLink     : https://welcome.webex.com/client/T33L/webexvdi.msi
ubuntuVdiFileLink      : https://welcome.webex.com/client/T33L/ubuntu/webex_vdi_x86_64.deb
eLuxVdiFileLink        : https://welcome.webex.com/client/T33L/ubuntu/webexvdi-elux-RP6.zip
hpThinProVdiFileLink   : https://welcome.webex.com/client/T33L/ubuntu/webexvdi-thinpro_amd64.deb
dellThinVdiFileLink    : https://welcome.webex.com/client/T33L/ubuntu/webexvdi-thinos_amd64.ipk
enableMACPTEOL         : True
DanGough commented 3 years ago

Perhaps one of these pages calls a different API source?

https://www.webex.com/downloads.html https://www.webex.com/downloads/teams-vdi.html https://help.webex.com/en-us/nw5p67g/Webex-Installation-and-Automatic-Upgrade

I need to level up on Fiddler!

msfreaks commented 3 years ago

The download links have changed according to the json:

{
    "webexAPPFileLink": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexapp.msi",
    "pageBuildVersion": "41.8.5.4",
    "webexAPPBuildVersion": "41.8.5.6",
    "xmlAPIBuildVersion": "41.9.0.2539",
    "thinClientBuildVersion": "41.8.2.999",
    "videoPlatformVersion": "2.0",
    "appleAppStoreLink": "https://itunes.apple.com/us/app/cisco-webex-meetings/id298844386",
    "googleAppStoreLink": "https://play.google.com/store/apps/details?id=com.cisco.webex.meetings",
    "lockdown": false,
    "supportWbxPlugin": true,
    "wbxPluginVersionNum": "41.6.1.4",
    "wbxPluginDownLoadLink": "https://akamaicdn.webex.com/upgradeserver/client/ptool/41.6.1/msi/webexplugin.msi",
    "webexAPPFileLink4Mac": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/mac/intel/webexapp.dmg",
    "webexAPPFileLink4Win": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexapp.msi",
    "mcPlugInLinkWin4Admin": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexmc.msi",
    "supportVdiDownload": true,
    "ubuntuVdiFileLink": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webex_vdi_x86_64.deb",
    "eLuxVdiFileLink": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webexvdi-elux-RP6.zip",
    "hpThinProVdiFileLink": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webexvdi-thinpro_amd64.deb",
    "dellThinVdiFileLink": "https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webexvdi-thinos_amd64.ipk",
    "enableMACPTEOL": true
}

Evergreen (2108.450) still returns the old link:

Get-EvergreenApp -Name 'CiscoWebex'

Version  Type    URI
-------  ----    ---
41.8.5.6 VDI
41.8.5.6 Desktop https://welcome.webex.com/client/T33L/webexapp.msi
aaronparker commented 3 years ago

That's not from https://welcome.webex.com/webappng/api/v1/download right? I don't see the same output.

msfreaks commented 3 years ago

Actually it was, but reloading that link now returns download links that do not work for me :(

So this one https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexapp.msi works.

This one https://welcome.webex.com/client/T33L/webexapp.msi does not..

I cannot get the api to return the json I posted earlier now...

msfreaks commented 3 years ago

Got it to work (in browser).

Browse to https://welcome.webex.com/, then navigate to https://welcome.webex.com/webappng/api/v1/download in the same tab / browser session.

You will now see the output I posted earlier with the working Urls.

So maybe a solution would be (untested!) to add the referrer element to the headers when grabbing the json (using https://welcome.webex.com/ as referrer? Or (yikes), a site / session cookie?

aaronparker commented 3 years ago

Replaying the same query from the browser fails to return the expected output. E.g.:

Invoke-RestMethod -Uri "https://welcome.webex.com/webappng/api/v1/download" -Headers @{
    "sec-ch-ua"                 = "`"Chromium`";v=`"92`", `" Not A;Brand`";v=`"99`", `"Microsoft Edge`";v=`"92`""
    "sec-ch-ua-mobile"          = "?0"
    "DNT"                       = "1"
    "Upgrade-Insecure-Requests" = "1"
    "User-Agent"                = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73"
    "Accept"                    = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
    "Sec-Fetch-Site"            = "none"
    "Sec-Fetch-Mode"            = "navigate"
    "Sec-Fetch-User"            = "?1"
    "Sec-Fetch-Dest"            = "document"
    "Accept-Encoding"           = "gzip, deflate, br"
    "Accept-Language"           = "en-AU,en-GB;q=0.9,en;q=0.8,en-US;q=0.7"
    "Cookie"                    = "trackingSessionID=7CC639E6C7234A1E8E2CB9FCFB4CB2ED; NSC_tkd02-ofcvmbec-qspe-ud-80-wjq=ffffffff09f40bf345525d5f4f58455e445a4a4229a1; _csrf_=cb632d29-f7db-4af1-a29a-b88c894d976b; CK_LanguageID_3382872=1; CK_RegionID_3382872=2; CK_ViewType_3382872=modern; NSC_ktk7noh-wt-80=ffffffff09f4384545525d5f4f58455e445a4a4229a1; CK_CDNHostStatus=akamaicdn.webex.com|1629252832303|1; ADRUM=s=1629252843785&r=https%3A%2F%2Fwelcome.webex.com%2Fwebappng%2Fsites%2Fwelcome%2Fdashboard%3Fhash%3D220425006"
} -UseBasicParsing
aaronparker commented 3 years ago

This approach doesn't work either:

$params = @{
    Uri             = "https://welcome.webex.com/webappng/api/v1/download"
    UserAgent       = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73"
    Headers         = @{"referer" = "welcome.webex.com"}
    Method          = "GET"
    UseBasicParsing = $True
}
Invoke-RestMethod @params
AshleyHow commented 3 years ago

Aren't we mixing issues here?

@DanGough's issue is related to totally different products and @msfreaks issue is related to a dead link/changing URLs.

I'm pretty the API changes the links dynamically depending upon when it feels like it (maybe for some load balancing reason considering it's going to a CDN sometimes)? however (and please correct me if I'm wrong) it's all the same files. https://welcome.webex.com/client/T33L/webexapp.msi and https://welcome.webex.com/client/T33L/webexvdi.msi is working, so perhaps that was just a temporary issue?

Version  Type    URI
-------  ----    ---
41.8.5.6 Desktop https://welcome.webex.com/client/T33L/webexapp.msi
41.8.5.6 VDI     https://welcome.webex.com/client/T33L/webexvdi.msi

Following @msfreaks method I get this output from the API

{
   "webexAPPFileLink":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexapp.msi",
   "pageBuildVersion":"41.8.5.4",
   "webexAPPBuildVersion":"41.8.5.6",
   "xmlAPIBuildVersion":"41.9.0.2539",
   "thinClientBuildVersion":"41.8.2.999",
   "videoPlatformVersion":"2.0",
   "appleAppStoreLink":"https://itunes.apple.com/us/app/cisco-webex-meetings/id298844386",
   "googleAppStoreLink":"https://play.google.com/store/apps/details?id=com.cisco.webex.meetings",
   "lockdown":false,
   "supportWbxPlugin":true,
   "wbxPluginVersionNum":"41.6.1.4",
   "wbxPluginDownLoadLink":"https://akamaicdn.webex.com/upgradeserver/client/ptool/41.6.1/msi/webexplugin.msi",
   "webexAPPFileLink4Mac":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/mac/intel/webexapp.dmg",
   "webexAPPFileLink4Win":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexapp.msi",
   "mcPlugInLinkWin4Admin":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexmc.msi",
   "supportVdiDownload":true,
   "windowsVdiFileLink":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/webexvdi.msi",
   "ubuntuVdiFileLink":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webex_vdi_x86_64.deb",
   "eLuxVdiFileLink":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webexvdi-elux-RP6.zip",
   "hpThinProVdiFileLink":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webexvdi-thinpro_amd64.deb",
   "dellThinVdiFileLink":"https://akamaicdn.webex.com/client/WBXclient-41.8.5-6/ubuntu/webexvdi-thinos_amd64.ipk",
   "enableMACPTEOL":true
}