When it happens
- A broken or missing mandatory header (Via, From, To, CSeq, Call-ID).
- SIP ALG on a router rewriting the message incorrectly.
- Wrong Content-Length after a proxy changed the body.
What to check
- Capture the message and look for the header the far end complains about (often in the reason phrase or a Warning header).
- Turn off SIP ALG on routers along the path.
What the response looks like
SIP/2.0 400 Bad Request
Via: SIP/2.0/UDP 203.0.113.10:5060;branch=z9hG4bK776asdhds
From: <sip:101@pbx.example>;tag=1928301774
To: <sip:+15551234567@pbx.example>;tag=a6c85cf
Call-ID: a84b4c76e66710@203.0.113.10
CSeq: 2 INVITE
Reason: Q.850;cause=41;text="Temporary failure"
Content-Length: 0