Diagnostics & monitoring
Call diagnostics: the SIP flow of a single call
Load the CUCM traces for one call and read its SIP flow as a ladder diagram.
In EasyUC: EasyUC Cisco → Logs → Call Diagnostics
What it is for
Call diagnostics answers the question of what happened to one specific call at signalling level. You pick the call in the call list (CDR) or in the CURRI log. EasyUC then loads the SDL traces of the Cisco CallManager service from all CallManager nodes of the cluster for exactly that time, extracts the SIP messages of this one call and shows them as a ladder diagram.
This replaces collecting and searching trace files by hand with RTMT. The function only reads existing trace files through the CUCM log collection interface. It does not change any CUCM configuration and does not switch on traces.
If the call went through a CUBE with debug capture switched on, EasyUC merges its SIP messages into the same flow. This happens only for users with read access to the CUBEs.
Prerequisites
- Licence module
cucmand a working CUCM connection. - Role
ROLE_APP_CALL_DIAGNOSTICS("Analyze CUCM Calls" in the role editor). It allows starting, viewing and exporting, and includes the page roleROLE_APP_VIEW_CALL_DIAGNOSTICS_PAGEand read access to the call list. - The AXL user of the CUCM connection has the CUCM roles Standard CCM Admin Users and Standard RealtimeAndTraceCollection. Without them the node reports a missing role.
- On the CUCM, the Cisco CallManager service uses trace level Detailed with Enable SIP Call Processing Trace. Without this setting the traces contain no SIP messages.
- EasyUC reaches every CallManager node under its name from the CUCM over HTTPS (port 8443).
- When starting from the call list: the CDR import of the connection is running. When starting from CURRI: the call is in the CURRI log.
- SSH credentials (platform/OS administrator) are not needed for call diagnostics. They are only used for "Details (SSH)" of the CUCM nodes.
- The background service for trace collection is running. It processes only one collection at a time.
- For CUBE messages in the flow: read access to the CUBEs (
ROLE_APP_GATEWAYSwithROLE_APP_GATEWAYS_CUBE). Administrators always have it.
Step by step: start a diagnosis from the call list
Step by step: start a diagnosis from the CURRI log
Step by step: export a result and find it again
Fields and options
| Field / action | Meaning and use |
|---|---|
| Timezone | Time zone in which you specify the time window. Prefilled with the time zone of your browser. |
| Date range, Start Time, End Time | Time window of the trace collection. Prefilled with call start minus 60 seconds to call end plus 60 seconds. One second to 30 minutes is allowed. |
| Start call analysis | Creates the diagnosis. The work runs in the background. |
| Hide 100 Trying | Hides the provisional 100 Trying responses in the diagram. |
| Hide NOTIFY, INFO and OPTIONS | Hides messages that usually do not matter for call setup. |
| Search in messages | Shows only messages whose text contains the search term, for example a Call-ID or 488. |
| Dialog buttons above the diagram | Each SIP dialog has its own colour. A click shows or hides the dialog. The anchor icon marks the dialog by which the call was found. |
| Call flow tab | SIP ladder diagram, the Other matching calls table and the CUCM nodes table. |
| Events tab | Participants, devices and addresses, identifiers found and the Trace events list with a category filter. Show the filtered raw line expands the trace line of an event. |
| SIP messages (text) | Export of all SIP messages of the call in chronological order as a text file. |
| Filtered logs | Export of the trace lines that belong to this call, in the original CUCM form. |
| Analysis (JSON) | Export of the whole result in machine-readable form: participants, dialogs, messages, nodes and notices. |
| Download SVG | Saves the ladder diagram with the currently set filters as a vector graphic. |
| Notice "… messages hidden by the filters" | Shows how many messages the filters are currently hiding. Without a match it reads "No messages for these filters." |
| Expressway lane | Messages from and to an Expressway get a lane of their own with this label. |
How to read the ladder diagram
| Field / action | Meaning and use |
|---|---|
| Columns (lanes) | Each lane is one peer: CUCM node, IP phone, Jabber or Webex App, gateway / CUBE, SIP trunk, other CUCM cluster, voicemail or unknown device. A lane is created per IP address. Devices behind the same address share a lane. |
| Time | Time of the message, with the gap to the previous message below it. |
| Arrows | An arrow is one SIP message from sender to receiver. The label gives the method (for example INVITE, BYE) or the response code. |
| Arrow colours | Blue: request. Grey: provisional response 1xx. Green: success 2xx. Orange: redirection 3xx. Red: error 4xx, 5xx or 6xx. |
| SDP badge | The message carries a media description. The message view lists codec and address lines; SRTP marks encrypted media. |
| Coloured bar next to the time | Shows which dialog the message belongs to. |
| Click on a message | Opens the message view with time, time on the node, transport, CSeq, Call-ID, Matched by, trace file and the message text. Copy puts the text on the clipboard. Credentials and SRTP keys are removed, long messages are shortened to 8 KB. |
| Matched by | States how EasyUC recognised the call: SIP Call-ID from the CDR, calling and called number, Diversion (forwarding), called number, calling number only, or Call-ID or Cisco-Guid from the CUBE debug capture. |
| Tiles SIP messages, Dialogs, CUCM nodes | Number of messages of this call, number of dialogs and participants, number of nodes and trace files read. |
| Status tile | Completed: all nodes read, call found. Partial: usable result, but a limit was reached or a node is missing. No matches: traces read, but no matching SIP dialog. |
| CUCM nodes table | Per node: host, number of trace files and SIP messages, time zone and status. In case of an error the reason is shown below, for example a missing role, "TLS error (certificate changed?)", "Not reachable" or "No trace files". |
| Other matching calls | Other calls that also match the numbers around the same time. The diagram shows the closest one. |
| Status of the cards in the overview | Analysis running, Completed, Partial, No trace files or Error. |
Check the result and narrow down errors
- You recognise success by the status Completed and a diagram that starts with
INVITEand ends withBYEor an error response. - "The traces contain no SIP messages. Set the trace level of the Cisco CallManager service to "Detailed" and enable "Enable SIP Call Processing Trace".": correct the trace setting on all CallManager nodes of the CUCM and repeat the call.
- "The call is older than two hours; its traces may have been rotated on the CUCM.": the CUCM rotates its trace files. Start the diagnosis as soon as possible after the call.
- "Role missing: the AXL user needs "Standard CCM Admin Users" and "Standard RealtimeAndTraceCollection"": add the roles to the AXL user in the CUCM.
- "Only the calling number matched; the call flow may belong to another call of this caller.": compare time and destination and check the Other matching calls table.
- "The call was still in progress when the traces were read; the call flow ends there.": start the diagnosis again after the call has ended.
- "Another call diagnosis is running on this CUCM connection": one diagnosis runs per CUCM connection at a time. EasyUC opens the running one. Further diagnoses wait in the order they were started.
- "The analysis did not finish: the background worker has not reported for 10 minutes." or the notice that the worker has not picked it up for an hour: the background worker for trace collection is not working. Start the diagnosis again and check the workers if it happens repeatedly.
- "Das Zeitfenster der Anrufdiagnose muss zwischen einer Sekunde und 30 Minuten liegen." (the server returns this message in German): reduce the window with Start Time and End Time.
- Limits per diagnosis: at most 8 CallManager nodes, 12 trace files per node, 64 MiB per file and 800 messages in the diagram. When a limit is reached, the result stays visible and gets the status Partial with a notice.
- If the diagram does not show the CUBE although the call went through it, the notices state the reason, for example that its debug capture is switched off or that the capture is kept for fewer days than the age of the call.
- "The CUCM node list was not available; only the AXL host was searched.": EasyUC could not determine the nodes of the cluster. If the call went through another node, it is missing. Check the AXL access.
- "The time zone of … is unknown; UTC is assumed.": the times of this node may be shifted. Compare with the times of the other nodes.
- "The traces on … start after the call began; the beginning may be missing." and "The CUCM did not provide SDL trace files for the time of the call.": the traces have already been overwritten.
- "More trace files cover the call on … than the limit of …; the end of the call may be missing." and "The trace analysis stopped after … MiB of trace data.": reduce the time window.
- "More than … SIP messages in the call window; later messages were ignored." and "The call flow was limited to … messages.": the time window is too large for the traffic on the cluster. Reduce it.
- "The traces contain SIP messages, but none at the time of the call (rotated traces or a time zone offset).": check the time zone in the dialog and the clock of the CUCM.
- "No SIP dialog in the traces matches the numbers and the time of the call.": the call did not use SIP, or the numbers were rewritten before the node. Extend the time window.
- Notices about the CUBE: "The debug capture of the CUBE … holds no SIP messages of this call.", "The CUBE debug capture could not be read; the call flow shows the CUCM traces only." and "… could only be read in part". The flow from the CUCM traces remains valid in all cases.
- Credentials and SRTP keys are removed before display and in all exports. The function only reads and changes nothing on the CUCM.