adroste / 3cx-api

3CX Phone System API forked and partially updated to work with 3CX v18. Feel free to contribute. NPM: @adroste/3cx-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

REST-API for 3CX

This is a fork of the last publicly available 3CX Phone API (see: https://www.npmjs.com/package/@3cx/api). As long as we are waiting for a new public API this is all we got. As I'm working on small side projects that rely on this api I'll try to maintain it a bit (update dependencies, add missing APIs etc.)

I will accept pull requests that for instance

  • add missing APIs,
  • remove unsupported APIs,
  • fix stuff,
  • introduce handy utils etc.

Related projects

Other APIs for 3CX

  • Call Control API
    • official .NET library for 3CX. Still available, but no longer supported. Documentation was unpublished recently.
    • e.g. https://github.com/Montesuma80/3cx-web-API : dotnet core based server application to control calls (make calls, drop calls, transfer etc.)
  • MyPhone API (/MyPhone/MPWebService.asmx)
    • Lot of useful endpoints but it uses an undocumented binary format
    • used by the official webclient

Getting started

Installation:

# npm
npm install --save @adroste/3cx-api

# yarn
yarn add @adroste/3cx-api

Usage

import { createClient, ConsoleClient } from '@adroste/3cx-api';

async function main(){
    const http = await createClient('http://my-3cx-instance:5000', { Username: 'Admin', Password: '############' });
    const api = new ConsoleClient(http);

    console.log(await api.getSystemStatus());
}

main();

Docs

Unfortunately, there are no docs available at this moment. However, the code is very simple. I'll suggest you start by looking at the lib/console-client.ts as well as lib/dashboard/dashboard-func.ts. The majority of available endpoints is implemented those two files.

Hints

  • DN Properties: To list/manage DN properties in the Web-Interface go to Settings -> Paramters and set DEVELOPMENT_DNTABLE_EXPOSE to 1. Refresh the page and you should see the DN properties tab.

About

3CX Phone System API forked and partially updated to work with 3CX v18. Feel free to contribute. NPM: @adroste/3cx-api


Languages

Language:TypeScript 100.0%