RFC 4579 - Session Initiation Protocol (SIP) Call Control -(2)

时间:2006-11-02 来源: 作者: 点击:
’isfocus’. AnexamplecallflowisshowninFigure2.ItisassumedthatAlice isalreadyaparticipantoftheconference.ThefocusinvitesCarol totheconferencebysendinganINVITE.Afterthesessionis established,Carolsubsc
  
   ’isfocus’.

   An example call flow is shown in Figure 2.  It is assumed that Alice
   is already a participant of the conference.  The focus invites Carol
   to the conference by sending an INVITE.  After the session is
   established, Carol subscribes to the conference URI.  It is important
   to note that there is no dependency on Carol’s SUBSCRIBE (F5) and the
   NOTIFY to Alice (F9) -- they occur asynchronously and independently.

   Alice                 Focus                 Bob                Carol
      |                    |                    |                    |
      |<==================>|                    |                    |
      |                    |                                         |
      |           Focus "dials out" to add Carol to the conference   |
      |                    |                                         |
      |                    |    INVITE Contact:Conf-ID;isfocus F1    |
      |                    |---------------------------------------->|
      |                    |               180 Ringing F2            |
      |                    |<----------------------------------------|
      |                    |                  200 OK F3              |
      |                    |<----------------------------------------|
      |                    |                   ACK F4                |
      |                    |---------------------------------------->|
      |                    |                    RTP                  |
      |                    |<=======================================>|
      |                    |           SUBSCRIBE sip:Conf-ID F5      |
      |                    |<----------------------------------------|
      |                    |                  200 OK F6              |
      |                    |---------------------------------------->|
      |                    |                NOTIFY F7                |
      |                    |---------------------------------------->|
      |                    |                  200 OK F8              |
      |                    |<----------------------------------------|
      |     NOTIFY F9      |                                         |
      |<-------------------|                                         |
      |     200 OK F10     |                                         |
      |------------------->|                                         |

   Figure 2. A Focus "Dials Out" to Add a Participant to the Conference.

   F7    NOTIFY sip:carol@chicago.example.com SIP/2.0
         Via: SIP/2.0/UDP ms5.conf.example.com;branch=z9hG4bK3343d1
         Max-Forwards: 70
         To: Carol <sip:carol@chicago.example.com>;tag=43524545
         From: <sip:3402934234@conf.example.com>;tag=a3343df32
         Call-ID: k3l43id034ksereree
         CSeq: 34321 NOTIFY
         Contact: <sip:3402934234@conf.example.com>;isfocus
         Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
          SUBSCRIBE, NOTIFY
         Event: conference
         Accept: application/sdp, message/sipfrag
         Subscription-State: active;expires=3600
         Supported: replaces, gruu
         Content-Type: application/conference-info+xml
         Content-Length: ...

         <conference-info version="0" state="full"
          entity="sip:3402934234@conf.example.com">
          <conference-description>
           <conf-uris>
            <entry>
             <uri>tel:+18882934234</uri>
            </entry>
           </conf-uris>
          </conference-description>
          <users>
           <user entity="sip:alice@atlanta.example.com" state="full">
            <display-text>Alice</display-text>
            <endpoint entity="sip:alice@client.atlanta.example.com">
             <status>connected</status>
             <joining-method>dialed-in</joining-method>
             <media id="3">
              <display-text>Main Audio</display-text>
              <type>audio</type>
              <src-id>647231</src-id>
              <status>sendrecv</status>
             </media>
             <media id="4">
              <type>video</type>
              <src-id>21345</src-id>
              <status>sendrecv</status>
             </media>
            </endpoint>
           </user>
           <user entity="sip:carol@chicago.example.com" state="full">
            <display-text>Carol</display-text>
            <endpoint entity="sip:carol@client.chicago.example.com">
             <status>connected</status>
             <joining-method>dialed-out</joining-method>
             <media id="1">
              <display-text>Main Audio</display-text>
              <type>audio</type>
              <src-id>583398</src-id>
              <status>sendrecv</status>
             </media>
             <media id="2">
              <type>video</type>
              <src-id>345212</src-id>
              <status>sendrecv</status>
             </media>
            </endpoint>
           </user>
          </users>
         </conference-info>

   F9    NOTIFY sip:alice@atlanta.example.com SIP/2.0
         Via: SIP/2.0/UDP ms5.conf.example.com;branch=z9hG4bK3432
         Max-Forwards: 70
         To: Alice <sip:alice@atlanta.example.com>;tag=43524545
         From: <sip:3402934234@conf.example.com>;tag=a3343df32
         Call-ID: 8820450524545
         CSeq: 998 NOTIFY
         Contact: <sip:3402934234@conf.example.com>;isfocus
         Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
          SUBSCRIBE, NOTIFY
         Event: conference
         Accept: application/sdp, message/sipfrag
         Subscription-State: active;expires=2450
         Supported: replaces, gruu
         Content-Type: application/conference-info+xml
         Content-Length: ...

         <conference-info version="1" state="partial"
          entity="sip:3402934234@conf.example.com">
          <users>
           <user entity="sip:carol@chicago.example.com" state="full">
            <display-text>Carol</display-text>
            <endpoint entity="sip:carol@client.chicago.example.com">
             <status>connected</status>
             <joining-method>dialed-out</joining-method>
             <media id="1">
              <display-text>Main Audio</display-text>
              <type>audio</type>
              <src-id>583398</src-id>
              <status>sendrecv</status>
             </media>
             <media id="2">
              <type>video</type>
              <src-id>345212</src-id>
              <status>sendrecv</status>
             </media>
            </endpoint>
           </user>
          </users>
         </conference-info>

