tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Gloss.     Arch.     IMS     UICC    |    Misc.    |    search     info

RFC 7463

 
 
 

Shared Appearances of a Session Initiation Protocol (SIP) Address of Record (AOR)

Part 3 of 4, p. 26 to 49
Prev RFC Part       Next RFC Part

 


prevText      Top      Up      ToC       Page 26 
9.  Interoperability with Non-shared Appearance UAs

   It is desirable to allow a basic UA that does not directly support
   shared appearance to be part of a shared appearance group.  To
   support this, the Proxy must collaborate with the Appearance Agent.
   This is not required in the basic shared appearance architecture;
   consequently, shared appearance interoperability with non-shared
   appearance UAs will not be available in all shared appearance
   deployments.

   First, a UA that does not support dialog events or the shared
   appearances feature will be discussed.  Then, a UA that does support
   dialog events but not the shared appearances feature will be
   discussed.

9.1.  Appearance Assignment

   A UA that has no knowledge of appearances will only have appearance
   numbers for outgoing calls if assigned by the Appearance Agent.  If
   the non-shared appearance UA does not support Join or Replaces, all
   dialogs SHOULD be marked "exclusive" to indicate that these options
   are not available.  Marking these dialogs "exclusive" provides a
   better user experience and avoids extra SIP messaging failures.

Top      Up      ToC       Page 27 
9.2.  Appearance Release

   In all cases, the Appearance Agent must be aware of the dialog
   lifetime to release appearances back into the group.

   It is also desirable that any dialog state changes (such as hold,
   etc.) be made available to other UAs in the group through the Dialog
   Event Package.  If the Appearance Agent includes a proxy that Record-
   Routes for dialogs from the non-shared-appearance-aware UA, the
   Appearance Agent will know about the state of dialogs including hold,
   etc.  This information could be determined from inspection of non-
   end-to-end-encrypted INVITE and re-INVITE messages and added to the
   dialog information conveyed to other UAs.

9.3.  UAs Supporting Dialog Events but Not Shared Appearance

   Interoperability with UAs that support dialog events but not the
   shared appearances feature is more straightforward.  As before, all
   appearance number assignments must be done by the Appearance Agent.
   The Appearance Agent SHOULD still include appearance information in
   NOTIFYs -- this UA will simply ignore this extra information.  This
   type of UA will also ignore appearance number limitations and may
   attempt to join or replace dialogs marked exclusive.  As a result,
   the Proxy or UAs need to reject such requests or the dialogs will be
   joined or taken.

10.  Provisioning Considerations

   UAs can automatically discover if this feature is active for an AOR
   by looking for the 'shared' Event header field parameter in a
   response to a dialog package SUBSCRIBE to the AOR, so no provisioning
   for this is needed.

   The registrar will need to be provisioned to accept either first or
   third party registrations for the shared AOR.  First party
   registration means the To and From URIs in the REGISTER request are
   the shared AOR URI.  Third-party registration means the To URI is the
   shared AOR URI and the From URI is a different AOR, perhaps that of
   the individual user.  Either the credentials of the shared AOR or the
   user MUST be accepted by the registrar and the Appearance Agent,
   depending on the authorization policy in place for the domain.

   If the Appearance Agent needs to subscribe to the dialog state of the
   UAs, then the Appearance Agent and the UAs need to be provisioned
   with credentials so the UAs can authenticate the Appearance Agent.

   In some cases, UAs in the shared appearance group might have a UI
   limitation on the number of appearances that can be rendered.

Top      Up      ToC       Page 28 
   Typically, this will be hard-phones with buttons/lamps instead of
   more flexible UIs.  In this case, it can be useful for the Appearance
   Agent to know this maximum number.  This can allow the Appearance
   Agent to apply policy when this limit is reached, e.g., deny a call.
   However, this mechanism does not provide any way to discover this by
   protocol means.

11.  Example Message Flows

   The next section shows call flow and message examples.  The flows and
   descriptions are non-normative.  Note that, in these examples, all
   INVITEs sent by a UA in the group will be From the shared AOR
   (sip:HelpDesk@example.com in this case), and all INVITES sent to the
   group will have a Request-URI of the shared AOR.  Any other requests
   would not apply to this feature and would be handled using normal SIP
   mechanisms.

   Note that the first 12 examples assume the Appearance Agent is aware
   of dialog state events.  The example in Section 11.13 shows the case
   where this is not the case, and, as a result, the Appearance Agent
   initiates a subscription to users of the shared AOR.  Any of the
   other call flow examples could have shown this mode of operation as
   it is equally valid.

11.1.  Registration and Subscription

   Bob and Alice are in a shared appearance group identified by the
   shared appearance AOR sip:HelpDesk@example.com.  Bob REGISTERs using
   contact sip:bob@ua2.example.com.  Alice REGISTERs with contact
   sip:alice@ua1.example.com.

   UAs for Alice and Bob subscribe to the dialog package for the
   appearance AOR and publish dialog state to the Appearance Agent.
   Message exchanges between the Registrar, Appearance Agent, Alice, and
   Bob are shown below.  The call flow examples below do not show the
   authentication of subscriptions, publications, and notifications.  It
   should be noted that for security purposes, all publications and
   subscriptions must be authorized before they are accepted.

   Also note that registrations and subscriptions must all be refreshed
   by Alice at intervals determined by the expiration intervals returned
   by the Registrar or Appearance Agent.

   Registrar     Appearance Agent          Alice             Bob
   |                    |                    |                |
   |                    |                    |                |
   |<--------------------------- REGISTER F1<|                |
   |                    |                    |                |

