- Joined
- Dec 17, 2019
- Messages
- 3
- Reaction score
- 11
TLDR
At the moment, the Desktop App is rather useless for automatic deployment and provisioning.
The installer is missing (at least) a few options:
/TLDR
3CX is planning to phase out the legacy Windows client and replace it with the new „Desktop App“. Therefore I’ve started looking into how to automatically deploy and provision the new app.
Unfortunately, in that regard (and right now), the Desktop App looks like a step-back to me, compared to the legacy client.
There are a whole bunch of forum posts about install options for the Desktop App. But even though many of these threads are only 2-3 months old, a lot of the information appears already obsolete and doesn’t work any more with the current version of the Desktop App installer (3CXDesktopApp-18.7.10.msi).
Apart from various forum posts, I can't find any (complete and current) documentation on how to deploy the Desktop App.
Some things that work for me (with 3CXDesktopApp-18.7.10.msi):
Silent machine-wide install with custom directory
The default for the machine-wide install is C:\Program Files\3CXDesktopApp.
Using the MSI parameter APPLICATIONROOTDIRECTORY, I'm able to set a different directory for the Desktop App:
Preventing app auto-launch after machine-wide install
After installing the MSI it will launch the Desktop App right away. When you deploy under the SYSTEM account for example, that’s not something you want.
The MSI should really have a property to prevent that, but at the moment there doesn’t seem to be one.
To avoid the auto-launch, I’ve found this – rather complicated – workaround:
Using Microsoft Orca, you can generate a transform (.mst) for the 3CXDesktopApp-18.x.xx.msi installer. In the transform, you delete the last action (LaunchApplication, sequence number 6601) from the InstallExecuteSequence table.
After saving the transform, you can install the Desktop App like this:
The annoying thing with transforms is that they only work with the exact MSI they were created with. When you want to deploy a new version of the 3CXDesktopApp-18.x.xx.msi, you have to create a new transform as well.
Automatic provisioning for the Desktop App
The legacy Windows client can be provisioned by opening the .3cxconfig file attached to the welcome email.
However, the „new and improved“ Desktop App can’t seem to open those files.
Instead, it's suggested that every user should log in to their webclient and manually provision the Desktop App from there.
To be honest, I find that idea absurd and completely detached from reality.
So far, I have not figured out how to automate the provisioning process, and I couldn't find a solution on the forum either.
The „missing link“ is the user-specific provisioning URL that has to be supplied in order to initialize the Desktop App:
I’ve found only 2 places where you can get that URL:
All the URL components, apart from the user-specific „provisioning ID“, are static and known beforehand. So there's probably only one small thing missing to automate provisioning.
Grabbing the provisioning URL with wget or curl, you end up with exactly the same file that is attached to the welcome email (with the .3cxconfig file extension).
Why the Desktop App can’t load its provisioning options from the 3cxconfig files - just like the legacy Windows client - but has to retrieve the identical data via https, is a mystery best left for the 3CX developers to solve.
As I have - sadly enough - come to expect from 3CX, the whole deployment and provisioning process is - at least at this time - poorly designed and not thought-out at all.
Documentation is non-existent, obsolete or incomplete and if you want reliable, automated deployment you’re basically forced to cobble together a solution out of various parts.
At the moment, I’m planning to stick with the legacy Windows client as long as possible, until these issues with the Desktop App are ironed out.
At the moment, the Desktop App is rather useless for automatic deployment and provisioning.
The installer is missing (at least) a few options:
- install parameter to prevent auto-launch after install
- install parameter to disable "launch on login for all users on this machine"
- a way to provision the Desktop App without user interaction
/TLDR
3CX is planning to phase out the legacy Windows client and replace it with the new „Desktop App“. Therefore I’ve started looking into how to automatically deploy and provision the new app.
Unfortunately, in that regard (and right now), the Desktop App looks like a step-back to me, compared to the legacy client.
There are a whole bunch of forum posts about install options for the Desktop App. But even though many of these threads are only 2-3 months old, a lot of the information appears already obsolete and doesn’t work any more with the current version of the Desktop App installer (3CXDesktopApp-18.7.10.msi).
Apart from various forum posts, I can't find any (complete and current) documentation on how to deploy the Desktop App.
Some things that work for me (with 3CXDesktopApp-18.7.10.msi):
Silent machine-wide install with custom directory
The default for the machine-wide install is C:\Program Files\3CXDesktopApp.
Using the MSI parameter APPLICATIONROOTDIRECTORY, I'm able to set a different directory for the Desktop App:
msiexec /i 3CXDesktopApp-18.7.10.msi /qn /norestart ALLUSERS=1 APPLICATIONROOTDIRECTORY="%ProgramFiles%\MyCustom3CXFolder"Preventing app auto-launch after machine-wide install
After installing the MSI it will launch the Desktop App right away. When you deploy under the SYSTEM account for example, that’s not something you want.
The MSI should really have a property to prevent that, but at the moment there doesn’t seem to be one.
To avoid the auto-launch, I’ve found this – rather complicated – workaround:
Using Microsoft Orca, you can generate a transform (.mst) for the 3CXDesktopApp-18.x.xx.msi installer. In the transform, you delete the last action (LaunchApplication, sequence number 6601) from the InstallExecuteSequence table.
After saving the transform, you can install the Desktop App like this:
msiexec /i 3CXDesktopApp-18.7.10.msi /qn /norestart ALLUSERS=1 TRANSFORMS=“3CXDesktopApp.mst“The annoying thing with transforms is that they only work with the exact MSI they were created with. When you want to deploy a new version of the 3CXDesktopApp-18.x.xx.msi, you have to create a new transform as well.
Automatic provisioning for the Desktop App
The legacy Windows client can be provisioned by opening the .3cxconfig file attached to the welcome email.
However, the „new and improved“ Desktop App can’t seem to open those files.
Instead, it's suggested that every user should log in to their webclient and manually provision the Desktop App from there.
To be honest, I find that idea absurd and completely detached from reality.
So far, I have not figured out how to automate the provisioning process, and I couldn't find a solution on the forum either.
The „missing link“ is the user-specific provisioning URL that has to be supplied in order to initialize the Desktop App:
tcx+app:https://<3CX hostname>:5001/p/<provisioning directory>/<user-specific ID>I’ve found only 2 places where you can get that URL:
- by clicking the „Provision“ button in the webclient
- in the the welcome email, encoded in the QR code attachment (qr.png)
Unfortunately, the URL is not contained anywhere in the email text.
All the URL components, apart from the user-specific „provisioning ID“, are static and known beforehand. So there's probably only one small thing missing to automate provisioning.
Grabbing the provisioning URL with wget or curl, you end up with exactly the same file that is attached to the welcome email (with the .3cxconfig file extension).
Why the Desktop App can’t load its provisioning options from the 3cxconfig files - just like the legacy Windows client - but has to retrieve the identical data via https, is a mystery best left for the 3CX developers to solve.
As I have - sadly enough - come to expect from 3CX, the whole deployment and provisioning process is - at least at this time - poorly designed and not thought-out at all.
Documentation is non-existent, obsolete or incomplete and if you want reliable, automated deployment you’re basically forced to cobble together a solution out of various parts.
At the moment, I’m planning to stick with the legacy Windows client as long as possible, until these issues with the Desktop App are ironed out.