Everyone has been wanting a way to remotely deploy, customize, and provision the 3CX client for windows and 3CX has been working on it and the expected update to add this feature is near. However, because the need is there and we have been wanting the same thing, I've worked out some steps outlined below along with a batch file plus a powershell script to allow remote deploy, provision, and companywide customization. I've tested it in our environment and it works just as describe. We can push out the 3cx client to any and all PC's, and if the user has ever logged into the machine, they will get their own 3cx configuration along with any company wide customization we want. The primary manual process in this is creating the 3cxconfig files from the welcome email and placing them in a network share. Once you have these, you can use them to push the configuration out to all the PC's on the network and add the needed 3cxPhone.xml files for each user. The first step is getting the user configuration files. There are two ways I know of to obtain them. Send the welcome email, which would require the user then forwarding it to you or changing their email to your email so you can download it from the attachment. Then rename it *username.3cxconfig* with “username” being the users login name. Another way you can obtain them is run the 3cx client without an account assigned to it. Just open it up, delete any accounts in there. You may need to close it and open the program up again, but while it’s running you should be able to goto the 3CX console > Phones and see “New” 3CX Phone for Windows. It may not show the correct IP (127.0.0.1) but it should show the MAC address of the machine the un-provisioned client is running on. Assign it to an extension you need the config file for. You should see the windows client immediately update and be configured for that extension. Now on the 3cx console > Phones you will see the “Phone for Windows” phone for that extension. Highlight it and select “+Config”. This is the Welcome Email config file. Copy the text and save it to the network share your using as *username.3cxconfig* with “username” being the users login name. Once you have all the config files in your network share, you can now modify the batch and powershell scripts to point to those locations. Then use your preferred remote deployment method to execute the batch file. Personally I like PDQ Deploy. This script is to deploy the 3CX Windows Phone client to remote computers and to copy the users configuration settings along with customized options directly into the users AppData folder so when they launch 3CX, even for the first time, they will already have all their settings and company customization. There are several pre-requisites for this script to work properly and they are below. 1. You must save a copy of the 3cxconfig file sent by the Welcome Email for each user or by grabbing the config from the 3CX console > Phones > +Config This is the most time consuming, however 3CX does not offer another way to get these files. 2. Once you have each users config file, you need to name them "username".3cxconfig where "username" is the users domain name. Then copy the file to a network share. (NWPATH). *You are going to want to secure this network path, it has the phone credentials in it. 3. This script will only copy the proper 3cx config files to a users AppData folder if both exist. That means the user must have already logged into the remote pc at some point in the past and you must have saved the 3CXconfig file from the welcome email or 3CX console to the network path. 4. You may be able to break this step up, however I have most of it as one long task so that it will only continue if the previous commands were successful. 5. The powershell script is a separate file and is used to modify all users configuration with custom settings that you want company wide. For example having a company logo, bringing chat notifications to the front, etc. You do not need to use it if you want to stick with the default 3cx settings. 6. You will need to make your own Company Logo HeaderImage.jpg and place it in the share path (NWPATH) you are using to have it replaced. 7. You must update the script where it says (NWPATH) to point to wherever your network share and files are located. 8. You must update the script where it says (USER) to be the username of the user running or executing the script remotely. The basic steps of the script are in this order: 1. Kill the 3CX processes running on the remote machine to allow overwriting any current 3cx config files. 2. Goto the C:\users folder. 3. Make a users.txt file in C:\temp contains a list of all the user folders in C:\users. 4. Scan the users.txt file getting all the usernames that have logged into the pc before and assign them as %%A. 5. Check to see if 3CX Windows phone is installed on the pc. If it is not it will stop. 6. Copy the users welcome email 3cxconfig file form the network share to c:\temp. 7. Run the 3cxconfig file. This will generate the 3cxPhone.xml file with the users settings and place it under the AppData folder for the account that is running the script. 8. Take a 6 second pause for the 3cx windows client to fully launch and generate the 3cxPhone.xml file. 9. Copy newly generated 3CXPhone.xml file from the user account that is running the batch file and place it in the users AppData folder that the config file corresponds with. 10. Kill the 3CXPhone process that is running in the background created by executing the 3cxconfig file. 11. Delete the Welcome Email 3cxconfig file that was copied to c:\temp. 12. Delete the Users.txt file created in C:\temp and delete 3CXPhone.html in script runner user's folder. 13. Goto c:\temp. 14. Scan the C:\users directory for all users, 15. Check if they have a 3cxconfig file already setup for their user name. 16. If they do, Copy the powershell script to modify the config file for that user. 17. Copy the companyheader logo you want to use for that client. 17. Run the powershell script 18. The powershell script scans the users config file and replaces whatever settings you want with new ones. Feel free to modify this all you want, I hoping it won't be useful for much longer considering 3CX is working hard towards allowing management of the Softphone app from within the 3CX console. The code is in the next post, there is a 10k character limit to posts.