3CX Rest API

Status
Not open for further replies.

FSoftware

Customer
Joined
Oct 28, 2022
Messages
1
Reaction score
1
Hello,

We are a software development company and would like to initiate calls in 3cx out of our software. Additionaly we’d like to get just-in-time information about the active calls for further processing.

As I understand, all this was possible with the Call Control API , which is not supported anymore.

I read here that there were plans for 3CX Rest API. Is it already implemented or any other possibility to do what we need?
 
  • Like
Reactions: AboutAutomation
Hi @FSoftware If you are talking about initiating a call from CRM software, you can integrate it using our CRM integration wizard. Regarding "just-in-time" information, we do not have a call control API / REST API.
 
So sad to hear @Keith Winhall_3CX... Indeed, we are working with OVH for now and they have very good api we use to click2call from our own software and to display live call information on it. We try 3CX and thought it is better than OVH services but without API, we can not migrate our customers to 3CX. This is the only feature we miss ! Lets us know when it's available !
 
  • Like
Reactions: AboutAutomation
  • Like
Reactions: LukeSavefrogs
A REST API was announced way back when 3CX V18 was in alpha, but all talk of this API (from 3CX) has gone quiet. We would all appreciate an update on progress toward a publicly available/supported REST API.

Further, it is my understanding that the scope of the API has been trimmed back to primarily just call control tasks: MakeCall, Drop, transfer, etc. Nick said they will not be providing an API that allows you to make configuration changes.

Still, an API for call control would be very useful. In particular, I desperately need a "divert" API, and an "answer" API. I cannot get the Call Control API for "divert" to work, and there is no API for "answer" (that I can find). If anyone knows how to perform a "divert" or an "answer', I would love to know more :)
 
  • Like
Reactions: castlerockconsult
Hi @FSoftware If you are talking about initiating a call from CRM software, you can integrate it using our CRM integration wizard. Regarding "just-in-time" information, we do not have a call control API / REST API.
Just confirming that the "we do not have a call control API/ REST API" is still accurate?

Tray.io is advertising a 3CX integration, but after talking further with them, they've clarified they require 3CX REST API to make that integration happen.
 
Just confirming that the "we do not have a call control API/ REST API" is still accurate?

Tray.io is advertising a 3CX integration, but after talking further with them, they've clarified they require 3CX REST API to make that integration happen.
Companies like to say "Oh yeah we integrate with 3CX" when they actually don't because there's no API.

Some people built custom ones (@jed, @VoIPTools, and more) but nothing is 100% validated by 3CX.
 
  • Like
Reactions: jed and VoIPTools
I'm testing 3CX for 6 months now and I'm going to move to another solution despite it looks good. 3CX suits a lot of needs, but not mine : SMB, most users on windows TS session, multiple OS, Firefox as the standard web application we test all our applications on, CRM that is not compatible with their "API" and a solution where the phoning system get data from the CRM while I would prefer just to request him a call without giving him any customer data (GDPR).

Most of them can be overcome, but not the lack of an API. A REST API is said to arrive for several year now, but looking at it for 6 months it's clear nothing is moving on this side. It's really strange 3CX still doesn't provide at least those 2 basics REST API:
  • click to call
  • get the remote current number on a specific line
I looked at VoIPTools solution, but it looks so heavy to deal with, you even need a Windows OS machine.

I'm pretty sure 3CX board drives the company to what they think is the best for it. It's look like the 5G deployment in my country: first the biggest cities, then the smaller, then countryside. I'm pretty sure there are so many VSB this solution could concern that I don't blame them.

Hopefully, VoIP solutions get standard and you can move from one to another with the same material. Moving from one solution to another is not the more expansive. I'll continue to follow 3CX and maybe come back to it in the future.
 
VoIPTools Relay doesn't need a windows machine, that's only if you want to use the other modules. The API module itself is just installed on 3CX and doesn't require anything else.

MakeCall is also a free API in the relay (can be used without license.)

get the remote current number on a specific line
what do you mean by that?
 
Presently, knowing the local user and it's local number, the CRM make a REST API call to the phoning system and get the remote side number. This number is then searched in the CRM database that shows a list of accounts or directly the account if just one.

Something similar can be achieved through https://www.3cx.com/docs/crm-integration/ ,but it requires more development and users find it less direct, you have to interact with the 3CX web application. Today, everything is reached through the CRM only.
 
Presently, knowing the local user and it's local number, the CRM make a REST API call to the phoning system and get the remote side number. This number is then searched in the CRM database that shows a list of accounts or directly the account if just one.

Something similar can be achieved through https://www.3cx.com/docs/crm-integration/ ,but it requires more development and users find it less direct, you have to interact with the 3CX web application. Today, everything is reached through the CRM only.
If you expect to do everything from the CRM, then 3CX isn't the solution for you. There's no API other than that CRM integration.
 
Indeed, that is why I'm going to use another solution, but as said, I don't blame 3CX.
 
  • Like
Reactions: Evolute IT
To be clear, we have two APIs: One is a standards-based REST API and the other is an "Events" API where you can subscribe to 3CX real-time events. While the REST API is straightforward to use, admittedly, the events API does have a dependency on Microsoft SignalR (typically implies the use of C#).

If you are OK with making REST calls and/or subscribing to SignalR events, or can utilize our client libraries (.Net Standard), then you can do just about anything with 3CX.

For example, you could execute call control functions right from your CRM (call, transfer, drop, listen, whisper, etc.), and subscribe to real-time events including when a call is answered or disconnected. You can build server-side services or client-side services depending on your needs.

All our commercial (and custom) tools use these API (using our client libraries) so our APIs are used extensively by our customers around the world. Further, other development companies are using our APIs to build their own solutions, and you can too.

While any solution developed with our APIs can run on either Windows or Linux, we strongly urge you to install your solution on a separate server rather than running it directly on your 3CX server. Installing your solution on a separate server reduces the resource demands on your 3CX server and simplifies the environment where 3CX is running. That's my advice and the preference expressed by 3CX.
 
@VoIPTools Thank you for highlighting this. This information has never been so clear to me despite the time I spent on your site (but I came with clicktocall in mind).

As far as I understand you are speaking about "Rest API / Relay" that is free. You need to install it in order to get the documentation. I'll give it a try for one day.
 
As a point of clarification, we do have a couple of APIs that are accessible without a license key. MakeCall is one of the free APIs, but generally a license key is required to utilize our APIs.
 
  • Like
Reactions: Evolute IT
I'm sorry to complain here. But something is still not clear. Is it possible to install the REST API Relay on a 3CX Raspberry pi configuration (installed following the 3CX recommandations)? I have got the felling it's not possible. "setup" looks to be broken, and I'm not surprise if it's not specifically for ARM.

I spent one hour with someone unable to install it directly. Do you have any recommandation? Bash scripts?

I'm sorry, I can't even just try it, regards,
 
You are absolutely correct. In order for a C# application to function on a Raspberry pi, it would need to be compiled specifically for an ARM processor. We do not provide a build for that platform. However, we do support both Windows and Linux (just not on ARM). If you just want to try it out, I would recommend spinning up a tiny VM on Amazon LightSail (as one alternative) and try it out there.
 
  • Like
Reactions: Evolute IT
I also recommend moving the PBX away from the Pi because it's running an old (u2) update and won't get new updates. That means no activations either.
 
Sometime I wonder why I spend so much time on trying to make 3CX work in my office!

Raspberry Pi was also nice because it did not rely on any other infrastructure. If my vSphere is down, my phone system is also. But I agree, it's another distribution moreover ARM. I think I got my 3CX Rpi about one month before they announce the end of it...

So I moved my 3CX Rpi to a classical Debian Buster VM. I then manage to install VoIPTools REST API Relay. And a couple of hours after I manage to understand how to authenticate/authorize. I tested it and it works!

For the look up caller process, I built a really rudimentary service that look for the call in the postgresql DB (according to this experience: http://www.toughdev.com/content/2013/10/accessing-3cx-call-data-record-cdr-postgresql-database/). @VoIPTools, if ever opening one of the Active Connection API won't damage your business model, I would do so: it would make your solution the reference in REST API control of 3CX as of today (I mean no 3CX REST API offered until now).

For this last point, another solution would be to use only bash script and the logs generated by 3CX.
 
Status
Not open for further replies.