summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4117.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc4117.txt')
-rw-r--r--doc/rfc/rfc4117.txt1067
1 files changed, 1067 insertions, 0 deletions
diff --git a/doc/rfc/rfc4117.txt b/doc/rfc/rfc4117.txt
new file mode 100644
index 0000000..858611b
--- /dev/null
+++ b/doc/rfc/rfc4117.txt
@@ -0,0 +1,1067 @@
+
+
+
+
+
+
+Network Working Group G. Camarillo
+Request for Comments: 4117 Ericsson
+Category: Informational E. Burger
+ Brooktrout
+ H. Schulzrinne
+ Columbia University
+ A. van Wijk
+ Viataal
+ June 2005
+
+
+ Transcoding Services Invocation in
+ the Session Initiation Protocol (SIP)
+ Using Third Party Call Control (3pcc)
+
+Status of This Memo
+
+ This memo provides information for the Internet community. It does
+ not specify an Internet standard of any kind. Distribution of this
+ memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2005).
+
+Abstract
+
+ This document describes how to invoke transcoding services using
+ Session Initiation Protocol (SIP) and third party call control. This
+ way of invocation meets the requirements for SIP regarding
+ transcoding services invocation to support deaf, hard of hearing and
+ speech-impaired individuals.
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 2. General Overview ................................................2
+ 3. Third Party Call Control Flows ..................................2
+ 3.1. Terminology ................................................3
+ 3.2. Callee's Invocation ........................................3
+ 3.3. Caller's Invocation ........................................8
+ 3.4. Receiving the Original Stream ..............................8
+ 3.5. Transcoding Services in Parallel ..........................10
+ 3.6. Multiple Transcoding Services in Series ...................14
+ 4. Security Considerations ........................................16
+ 5. Normative References ...........................................17
+ 6. Informative References .........................................17
+
+
+
+
+Camarillo, et al. Informational [Page 1]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+1. Introduction
+
+ The framework for transcoding with SIP [4] describes how two SIP [1]
+ UAs (User Agents) can discover incompatibilities that prevent them
+ from establishing a session (e.g., lack of support for a common codec
+ or common media type). When such incompatibilities are found, the
+ UAs need to invoke transcoding services to successfully establish the
+ session. 3pcc (third party call control) [2] is one way to perform
+ such invocation.
+
+2. General Overview
+
+ In the 3pcc model for transcoding invocation, a transcoding server
+ that provides a particular transcoding service (e.g., speech-to-text)
+ is identified by a URI. A UA that wishes to invoke that service
+ sends an INVITE request to that URI establishing a number of media
+ streams. The way the transcoder manipulates and manages the contents
+ of those media streams (e.g., the text received over the text stream
+ is transformed into speech and sent over the audio stream) is service
+ specific.
+
+ All the call flows in this document use SDP. The same call flows
+ could be used with another session description protocol that provides
+ similar session description capabilities.
+
+3. Third Party Call Control Flows
+
+ Given two UAs (A and B) and a transcoding server (T), the invocation
+ of a transcoding service consists of establishing two sessions; A-T
+ and T-B. How these sessions are established depends on which party,
+ the caller (A) or the callee (B), invokes the transcoding services.
+ Section 3.2 deals with callee invocation and Section 3.3 deals with
+ caller invocation.
+
+ In all our 3pcc flows we have followed the general principle that a
+ 200 (OK) response from the transcoding service has to be received
+ before contacting the callee. This tries to ensure that the
+ transcoding service will be available when the callee accepts the
+ session.
+
+ Still, the transcoding service does not know the exact type of
+ transcoding it will be performing until the callee accepts the
+ session. So, there is always the chance of failing to provide
+ transcoding services after the callee has accepted the session. A
+ system with more stringent requirements could use preconditions to
+ avoid this situation. When preconditions are used, the callee is not
+ alerted until everything is ready for the session.
+
+
+
+
+Camarillo, et al. Informational [Page 2]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+3.1. Terminology
+
+ All the flows in this document follow the naming convention below:
+
+ SDP A: A session description generated by A. It contains, among
+ other things, the transport address/es (IP address and
+ port number) where A wants to receive media for each
+ particular stream.
+
+ SDP B: A session description generated by B. It contains, among
+ other things, the transport address/es where B wants to
+ receive media for each particular stream.
+
+ SDP A+B: A session description that contains, among other things,
+ the transport address/es where A wants to receive media
+ and the transport address/es where B wants to receive
+ media.
+
+ SDP TA: A session description generated by T and intended for A.
+ It contains, among other things, the transport address/es
+ where T wants to receive media from A.
+
+ SDP TB: A session description generated by T and intended for B.
+ It contains, among other things, the transport address/es
+ where T wants to receive media from B.
+
+ SDP TA+TB: A session description generated by T that contains, among
+ other things, the transport address/es where T wants to
+ receive media from A and the transport address/es where T
+ wants to receive media from B.
+
+3.2. Callee's Invocation
+
+ In this scenario, B receives an INVITE from A, and B decides to
+ introduce T in the session. Figure 1 shows the call flow for this
+ scenario.
+
+ In Figure 1, A can both hear and speak, and B is a deaf user with a
+ speech impairment. A proposes to establish a session that consists
+ of an audio stream (1). B wants to send and receive only text, so it
+ invokes a transcoding service T that will perform both speech-to-text
+ and text-to-speech conversions (2). The session descriptions of
+ Figure 1 are partially shown below.
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 3]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ A T B
+
+ | | |
+ |--------------------(1) INVITE SDP A-------------------->|
+ | | |
+ | |<---(2) INVITE SDP A+B------|
+ | | |
+ | |---(3) 200 OK SDP TA+TB---->|
+ | | |
+ | |<---------(4) ACK-----------|
+ | | |
+ |<-------------------(5) 200 OK SDP TA--------------------|
+ | | |
+ |------------------------(6) ACK------------------------->|
+ | | |
+ | ************************** | ************************** |
+ |* MEDIA *|* MEDIA *|
+ | ************************** | ************************** |
+ | | |
+
+ Figure 1: Callee's Invocation of a Transcoding Service
+
+ (1) INVITE SDP A
+
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 A.example.com
+
+ (2) INVITE SDP A+B
+
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 A.example.com
+ m=text 40000 RTP/AVP 96
+ c=IN IP4 B.example.com
+ a=rtpmap:96 t140/1000
+
+ (3) 200 OK SDP TA+TB
+
+ m=audio 30000 RTP/AVP 0
+ c=IN IP4 T.example.com
+ m=text 30002 RTP/AVP 96
+ c=IN IP4 T.example.com
+ a=rtpmap:96 t140/1000
+
+ (5) 200 OK SDP TA
+
+ m=audio 30000 RTP/AVP 0
+ c=IN IP4 T.example.com
+
+
+
+
+Camarillo, et al. Informational [Page 4]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ Four media streams (i.e., two bi-directional streams) have been
+ established at this point:
+
+ 1. Audio from A to T.example.com:30000
+
+ 2. Text from T to B.example.com:40000
+
+ 3. Text from B to T.example.com:30002
+
+ 4. Audio from T to A.example.com:20000
+
+ When either A or B decides to terminate the session, it sends a BYE
+ indicating that the session is over.
+
+ If the first INVITE (1) received by B is empty (no session
+ description), the call flow is slightly different. Figure 2 shows
+ the messages involved.
+
+ B may have different reasons for invoking T before knowing A's
+ session description. B may want to hide its lack of native
+ capabilities, and therefore wants to return a session description
+ with all the codecs that B supports, plus all the codecs that T
+ supports. Or T may provide recording services (besides transcoding),
+ and B wants T to record the conversation, regardless of whether
+ transcoding is needed.
+
+ This scenario (Figure 2) is a bit more complex than the previous one.
+ In INVITE (2), B still does not have SDP A, so it cannot provide T
+ with that information. When B finally receives SDP A in (6), it has
+ to send it to T. B sends an empty INVITE to T (7) and gets a 200 OK
+ with SDP TA+TB (8). In general, this SDP TA+TB can be different than
+ the one sent in (3). That is why B needs to send the updated SDP TA
+ to A in (9). A then sends a possibly updated SDP A (10) and B sends
+ it to T in (12). On the other hand, if T happens to return the same
+ SDP TA+TB in (8) as in (3), B can skip messages (9), (10), and (11).
+ So, implementors of transcoding services are encouraged to return the
+ same session description in (8) as in (3) in this type of scenario.
+ The session descriptions of this flow are shown below:
+
+
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 5]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ A T B
+
+ | | |
+ |----------------------(1) INVITE------------------------>|
+ | | |
+ | |<-----(2) INVITE SDP B------|
+ | | |
+ | |---(3) 200 OK SDP TA+TB---->|
+ | | |
+ | |<---------(4) ACK-----------|
+ | | |
+ |<-------------------(5) 200 OK SDP TA--------------------|
+ | | |
+ |-----------------------(6) ACK SDP A-------------------->|
+ | | |
+ | |<-------(7) INVITE----------|
+ | | |
+ | |---(8) 200 OK SDP TA+TB---->|
+ | | |
+ |<-----------------(9) INVITE SDP TA----------------------|
+ | | |
+ |------------------(10) 200 OK SDP A--------------------->|
+ | | |
+ |<-----------------------(11) ACK-------------------------|
+ | | |
+ | |<-----(12) ACK SDP A+B------|
+ | | |
+ | ************************** | ************************** |
+ |* MEDIA *|* MEDIA *|
+ | ************************** | ************************** |
+
+ Figure 2: Callee's invocation after initial INVITE without SDP
+
+ (2) INVITE SDP A+B
+
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 0.0.0.0
+ m=text 40000 RTP/AVP 96
+ c=IN IP4 B.example.com
+ a=rtpmap:96 t140/1000
+
+ (3) 200 OK SDP TA+TB
+
+ m=audio 30000 RTP/AVP 0
+ c=IN IP4 T.example.com
+ m=text 30002 RTP/AVP 96
+ c=IN IP4 T.example.com
+ a=rtpmap:96 t140/1000
+
+
+
+Camarillo, et al. Informational [Page 6]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ (5) 200 OK SDP TA
+
+ m=audio 30000 RTP/AVP 0
+ c=IN IP4 T.example.com
+
+ (6) ACK SDP A
+
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 A.example.com
+
+ (8) 200 OK SDP TA+TB
+
+ m=audio 30004 RTP/AVP 0
+ c=IN IP4 T.example.com
+ m=text 30006 RTP/AVP 96
+ c=IN IP4 T.example.com
+ a=rtpmap:96 t140/1000
+
+ (9) INVITE SDP TA
+
+ m=audio 30004 RTP/AVP 0
+ c=IN IP4 T.example.com
+
+ (10) 200 OK SDP A
+
+ m=audio 20002 RTP/AVP 0
+ c=IN IP4 A.example.com
+
+ (12) ACK SDP A+B
+
+ m=audio 20002 RTP/AVP 0
+ c=IN IP4 A.example.com
+ m=text 40000 RTP/AVP 96
+ c=IN IP4 B.example.com
+ a=rtpmap:96 t140/1000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 7]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ Four media streams (i.e., two bi-directional streams) have been
+ established at this point:
+
+ 1. Audio from A to T.example.com:30004
+
+ 2. Text from T to B.example.com:40000
+
+ 3. Text from B to T.example.com:30006
+
+ 4. Audio from T to A.example.com:20002
+
+3.3. Caller's Invocation
+
+ In this scenario, A wishes to establish a session with B using a
+ transcoding service. A uses 3pcc to set up the session between T and
+ B. The call flow we provide here is slightly different than the ones
+ in [2]. In [2], the controller establishes a session between two
+ user agents, which are the ones deciding the characteristics of the
+ streams. Here, A wants to establish a session between T and B, but A
+ wants to decide how many and which types of streams are established.
+ That is why A sends its session description in the first INVITE (1)
+ to T, as opposed to the media-less initial INVITE recommended by [2].
+ Figure 3 shows the call flow for this scenario.
+
+ We do not include the session descriptions of this flow, since they
+ are very similar to those in Figure 2. In this flow, if T returns
+ the same SDP TA+TB in (8) as in (2), messages (9), (10), and (11) can
+ be skipped.
+
+3.4. Receiving the Original Stream
+
+ Sometimes, as pointed out in the requirements for SIP in support of
+ deaf, hard of hearing, and speech-impaired individuals [5], a user
+ wants to receive both the original stream (e.g., audio) and the
+ transcoded stream (e.g., the output of the speech-to-text
+ conversion). There are various possible solutions for this problem.
+ One solution consists of using the SDP group attribute with Flow
+ Identification (FID) semantics [3]. FID allows requesting that a
+ stream is sent to two different transport addresses in parallel, as
+ shown below:
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 8]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ A T B
+
+ | | |
+ |-------(1) INVITE SDP A---->| |
+ | | |
+ |<----(2) 200 OK SDP TA+TB---| |
+ | | |
+ |----------(3) ACK---------->| |
+ | | |
+ |--------------------(4) INVITE SDP TA------------------->|
+ | | |
+ |<--------------------(5) 200 OK SDP B--------------------|
+ | | |
+ |-------------------------(6) ACK------------------------>|
+ | | |
+ |--------(7) INVITE--------->| |
+ | | |
+ |<---(8) 200 OK SDP TA+TB --| |
+ | | |
+ |--------------------(9) INVITE SDP TA------------------->|
+ | | |
+ |<-------------------(10) 200 OK SDP B--------------------|
+ | | |
+ |-------------------------(11) ACK----------------------->|
+ | | |
+ |------(12) ACK SDP A+B----->| |
+ | | |
+ | ************************** | ************************** |
+ |* MEDIA *|* MEDIA *|
+ | ************************** | ************************** |
+ | | |
+
+ Figure 3: Caller's invocation of a transcoding service
+
+ a=group:FID 1 2
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 A.example.com
+ a=mid:1
+ m=audio 30000 RTP/AVP 0
+ c=IN IP4 T.example.com
+ a=mid:2
+
+ The problem with this solution is that the majority of the SIP user
+ agents do not support FID. Moreover, only a small fraction of the
+ few UAs that support FID, also support sending simultaneous copies of
+ the same media stream at the same time. In addition, FID forces both
+ copies of the stream to use the same codec.
+
+
+
+
+Camarillo, et al. Informational [Page 9]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ Therefore, we recommend that T (instead of a user agent) replicates
+ the media stream. The transcoder T receiving the following session
+ description performs speech-to-text and text-to-speech conversions
+ between the first audio stream and the text stream. In addition, T
+ copies the first audio stream to the second audio stream and sends it
+ to A.
+
+ m=audio 40000 RTP/AVP 0
+ c=IN IP4 B.example.com
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 A.example.com
+ a=recvonly
+ m=text 20002 RTP/AVP 96
+ c=IN IP4 A.example.com
+ a=rtpmap:96 t140/1000
+
+3.5. Transcoding Services in Parallel
+
+ Transcoding services sometimes consist of human relays (e.g., a
+ person performing speech-to-text and text-to-speech conversions for a
+ session). If the same person is involved in both conversions (i.e.,
+ from A to B and from B to A), he or she has access to all of the
+ conversation. In order to provide some degree of privacy, sometimes
+ two different persons are allocated to do the job (i.e., one person
+ handles A->B and the other B->A). This type of disposition is also
+ useful for automated transcoding services, where one machine converts
+ text to synthetic speech (text-to-speech) and another performs voice
+ recognition (speech-to-text).
+
+ The scenario described above involves four different sessions: A-T1,
+ T1-B, B-T2 and T2-A. Figure 4 shows the call flow where A invokes T1
+ and T2.
+
+ Note this example uses unidirectional media streams (i.e., sendonly
+ or recvonly) to clearly identify which transcoder handles media in
+ which direction. Nevertheless, nothing precludes the use of
+ bidirectional streams in this scenario. They could be used, for
+ example, by a human relay to ask for clarifications (e.g., I did not
+ get that, could you repeat, please?) to the party he or she is
+ receiving media from.
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 10]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ (1) INVITE SDP AT1
+
+ m=text 20000 RTP/AVP 96
+ c=IN IP4 A.example.com
+ a=rtpmap:96 t140/1000
+ a=sendonly
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 0.0.0.0
+ a=recvonly
+
+ (2) INVITE SDP AT2
+
+ m=text 20002 RTP/AVP 96
+ c=IN IP4 A.example.com
+ a=rtpmap:96 t140/1000
+ a=recvonly
+ m=audio 20000 RTP/AVP 0
+ c=IN IP4 0.0.0.0
+ a=sendonly
+
+ (3) 200 OK SDP T1A+T1B
+
+ m=text 30000 RTP/AVP 96
+ c=IN IP4 T1.example.com
+ a=rtpmap:96 t140/1000
+ a=recvonly
+ m=audio 30002 RTP/AVP 0
+ c=IN IP4 T1.example.com
+ a=sendonly
+
+ (5) 200 OK SDP T2A+T2B
+
+ m=text 40000 RTP/AVP 96
+ c=IN IP4 T2.example.com
+ a=rtpmap:96 t140/1000
+ a=sendonly
+ m=audio 40002 RTP/AVP 0
+ c=IN IP4 T2.example.com
+ a=recvonly
+
+ (7) INVITE SDP T1B+T2B
+
+ m=audio 30002 RTP/AVP 0
+ c=IN IP4 T1.example.com
+ a=sendonly
+ m=audio 40002 RTP/AVP 0
+ c=IN IP4 T2.example.com
+ a=recvonly
+
+
+
+Camarillo, et al. Informational [Page 11]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ A T1 T2 B
+
+ | | | |
+ |----(1) INVITE SDP AT1--->| | |
+ | | | |
+ |----------------(2) INVITE SDP AT2-------------->| |
+ | | | |
+ |<-(3) 200 OK SDP T1A+T1B--| | |
+ | | | |
+ |---------(4) ACK--------->| | |
+ | | | |
+ |<---------------(5) 200 OK SDP T2A+T2B-----------| |
+ | | | |
+ |----------------------(6) ACK------------------->| |
+ | | | |
+ |-----------------------(7) INVITE SDP T1B+T2B----------------->|
+ | | | |
+ |<----------------------(8) 200 OK SDP BT1+BT2------------------|
+ | | | |
+ |------(9) INVITE--------->| | |
+ | | | |
+ |-------------------(10) INVITE------------------>| |
+ | | | |
+ |<-(11) 200 OK SDP T1A+T1B-| | |
+ | | | |
+ |<------------(12) 200 OK SDP T2A+T2B-------------| |
+ | | | |
+ |------------------(13) INVITE SDP T1B+T2B--------------------->|
+ | | | |
+ |<-----------------(14) 200 OK SDP BT1+BT2----------------------|
+ | | | |
+ |--------------------------(15) ACK---------------------------->|
+ | | | |
+ |---(16) ACK SDP AT1+BT1-->| | |
+ | | | |
+ |------------(17) ACK SDP AT2+BT2---------------->| |
+ | | | |
+ | ************************ | ********************************** |
+ |* MEDIA *|* MEDIA *|
+ | ************************ | ********************************** |
+ | | | |
+ | *********************************************** ***********
+ |* MEDIA *|* MEDIA *|
+ | *********************************************** | *********** |
+ | | | |
+
+ Figure 4: Transcoding services in parallel
+
+
+
+
+Camarillo, et al. Informational [Page 12]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ (8) 200 OK SDP BT1+BT2
+
+ m=audio 50000 RTP/AVP 0
+ c=IN IP4 B.example.com
+ a=recvonly
+ m=audio 50002 RTP/AVP 0
+ c=IN IP4 B.example.com
+ a=sendonly
+
+ (11) 200 OK SDP T1A+T1B
+
+ m=text 30000 RTP/AVP 96
+ c=IN IP4 T1.example.com
+ a=rtpmap:96 t140/1000
+ a=recvonly
+ m=audio 30002 RTP/AVP 0
+ c=IN IP4 T1.example.com
+ a=sendonly
+
+ (12) 200 OK SDP T2A+T2B
+
+ m=text 40000 RTP/AVP 96
+ c=IN IP4 T2.example.com
+ a=rtpmap:96 t140/1000
+ a=sendonly
+ m=audio 40002 RTP/AVP 0
+ c=IN IP4 T2.example.com
+ a=recvonly
+
+ Since T1 have returned the same SDP in (11) as in (3), and T2 has
+ returned the same SDP in (12) as in (5), messages (13), (14) and (15)
+ can be skipped.
+
+ (16) ACK SDP AT1+BT1
+
+ m=text 20000 RTP/AVP 96
+ c=IN IP4 A.example.com
+ a=rtpmap:96 t140/1000
+ a=sendonly
+ m=audio 50000 RTP/AVP 0
+ c=IN IP4 B.example.com
+ a=recvonly
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 13]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ (17) ACK SDP AT2+BT2
+
+ m=text 20002 RTP/AVP 96
+ c=IN IP4 A.example.com
+ a=rtpmap:96 t140/1000
+ a=recvonly
+ m=audio 50002 RTP/AVP 0
+ c=IN IP4 B.example.com
+ a=sendonly
+
+ Four media streams have been established at this point:
+
+ 1. Text from A to T1.example.com:30000
+
+ 2. Audio from T1 to B.example.com:50000
+
+ 3. Audio from B to T2.example.com:40002
+
+ 4. Text from T2 to A.example.com:20002
+
+ Note that B, the user agent server, needs to support two media
+ streams: sendonly and recvonly. At present, some user agents,
+ although they support a single sendrecv media stream, do not support
+ a different media line per direction. Implementers are encouraged to
+ build support for this feature.
+
+3.6. Multiple Transcoding Services in Series
+
+ In a distributed environment, a complex transcoding service (e.g.,
+ English text to Spanish speech) is often provided by several servers.
+ For example, one server performs English text to Spanish text
+ translation, and its output is fed into a server that performs text-
+ to-speech conversion. The flow in Figure 5 shows how A invokes T1
+ and T2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 14]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+ A T1 T2 B
+
+ | | | |
+ |----(1) INVITE SDP A-----> | | |
+ | | | |
+ |<-(2) 200 OK SDP T1A+T1T2- | | |
+ | | | |
+ |----------(3) ACK--------> | | |
+ | | | |
+ |-----------(4) INVITE SDP T1T2------------------>| |
+ | | | |
+ |<-----------(5) 200 OK SDP T2T1+T2B--------------| |
+ | | | |
+ |---------------------(6) ACK-------------------->| |
+ | | | |
+ |---------------------------(7) INVITE SDP T2B----------------->|
+ | | | |
+ |<--------------------------(8) 200 OK SDP B--------------------|
+ | | | |
+ |--------------------------------(9) ACK----------------------->|
+ | | | |
+ |---(10) INVITE-----------> | | |
+ | | | |
+ |------------------(11) INVITE------------------->| |
+ | | | |
+ |<-(12) 200 OK SDP T1A+T1T2-| | |
+ | | | |
+ |<-------------(13) 200 OK SDP T2T1+T2B-----------| |
+ | | | |
+ |---(14) ACK SDP T1T2+B---> | | |
+ | | | |
+ |-----------------------(15) INVITE SDP T2B-------------------->|
+ | | | |
+ |<----------------------(16) 200 OK SDP B-----------------------|
+ | | | |
+ |----------------(17) ACK SDP T1T2+B------------->| |
+ | | | |
+ |----------------------------(18) ACK-------------------------->|
+ | | | |
+ | ************************* | ******************* *********** |
+ |* MEDIA *|* MEDIA *|* MEDIA *|
+ | ************************* | ******************* | *********** |
+ | | | |
+
+ Figure 5: Transcoding services in serial
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 15]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+4. Security Considerations
+
+ RFC 3725 [2] discusses security considerations which relate to the
+ use of third party call control in SIP. These considerations apply
+ to this document, since it describes how to use third party call
+ control to invoke transcoding service.
+
+ In particular, RFC 3725 states that end-to-end media security is
+ based on the exchange of keying material within SDP and depends on
+ the controller behaving properly. That is, the controller should not
+ try to disable the security mechanisms offered by the other parties.
+ As a result, it is trivially possible for the controller to insert
+ itself as an intermediary on the media exchange, if it should so
+ desire.
+
+ In this document, the controller is the UA invoking the transcoder,
+ and there is a media session established using third party call
+ control between the remote UA and the transcoder. Consequently, the
+ attack described in RFC 3725 does not constitute a threat because the
+ controller is the UA invoking the transcoding service and it has
+ access to the media anyway by definition. So, it seems unlikely that
+ a UA would attempt to launch an attack against its own session by
+ disabling security between the transcoder and the remote UA.
+
+ Regarding end-to-end media security from the UAs' point of view, the
+ transcoder needs access to the media in order to perform its
+ function. So, by definition, the transcoder behaves as a man in the
+ middle. UAs that do not want a particular transcoder to have access
+ to all the media exchanged between them can use a different
+ transcoder for each direction. In addition, UAs can use different
+ transcoders for different media types.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 16]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+5. Normative References
+
+ [1] 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.
+
+ [2] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. Camarillo,
+ "Best Current Practices for Third Party Call Control (3pcc) in
+ the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, April
+ 2004.
+
+ [3] Camarillo, G., Eriksson, G., Holler, J., and H. Schulzrinne,
+ "Grouping of Media Lines in the Session Description Protocol
+ (SDP)", RFC 3388, December 2002.
+
+6. Informative References
+
+ [4] Camarillo, G., "Framework for transcoding with the session
+ initiation protocol", August 2003, Work in Progress.
+
+ [5] Charlton, N., Gasson, M., Gybels, G., Spanner, M., and A. van
+ Wijk, "User Requirements for the Session Initiation Protocol
+ (SIP) in Support of Deaf, Hard of Hearing and Speech-impaired
+ Individuals", RFC 3351, August 2002.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 17]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+Authors' Addresses
+
+ Gonzalo Camarillo
+ Ericsson
+ Advanced Signalling Research Lab.
+ FIN-02420 Jorvas
+ Finland
+
+ EMail: Gonzalo.Camarillo@ericsson.com
+
+
+ Eric Burger
+ Brooktrout Technology, Inc.
+ 18 Keewaydin Way
+ Salem, NH 03079
+ USA
+
+ EMail: eburger@brooktrout.com
+
+
+ Henning Schulzrinne
+ Dept. of Computer Science
+ Columbia University
+ 1214 Amsterdam Avenue, MC 0401
+ New York, NY 10027
+ USA
+
+ EMail: schulzrinne@cs.columbia.edu
+
+
+ Arnoud van Wijk
+ Viataal
+ Research & Development
+ Afdeling RDS
+ Theerestraat 42
+ 5271 GD Sint-Michielsgestel
+ The Netherlands
+
+ EMail: a.vwijk@viataal.nl
+
+
+
+
+
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 18]
+
+RFC 4117 3pcc Transcoding in SIP June 2005
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2005).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at ietf-
+ ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+Camarillo, et al. Informational [Page 19]
+