5.3.  INVITE: Manually Creating a Conference by Dialing in to a
      Conferencing Application

   In this section, a user sends an INVITE to a conference server
   application.  The application (such as an IVR system or a web page)
   is implemented because the system requires additional input from the
   user before it is able to create a conference.  After a normal dialog
   is established, additional information is received and the conference
   together with its focus are created.  Since the UA is now in a dialog
   with a focus, the focus will re-INVITE the user with the conference
   URI in Contact with the ’isfocus’ feature parameter.

   Alternatively, the additional information can be provided by the user
   during an early dialog (see RFC 3261 [2] for a discussion of early
   dialogs in SIP).  This could be accomplished by a 183 Session
   Progress response sent by the conferencing application.  After the
   conference is created, the conference URI would then be returned in a
   Contact in the 200 OK.

   Note that since this flow is all about human interaction with a
   conferencing application, any errors and failures will be returned to
   the human (recorded announcements, error tones, etc.).

   As discussed in the conferencing framework, the conference URI must
   be unique across all distinct conferences within the same domain.  In
   general, the user part of a conference URI will contain a pseudo
   random string.

   An example call flow is shown in Figure 3.  In this example, Alice
   uses a conference application that is triggered when Alice sends an
   INVITE to the conference application.  In this example, Conf-App is
   used to represent the conference application URI.  Alice’s
   conference-aware UA learns of the existence of the conference from
   the ’isfocus’ feature parameter and subscribes to the conference
   package to receive notifications of the conference state.

   Alice                Focus                 Bob                Carol
     |                    |                    |                    |
     | Alice establishes session with conference application.       |
     |                    |                    |                    |
     | INVITE sip:Conf-App F1                  |                    |
     |------------------->|                    |                    |
     |   180 Ringing F2   |                    |                    |
     |<-------------------|                    |                    |
     |     200 OK F3      |                    |                    |
     |<-------------------|                    |                    |
     |        ACK F4      |                    |                    |
     |------------------->|                    |                    |
     |        RTP         |                    |                    |
     |<==================>|                    |                    |
     |                    |                    |                    |
     | Alice uses the application to create the conference.         |
     |                    |                    |                    |
     | INVITE Contact:Conf-ID;isfocus F5       |                    |
     |<-------------------|                    |                    |
     |    200 OK F6       |                    |                    |
     |------------------->|                    |                    |
     |        ACK F7      |                    |                    |
     |<-------------------|                    |                    |
     |        RTP         |                    |                    |
     |<==================>|                    |                    |
     |                    |                    |                    |
     | SUBSCRIBE sip:Conf-ID F8                |                    |
     |------------------->|                    |                    |
     |     200 OK F9      |                    |                    |
     |<-------------------|                    |                    |
     |     NOTIFY F10     |                    |                    |
     |<-------------------|                    |                    |
     |     200 OK F11     |                    |                    |
     |------------------->|                    |                    |

   Figure 3. A Participant Creates a Conference Using an Application.