Top      Up      ToC       Page 29 
   |>F2 200 OK ----------------------------->|                |
   |                    |                    |                |
   |                    |<----- SUBSCRIBE F3<|                |
   |                    |                    |                |
   |                    |>F4 200 OK -------->|                |
   |                    |                    |                |
   |                    |>F5 NOTIFY -------->|                |
   |                    |                    |                |
   |                    |<-------- 200 OK F6<|                |
   |                    |                    |                |
   |<-------------------------------------------- REGISTER F7<|
   |                    |                    |                |
   |>F8 200 OK ---------------------------------------------->|
   |                    |                    |                |
   |                    |<---------------------- SUBSCRIBE F9<|
   |                    |                    |                |
   |                    |>F10 200 OK ------------------------>|
   |                    |                    |                |
   |                    |>F11 NOTIFY ------------------------>|
   |                    |                    |                |
   |                    |<------------------------ 200 OK F12<|
   |                    |                    |                |

   Figure 1. Registration and Subscription Example

   F1-F2: Alice registers AOR with
          contact: <sip:alice@ua1.example.com>

   F1 Alice ----> Registrar

   REGISTER sip:registrar.example.com SIP/2.0
   Via: SIP/2.0/UDP ua1.example.com;branch=z9hG4bK527b54da8ACC7B09
   From: <sip:alice@example.com>;tag=CDF9A668-909E2BDD
   To: <sip:HelpDesk@example.com>
   CSeq: 2 REGISTER
   Call-ID: d3281184-518783de-cc23d6bb
   Contact: <sip:alice@ua1.example.com>
   Max-Forwards: 70
   Expires: 3600
   Content-Length: 0


   F2 Registrar ----> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ua1.example.com;branch=z9hG4bK527b54da8ACC7B09
   CSeq: 2 REGISTER
   Call-ID: d3281184-518783de-cc23d6bb

Top      Up      ToC       Page 30 
   From: <sip:alice@example.com>;tag=CDF9A668-909E2BDD
   To: <sip:HelpDesk@example.com>;tag=1664573879820199
   Contact:  <sip:alice@ua1.example.com>;expires=3600
   Content-Length: 0


   F3 to F6: Alice also subscribes to the events associated with the
   Appearance AOR.  Appearance Agent notifies Alice of the status.

   F3 Alice ----> Appearance Agent

   SUBSCRIBE sip:HelpDesk@example.com SIP/2.0
   Via: SIP/2.0/UDP ua1.example.com;branch=z9hG4bKf10fac97E7A76D6A
   From: <sip:alice@example.com>;tag=925A3CAD-CEBB276E
   To: <sip:HelpDesk@example.com>
   CSeq: 91 SUBSCRIBE
   Call-ID: ef4704d9-bb68aa0b-474c9d94
   Contact: <sip:alice@ua1.example.com>
   Event: dialog;shared
   Accept: application/dialog-info+xml
   Max-Forwards: 70
   Expires: 3700
   Content-Length: 0


   F4 Appearance Agent ----> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ua1.example.com;branch=z9hG4bKf10fac97E7A76D6A
   CSeq: 91 SUBSCRIBE
   Call-ID: ef4704d9-bb68aa0b-474c9d94
   From: <sip:alice@example.com>;tag=925A3CAD-CEBB276E
   To: <sip:HelpDesk@example.com>;tag=1636248422222257
   Allow-Events: dialog
   Expires: 3700
   Contact: <sip:appearanceagent.example.com>
   Content-Length: 0


   F5 Appearance Agent ----> Alice

   NOTIFY sip:alice@ua1.example.com SIP/2.0
   From: <sip:HelpDesk@example.com>;tag=1636248422222257
   To: <sip:alice@example.com>;tag=925A3CAD-CEBB276E
   Call-ID: ef4704d9-bb68aa0b-474c9d94
   CSeq: 232 NOTIFY
   Via: SIP/2.0/UDP appearanceagent.example.com;branch=z9hG4bK1846
   Max-Forwards: 70

Top      Up      ToC       Page 31 
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=3000
   Contact: <sip:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                version="40"
                state="full"
                entity="sip:HelpDesk@example.com">
   </dialog-info>


   F6 Alice ----> Appearance Agent

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP appearanceagent.example.com;branch=z9hG4bK1846
   From: <sip:HelpDesk@example.com>;tag=1636248422222257
   To: <sip:alice@example.com>;tag=925A3CAD-CEBB276E
   CSeq: 232 NOTIFY
   Call-ID: ef4704d9-bb68aa0b-474c9d94
   Contact: <sip:alice@ua1.example.com>
   Content-Length: 0


   F7 Bob ----> Registrar

   REGISTER sip:registrar.example.com SIP/2.0
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4b53b54d87B
   From: <sip:bob@example.com>;tag=34831131
   To: <sip:HelpDesk@example.com>
   CSeq: 72 REGISTER
   Call-ID: 139490230230249348
   Contact: <sip:bob@ua2.example.com>
   Max-Forwards: 70
   Expires: 3600
   Content-Length: 0


   F8 Registrar ----> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4b53b54d87B
   From: <sip:bob@example.com>;tag=34831131
   To: <sip:HelpDesk@example.com>;tag=fkwlwqi1
   CSeq: 72 REGISTER
   Call-ID: 139490230230249348

