Add timeout destination handling in call_flow_map#3
Open
eliweaver732 wants to merge 1 commit into
Open
Conversation
Implemented logic to resolve timeout destinations for ring groups, enhancing call flow management.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
This PR adds support for ring group timeout destination mapping in the call flow visualization. It enhances the
build_ring_group()method in thecall_flow_map.phpclass to detect and render exit actions (timeout handlers) for ring groups, including exit key information when available.Why
Problem: The call flow map visualization was incomplete for ring groups. When a call failed to connect (timeout/no answer after retries), the system's exit action wasn't being visualized in the call flow diagram. This left operators and developers without visibility into where timeout calls would be routed.
Impact:
How It Works
The implementation adds a new code block in the
build_ring_group()method that:Extracts timeout destination data from the ring group record:
ring_group_timeout_app— the application/handler for timeout callsring_group_timeout_data— the destination data (e.g., phone number, extension)ring_group_exit_key— optional key press (if defined) that triggers the exitCreates a labeled node in the call flow:
"Exit""Exit / Key <key>"Resolves the destination recursively using the existing
resolve_destination()method, ensuring timeout destinations are fully mapped (e.g., if they route to another ring group, voicemail, or IVR).Key Details
??) to safely handle missing fieldsresolve_destination()mechanism as other routing handlers, ensuring consistency across the call flowTesting Recommendation
Verify this works with: