Call Processing Scripts missing in 3CX Pro

User0

Trial User
Joined
Aug 22, 2026
Messages
5
Reaction score
2
Hi, new user here.

I’m managing a self-hosted 3CX Pro instance and am not working with a 3CX partner during the trial month.

Under Admin > Integration > Call Scripts, I see:

Call Processing Script
This feature is unavailable on your current edition
My understanding is that 3CX Pro includes Call Processing Scripts. Is there anything I need to do to activate this feature myself, or is there an alternative way to enable it directly through my license?

Thank you.
 
You're using a trial license so it's blocked for now. You need a paid license to use it, even on Pro.
 
Thanks for the clarification. So, Call Processing Scripts are included with the Pro edition, but they’re disabled during the trial period and become available only after purchasing a paid license.

That’s kinda weird for a trial, preventing us from testing the feature before committing to a paid license. Anyway, thank you for your reply.
 
What are you trying to do with Call Scripts? Maybe we can at least tell you if what you need is possible or not, and give you some pointers.
 
What are you trying to do with Call Scripts? Maybe we can at least tell you if what you need is possible or not, and give you some pointers.
Two things:
  1. I have several dynamic queues (A, B, C, etc.) and two DIDs (#1 and #2). I’d like to automatically set the outbound DID for staff in Queue B to #2, so that when customers call back, they reach the correct queue. I understand I could ask staff to use a dial prefix to select the DID, but that’s a bit inconvenient. I thought Call Scripts might be able to help with this.
  2. I’d like to distinguish between external and internal calls. For example, if a call to Queue A is unanswered, I’d like to forward external calls to another queue, while sending internal calls directly to voicemail.
Any pointers on whether these are possible with Call Scripts would be greatly appreciated.
 
I have several dynamic queues (A, B, C, etc.) and two DIDs (#1 and #2). I’d like to automatically set the outbound DID for staff in Queue B to #2, so that when customers call back, they reach the correct queue. I understand I could ask staff to use a dial prefix to select the DID, but that’s a bit inconvenient. I thought Call Scripts might be able to help with this.
A Call Script will not help in this case. These scripts are activated on inbound calls, but can't intercept an outbound call to do something with them. If you are not changing the users all the time, your best option in my opinion is setting different outbound rules, and restrict them to specific users. Then, when User 1 calls to an external number, it will use Outbound Rule 1, and then Caller ID 1. If the User 2 calls the same number, it will use Outbound Rule 2, and then Caller ID 2. No prefix needed.

The only problem with this, is when you need to change the users from the queue. You will need to remember to adjust the outbound rules as well....

I’d like to distinguish between external and internal calls. For example, if a call to Queue A is unanswered, I’d like to forward external calls to another queue, while sending internal calls directly to voicemail.
This can be done with a Call Script or CFD app. Pretty simple to do from a CFD app. Just set the CFD app as the destination if no answer for queue A. Then from the CFD app you can check the length of the caller's number, for example to check if it has 4 digits (when you use 4-digits extensions) you use:
EQUAL(session.ani,4)

Then, depending on the result, you transfer to another queue or a voicemail.
 
  • Like
Reactions: User0
This can be done with a Call Script or CFD app. Pretty simple to do from a CFD app. Just set the CFD app as the destination if no answer for queue A. Then from the CFD app you can check the length of the caller's number, for example to check if it has 4 digits (when you use 4-digits extensions) you use:
EQUAL(session.ani,4)

Then, depending on the result, you transfer to another queue or a voicemail.
Thanks for confirming.

A Call Script will not help in this case. These scripts are activated on inbound calls, but can't intercept an outbound call to do something with them. If you are not changing the users all the time, your best option in my opinion is setting different outbound rules, and restrict them to specific users. Then, when User 1 calls to an external number, it will use Outbound Rule 1, and then Caller ID 1. If the User 2 calls the same number, it will use Outbound Rule 2, and then Caller ID 2. No prefix needed.

The only problem with this, is when you need to change the users from the queue. You will need to remember to adjust the outbound rules as well....
Exactly my problem. By dynamic queues, I mean the queue members change every day.

I was hoping Call Scripts could do something along the lines of changing queue membership and setting the extension’s outbound DID at the same time. For example, when a staff member wants to log into a queue, they could dial a code that executes the script to log them into the queue and also set their outbound DID accordingly.

If Call Scripts can’t do this, maybe the XAPI/Call API in the 3CX AI, but 3CX AI is probably a bit overkill for my small business anyway :)
 
they could dial a code that executes the script to log them into the queue and also set their outbound DID accordingly
Yes ! A Call Flow or Call Script can perform these operations when users call it.

For complete information about what Call Scripts can accomplish, please refer to the 3CX Call Control API documentation.
I’ve attached an example for you. Replace the values on lines 62 and 63 with your own. ;)

As a reminder, this feature is not available with trial licenses.
 

Attachments

Hello,

Basically Queues are for inbound and have nothing to do with outbound calls. Being part of a queue does nothing for outbound calls or the DID used, this is bound to the user (Extension).
If the users do not move from queues, than just setting the DID at user level is the way to go.
However if the users do move from queues than this will not work.

Here is just another idear.
Create 2 departments #1 and #2, set the agents in the correct department, some agents will need to be in both departments.
In the outbound rules use 2 rules for the departments #1 and #2 where you can set the DID bound to the outbound rule.
In this case the extension does not provide the outbound DID but the Outbound rule will take care if this.

The agents can set the default Department Membership in the Webclient: Settings - General - Default Department Membership.
Meaning the agents will set the department its working for at that moment, and with that send the correct DID outbound.

Again this is just an idear, but do hope this will give some extra depth.

Paulo
 
  • Like
Reactions: User0
Yes ! A Call Flow or Call Script can perform these operations when users call it.

For complete information about what Call Scripts can accomplish, please refer to the 3CX Call Control API documentation.
I’ve attached an example for you. Replace the values on lines 62 and 63 with your own. ;)

As a reminder, this feature is not available with trial licenses.
Nice! Thank you.
I’ll give it a try when the feature becomes available.