Top      Up      ToC       Page 32 
   Contact: <sip:alice@ua1.example.com>;expires=3200
   Contact: <sip:bob@ua2.example.com>;expires=3600
   Content-Length: 0




11.2.  Appearance Selection for Incoming Call

   In the call flow below, Bob and Alice are in a shared appearance
   group.  Carol places a call to the shared appearance group AOR.  The
   Appearance Agent sends NOTIFYs to Alice and Bob telling them what
   appearance the call is using.  Both Alice and Bob's devices are
   alerted of the incoming call.  Bob answers the call.

   Note that it is possible that both Alice and Bob answer the call and
   send 200 (OK) responses to Carol.  It is up to Carol to resolve this
   situation.  Typically, Carol will send ACKs to both 200 OKs but send
   a BYE to terminate one of the dialogs.  As a result, either Alice or
   Bob will receive the BYE and publish that their dialog is over.
   However, if Carol answers both Alice and Bob and keeps both dialogs
   active, then the Appearance Agent will need to resolve the situation
   by moving either Alice or Bob's dialog to a different appearance.

   All NOTIFY messages in the call flow below carry dialog events and
   only dialog states are mentioned for simplicity.  For brevity, the
   details of some messages are not shown below.  Note that the order of
   F2 - F5 and F7 - F8 could be reversed.

              Forking     Appearance
   Carol      Proxy         Agent         Alice      Bob
   |            |             |             |         |
   |>F1 INVITE >|             |             |         |
   |            |< - - - - - >|             |         |
   |            |             |>F2 NOTIFY ----------->|
   |            |             |             |         |
   |            |             |<F3 200 OK -----------<|
   |            |             |             |         |
   |            |             |>F4 NOTIFY ->|         |
   |            |             |             |         |
   |            |             |<-200 OK F5-<|         |
   |<- 100 F6 -<|             |             |         |
   |            |>F7 INVITE (appearance=1) ---------->|
   |            |             |             |         |
   |            |>F8 INVITE (appearance=1) >|         |
   |            |             |             |         |
   |            |<-------------------- Ringing 180 F9<|
   |< 180 F10 -<|             |             |         |

Top      Up      ToC       Page 33 
   |            |<--------- 180 Ringing F11<|         |
   |< 180 F12 -<|             |             |         |
   |            |             |             |         |
   |            |<------------------------ 200 OK F13<|
   |< 200 F14 -<|             |             |         |
   |            |             |             |         |
   |            |>F15 CANCEL -------------->|         |
   |            |             |             |         |
   |            |<-------------- 200 OK F16<|         |
   |            |             |             |         |
   |            |<Request Cancelled 487 F17<|         |
   |            |             |             |         |
   |            |>F18 ACK ----------------->|         |
   |>F19 ACK -->|             |             |         |
   |            |>F20 ACK --------------------------->|
   |            |             |             |         |
   |<=============Both way RTP established===========>|
   |            |             |             |         |
   |            |< - - - - - >|             |         |
   |            |             |             |         |
   |            |             |>F21 NOTIFY >|         |
   |            |             |             |         |
   |            |             |<- 200 F22 -<|         |
   |            |             |             |         |
   |            |             |>F23 NOTIFY ---------->|
   |            |             |             |         |
   |            |             |<F24 200 OK ----------<|
   |            |             |                       |

   Figure 2. Appearance Selection for Incoming Call Example


   F4 Appearance Agent ----> Alice

   NOTIFY sip:alice@ua1.example.com SIP/2.0
   From: <sip:HelpDesk@example.com>;tag=151702541050937
   To: <sip:alice@example.com>;tag=18433323-C3D237CE
   Call-ID: 1e361d2f-a9f51109-bafe31d4
   CSeq: 12 NOTIFY
   Via: SIP/2.0/UDP appearanceagent.example.com;branch=z9hG4bK1403
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=2800
   Contact: <sip:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>

Top      Up      ToC       Page 34 
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="13"
                state="partial"
                entity="sip:HelpDesk@example.com">
      <dialog id="2a7294823093f5274e3fd2ec54a2d76c"
           call-id="14-1541707345"
           remote-tag="44BAD75D-E3128D42"
           direction="recipient">
         <sa:appearance>1</sa:appearance>
         <state>trying</state>
         <remote>
           <identity>sip:carol@ua.example.com</identity>
         </remote>
      </dialog>
   </dialog-info>


   F7 Proxy ----> Bob

   INVITE sip:bob@ua2.example.com SIP/2.0
   Via: SIP/2.0/UDP ua3.example.com;branch=z9hG4bK4324ea
   Via: SIP/2.0/UDP proxy.example.com;branch=z9hG4bK38432ji
   From: <sip:carol@example.com>;tag=44BAD75D-E3128D42
   To: <sip:HelpDesk@example.com>
   CSeq: 106 INVITE
   Call-ID: 14-1541707345
   Contact: <sip:carol@ua3.example.com>
   Max-Forwards: 69
   Alert-Info: <urn:alert:service:normal>;appearance=1
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=- 1102980499 1102980499 IN IP4 ua3.example.com
   s=
   c=IN IP4 ua3.example.com
   t=0 0
   m=audio 2238 RTP/AVP 0 8 101
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:101 telephone-event/8000


   F21 Appearance Agent ----> Alice

   NOTIFY sip:alice@ua1.example.com SIP/2.0
   From: <sip:HelpDesk@example.com>;tag=151702541050937

Top      Up      ToC       Page 35 
   To: <sip:alice@example.com>;tag=18433323-C3D237CE
   Call-ID: 1e361d2f-a9f51109-bafe31d4
   CSeq: 13 NOTIFY
   Via: SIP/2.0/UDP appearanceagent.example.com;branch=z9hG4bK4164F03j
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=2500
   Contact: <sip:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="17"
                state="partial"
                entity="sip:HelpDesk@example.com">
      <dialog id="2a7294823093f5274e3fd2ec54a2d76c"
           call-id="14-1541707345"
           remote-tag="44BAD75D-E3128D42"
           local-tag="7349dsfjkFD03s"
           direction="recipient">
         <sa:appearance>1</sa:appearance>
         <state>confirmed</state>
         <local>
           <target>sip:bob@ua2.example.com</target>
         </local>
         <remote>
           <identity>sip:carol@ua.example.com</identity>
         </remote>
      </dialog>
   </dialog-info>


11.3.  Outgoing Call without Appearance Seizure

   In this scenario, Bob's UA places a call without first selecting/
   seizing an appearance number.  After Bob sends the INVITE, the
   appearance assigns an appearance number for it and notifies both
   Alice and Bob.


   Carol        Proxy           Alice     Appearance Agent         Bob
   |              |               |              |                  |
   |              |               |              |                  |
   |              |<------------------------------------- INVITE F1<|
   |              |               |              |                  |
   |              |>F2 100 Trying --------------------------------->|

Top      Up      ToC       Page 36 
   |<-- INVITE F3<|               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<-- NOTIFY F4<|                  |
   |              |               |              |                  |
   |              |               |>F5 200 OK -->|                  |
   |              |               |              |------- NOTIFY F6>|
   |              |               |              |                  |
   |              |               |              |<F7 200 OK ------<|
   |>F8 180  ---->|               |              |                  |
   |              |>F9 180 Ringing -------------------------------->|
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F10<|                  |
   |              |               |              |                  |
   |              |               |>F11 200 OK ->|                  |
   |              |               |              |------ NOTIFY F12>|
   |              |               |              |                  |
   |              |               |              |<F13 200 OK -----<|
   |>F14 200 OK ->|               |              |                  |
   |              |>F15 200 OK ------------------------------------>|
   |              |               |              |                  |
   |              |<--------------------------------------- ACK F16<|
   |<---- ACK F17<|               |              |                  |
   |              |               |              |                  |
   |<================= Both way RTP established ===================>|
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F18<|                  |
   |              |               |              |                  |
   |              |               |>F19 200 OK ->|                  |
   |              |               |              |------ NOTIFY F20>|
   |              |               |              |                  |
   |              |               |              |<F21 200 OK -----<|
   |              |               |              |                  |

   Figure 3. Outgoing Call without Appearance Seizure Example


   F1 Bob ----> Proxy

   INVITE sip:carol@example.com SIP/2.0
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4bK98c87c52123A08BF
   From: <sip:HelpDesk@example.com>;tag=15A3DE7C-9283203B
   To: <sip:carol@example.com>
   CSeq: 1 INVITE

Top      Up      ToC       Page 37 
   Call-ID: f3b3cbd0-a2c5775e-5df9f8d5
   Contact: <sip:bob@ua2.example.com>
   Max-Forwards: 70
   Content-Type: application/sdp
   Content-Length: 223

   v=0
   o=- 1102980499 1102980499 IN IP4 ua2.example.com
   s=IP SIP UA
   c=IN IP4 ua2.example.com
   t=0 0
   a=sendrecv
   m=audio 2236 RTP/AVP 0 8 101
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:101 telephone-event/8000


   F4 Appearance Agent ----> Alice

   NOTIFY sip:alice@ua1.example.com SIP/2.0
   Via: SIP/2.0/UDP appearanceagent.example.com;branch=z9hG4bK81d84f62
   From: <sip:HelpDesk@example.com>;tag=1636248422222257
   To: <sip:alice@example.com>;tag=925A3CAD-CEBB276E
   Call-ID: ef4704d9-bb68aa0b-474c9d94
   CSeq: 233 NOTIFY
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=2200
   Contact: <sip:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="27"
                state="partial"
                entity="sip:HelpDesk@example.com">
       <dialog id="fa02538339df3ce597f9e3e3699e28fc"
            call-id="f3b3cbd0-a2c5775e-5df9f8d5"
            local-tag="15A3DE7C-9283203B"    direction="initiator">
               <sa:appearance>1</sa:appearance>
               <sa:exclusive>false</sa:exclusive>
                  <state>trying</state>
                   <local>
                       <target uri="sip:bob@ua2.example.com">
                       </target>

