Systems involved
| System | Role |
|---|---|
| Kayako | Source ticket and final reply. |
| Asterisk / FreePBX call recording | The actual call recording for the disputed call. |
| Homer / SIPCapture | SIP message trace for the call. |
| sngrep / pcap on SBC | Live SIP and RTP capture. |
| Studio terminal (SBC SSH) | Inspect SBC config, NAT settings, RTP pinholes. |
| FortiGate / Palo Alto | Firewall RTP rule check and adjustment. |
| TestCallin / SIPp | Synthetic test call to validate the fix. |
| Studio Memories | Customer-specific RTP / NAT notes. |
Walkthrough
Pull the call evidence
Copilot reads the Kayako ticket, identifies the disputed Call-ID range from the customer’s description, and fetches the matching call recording and SIP trace from Homer for one example call. Both are attached to the workspace as artifacts.
Inspect the SIP trace
Copilot annotates the trace: INVITE, 100 Trying, 180 Ringing, 200 OK, ACK — all clean. The SDP shows the customer’s SBC offering an RTP address in the customer’s private range, no
c= line rewrite. RTP from the customer reaches the carrier; carrier RTP heading back never arrives.Live capture on the SBC
SSH to the SBC. Run sngrep filtered on the customer’s IP. Place a fresh test call from a softphone. The capture confirms the same one-way RTP pattern.
Identify the root cause
Copilot correlates the SBC’s NAT-traversal config with the customer’s firewall behaviour. The customer’s FortiGate is dropping inbound RTP because the pinhole was created against the wrong helper. The NAT type on the SBC also needs
nat=force_rport,comedia for this customer’s subnet.Stage the fix
Two changes: SBC
nat setting and a FortiGate policy adjustment. Both stage in the staging panel with rollback commands. Approval prompt shows both changes side by side.Push and validate
Push the SBC change. Push the FortiGate change through SSH. Run a synthetic test call through TestCallin that auto-evaluates audio in both directions. Audio is bidirectional.
Reply to the customer
Copilot drafts a Kayako reply: brief explanation, fix applied, validation result, no further action required from the customer’s side. Reviewed and sent.
Where Studio earns its keep
- The recording, the SIP trace, and the live capture are all on one screen — the engineer can correlate INVITE, 200 OK, and the RTP gap without opening Wireshark.
- The fix is two changes on two systems, staged and approved together, instead of two SSH sessions and two browser tabs.
- The test call validates the fix in the same window the engineer just made the change in — no waiting for the customer to call back.
- The memory means the next ticket from this customer with similar symptoms is solved in 10 minutes, not 50.
Related
Terminal
Use the terminal for live sngrep and tcpdump on the SBC.
Procedures
One-way audio triage runbook with customer code as argument.