Home/Tools/ SIP Header Breakdown Tool
Free Browser Tool

SIP Header Breakdown Tool

Paste a raw SIP message and get every header field labeled and explained in plain English. Flags common issues, analyzes SDP, highlights key headers. No more guessing what a header means at 11pm during a failed cutover.

No login required
Runs in browser
Teams + Webex + SBC
Paste your SIP message
Supports SIP requests (INVITE, BYE, REGISTER, OPTIONS, CANCEL) and responses (1xx-6xx). Paste the full message including headers and body.
Raw SIP message
No valid SIP message found. Make sure the message starts with a SIP request line or status line.
Header breakdown
Raw message (highlighted)
SIP / SDP

          
Field Reference

SIP Response Codes, Header Fields & SDP Errors: A Troubleshooting Reference

The tool above parses and labels your SIP message automatically. This reference covers what the most common response codes actually mean in production, which header fields matter most during a failed call, and how to read SDP errors before they cost you another hour of troubleshooting.

Critical SIP Response Codes and What They Actually Mean

SIP response codes follow HTTP conventions in structure but carry meaning specific to real-time communications. A 4xx code means the client did something wrong. A 5xx means the server failed. A 6xx means the call is definitively rejected — no retry will help. Here are the codes that show up most in SBC logs during Direct Routing, Webex Calling, and SIP trunk deployments.

401 Unauthorized Challenge / credential exchange

The server is not rejecting the call — it is issuing a challenge. The UAC must extract the WWW-Authenticate header from the 401, compute a digest response using the correct credentials, and resend the request with an Authorization header. If you see a 401 followed immediately by a 403, the credentials are wrong or the realm does not match what the server expects.

403 Forbidden Auth failure or ACL block

Hard rejection. The server understood the request and explicitly denied it. In Direct Routing this almost always means one of three things: the SBC IP is not in the Microsoft allowed list, the SIP trunk credentials failed digest authentication, or the called number is not assigned to a user with a valid Phone System license. Check IP ACLs on the SBC and verify the Teams admin center trunk configuration before touching anything else.

407 Proxy Authentication Required Proxy challenge

Same mechanism as 401 but issued by a proxy rather than the endpoint. The response will contain a Proxy-Authenticate header. The UAC must resend with Proxy-Authorization. Common in hosted SBC deployments where the carrier SBC sits in front of the Teams infrastructure and issues its own auth challenge before passing traffic upstream.

480 Temporarily Unavailable Registration / reachability

The endpoint exists but cannot be reached right now. In practice this usually means the device is not registered, the registration has expired, or the SBC cannot reach the Teams infrastructure. Check the REGISTER flow in your SBC logs — if there is no active registration binding, no INVITE will succeed.

488 Not Acceptable Here Codec mismatch / SDP rejection

Media negotiation failed. The remote device could not find a compatible codec, media type, or transport in the SDP offer. Paste the INVITE into the tool above and look at the codec flags — compare what was offered against what the remote end supports. In Webex Calling deployments this is frequently caused by SRTP/RTP mismatch: one side is sending encrypted media, the other expects plain RTP. Check m=audio transport line for RTP/AVP vs RTP/SAVP.

503 Service Unavailable Server overload / downstream failure

The server cannot process the request right now. In Direct Routing this appears when the Microsoft SIP proxy cannot be reached, when the SBC has exhausted its licensed session capacity, or when a downstream PSTN gateway is unreachable. Check SBC health dashboards first — session counts, CPU, and memory. If the SBC is healthy, check connectivity to the Microsoft SIP proxy FQDNs on port 5061 from the SBC itself.

Microsoft Direct Routing

Reading X-MS-Diagnostics Headers

When a call fails through Microsoft's SIP proxy, the response will often include an X-MS-Diagnostics header containing a numeric code and a reason string. These codes are specific to the Teams infrastructure and do not appear in standard SIP RFCs. The tool above flags this header automatically when it is present.

540000
User not found or not licensed for Phone System. Verify the user has a Teams Phone license assigned in the M365 admin center.
560000
TLS certificate issue on the SBC. The cert CN or SAN must match the FQDN configured in the Teams admin center trunk settings exactly.
580000
SBC not paired or FQDN mismatch. The FQDN in the Contact or Via header does not match the SBC FQDN registered in the Teams Direct Routing configuration.
510403
Call blocked by tenant policy. Outbound calling is disabled for this user or the number is blocked by a calling policy in the Teams admin center.