Top      Up      ToC       Page 38 
                      </local>
           </dialog>
   </dialog-info>


   F6 Appearance Agent ----> Bob

   NOTIFY sip:bob@ua1.example.com SIP/2.0
   From: <sip:HelpDesk@example.com>;tag=497585728578386
   To: <sip:bob@example.com>;tag=633618CF-B9C2EDA4
   Call-ID: a7d559db-d6d7dcad-311c9e3a
   CSeq: 7 NOTIFY
   Via: SIP/2.0/UDP appearanceagent.example.com
    ;branch=z9hG4bK1711759878512309
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=2000
   Contact: <sip:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="78"
                state="partial"
                entity="sip:HelpDesk@example.com">
       <dialog id="02538339hfgdf3ce597f9e3egkl3699e28fc"
            call-id="f3b3cbd0-a2c5775e-5df9f8d5"
            local-tag="15A3DE7C-9283203B"    direction="initiator">
               <sa:appearance>1</sa:appearance>
               <sa:exclusive>false</sa:exclusive>
                  <state>trying</state>
                   <local>
                       <target uri="sip:bob@ua2.example.com">
                       </target>
                      </local>
           </dialog>
   </dialog-info>

11.4.  Outgoing Call with Appearance Seizure

   In this scenario, Bob's UA sends out a dialog event PUBLISH with
   state (trying) selecting/seizing an appearance number before sending
   the INVITE.  After receiving the 200 (OK) from the Appearance Agent
   confirming the appearance number, Bob's UA sends the INVITE to Carol
   and establishes a session.  For brevity, details of some of the
   messages are not included in the message flows.  Bob's UA puts as

Top      Up      ToC       Page 39 
   much of the dialog information from F7 as can be determined in
   advance.  In this case, the minimum of the Contact URI is included,
   which allows the Appearance Agent to correlate the INVITE with the
   PUBLISH.

   Carol        Proxy           Alice     Appearance Agent         Bob
   |              |               |              |                  |
   |              |               |              |<----- PUBLISH F1<|
   |              |               |              |                  |
   |              |               |              |>F2 200 OK ------>|
   |              |               |              |                  |
   |              |               |<-- NOTIFY F3<|                  |
   |              |               |              |                  |
   |              |               |>F4 200 OK -->|                  |
   |              |               |              |------- NOTIFY F5>|
   |              |               |              |                  |
   |              |               |              |<F6 200 OK ------<|
   |              |               |              |                  |
   |              |<------------------------------------- INVITE F7<|
   |              |               |              |                  |
   |              |>F8 100 Trying --------------------------------->|
   |<-- INVITE F9<|               |              |                  |
   |              |               |              |<---- PUBLISH F10<|
   |              |               |              |                  |
   |              |               |              |>F11 200 OK ----->|
   |              |               |              |                  |
   |>F12 180  --->|               |              |                  |
   |              |>F13 180 Ringing ------------------------------->|
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F14<|                  |
   |              |               |              |                  |
   |              |               |>F15 200 OK ->|                  |
   |              |               |              |------ NOTIFY F16>|
   |              |               |              |                  |
   |              |               |              |<F17 200 OK -----<|
   |>F18 200 OK ->|               |              |                  |
   |              |>F19 200 OK ------------------------------------>|
   |              |               |              |                  |
   |              |<--------------------------------------- ACK F20<|
   |<---- ACK F21<|               |              |                  |
   |              |               |              |                  |
   |<================= Both way RTP established ===================>|
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F22<|                  |

Top      Up      ToC       Page 40 
   |              |               |              |                  |
   |              |               |>F23 200 OK ->|                  |
   |              |               |              |------ NOTIFY F24>|
   |              |               |              |                  |
   |              |               |              |<F25 200 OK -----<|
   |              |               |              |                  |

   Figure 4. Outgoing Call with Appearance Seizure Example

   F1 to F4: Bob uses the shared appearance of the Help Desk on his UA
   to place an outgoing call (e.g., he goes off-hook).  Before sending
   the outgoing INVITE request, Bob publishes to the Appearance Agent
   reserving appearance number 1.  The Appearance Agent notifies Alice
   (and all other UAs, including Bob) of the event by sending NOTIFYs.


   F1 Bob ----> Appearance Agent

   PUBLISH sip:HelpDesk@example.com SIP/2.0
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4bK61314d6446383E79
   From: <sip:bob@example.com>;tag=44150CC6-A7B7919D
   To: <sip:HelpDesk@example.com>
   CSeq: 7 PUBLISH
   Call-ID: 44fwF144-F12893K38424
   Contact: <sip:bob@ua2.example.com>
   Event: dialog;shared
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="6"
                state="full"
                entity="sip:HelpDesk@example.com">
       <dialog id="id3d4f9c83" direction="initiator">
           <sa:appearance>1</sa:appearance>
           <sa:exclusive>false</sa:exclusive>
           <state>trying</state>
           <local>
               <target uri="sip:bob@ua2.example.com">
               </target>
           </local>
       </dialog>
   </dialog-info>

