Files
3cx_tapi/client
CPAMAP 235b7cba18 Add availability indicators on people tiles and share fetch service
New Availability module decorates each people-tile with a vertical
  status bar on the avatar and a dot+timestamp under the status text,
  showing ZeitConsens loggedIn state per extension.

  Status and Availability now share a single AvailabilityService that
  polls /availability every 30s, halving the API load. Avatars are
  enlarged to 57px and vertically centered to fit the new layout.
2026-04-13 12:14:18 +02:00
..
2026-04-10 12:02:03 +02:00
2026-03-27 11:00:10 +01:00
2026-04-10 12:06:16 +02:00
2026-04-10 12:02:03 +02:00
2026-03-18 10:34:20 +01:00

3CX TAPI

Inject CPA TAPI functions into the 3CX Webclient

dev

  1. Allow Tampermonkey's access to local file URIs tampermonkey/faq
  2. install deps with npm i or npm ci.
  3. npm run dev to start your development.
  4. open webpack-userscript-template/dist/index.dev.user.js in your Chrome and install it with your userscript manager.

this userscript's meta contains // @require file://path/to/dist/index.prod.user.js, it will run the code in index.prod.user.js, which take src/js/index.js as entry point.

every times you edit your metadata, you'll have to install it again, because Tampermonkey don't read it from dist every times.

  1. edit src/js/index.js with es6, you can even import css or less files. You can use scss if you like.

livereload is default enabled, use this chrome extension

dependencies

There are two ways to using a package on npm.

UserScript way

Like original UserScript way, you will need to add them to your user script metadata's require section , and exclude them in config/webpack.config.base.js

Webpack way

just install a package and import it in your js file. webpack will pack them with in your final production js file.

build

npm run build

dist/3CX TAPI.prod.user.js is the final script.

distribution

Userscript is included in server docker image

see also

Based on webpack-userscript-template