Notify SIP proxy call has ended
The SIP "BYE" message is usually delivered from one SIP user agent to the other directly if the call is finished. How then can a SIP proxy, switch or exchange monitor i开发者_StackOverflowf a call has ended?
If a proxy is interested in a call - in particular, it wants to know about BYEs - it requests its addition to the SIP route by adding a Record-Route
header.
The SIP RFC has some example call flows illustrating the use of the header, but briefly, dialog-establishing requests (like INVITE
, REFER
, etc.) en route to the callee pass through various proxies. These add themselves to the route set of the dialog. When the callee constructs its response - or sends its own in-dialog request - it adds these servers' URIs to the messages it sends as Route
headers. (I'm skipping some hairy details around Route
headers and the Request-URI
and RFC 2543 compatibility.)
Alternatively, a UA may be configured to use a certain chain of proxies: when it sends its INVITE, it will use Route
headers (and the Request-URI
) to force the message to travel a particular route.
精彩评论