Top      Up      ToC       Page 41 
   F2 Appearance Agent  ----> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4bK61314d6446383E79
   From: <sip:bob@example.com>;tag=44150CC6-A7B7919D
   To: <sip:HelpDesk@example.com>
   CSeq: 7 PUBLISH
   Call-ID: 44fwF144-F12893K38424
   Contact: <sip:bob@ua2.example.com>
   Event: dialog;shared
   SIP-Etag: 482943245
   Allow-Events: dialog
   Expires: 60
   Content-Length: 0


   F7 Bob ---> Proxy

   INVITE sip:carol@example.com SIP/2.0
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4bK342122
   Max-Forwards: 70
   From: <sip:HelpDesk@example.com>;tag=15A3DE7C-9283203B
   To: <sip:carol@example.com>
   Call-ID: f3b3cbd0-a2c5775e-5df9f8d5
   CSeq: 31 INVITE
   Contact: <sip:bob@ua2.example.com>
   Content-Type: application/sdp
   Content-Length: ...

   (SDP Not Shown)


   F10 Bob ----> Appearance Agent

   PUBLISH sip:HelpDesk@example.com SIP/2.0
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4bK6d644638E7
   From: <sip:bob@example.com>;tag=0CCf6-A7FdsB79D
   To: <sip:HelpDesk@example.com>
   CSeq: 437 PUBLISH
   Call-ID: fwF14d4-F1FFF2F2893K38424
   Contact: <sip:bob@ua2.example.com>
   Event: dialog;shared
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"

Top      Up      ToC       Page 42 
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="6"
                state="full"
                entity="sip:HelpDesk@example.com">
       <dialog id="id3d4f9c83"
            call-id="f3b3cbd0-a2c5775e-5df9f8d5"
            local-tag="15A3DE7C-9283203B"
                                            direction="initiator">
           <sa:appearance>1</sa:appearance>
           <sa:exclusive>false</sa:exclusive>
           <state>trying</state>
           <local>
               <target uri="sip:bob@ua2.example.com">
               </target>
           </local>
           <remote>
               <identity uri="sip:carol@example.com">
               </identity>
           </remote>
       </dialog>
   </dialog-info>

11.5.  Outgoing Call without Using an Appearance Number

   In this scenario, Bob's UA sends out a dialog event PUBLISH with
   state (trying) indicating that he does not want to utilize an
   appearance number for this dialog.  The PUBLISH does not have an
   appearance element but does have the 'shared' Event header field
   parameter.  As a result, the Appearance Agent knows the UA does not
   wish to use an appearance number for this call.  If the Appearance
   Agent does not wish to allow this, it would reject the PUBLISH with a
   400 (Bad Request) response and the UA would know to re-PUBLISH
   selecting/seizing an appearance number.

   Carol        Proxy           Alice     Appearance Agent         Bob
   |              |               |              |                  |
   |              |               |              |<----- PUBLISH F1<|
   |              |               |              |                  |
   |              |               |              |>F2 200 OK ------>|
   |              |               |              |                  |
   |              |               |<-- NOTIFY F3<|                  |
   |              |               |              |                  |
   |              |               |>F4 200 OK -->|                  |
   |              |               |              |------- NOTIFY F5>|
   |              |               |              |                  |
   |              |               |              |<F6 200 OK ------<|
   |              |               |              |                  |
   |              |<------------------------------------- INVITE F7<|

Top      Up      ToC       Page 43 
   |              |               |              |                  |
   |              |>F8 100 Trying --------------------------------->|
   |<-- INVITE F9<|               |              |                  |
   |              |               |              |<---- PUBLISH F10<|
   |              |               |              |                  |
   |              |               |              |>F11 200 OK ----->|
   |              |               |              |                  |
   |>F12 180  --->|               |              |                  |
   |              |>F13 180 Ringing ------------------------------->|
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F14<|                  |
   |              |               |              |                  |
   |              |               |>F15 200 OK ->|                  |
   |              |               |              |------ NOTIFY F16>|
   |              |               |              |                  |
   |              |               |              |<F17 200 OK -----<|
   |>F18 200 OK ->|               |              |                  |
   |              |>F19 200 OK ------------------------------------>|
   |              |               |              |                  |
   |              |<--------------------------------------- ACK F20<|
   |<---- ACK F21<|               |              |                  |
   |              |               |              |                  |
   |<================= Both way RTP established ===================>|
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F22<|                  |
   |              |               |              |                  |
   |              |               |>F23 200 OK ->|                  |
   |              |               |              |------ NOTIFY F24>|
   |              |               |              |                  |
   |              |               |              |<F25 200 OK -----<|
   |              |               |              |                  |

   Figure 5. Outgoing Call without using an Appearance Number Example


   F1 Bob ----> Appearance Agent

   PUBLISH sip:appearanceagent.example.com SIP/2.0
   Via: SIP/2.0/UDP ua2.example.com;branch=z9hG4bK61314d6446383E79
   From: <sip:bob@example.com>;tag=4415df82k39sf
   To: <sip:HelpDesk@example.com>
   CSeq: 7 PUBLISH
   Call-ID: 44fwF144-F12893K38424
   Contact: <sip:bob@ua2.example.com>

