Multi Tenant Office Hours doesn't work

GH80ehgeg

Platinum Partner
Basic Certified
Joined
Mar 25, 2024
Messages
4
Reaction score
2
Hi everyone,

I'm encountering a strange issue with a 3CX multi tenant where the configured Office Hours per department are being ignored.

Setup:

3CX Version: Version 20.0 Update 8 (Build 1121 Release)

Call Flow: Inbound Trunk -> registered account -> Call Queue (default route).

The Problem:
I have configured specific Office Hours where the office is closed in the morning. During this "closed" time,
calls should follow the "When office is closed route to " destination for non-office hours. However, even though the
schedule shows the system should be closed, calls are still being routed directly into the Queue as if it were open.

Steps already taken:

Service Restart: Restarted the Queue Manager and System Server services.
Config Refresh: Made minor changes to the Office Hours, saved them, and reverted them to force a config rewrite.
Timezone Check: System time and timezone are correct and match the local time.
Despite these steps, the morning closure is simply not triggering. It seems like the routing logic is "stuck" in the "Open" state.

In the activity log I can see

13/05/2026 12:52:06.859 [Flow] No office hours set, office hours assumed

which is completely wrong as i set up the office hours correctly. This behavior is system wide on every single department, every Queue is set with the correct department. No recent updates where made on the system.

Thanks in advance for your help!

Best regards
Markus
 
Hello,

Is the Trunk assigned to the correct department?
 
Hello,
yes, under the trunk options I've set the "limit to" for the department.
 
  • Like
Reactions: KyriacosS_3CX
Hi Nikos,

you're right, we had active some call scripts as described in https://www.3cx.com/blog/call-flow-scripts/force-pbx-hours/ . As I configured the scripts on a single department, it even forced it to all departments. I think this should be fixed, right?

anyway: problem fixed by disabling the call scripts.
 
@GH80ehgeg if the script is not modified to adjest the specific department, then this will apply to all.
So, for future reference, check the below example :


{
if (x.Name is "XXXXX")
{
//force office hours until midnight
var groupCurrentTime = x.Now(out var utc, out var timezone, out var groupmode);
x.OverrideExpiresAt = (groupCurrentTime+TimeSpan.FromDays(1)).Date;
x.CurrentGroupHours = GroupHoursMode.ForceHoliday;
MyCall.Info($"{x.Name} set to '{x.CurrentGroupHours}' until {x.OverrideExpiresAt}, timezone={timezone}, groupmode={groupmode}");
}
return x;
 
  • Like
Reactions: KyriacosS_3CX

Forum statistics

Threads
111,981
Messages
590,115
Members
164,908
Latest member
FarizQasimov