Make sure that the 3CX server is installed and activated
1. Upload files
Create /var/www/webapi/
Download link https://download.creomate.com/webapi_debian_en.zip
Place files in a folder:
- TCXWebAPI
- TCXWebAPI.ini
- AuthKeys.csv
- AllowedIP.txt
Create /var/www/webapi/mp3 (for MP3 records)
Don't forget grant write permissions to mp3 and log folders and make chmod +x TCXWebAPI for execute permission.
2. Install Nano for edit
3. Create daemon
Insert and save (ctrl+x -> y -> enter):
[Unit]
Description=webapi
After=nginx.service
After=3CXAudioProvider01.service
After=3CXCallFlow01.service
After=3CXCfgServ01.service
After=3CXEventNotificationManager.service
After=3CXIVR01.service
After=3CXMediaServer.service
After=3CXPhoneSystem01.service
After=3CXPhoneSystemMC01.service
After=3CXQueueManager01.service
After=3CXSystemService01.service
After=3CXTunnel01.service
[Service]
Environment=DOTNET_BUNDLE_EXTRACT_BASE_DIR=/var/tmp
WorkingDirectory=/var/www/webapi/
ExecStart=/var/www/webapi/TCXWebAPI --urls=http://127.0.0.1:8081
Restart=always
RestartSec=10
SyslogIdentifier=webapi
[Install]
WantedBy=multi-user.target
4. Enable and start daemon
5. Edit nginx conf file (this operation must be performed every time 3CX is updated)
After
client_max_body_size 300m;
root "C:/ProgramData/3CX/Data/Http/wwwroot";
add
location ~ ^/webapi/?(.*)
{
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8081/webapi/$1$is_args$args;
proxy_buffering off;
}
Restart NGNIX
6. Check
Local http - http://127.0.0.1:8081/webapi/tcx
Public https - https://{fqdn and port 3СХ}/webapi/tcx
You'll receive: {"product":"3CX REST API","version":"2.2.0","release":"Webhooks","licenseExpire":"01.01.0001 00:00:00","clientLicensesNum":"forbidden","concurrentCalls":0,"callRecords":false,"api":false,"quality":false}
7. License activation
https://{FQDN and port 3СХ}:5001/webapi/admin/
login - TCXWebAPI
password- Activate (after activation will be license XXXX-XXXX)
For trial activation use NHQE-QRND-TRIAL (only once)
8. Install lame for wav into mp3 conversion
3CX changes the standard repositories to its own, if lame is not installed, then you need to add repositories (for example, debian):
9. (After 3CX Update) Nginx configuration setup
After 3CX update you should run the WebAPI update script according this manual.
Open the file for editing sources.list
Edit the file:
deb [arch=amd64 by-hash=yes signed-by=/usr/share/keyrings/3cx-archive-keyring.gpg] http://repo.3cx.com/debian/1806 buster main
deb [arch=amd64 by-hash=yes signed-by=/usr/share/keyrings/3cx-archive-keyring.gpg] http://repo.3cx.com/debian-security/1806 buster main
deb http://deb.debian.org/debian buster main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free
deb http://deb.debian.org/debian buster-backports main contrib non-free
deb http://security.debian.org/debian-security/ buster/updates main contrib non-free
Save the file ctrl+z - y - enter
Update:
Install lame:
For restart WebAPI
or
For test daemon status
For getting a debug journal
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article