Top      Up      ToC       Page 44 
   Event: dialog;shared
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="6"
                state="full"
                entity="sip:HelpDesk@example.com">
       <dialog id="id3d4f9c83" direction="initiator">
           <sa:exclusive>false</sa:exclusive>
           <state>trying</state>
           <local>
               <target uri="sip:bob@ua2.example.com">
               </target>
           </local>
       </dialog>
   </dialog-info>

   Note that F7 would be the same as the previous example.

11.6.  Appearance Release

   Bob and Carol are in a dialog, created, for example as in
   Section 11.3.  Carol sends a BYE to Bob to terminate the dialog and
   the Appearance Agent de-allocates the appearance number used, sending
   notifications out to the UAs in the shared group.

   Carol        Proxy           Alice     Appearance Agent         Bob
   |              |               |              |                  |
   |              |               |              |                  |
   |<================= Both way RTP established ===================>|
   |              |               |              |                  |
   |>F22 BYE ---->|               |              |                  |
   |              |>F23 BYE --------------------------------------->|
   |              |               |              |                  |
   |              |<------------------------------------ 200 OK F24<|
   |<--200 OK F25<|               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F26<|                  |
   |              |               |              |                  |
   |              |               |>F27 200 OK ->|                  |
   |              |               |              |------ NOTIFY F28>|
   |              |               |              |                  |
   |              |               |              |<F29 200 OK -----<|

Top      Up      ToC       Page 45 
   Figure 6. Appearance Release Example

   F28 Appearance Agent ----> Bob

   NOTIFY sip:bob@ua1.example.com SIP/2.0
   From: <sip:HelpDesk@example.com>;tag=497585728578386
   To: <sip:bob@example.com>
   Call-ID: a7d559db-d6d7dcad-311c9e3a
   CSeq: 7 NOTIFY
   Via: SIP/2.0/UDP appearanceagent.example.com
    ;branch=z9hG4bK759878512309
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=1800
   Contact: <sip:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="27"
                state="partial"
                entity="sip:HelpDesk@example.com">
       <dialog id="fa02538339df3ce597f9e3e3699e28fc"
            call-id="f3b3cbd0-a2c5775e-5df9f8d5"
            local-tag="15A3DE7C-9283203B"
            remote-tag="65a98f7c-1dd2-11b2-88c6-b0316298f7c"
                                            direction="initiator">
               <sa:appearance>1</sa:appearance>
               <sa:exclusive>false</sa:exclusive>
                  <state>terminated</state>
                   <local>
                       <target uri="sip:bob@ua2.example.com">
                       </target>
                      </local>
           </dialog>
   </dialog-info>


11.7.  Appearance Pickup

   In this scenario, Bob has an established dialog with Carol created
   using the call flows of Figures 1 or 2.  Bob then places Carol on
   hold.  Alice receives a notification of this and renders this on
   Alice's UI.  Alice subsequently picks up the held call and has a
   established session with Carol.  Finally, Carol hangs up.  Alice must
   PUBLISH F32 to indicate that the INVITE F38 will be an attempt to

Top      Up      ToC       Page 46 
   pickup the dialog between Carol and Bob and, hence, may use the same
   appearance number.  This example also shows Secure SIP (sips) being
   used.

   Carol        Proxy           Alice     Appearance Agent         Bob
   |              |               |              |                  |
   |<================= Both way RTP established ===================>|
   |              |               |              |                  |
   |              |<------------------------------(hold) INVITE F22<|
   |<- INVITE F23<|               |              |                  |
   |              |               |              |                  |
   |>F24 200 OK ->|               |              |                  |
   |              |>F25 200 OK ------------------------------------>|
   |              |               |              |                  |
   |              |<--------------------------------------- ACK F26<|
   |<---- ACK F27<|               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F28<|                  |
   |              |               |              |                  |
   |              |               |>F29 200 OK ->|                  |
   |              |               |              |>F30 NOTIFY ----->|
   |              |               |              |                  |
   |              |               |              |<----- 200 OK F31<|
   |              |               |              |                  |
   |              |  Alice decides to pick up the call              |
   |              |               |              |                  |
   |              |               |>F32 PUBLISH->|                  |
   |              |               |              |                  |
   |              |               |<- 200 OK F33<|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F34<|                  |
   |              |               |              |                  |
   |              |               |>F35 200 OK ->|                  |
   |              |               |              |>F36 NOTIFY ----->|
   |              |               |              |                  |
   |              |               |              |<----- 200 OK F37<|
   |              |<-- INVITE F38<|              |                  |
   |<- INVITE F39<|(w/ Replaces)  |              |                  |
   |( w/ Replaces)|               |              |                  |
   |>F40 200 OK ->|               |              |                  |
   |              |>F41 200 OK -->|              |                  |
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |              |>F42 NOTIFY ----->|
   |              |               |              |                  |
   |              |               |              |<----- 200 OK F43<|

