SIP 199 Early Dialog Terminated vs 487 Request Terminated
SIP 199 (Early Dialog Terminated) is a 1xx Provisional response, while 487 (Request Terminated) is a 4xx Client Failure response. 199 indicates that a UAS can send this to indicate that an early dialog has been terminated. Used when forking results in multiple early dialogs. In contrast, 487 means that the request was terminated by a BYE or CANCEL. The original request was cancelled before it could be completed.
Description
A UAS can send this to indicate that an early dialog has been terminated. Used when forking results in multiple early dialogs.
When You See It
In forked call scenarios when one of the forked branches is cancelled because another branch was answered.
How to Fix
No action needed. This is normal behavior in forked call setups. Ensure your UA handles early dialog termination gracefully.
Description
The request was terminated by a BYE or CANCEL. The original request was cancelled before it could be completed.
When You See It
When the caller hangs up before the callee answers (CANCEL sent for pending INVITE). This is normal call abandonment.
How to Fix
No fix needed — the caller intentionally terminated the request. This is normal behavior.
Key Differences
199 is a 1xx Provisional response, while 487 is a 4xx Client Failure response.
SIP 199: A UAS can send this to indicate that an early dialog has been terminated. Used when forking results in multiple early dialogs.
SIP 487: The request was terminated by a BYE or CANCEL. The original request was cancelled before it could be completed.
You encounter 199 when in forked call scenarios when one of the forked branches is cancelled because another branch was answered.
You encounter 487 when when the caller hangs up before the callee answers (CANCEL sent for pending INVITE). This is normal call abandonment.
When to Use Which
For 199 (Early Dialog Terminated): No action needed. This is normal behavior in forked call setups. Ensure your UA handles early dialog termination gracefully. For 487 (Request Terminated): No fix needed — the caller intentionally terminated the request. This is normal behavior.