5.4.  INVITE: Creating a Conference Using Ad-Hoc SIP Methods

   This section addresses creating a conference by using ad-hoc SIP
   means.  The conference factory URI (as defined in Section 3.2) is
   used to automatically create the conference in this example.  This is
   different from the previous scenario in that no human intervention is
   required -- an automaton can create the conference and add
   participants.  Since the conference does not need to be scheduled or
   reserved, but is created "on the fly", it is an "ad-hoc" conference
   creation.

   The benefit of this approach is that the conference URI need not be
   known to the user; instead it is created by a focus and used by the
   participants’ UAs.  The main difference between this scenario and
   Section 5.3 is that no user intervention (IVR, web page form, etc.)
   is required to create the conference.

   The SIP URI of the conference factory can be provisioned in the UA
   (as in a "create new conference" button on a SIP phone) or can be
   discovered using other means.

   A SIP entity (such as conferencing server) can distinguish this
   INVITE request as a request to create a new ad-hoc conference from a
   request to join an existing conference by the Request-URI.  That is,
   although both requests may route to the same application, the
   differing services requested can be identified by the differing URIs
   in the request itself.

   Assuming that all security and policy requirements have been met, a
   new conference will be created with the Contact URI returned in the
   200 OK being the conference URI.  The Contact header field MUST
   contain the ’isfocus’ feature parameter to indicate that this URI is
   for a conference.

   An example call flow is shown in Figure 4.  Note that Conf-Factory is
   shorthand for the conference factory URI and Conf-ID Is short for the
   conference URI.  In this flow, Alice has a conference-aware UA and
   creates a conference by sending an INVITE to the conference factory
   URI.  The conference factory application creates the conference and
   redirects Alice to the focus using a 302 Moved Temporarily response.
   Note that with proxy recursion as part of normal RFC 3261 [2]
   behavior, Alice may never see the redirect but may just receive the
   responses from the focus starting with message F5.  Once the media
   session is established, Alice subscribes to the conference URI
   obtained through the Contact in the 200 OK response from the focus.

   Alice         Conf-Factory App            Focus                 Bob
     |                    |                    |                    |
     | Alice creates the conference.           |                    |
     |                    |                    |                    |
     | INVITE sip:Conf-Factory F1              |                    |
     |------------------->|                    |                    |
     |  302 Moved Contact:Conf-ID;isfocus F2   |                    |
     |<-------------------|                    |                    |
     |        ACK F3      |                    |                    |
     |------------------->|                    |                    |
     | INVITE sip:Conf-ID F4                   |                    |
     |---------------------------------------->|                    |
     |   180 Ringing F5                        |                    |
     |<----------------------------------------|                    |
     |   200 OK Contact:Conf-ID;isfocus F6     |                    |
     |<----------------------------------------|                    |
     |        ACK F7                           |                    |
     |---------------------------------------->|                    |
     |        RTP                              |                    |
     |<=======================================>|                    |
     |                                         |                    |
     | Alice subscribes to the conference URI. |                    |
     |                                         |                    |
     | SUBSCRIBE sip:Conf-ID F8                |                    |
     |---------------------------------------->|                    |
     |     200 OK F9                           |                    |
     |<----------------------------------------|                    |
     |     NOTIFY F10                          |                    |
     |<----------------------------------------|                    |
     |     200 OK F11                          |                    |
     |---------------------------------------->|                    |

   Figure 4. Creation of a Conference Using SIP Ad-Hoc Methods.

5.5.  REFER: Requesting a Focus to Add a New Resource to a Conference
      (Dial Out to a New Participant)

   A SIP conference URI can be used to inject different kinds of
   information into the conference.  Examples include new participants,
   new real-time media sources, new IM messages, and pointers to passive
   information references (such as HTTP URIs).
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容