- Joined
- Mar 30, 2020
- Messages
- 31
- Reaction score
- 27
Environment:
What I Found (and I'm not sure if I'm interpreting this correctly):
Looking at the CallFlow and MediaServer logs, all three calls show identical routing and an identical strange pattern. In the CallFlow log, all three show:
But the successful call still played the greeting even with that "False" evaluation.
The MediaServer logs show what I think might be the issue. On all three calls, the IVR endpoint gets created, then immediately removed while waiting for the Voice Compose Engine (3cxVCE) to respond, then rejoined when VCE answers. The RACETRACKER entries show this happening:
Failed - Call 1:
Failed - Call 2:
Successful - Call 3:
The "Proceed to prompt
False)" evaluation happens during the gap when the endpoint is removed. On the successful call, the gap was only 67ms. On the failed calls, it was 199-289ms.
My Theory (but I could be wrong):It seems like when the IVR call flow evaluates whether to play the prompt, it checks if the media channel is ready. If VCE is slow to respond (200ms+), the IVR sees no active media channel during that gap and decides not to play anything. Even after the endpoint becomes ACTIVE moments later, it never recovers. When VCE responds quickly (<100ms), everything works.
Questions:
Any insights would be greatly appreciated. Happy to provide more detailed log excerpts if anyone thinks they can help troubleshoot this.
- 3CX Version: 20.0.7.1080 (Update 7 Hotfix)
- Platform: Azure VM (Linux)
- Trunk: SIP provider via UDP (Telnyx)
- Issue: IVR occasionally answers calls but plays no greeting (caller hears silence)
- Call 1: Rang, answered, silence, hung up after ~20 seconds
- Call 2: Rang, answered, silence, hung up after ~20 seconds
- Call 3: Rang, answered, greeting played normally
What I Found (and I'm not sure if I'm interpreting this correctly):
Looking at the CallFlow and MediaServer logs, all three calls show identical routing and an identical strange pattern. In the CallFlow log, all three show:
Code:
Proceed to prompt:(False)
Call finished with result=(null)
Waiting for the end of call
But the successful call still played the greeting even with that "False" evaluation.
The MediaServer logs show what I think might be the issue. On all three calls, the IVR endpoint gets created, then immediately removed while waiting for the Voice Compose Engine (3cxVCE) to respond, then rejoined when VCE answers. The RACETRACKER entries show this happening:
Failed - Call 1:
Code:
11:19:33.881 - EP joined to call, then immediately removed
[289ms gap]
11:19:34.170 - EP rejoined, VCE answered, state ACTIVE
Failed - Call 2:
Code:
11:19:57.614 - EP joined to call, then immediately removed
[199ms gap]
11:19:57.813 - EP rejoined, VCE answered, state ACTIVE
Successful - Call 3:
Code:
11:20:52.619 - EP joined to call, then immediately removed
[67ms gap]
11:20:52.685 - EP rejoined, VCE answered, state ACTIVE
The "Proceed to prompt
My Theory (but I could be wrong):It seems like when the IVR call flow evaluates whether to play the prompt, it checks if the media channel is ready. If VCE is slow to respond (200ms+), the IVR sees no active media channel during that gap and decides not to play anything. Even after the endpoint becomes ACTIVE moments later, it never recovers. When VCE responds quickly (<100ms), everything works.
Questions:
- Am I reading these logs correctly? Is this actually a race condition with VCE response timing?
- Has anyone else seen intermittent IVR silence that resolves on retry?
- Is there any configuration that affects how long the IVR waits for media channel readiness?
- Why would VCE response time vary so much between identical calls seconds apart?
Any insights would be greatly appreciated. Happy to provide more detailed log excerpts if anyone thinks they can help troubleshoot this.