One document matched: draft-jesske-dispatch-forking-answer-correlation-01.txt
Differences from draft-jesske-dispatch-forking-answer-correlation-00.txt
Network Working Group R. Jesske
Internet-Draft Deutsche Telekom
Intended status: Informational September 29, 2014
Expires: April 2, 2015
Correlation of multiple responses of forked INVITES in Back to Back User
Agents
draft-jesske-dispatch-forking-answer-correlation-01
Abstract
This document describe how a correlation of multiple responses of a
forked INVITE in Back to Back User Agents can apply.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 2, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
Jesske Expires April 2, 2015 [Page 1]
Internet-Draft forking answer correlation in B2BUA September 2014
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 2
2. Consideration of RFC's on SIP signalling procedures under
consideration for forking use cases . . . . . . . . . . . . . 4
2.1. RFC3261 Session Initiation Protocol . . . . . . . . . . . 4
2.2. RFC3262 Reliability of provisional responses . . . . . . 4
2.3. RFC3312 Integration of Resource Management and Session
Initiation Protocol (SIP) . . . . . . . . . . . . . . . . 4
2.4. RFC3841 Caller Preferences for the Session Initiation
Protocol (SIP) . . . . . . . . . . . . . . . . . . . . . 4
2.5. RFC5393 Addressing an Amplification Vulnerability in
Session Initiation Protocol (SIP) Forking Proxies . . . . 5
2.6. RFC6228 Session Initiation Protocol (SIP) Response Code
for Indication of Terminated Dialog . . . . . . . . 5
2.7. RFC3326 The Reason Header Field for the Session
Initiation Protocol (SIP) . . . . . . . . . . . . . . . . 5
2.8. Conclusions . . . . . . . . . . . . . . . . . . . . . . . 6
3. Requirements on forking in SIP networks interconnecting with
other SIP networks . . . . . . . . . . . . . . . . . . . . . 6
4. Forking use cases . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Normal Forking use case . . . . . . . . . . . . . . . . . 6
4.2. Multiples provisional responses without SDP . . . . . . . 8
4.3. Forking use case with provisional responses with SDP
using 100rel . . . . . . . . . . . . . . . . . . . . . . 10
4.4. Forking use case with provisional responses with SDP
using 100rel and preconditions . . . . . . . . . . . . . 12
4.5. Forking use case with early media played . . . . . . . . 16
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
6. Security Considerations . . . . . . . . . . . . . . . . . . . 17
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.1. Normative References . . . . . . . . . . . . . . . . . . 17
8.2. Informative References . . . . . . . . . . . . . . . . . 18
Appendix A. Appendix . . . . . . . . . . . . . . . . . . . . . . 18
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18
1. Problem Statement
The world of SIP networks is steadily growing. SIP networks based on
IETF RFC 3261 also networks of operators based on 3GPP IMS or ETSI
TISPAN NGN and many others are existing. Now connecting these
networks may result in problems of interoperability. One main
Jesske Expires April 2, 2015 [Page 2]
Internet-Draft forking answer correlation in B2BUA September 2014
problem is the SIP basic feature forking which allows to spread the
INVITE request towards multiples registered UA's for one identity.
Nevertheless the forking feature described in RFC3261 [RFC3261] which
allows to reach more than one target and which is registered under
the same identity but at different locations is not really supported
by all UAC in that way that a connection between UAC and one of the
UAS will succeed in a successful communication even one of the UAS
sends a 200 OK for the INVITE. This apply also to networks having
B2BUA's (e.g. PSTN interwoking Gateways or Session Border
Controller) in the path which should understand multiples responses
and handle it correctly.
This could result in many SIP early Dialogs that will never
established due to the applicability of the UAC to receive multiples
early dialogs.
One use case is when the UAC will alway ever apply to the first
received provisional response and wait for a final response for the
certain provisional response.
Forking itself apply when Bob is registering his home phone and his
SIP client on his notebook with the same identity. This INVITE will
now be sent to both end devices. And each end device will answer
with a provisional response (e.G. 180 ringing) or a final response.
Now the originating SIP device has to understand that two devices are
ringing and one will answer the call. No Problem since RFC3261
[RFC3261] allows this and allows also the originating device to
handle multiples responses. But this is not mandated by RFC3261
[RFC3261] and led to implementers choice. There will the first
problem apply that only one of the Responses will be taken into
consideration for creating a dialog.
Please Note that RFC3261 [RFC3261] doesn't do require how the
responses from multiple forks are to be handled and the basic
transaction and dialog semantics must be followed. But looking into
reality there are many broken clients and entities out in the world
and service provides doing forking for their customers may disappoint
them because it will not work proper and no connectivity will be
reached.
With further features like Preconditions and reliability of
provisional responses the UAC has to reserve resources for one or
both of the responses and opens a early dialog. And has to choose
which of the dialogs should be reserved when not supporting multiples
early dialogs. Thus a spread of problems arise with such behavior.
Jesske Expires April 2, 2015 [Page 3]
Internet-Draft forking answer correlation in B2BUA September 2014
This document describes how a correlation for multiples early dialogs
and other received Responses can done within a B2BUA. The possible
roles of a B2BUA is described in the taxonomy document RFC7029
[RFC7029] The role of the B2BUA is a Signaling/Media Plane B2BUA
Role. Thus many possible use cases which will be possible looking on
the used features are considered in this document
2. Consideration of RFC's on SIP signalling procedures under
consideration for forking use cases
2.1. RFC3261 Session Initiation Protocol
SIP defined in RFC3261 [RFC3261]describes how forking should apply.
Also rules for UA for responses in general and merged requests are
defined. But it is not stated how a forking correlation should apply
and what is needed.
A couple of rules with regard to non 2xx final responses apply to the
forking proxy with regard to forwarding it to the UAC. The Response-
Context defined in RFC3261 [RFC3261] will hold the received non 2xx
final responses until for all INVITE transactions a final response is
received. 1xx and 2xx response will be forwarded immediately. And
for 6xx Responses the proxy SHOULD cancel all client pending
transactions.
So with regard to non 2xx and 1xx final responses the forking proxy
has to aggregate and act as central element
2.2. RFC3262 Reliability of provisional responses
The RFC describing the reliability of provisional Responses RFC3262
[RFC3262] does not describes interactions with forking. Thus a PRACK
for provisional Response is seen as a single transaction and makes
the SDD reliable for the specific dialog. This is a end to end
behavior between the UAS and the related UAC.
2.3. RFC3312 Integration of Resource Management and Session Initiation
Protocol (SIP)
Also in RFC3313 [RFC3312] describing the precondition mechanism is
not mentioning any interactions with forking relevant issues.
2.4. RFC3841 Caller Preferences for the Session Initiation Protocol
(SIP)
RFC3841 [RFC3841] describes extensions to the Session Initiation
Protocol (SIP) which allow a caller (UAC) to express preferences
about request handling in servers.
Jesske Expires April 2, 2015 [Page 4]
Internet-Draft forking answer correlation in B2BUA September 2014
One of the caller preferences defined in RFC3841 [RFC3841]. is a
method to signal the "fork-directive" to indicate if the SIP proxy is
allowed to fork or not fork the request in the forwarding path. This
directive is a optional SIP feature which is not implemented in each
SIP network. The Request Disposition header contains the regarding
directive which is requested by the User Agent.
The parallel-directive does indicate how a SIP proxy should fork the
request. Either "parallel" or "sequential"
2.5. RFC5393 Addressing an Amplification Vulnerability in Session
Initiation Protocol (SIP) Forking Proxies
To avoid too many forkings (possible early Dialogs) RFC5393 [RFC5393]
defines the Max-Breadth header to avoid to many forked Requests. But
there is no effect on correlating the responses. This helps to
reduce a cascading of multiples forkings in the forward path. The
number in the header gives the maximum branches (parallel possible
early dialogs) of a forked request. Exceeding the maximum will
result in error responses 440
2.6. RFC6228 Session Initiation Protocol (SIP) Response Code for
Indication of Terminated Dialog
RFC6228 [RFC6228]defines a new response code to close early dialogs
proper. In case where a forking proxy realizes that a 200 OK has
been processed the proxy can sent 199 responses to the other open
dialogs. This helps in case of correlation when early dialogs has
been sent till the end user.
In consideration with the rules defined in RFC3261 for forking proxy
a received non 2xx final to an initial dialog initiation request that
it recognizes as terminating one or more early dialogs associated
with the request. The forking proxy generates normally (e.g. non
100rel, no final response sent) 199 response upstream for each of the
terminated early dialogs.
2.7. RFC3326 The Reason Header Field for the Session Initiation
Protocol (SIP)
RFC3326 [RFC3326] defines the Reason header and describes one use
because in case the INVITE is forked and results in a rejection, the
error response may never be forwarded to the client unless all the
other branches also reject the request. This problem is known as the
"Heterogeneous Error Response Forking Problem", or HERFP. It is
foreseen that a solution to this problem may involve encapsulating
the final error response in a provisional response. The Reason
Jesske Expires April 2, 2015 [Page 5]
Internet-Draft forking answer correlation in B2BUA September 2014
header field is a candidate to be used for such encapsulation. In
this case the forking proxy will release the dialogs.
2.8. Conclusions
All above mentioned RFCs and procedures describes a piece of the
whole picture how forking apply and what procedures are useabel for
such cases. It is also fact that UA's and B2BUA's (e.g. PSTN GW)
are existing that will not support multiples early dialogs. Also the
support of caller preferences is not secured or implemented by UAC
and also SIP forking proxies. Service providers will provide forking
independent what the source will support or not. Thus the only
solution seen is to describe procedures which apply in B2BUA to
support an correlation of multiples early dialogs and other received
18x Responses.
3. Requirements on forking in SIP networks interconnecting with other
SIP networks
To provide the best user behavior a service provider shall have the
possibility to correlate multiples received responses to one dialog
leg to the UAC.
The B2BUS providing such possibility must have to understand where
the SIP dialog request is coming from and if this originating network
or entity or UA can or cannot support multiples responses. This
could be also assumed by Service Level Agreements (SLA) between the
interconnection partners.
The main requirement is to have an entity that can receive multiples
responses based on forked INVITES which now can be correlated to one
single dialog towards the originating entity.
To act proactive the B2BUA should also be possible to include and
handle preferences (e.g. non forking wished) based on the originating
and terminating network.
4. Forking use cases
4.1. Normal Forking use case
SIP defined in RFC3261 [RFC3261]describe how forking should apply.
Also rules for UA for responses and merged requests are defined. But
it is not stated how a correlation of multiples provisional responses
should apply and what is needed. The numbers in brackets shows the
INVITES/early dialogs created.
Jesske Expires April 2, 2015 [Page 6]
Internet-Draft forking answer correlation in B2BUA September 2014
.
UAC Proxy Forking Proxy UAS_2 UAS_3 UAS_4
| | | | | |
|-- INVITE -->| | | | |
| |-- INVITE -->|-- INVITE (2) ->| | |
| | |-- INVITE (3) --------->| |
| | |-- INVITE (4) ----------------->|
| | |<-- 18x (2) ----| | |
|<- 18x (2) --|<- 18x (2) --| | | |
| | |<-- 18x (3) ------------| |
|<- 18x (3) --|<- 18x (3) --| | | |
| | |<-- 18x (4) --------------------|
|<- 18x (4) --|<- 18x (4) --| | | |
| | | | | |
| | |<-- 200 (4) --------------------|
| |<- 200 (4) --| | | |
|<- 200 (4) --| | | | |
|-- ACK (4) ->| | | | |
| |--- ACK (4) >| | | |
| | |--- ACK (4) ------------------->|
|- CANCEL -->| | | | |
|<-- 200 ----|- CANCEL --->| | | |
| |<-- 200 ----|--CANCEL (2)--->| | |
| | |<-- 200 (2) ----| | |
| | |<-- 487 (2) ----| | |
| |<- 487 (2) --|--- ACK (2)---->| | |
|<-- 487 (2) -|-- ACK (2)-->| | | |
|-- ACK (2)-->| | | | |
| | |--- CANCEL(3) --------->| |
| | |<-- 200 (3) ------------| |
| | |<-- 487 (3) ------------| |
| |<- 487 (3) --|--- ACK (3)------------>| |
|<- 487 (3) --|-- ACK (3)-->| | | |
|-- ACK (3)-->| | | | |
| | | | | |
Figure 1: Example Call Flow Forking
As you can see, this figure shows the normal forking case where each
UA sends a 18x either with or without SDP. UAS_4 sends a final
response and the UAC has to cancel all other open provisional
responses. The 487 is sent back on each early dialog (2) and (3)
created.
Further possible scenarios are that two or three UAS will answer the
call with 200 in time so that the UAC has now three open sessions
Jesske Expires April 2, 2015 [Page 7]
Internet-Draft forking answer correlation in B2BUA September 2014
which is not really the goal when a user would like to communicate
with only one person.
Figure 1 shows an normal example of forking. With receiving 18x the
UAC has to open transaction. where UAS_2 and UAS_3 does reject the
call with a 4xx. So only UAA_4 answers the dialog correctly.
4.2. Multiples provisional responses without SDP
This section describes the use case where multiples 18x responses are
sent back which doesn't contain any SDP. This use case appear when
the UAS instances where the INVITE is forked without any specific
requirements and support of specific extensions like 100rel
In this specific case the B2BUA has not to anchor the media and acts
only as signalling B2BUA and has to maintain the signalling legs
Jesske Expires April 2, 2015 [Page 8]
Internet-Draft forking answer correlation in B2BUA September 2014
.
UAC B2BUA Forking Proxy UAS_2 UAS_3 UAS_4
| | | | | |
|-INVITE(1)F1->| | | | |
| |- INVITE F2 -->|- INVITE F3(2)->| | |
| | |- INVITE F4(3)------->| |
| | |- INVITE F5(4)------------->|
| | |<-- 18x (2) F6--| | |
|<- 18x (1) F8-|<- 18x (2) F7 -| | | |
| | |<-- 18x (3) F9--------| |
| |<- 18x (3) F10-| | | |
| | | | | |
| | |<-- 18x (4) F11-------------|
| |<- 18x (4) F12-| | | |
| | | | | |
| | | | | |
| | |<-- 200 SDP (4)F13----------|
| |<- 200 (4) F14-| | | |
|<- 200(1) F15-| | | | |
| |- CANCEL F16 ->| | | |
| |<- 200 F17 --| | | |
| | |- CANCEL F18 -->| | |
| | |<- 200 (2)F19 -| | |
| | |<- 487 (2) F20 -| | |
| |<-487 (2) F22--|-- ACK (2) F21->| | |
| |- ACK (2) F23->| | | |
| | | | | |
| | | | | |
| | |- CANCEL (3) F24 ---->| |
| | |<----200 (3) F25 -----| |
| | |<--- 487 (3) F26 -----| |
| |<-487 (3) F28--|---- ACK (3) F27 ---->| |
| |- ACK (3) F29->| | | |
| | | | | |
|- ACK(1) F30->| | | | |
| |- ACK (4) F31->| | | |
| | |--- ACK (4) F32------------>|
Figure 2: Example Call Flow
The B2BUA will maintain a Dialog between UAC and the incoming part of
the B2BUA (UAS) And acts as UAC towards the terminating network
(UAS_2, UAS_3 and UAS_4). The INVITE F1 will have another Call-Id as
INVITE F2, also the to-tags are different.
The first 18x (F7) will be passed towards the UAC. The tags (to-tag,
from-tag), call-id etc will be stored by the B2BUA. The 18x sent
Jesske Expires April 2, 2015 [Page 9]
Internet-Draft forking answer correlation in B2BUA September 2014
towards the UAC will contain the to-tag, Call-Id of INVITE F1 and the
from-tag is generated by the B2BUA. With arriving further 18x (F10,
F12) the B2BUA has to store the status of the to-tags etc and will
not forward the 180 to the UA. The B2BUA has not to anchor
signalling plane i.e as signalling B2BUA.
With arriving arriving the 200OK (F14) at the B2BUA with the SDP sent
back form UAS_4 the B2BUA will sent a 200 OK towards the UAC. In
this case the B2BUA re-written the to-tag, from-tan and call-id as
already done for response 18x F7.
With the CANCEL F16 the other early dialogs are released. And ACK
F30 finalizes the call initiation.
4.3. Forking use case with provisional responses with SDP using 100rel
This section describes use case where preconditions will be used.
his apply in mobile networks where resource reservation is used. The
recondition mechanism in RFC3312 [RFC3312] shows the needed
additional procedures. A B2BUA doing correlation in between to
allows only one early dialog sent back to the UAC. The B2BUA has to
anchor the SIP Dialogs as well as the media reservation streams.
This use case apply where multiples 18x responses are sent back with
different SDP content. This use case appear when the UAS instances
where the INVITE is forked to will use different codecs. E.G one UAS
is a video phone answering with a video codec the other one a mobile
phone and a further one using a DECT entity.
And one or more UAS will require reliability of provisional
responses. Please Note that such a behavior could be also caused by
an application server playing specific announcements which acts on
behalf of the UAS
There is the possibility based on the request if the 100rel mechanism
will only be used between B2BUA and UAS or really end to end. In
case where the 100rel is stated as supported it is not mandatory to
use it. When the UAS want to have the 18x reliable it will set the
100rel into the require header field. In that case where a 18x is
sent back with a 100rel required then the B2BUA may play the role of
anchoring the media and apply the 100rel between B2BUA and UAS and
let the UAC to B2BUA connection as unreliable. Please note that this
is only needed in cases where the media anchoring has to do some
manipulation of the media e.g. transcoding of codecs.
Where the B2BUA decides to pass the required 100rel header field the
UAC will send then the PRACK and waits for the 200 OK. In case there
Jesske Expires April 2, 2015 [Page 10]
Internet-Draft forking answer correlation in B2BUA September 2014
are further 18x with equal other type of SDP arriving at the B2BUA .
B2BUA has to keep handle the 100rel and sent the PRACK to the UAS.
Preconditions: INVITE 100rel supported is set and in 18x a SDP with
100rel required is sent back
.
UAC B2BUA Forking Proxy UAS_2 UAS_3 UAS_4
| | | | | |
|- INVITE F1-->| | | | |
| |- INVITE F2 -->|- INVITE F3(2)->| | |
| | |- INVITE F4(3)------->| |
| | |- INVITE F5 (4)------------>|
| | |<-- 18x (2) F6--| | |
| |<- 18x (2) F7 -| | | |
|<- 18x (1) F8-| | | | |
|- PRACK(1)F9->| | | | |
| |- PRACK(2)F10->| | | |
| | |- PRACK(2) F10->| | |
| | |<-- 200 F11(2)-| | |
| |<- 200 (2) F12-| | | |
|<- 200(1) F13-| | | | |
| | |<-- 18x (3) F14-------| |
| |<- 18x (3) F15-| | | |
|<UPDATE(1) F16| | | | |
|- 200 (1)F17->| | | | |
| |- PRACK(2)F18->| | | |
| | |- PRACK F4(3)F19----->| |
| | |<----200 (3) F20 -----| |
| |<- 200 (3) F21-| | | |
| | | | | |
| | |<-- 18x (4) F22-------------|
| |<- 18x (4) F23-| | | |
|<UPDATE(1) F24| | | | |
|- 200 (1)F25->| | | | |
| |- PRACK(4)F26->| | | |
| | |- PRACK F27(4)------------->|
| | |<-- 200 SDP (4)F28----------|
| |<- 200 (4) F29-| | | |
| | | | | |
| | |<-- 200 SDP (4)F26----------|
| |<- 200 (4) F27-| | | |
|<UPDATE(1) F28| | | | |
|- 200 (1)F29->| | | | |
|<- 200(1) F30-| | | | |
| |- CANCEL F31 ->| | | |
| |<- 200 (3) F32-| | | |
Jesske Expires April 2, 2015 [Page 11]
Internet-Draft forking answer correlation in B2BUA September 2014
| | |- CANCEL F33 -->| | |
| | |<--200 F34(2)--| | |
| | |<--487 F35(2)--| | |
| | |---ACK F36(2)->| | |
| |<- 487 (4) F37-| | | |
| |<- ACK (4) F38-| | | |
| | |- CANCEL (3) F39 ---->| |
| | |<----200 (3) F40 -----| |
| | |<----487 (3) F41 -----| |
| | |<----ACK (3) F42 -----| |
| |<- 487 (4) F43-| | | |
| |<- ACK (4) F44-| | | |
|- ACK(2) F45->| | | | |
| |- ACK (4) F46->| | | |
| | |--- ACK (4) F47------------>|
Figure 3: Example Call Flow with 100rel
Call will be forked to 3 end devices. UAS_2 answers with 18x
containing a SDP and 100rel required. 18x is passed to the UAC and
made reliable with PRACK (F9-F13) Further 18x arrive at the B2BUA.
The B2BUA stores the to tag for the call context. The B2BUA will
answer the 18x and made it reliable with PRACK. And also update the
SDP negotiated between B2BUA and UAC with further UPDATE messages.
No further activity is done towards the UAC. The B2BUA does not need
any media awareness for this procedures as long there is no need for
transcoding or other manipulation of media.
With arriving of a 200 OK at the B2BUA from UAS_4 the B2BUA has to
construct first an UPDATE in the case that the SDP differs from the
last UPDATE sent to the UAC. The 200 OK received by the B2BUA and
trigges the final response to the UAC (F27). Editors NOTE:
Clarification needed if the UPDATE or 200OK INVITE must be sent
first. Problem could be media clipping anf if so, what needs the 200
OK to contain in the SDP.
Also all other open Call legs are canceled (F31-44).
4.4. Forking use case with provisional responses with SDP using 100rel
and preconditions
This section describes the use case where the UAC sends a dialog
request with 100rel and preconditions supported/required and the
UAS_2 apply to the requested mechanisms. The B2BUA has to have media
awareness and also 3PCC capabilities.
Jesske Expires April 2, 2015 [Page 12]
Internet-Draft forking answer correlation in B2BUA September 2014
With applying preconditions the resource reservation needs to be
finalized before 200 OK is sent. In this scenario where the SIP call
is forked and the first UAS answers with a 183 containing 100rel and
preconditions requires an the correct SDP answer UAC, and UAS starts
their resource reservation mechanism (F5-F18). The B2BUA acts as
signalling and media-aware functionality between the Forking Server
and the UAC.
When the UAS_3 will send back also an 183 containing SDP and their
required header is set to 100rel and preconditions the B2BUA has to
reserve the resources towards the UAS (F30-F37). This use case
assumes that the leg between the UAC and B2BUA will not be updated to
avoid to many codec renegotiation and resource reservation. Thus the
B2BUA will renegotiate when the final 200 OK will arrive at the
B2BUA.
.
UAC B2BUA Forking Proxy UAS_2 UAS_3 UAS_4
| | | | | |
|- INVITE F1-->| | | | |
| |- INVITE F2 -->|- INVITE F3(2)->| | |
| | |- INVITE F4(3)------->| |
| | |<-- 183 (2) F5--| | |
| |<- 183 (2) F6 -| | | |
|<- 183 (1) F7-| | | | |
|- PRACK(1)F8->| | | | |
| |- PRACK(2)F9-->| | | |
| | |- PRACK(2) F10->| | |
| | |<-- 200 F11(2)-| | |
| |<- 200 (2) F12-| | | |
|<- 200(1) F13-| | | | |
|UPDATE(1)F13->| | | | |
| | UPDATE(2)F14->| | | |
| | |- UPDATE(2)F15->| | |
| | |<-- 200 F16(2)-| | |
| |<- 200 (2) F17-| | | |
|<- 200(1) F18-| | | | |
| | |<-- 180 (2) F19-| | |
| |<- 180(2) F20 -| | | |
|<- 180(1) F21-| | | | |
|-PRACK(1)F22->| | | | |
| |- PRACK(2)F23->| | | |
| | |- PRACK(2) F24->| | |
| | |<-- 200 F25(2)-| | |
| |<- 200 (2) F26-| | | |
|<- 200(1) F27-| | | | |
| | |<-- 183 (3) F28-------| |
Jesske Expires April 2, 2015 [Page 13]
Internet-Draft forking answer correlation in B2BUA September 2014
| |<- 183 (3) F29-| | | |
| |- PRACK(3)F30->| | | |
| | |- PRACK F4(3)F31----->| |
| | |<----200 (3) F32 -----| |
| |<- 200 (3) F33-| | | |
| | | | | |
| |- UPDATE F34->| | | |
| | |- UPDATE F35 ------->| |
| | |<----200 (3) F36 -----| |
| |<- 200 (3) F37-| | | |
| | | | | |
| | |<-- 200 SDP (4)F40----| |
| |<- 200 (4) F41-| | | |
|<- UPDATE F45-| | | | |
|-- 200 F46 ->| | | | |
|<- UPDATE F47-| | | | |
|-- 200 F48 ->| | | | |
|<-- 200 F49 -| | | | |
| |- CANCEL F50 ->| | | |
| |<- 200 F51 --|- CANCEL F52 -->| | |
| | |<-- 200 F53(2)-| | |
| |<- 200 (2) F54-| | | |
|- ACK(2) F55->| | | | |
| |- ACK (4) F56->| | | |
| | |--- ACK (4) F57------------>|
Figure 4: Example Call Flow with preconditions
F1: INVITE SDP offer A1 (Codec A, Codec B)
F7: 183 SDP answer A1 (Codec A)
F13: UPDATE SDP offer A2 (Codec A) UAC resources reserved
F28: 200 OK SDP Answer A2 (Codec A) UAS resources reserved
F45: UPDATE SDP offer A3 (Codec B)
F46: 200 OK SDP Answer A3 (Codec B)
F47: UPDATE SDP offer A4 (Codec B) 2BUA resources reserved
F48: 200 OK SDP Answer A4 (Codec B) UAS resouces reserved
F49: 200 OK Final Response
Where the B2BUA decides to pass the required 100rel the UAC will send
then the PRACK and waits for the 200 OK. In case there are further
18x with other type of SDP arriving at the B2BUA the UAC needs to be
informed about change of codec. The UAC has again to sent the PRACK.
Jesske Expires April 2, 2015 [Page 14]
Internet-Draft forking answer correlation in B2BUA September 2014
Editor's Note: Question is if the above described mechanism would be
a proper mechanism since the later renegotiation + resource
reservation could cause media clipping. Figure 5 shows the other
possibility.
.
UAC B2BUA Forking Proxy UAS_2 UAS_3 UAS_4
| | | | | |
|- INVITE F1-->| | | | |
| |- INVITE F2 -->|- INVITE F3(2)->| | |
| | |- INVITE F4(3)------->| |
| | |<-- 183 (2) F5--| | |
| |<- 183 (2) F6 -| | | |
|<- 183 (1) F7-| | | | |
|- PRACK(1)F8->| | | | |
| |- PRACK(2)F9-->| | | |
| | |- PRACK(2) F10->| | |
| | |<-- 200 F11(2)-| | |
| |<- 200 (2) F12-| | | |
|<- 200(1) F13-| | | | |
|UPDATE(1)F13->| | | | |
| | UPDATE(2)F14->| | | |
| | |- UPDATE(2)F15->| | |
| | |<-- 200 F16(2)-| | |
| |<- 200 (2) F17-| | | |
|<- 200(1) F18-| | | | |
| | |<-- 180 (2) F19-| | |
| |<- 180(2) F20 -| | | |
|<- 180(1) F21-| | | | |
|-PRACK(1)F22->| | | | |
| |- PRACK(2)F23->| | | |
| | |- PRACK(2) F24->| | |
| | |<-- 200 F25(2)-| | |
| |<- 200 (2) F26-| | | |
|<- 200(1) F27-| | | | |
| | |<-- 183 (3) F28-------| |
| |<- 183 (3) F29-| | | |
| |- PRACK(3)F30->| | | |
| | |- PRACK F4(3)F31----->| |
| | |<----200 (3) F32 -----| |
| |<- 200 (3) F33-| | | |
| | | | | |
| |- UPDATE F34->| | | |
| | |- UPDATE F35 ------->| |
| | |<----200 (3) F36 -----| |
| |<- 200 (3) F37-| | | |
|<- UPDATE F38-| | | | |
Jesske Expires April 2, 2015 [Page 15]
Internet-Draft forking answer correlation in B2BUA September 2014
|-- 200 F39 ->| | | | |
|<- UPDATE F40-| | | | |
|-- 200 F41 ->| | | | |
|<- UPDATE F42-| | | | |
|<-- 200 F43 -| | | | |
| | |<-- 200 SDP (4)F44----| |
| |<- 200 (4) F45-| | | |
|<-- 200 F46 -| | | | |
| |- CANCEL F47 ->| | | |
| |<- 200 F48 --|- CANCEL F49 -->| | |
| | |<-- 200 F50(2)-| | |
| |<- 200 (2) F51-| | | |
|- ACK(2) F52->| | | | |
| |- ACK (4) F53->| | | |
| | |--- ACK (4) F54------------>|
Figure 4: Example Call Flow with preconditions
F1: INVITE SDP offer A1 (Codec A, Codec B)
F7: 183 SDP answer A1 (Codec A)
F13: UPDATE SDP offer A2 (Codec A) UAC resources reserved
F28: 200 OK SDP Answer A2 (Codec A) UAS resources reserved
F38: UPDATE SDP offer A3 (Codec B)
F39: 200 OK SDP Answer A3 (Codec B)
F40: UPDATE SDP offer A4 (Codec B) 2BUA resources reserved
F41: 200 OK SDP Answer A4 (Codec B) UAS resouces reserved
F44-46 200 OK Final Response
4.5. Forking use case with early media played
This use case describes the case where early media is played due to
application server actions. e.g playing a ring tone or a specific
announcement sent back.
Note: More work is needed to describe the use case.
5. IANA Considerations
This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an
RFC.
Jesske Expires April 2, 2015 [Page 16]
Internet-Draft forking answer correlation in B2BUA September 2014
6. Security Considerations
Currently no further security considerations are needed beyond
considerations made in the referred RFC's for SIP RFC3261 [RFC3261],
reliability of provisional responses RFC3262 [RFC3262] and resource
management RFC3312 [RFC3312].
7. Acknowledgments
The author like to thank Paul Kyzivat for his extensive review and
comments on the first draft version.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002.
[RFC3262] Rosenberg, J. and H. Schulzrinne, "Reliability of
Provisional Responses in Session Initiation Protocol
(SIP)", RFC 3262, June 2002.
[RFC3312] Camarillo, G., Marshall, W., and J. Rosenberg,
"Integration of Resource Management and Session Initiation
Protocol (SIP)", RFC 3312, October 2002.
[RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason
Header Field for the Session Initiation Protocol (SIP)",
RFC 3326, December 2002.
[RFC3841] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Caller
Preferences for the Session Initiation Protocol (SIP)",
RFC 3841, August 2004.
[RFC5393] Sparks, R., Lawrence, S., Hawrylyshen, A., and B. Campen,
"Addressing an Amplification Vulnerability in Session
Initiation Protocol (SIP) Forking Proxies", RFC 5393,
December 2008.
[RFC6228] Holmberg, C., "Session Initiation Protocol (SIP) Response
Code for Indication of Terminated Dialog", RFC 6228, May
2011.
Jesske Expires April 2, 2015 [Page 17]
Internet-Draft forking answer correlation in B2BUA September 2014
[RFC7029] Hartman, S., Wasserman, M., and D. Zhang, "Extensible
Authentication Protocol (EAP) Mutual Cryptographic
Binding", RFC 7029, October 2013.
8.2. Informative References
[TS24.229]
3GPP, "IP multimedia call control protocol based on
Session Initiation Protocol (SIP) and Session Description
Protocol (SDP); Stage 3", March 2014.
Appendix A. Appendix
Author's Address
Roland Jesske
Deutsche Telekom
Heinrich-Hertz-Strasse 3-7
Darmstadt 64307
Germany
Phone: +4961515812766
Email: r.jesske@telekom.de
Jesske Expires April 2, 2015 [Page 18]
| PAFTECH AB 2003-2026 | 2026-04-23 21:40:13 |