Top      Up      ToC       Page 47 
   |              |               |<- NOTIFY F44<|                  |
   |              |               |              |                  |
   |              |               |>F45 200 OK ->|                  |
   |              |               |              |                  |
   |              |<----- ACK F46<|              |                  |
   |<---- ACK F47<|               |              |                  |
   |              |               |              |                  |
   |<= Both way RTP established =>|              |                  |
   |              |               |              |                  |
   |>F48 BYE ---->|               |              |                  |
   |              |>F49 BYE --------------------------------------->|
   |              |               |              |                  |
   |              |<------------------------------------ OK 200 F50<|
   |<- 200 OK F51<|               |              |                  |
   |              |               |              |                  |
   |              |< - - - - - - - - - - - - - ->|                  |
   |              |               |              |                  |
   |              |               |<- NOTIFY F52<|                  |
   |              |               |              |                  |
   |              |               |>F53 200 OK ->|                  |
   |              |               |              |                  |
   |              |               |              |>F54 NOTIFY ----->|
   |              |               |              |                  |
   |              |               |              |<----- 200 OK F55<|

   Figure 7. Appearance Pickup Example


   F28 Appearance ----> Alice

   NOTIFY sips:alice@ua1.example.com SIP/2.0
   From: <sips:HelpDesk@example.com>;tag=151702541050937
   To: <sips:alice@example.com>;tag=18433323-C3D237CE
   Call-ID: 1e361d2f-a9f51109-bafe31d4
   CSeq: 12 NOTIFY
   Via: SIP/2.0/TLS appearanceagent.example.com
    ;branch=z9hG4bK1403
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Event: dialog;shared
   Subscription-State: active;expires=1800
   Contact: <sips:appearanceagent.example.com>
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="10"

Top      Up      ToC       Page 48 
                state="partial"
                entity="sips:HelpDesk@example.com">
      <dialog id="id3d4f9c83"
            call-id="f3b3cbd0-a2c5775e-5df9f8d5"
            local-tag="15A3DE7C-9283203B"
            remote-tag="65a98f7c-1dd2-11b2-88c6-b0316298f7c"
            direction="initiator">
            <sa:appearance>1</sa:appearance>
            <sa:exclusive>false</sa:exclusive>
            <state>active</state>
            <local>
              <target uri="sips:bob@ua2.example.com">
                <param pname="+sip.rendering" pval="no"/>
              </target>
            </local>
            <remote>
              <identity>sips:carol@example.com</identity>
              <target uri="sips:carol@ua3.example.com" />
            </remote>
       </dialog>
   </dialog-info>


   F32 Alice ----> Appearance Agent

   PUBLISH sips:HelpDesk@example.com SIP/2.0
   Via: SIP/2.0/TLS ua2.example.com;branch=z9hG4bKa5d6cf61F5FBC05A
   From: <sips:HelpDesk@example.com>;tag=44150CC6-A7B7919D
   To: <sips:alice@example.com>;tag=428765950880801
   CSeq: 11 PUBLISH
   Call-ID: 87837Fkw87asfds
   Contact: <sips:alice@ua2.example.com>
   Event: dialog;shared
   Max-Forwards: 70
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                xmlns:sa="urn:ietf:params:xml:ns:sa-dialog-info"
                version="10"
                state="full"
                entity="sips:HelpDesk@example.com">
      <dialog id="id3d4f9c83"
          call-id="3d57cd17-47deb849-dca8b6c6"
                         local-tag="8C4183CB-BCEAB710" >
            <sa:appearance>1</sa:appearance>
            <sa:exclusive>false</sa:exclusive>

Top      Up      ToC       Page 49 
            <sa:replaced-dialog
              call-id="f3b3cbd0-a2c5775e-5df9f8d5"
              from-tag="15A3DE7C-9283203B"
              to-tag="65a98f7c-1dd2-11b2-88c6-b03162323164+65a98f7c" />
            <state>trying</state>
            <local>
              <target uri="sips:alice@ua1.example.com">
                <param pname="+sip.rendering" pval="yes"/>
              </target>
            </local>
            <remote>
                <target uri="sips:carol@ua3.example.com" />
            </remote>
       </dialog>
   </dialog-info>


   F38 Alice ----> Proxy

   INVITE sips:carol@example.com SIP/2.0
   Via: SIP/2.0/TLS ua1.example.com;branch=z9hG4bK4ea695b5B376A60C
   From: <sips:HelpDesk@example.com>;tag=8C4183CB-BCEAB710
   To: <sips:carol@example.com:5075>
   CSeq: 1 INVITE
   Call-ID: 3d57cd17-47deb849-dca8b6c6
   Contact: <sips:alice@ua1.example.com>
   <all-one-line>
   Replaces: f3b3cbd0-a2c5775e-5df9f8d5;to-tag=65a98f7c
   -1dd2-11b2-88c6-b03162323164+65a98f7c;from-tag=15A3DE7C-9283203B
   </all-one-line>
   Max-Forwards: 70
   Content-Type: application/sdp
   Content-Length: 223

   v=0
   o=- 1102980497 1102980497 IN IP4 ua1.example.com
   s=IP SIP UA
   c=IN IP4 ua1.example.com
   t=0 0
   a=sendrecv
   m=audio 2238 RTP/AVP 0 8 101
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:101 telephone-event/8000


Next RFC Part