Paste any message containing X-MS-Diagnostics into the tool above — it will flag and surface the code automatically.

The Six Headers That Matter Most in Every SIP Message

SIP messages can contain dozens of headers. Most of them are supplemental. Six are mandatory in virtually every request and are the ones to check first when a call behaves unexpectedly.

Via Hop-by-hop routing trace

Tracks every device the message has passed through. Each proxy adds its own Via entry. The branch parameter must start with z9hG4bK per RFC 3261 — if it does not, the sending device is not RFC-compliant and interop issues are likely. A received= parameter added by the server means NAT was detected between the sending device and the proxy.

From / To Dialog identity

From identifies the originator. To identifies the intended recipient. Both carry a tag parameter — the From tag is set by the UAC on the initial request, the To tag is added by the UAS in its response. Together with Call-ID, these three values uniquely identify a dialog. A missing From tag on a request is unusual and may indicate a malformed message from a non-standard device.

Call-ID Global call correlator

Every message in the same call — INVITE, 200 OK, ACK, BYE, re-INVITEs — shares the same Call-ID. This is your primary search key when correlating a call across SBC logs, proxy logs, and Microsoft Call Quality Dashboard. Copy it out of any message and use it to filter logs on every device in the path simultaneously.

CSeq Transaction ordering

Contains a sequence number and the method name. The method in CSeq must match the request method — a mismatch indicates a malformed message. CSeq numbers increment with each new request in a dialog, which lets you reconstruct the order of events from out-of-sequence log entries. A re-INVITE for hold/resume will have a higher CSeq than the original INVITE.

Contact Direct reachability URI

Provides the SIP URI where this device can be reached directly for subsequent requests in the dialog, bypassing the proxy. In NAT environments the Contact address is frequently the device's private IP — if the SBC is not correctly rewriting Contact headers to its public FQDN, in-dialog requests like re-INVITEs and BYEs will fail to route. This is one of the most common SBC misconfiguration patterns.

SDP Errors and One-Way Audio: What the Media Lines Are Telling You

The SDP body is where media negotiation happens. SIP handles call setup. SDP handles what media flows, which codecs are used, and where packets should go. Most one-way audio and no-audio problems trace back to something wrong in the SDP — not the SIP headers.

m=audio 0 RTP/AVP ...

Port zero on a media line means the stream is being rejected or put on hold. If this appears in an INVITE rather than a re-INVITE, media negotiation has already failed before the call connected.

c=IN IP4 0.0.0.0

Connection address of 0.0.0.0 is a hold indicator. Media will not flow until a re-INVITE with a real IP address is sent. Expected during hold/resume sequences — unexpected in an initial INVITE.

a=recvonly / a=sendonly

Asymmetric media direction. If a=recvonly appears where you expect a=sendrecv, this is the direct cause of one-way audio. Often set incorrectly by hold logic or by misconfigured SBC media handling policies.

RTP/AVP vs RTP/SAVP

Transport protocol mismatch. RTP/AVP is unencrypted. RTP/SAVP is SRTP (encrypted). If one side offers SAVP and the other expects AVP, the result is a 488 and no media. Common in Webex Calling deployments where SRTP is mandatory.

No overlapping codecs

If the INVITE offers G.711 only and the remote device requires G.729 or Opus, there is no intersection and the call fails with 488. Check the a=rtpmap lines in the INVITE SDP against the codec list configured on the receiving device or SBC.

Private IP in c= line

If the SDP connection address is a RFC 1918 private IP and the call crosses a NAT boundary, the remote device will attempt to send RTP to an unreachable address. Call connects (SIP succeeds) but no audio flows. SBC must rewrite the c= line to its public IP.

Common Codec Reference
Codec Payload Type Notes
PCMU (G.711u) 0 Standard PSTN codec. North America default. Supported by all SBCs.
PCMA (G.711a) 8 PSTN codec, EMEA/APAC default. Interchangeable with PCMU in most deployments.
G.729 18 Low bandwidth. Common on legacy PBX systems. Not supported by Teams Direct Routing natively.
Opus dynamic Preferred codec for Teams and Webex. Wideband, adaptive. Not supported by most PSTN gateways.
G.722 9 HD voice (wideband). Supported on modern IP phones and SBCs. Requires wideband-capable SBC and carrier.

Dealing with a live call failure on a Direct Routing or Webex Calling deployment? The consulting link in the sidebar covers SBC configuration, SIP trunk troubleshooting, and full UCaaS deployments.

Back to all tools