Symbian3/SDK/Source/GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F" xml:lang="en"><title>Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    13 <p>The SIP Client API manages the multimedia sessions, subscribes to events,
       
    14 and sends SIP messages. It also provides access to the basic services of the
       
    15 SIP stack such as: </p>
       
    16 <ul>
       
    17 <li id="GUID-E9BF6031-1DAF-5238-A306-C44F0F91682D"><p>Sending and receiving
       
    18 of SIP messages </p> </li>
       
    19 <li id="GUID-C6A3FA97-1F09-587E-9504-9685D8306B04"><p>Creating registrations </p> </li>
       
    20 <li id="GUID-A02F02C7-A903-53E0-A64E-F0B62C93A90F"><p>Forming and tearing
       
    21 down dialogs initiated by INVITE, REFER and SUBSCRIBE requests </p> </li>
       
    22 </ul>
       
    23 <section id="GUID-8D3D5FB3-6037-5956-B3F0-DB14BD1BB17B"><title>Architectural
       
    24 relationships</title> <p>The SIP Client API uses the client-server mechanism
       
    25 to interact with the SIP stack. This means more than one client can use the
       
    26 SIP stack at the same time. The calls to the SIP Client API are synchronous.
       
    27 The SIP Client API implements a set of callback functions to pass the events
       
    28 back to the application. </p> <p><b>Capability information</b> </p> <p>The
       
    29 following table describes the capabilities required to use the SIP Client
       
    30 API and the conditions in which they are required: </p> <table id="GUID-B3DCF31A-C6D5-58B9-87FA-B2CD3E0ABA1F">
       
    31 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    32 <thead>
       
    33 <row>
       
    34 <entry>Capability </entry>
       
    35 <entry>Reason needed </entry>
       
    36 </row>
       
    37 </thead>
       
    38 <tbody>
       
    39 <row>
       
    40 <entry><p>NetworkServices </p> </entry>
       
    41 <entry><p>to send or receive SIP messages </p> </entry>
       
    42 </row>
       
    43 <row>
       
    44 <entry><p>WriteDeviceData </p> </entry>
       
    45 <entry><p>to create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class </p> </entry>
       
    46 </row>
       
    47 <row>
       
    48 <entry><p>NetworkControl </p> <p>Location </p> <p>ReadDeviceData </p> </entry>
       
    49 <entry><p>to use the function <codeph>CSIPConnection::SetOptL()</codeph>  </p> </entry>
       
    50 </row>
       
    51 </tbody>
       
    52 </tgroup>
       
    53 </table> <p><b>Extending the API</b> </p> <p>SIP Client API cannot be extended. </p> </section>
       
    54 <section id="GUID-E055BF09-9605-57E6-9502-CB3F4CAC29B8"><title>SIP Client
       
    55 API class structure</title> <ul>
       
    56 <li id="GUID-3E500E7D-ECB9-50F8-B996-A212EE294E68"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-581B8017-EAA0-59CB-A9CB-490370E0CEC9"> CSIP, MSIPObserver, CSIPConnection and MSIPConnectionObserver</xref>  </p> </li>
       
    57 <li id="GUID-461F8201-ED85-582A-945C-7471F9BF27AA"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-0E726099-31C4-5DD4-9AEA-67765589F462">Registration services</xref>  </p> </li>
       
    58 <li id="GUID-F69AEAB7-0E13-5673-B696-843957CC4C72"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-80CE8929-9DFD-5DCA-A929-662BD996223B"> SIP dialog associations</xref>  </p> </li>
       
    59 <li id="GUID-BFE257A7-EF1A-58BF-A047-00E0B11B1FD3"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-B0D208E4-D1F9-5C5F-B937-11118E778074">Requests sent to, and received from, the network</xref>  </p> </li>
       
    60 <li id="GUID-D0AC4583-B181-501C-A97A-63F094AD4046"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-0427709F-CD4B-5363-9377-10402B8A5819">SIP message related classes</xref>  </p> </li>
       
    61 <li id="GUID-31ED307B-2285-5DE0-A83B-D0CB7A8C585D"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-4E4FAFCA-0BF6-510C-B8E3-28A83936A154">Automatically refreshing a SIP request</xref>  </p> </li>
       
    62 <li id="GUID-B6E46736-A250-5064-B4F8-595A20025478"><p> <xref href="GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F.dita#GUID-A29FD82C-B3CC-5862-8DAB-1398A61D8B1F/GUID-B71BC486-18C2-5E71-965E-0881FBA9CE85">Managing HTTP digest security settings</xref>  </p> </li>
       
    63 </ul> <p id="GUID-581B8017-EAA0-59CB-A9CB-490370E0CEC9"><b> CSIP, MSIPObserver,
       
    64 CSIPConnection and MSIPConnectionObserver </b> </p> <fig id="GUID-0834012C-083F-5FA0-B29D-E3E852165528">
       
    65 <image href="GUID-4381EA7F-BE75-5B43-BE97-C97D71D04377_d0e338573_href.png" placement="inline"/>
       
    66 </fig> <p>An application creates a single instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class,
       
    67 and implements the callback functions defined by <xref href="GUID-C6FF4A83-0097-3A82-B4ED-802E1FEA05D1.dita"><apiname>MSIPObserver</apiname></xref>.
       
    68 The <codeph>CSIP</codeph> uses the <codeph>MSIPObserver</codeph> functions.
       
    69 The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class asks the supported security mechanisms and
       
    70 determines whether a <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object exists for a
       
    71 given IAP. </p> <p>The <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> object creates an instance
       
    72 of <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> that allows you to send standalone SIP
       
    73 requests and ask for the state of the network connection. Responses are received
       
    74 through the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref> interface that defines
       
    75 a set of callback functions that an application must implement. </p> <p>An
       
    76 application can have many <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> objects, but each
       
    77 of them must have a different IAP. </p> <p id="GUID-0E726099-31C4-5DD4-9AEA-67765589F462"><b>Registration
       
    78 services</b> </p> <fig id="GUID-63E38B2E-975E-554C-8EDC-65B8BBA86838">
       
    79 <image href="GUID-E4543D60-A9D0-5121-9540-993BB15D3275_d0e338630_href.png" placement="inline"/>
       
    80 </fig> <p>An existing <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> is required to create
       
    81 an instance of <codeph>CSIPRegistrationBinding</codeph>. The <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> class
       
    82 provides services for registration, updating the registration, and deregistration.
       
    83 This class also provides instructions to the SIP stack to automatically refresh
       
    84 the registration, and to query and set the outbound proxy used by the registration. </p> <p id="GUID-80CE8929-9DFD-5DCA-A929-662BD996223B"><b> SIP dialog
       
    85 associations</b> </p> <fig id="GUID-4870BE80-44B6-50F0-B77E-73FEAD136304">
       
    86 <image href="GUID-17D1489B-F7F7-5CA7-9F81-850AA9ACEFEB_d0e338655_href.png" placement="inline"/>
       
    87 </fig> <p> <xref href="GUID-9841AF1A-B8CF-3BA1-8445-93064549AE8C.dita"><apiname>CSIPDialogAssocBase</apiname></xref> is the base class for SIP
       
    88 dialog associations, such as <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref>, <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref>, <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> and <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname>CSIPNotifyDialogAssoc</apiname></xref>. The <xref href="GUID-9841AF1A-B8CF-3BA1-8445-93064549AE8C.dita"><apiname>CSIPDialogAssocBase</apiname></xref> class
       
    89 is used to obtain the associated SIP dialog, for the associated <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> instance,
       
    90 and for sending a non-target Refresh request within the dialog. </p> <p> <b> Note: </b> The
       
    91 SIP Client API creates the <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> instance, it cannot
       
    92 be created by the application. </p> <p>If any of the <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref>, <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref>, <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> and <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname>CSIPNotifyDialogAssoc</apiname></xref> objects
       
    93 are associated, they are bound to an existing <xref href="GUID-382BC1BE-3CF3-3E81-B1FF-341EEF2B67EA.dita"><apiname>CSIPDialog</apiname></xref> object,
       
    94 or they can be used to create a new <codeph>CSIPDialog</codeph> object. </p> <p> <b>Note:</b>  </p> <ul>
       
    95 <li id="GUID-6A085F6F-C243-53AD-B33C-F37D14DFE0A4"><p> <xref href="GUID-B4A2FBBD-2B5F-3E64-800D-C4E9203679A8.dita"><apiname>CSIPInviteDialogAssoc</apiname></xref> allows
       
    96 an application to initiate a dialog and to send <codeph>INVITE</codeph>,,<codeph>PRACK</codeph>,,<codeph>ACK</codeph>, <codeph>UPDATE,</codeph> and <codeph>BYE</codeph> requests related to the dialog. </p> </li>
       
    97 <li id="GUID-19C504F0-EAD5-524A-82E9-2D15BFA2A6D2"><p> <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref> allows
       
    98 an application to subscribe to different events by sending SUBSCRIBE and UNSUBSCRIBE
       
    99 requests. It also orders the SIP stack to automatically refresh the SUBSCRIBE
       
   100 request. </p> </li>
       
   101 <li id="GUID-C47B74D8-2251-5FCC-A356-1364EB61CF05"><p> <xref href="GUID-2E7EF887-ED59-3E8A-B9A2-686DF879A16C.dita"><apiname>CSIPReferDialogAssoc</apiname></xref> allows
       
   102 an application to define and send REFER requests. </p> </li>
       
   103 <li id="GUID-18AD2000-2A37-5CD9-8118-8B3322211D28"><p> <xref href="GUID-72F96612-A95C-3066-BFF0-2E288C945A2A.dita"><apiname> CSIPNotifyDialogAssoc</apiname></xref> allows
       
   104 an application to define and send NOTIFY requests. </p> </li>
       
   105 </ul> <p id="GUID-B0D208E4-D1F9-5C5F-B937-11118E778074"><b>Sent and received
       
   106 network requests</b> </p> <fig id="GUID-2E0C9020-1863-5644-BF7E-62B4DB9104D2">
       
   107 <image href="GUID-F5A82F61-B93A-5652-93A4-B9CE877B4D4A_d0e338792_href.png" placement="inline"/>
       
   108 </fig> <p>When a SIP request is sent to the network, the SIP Client API implementation
       
   109 creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to
       
   110 the application. A <codeph>CSIPClientTransaction</codeph> object represents
       
   111 the SIP transaction and consists of the SIP request and the SIP response.
       
   112 After receiving a response, the application gets <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> from
       
   113 the <codeph>CSIPClientTransaction</codeph> object. <b>Note:</b> Some client
       
   114 transactions can also be cancelled or refreshed. </p> <p>When a SIP request
       
   115 is received from the network, it is passed to the application as a <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object.
       
   116 The application gets <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> from the <codeph>CSIPServerTransaction</codeph> object.
       
   117 A <codeph>CSIPRequestElements</codeph> object describes the kind of SIP request
       
   118 received. After the application determines the type of response to send, it
       
   119 uses the <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> to send the responses. </p> <p> <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> is
       
   120 the base class for <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>.
       
   121 It provides the functions to obtain the current state of the transaction and
       
   122 the transaction type. Some operations are only allowed when the transaction
       
   123 is in a certain state. <b>Note:</b> The SIP Client API creates instances of <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> and they cannot be created by the application. </p> <p id="GUID-0427709F-CD4B-5363-9377-10402B8A5819"><b>SIP
       
   124 message related classes</b> </p> <fig id="GUID-B99CF040-E91F-5281-8AAC-2151049C0EA8">
       
   125 <image href="GUID-6290D35A-7A41-5B9E-882A-E14F6D165ED7_d0e338869_href.png" placement="inline"/>
       
   126 </fig> <p>When a SIP request is sent to the network, the SIP Client API implementation
       
   127 creates a <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> object and returns it to
       
   128 the application. A <codeph>CSIPClientTransaction</codeph> object represents
       
   129 the SIP transaction and consists of the SIP request and the SIP response.
       
   130 After receiving a response the application gets <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> from
       
   131 the <codeph>CSIPClientTransaction</codeph> object. <b>Note:</b> Some client
       
   132 transactions can be cancelled or refreshed. </p> <p>When a SIP request is
       
   133 received from the network, it is passed to the application as a <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object.
       
   134 The application gets <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> from the <codeph>CSIPServerTransaction</codeph> object.
       
   135 A <codeph>CSIPRequestElements</codeph> object describes the type of SIP request
       
   136 received. After the application determines the type of response to send, it
       
   137 uses the <codeph>CSIPServerTransaction</codeph> to send the responses. </p> <p> <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> is
       
   138 the base class for <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>.
       
   139 It provides functions to obtain the current state of the transaction and the
       
   140 transaction type. Some operations are only allowed when the transaction is
       
   141 in a certain state. <b>Note:</b> The SIP Client API creates instances of <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> and they cannot be created by the application. </p> <p id="GUID-4E4FAFCA-0BF6-510C-B8E3-28A83936A154"><b> Automatically
       
   142 refreshing a SIP request</b> </p> <fig id="GUID-49ACB697-512C-5FCF-AD48-20D6AAB0FEFC">
       
   143 <image href="GUID-6B9E5B8D-E2F7-5972-ABFB-49F7F466EBBD_d0e338945_href.png" placement="inline"/>
       
   144 </fig> <p>The SIP stack automatically refreshes a SIP request using the <xref href="GUID-3C166C85-6E17-323B-9CD3-B3E2836DC1C3.dita"><apiname>CSIPRefresh</apiname></xref> object. <codeph>REGISTER</codeph>, <codeph>SUBSCRIBE</codeph> and a request outside the dialog are refreshed. After
       
   145 sending a refresh request, the application queries the state of the refresh
       
   146 from <codeph>CSIPRefresh</codeph>. </p> <p> <codeph>CSIPRefresh</codeph> provides
       
   147 functions for updating and terminating the refresh, for requests outside the
       
   148 dialog. The <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> and <xref href="GUID-9539CAEE-28AE-3134-8415-EEBCBCDA4D18.dita"><apiname>CSIPSubscribeDialogAssoc</apiname></xref> classes
       
   149 are used to update and terminate a refreshed <codeph>REGISTER</codeph> or <codeph>SUBSCRIBE</codeph>. </p> <p id="GUID-B71BC486-18C2-5E71-965E-0881FBA9CE85"><b> Managing HTTP digest security
       
   150 settings </b> </p> <fig id="GUID-7C296C1B-67E3-569F-A5E9-92A4F7922088">
       
   151 <image href="GUID-1704898B-7836-53C2-8743-F733836EDE7B_d0e338991_href.png" placement="inline"/>
       
   152 </fig> <p>An application must create an instance of the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> class
       
   153 to use <codeph>CSIPHttpDigest</codeph>. The <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> class
       
   154 manages HTTP digest security settings and contains only static functions. </p> </section>
       
   155 <section id="GUID-4195FAF9-D0D7-5046-BD62-9A314791BEFE"><title>Memory used</title> <p>After
       
   156 the <xref href="GUID-AFB2603A-8A35-3E70-8EC2-229C9726F00B.dita"><apiname>CSIP</apiname></xref> and <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> objects
       
   157 are created, most of the memory consumed is by <xref href="GUID-77CFD812-7238-3B84-80FF-475BD73C3506.dita"><apiname>CSIPMessageElements</apiname></xref>, <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> and <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> classes. <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita"><apiname>CSIPTransactionBase</apiname></xref> holds the most recent SIP
       
   158 response in a <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object. When another
       
   159 response is received, the previous <xref href="GUID-13F32052-70BE-3B4D-9F8B-DF2DABB896B0.dita"><apiname>CSIPResponseElements</apiname></xref> object
       
   160 is deleted and a new one is created. </p> <p> <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> contains
       
   161 a <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref> object until the SIP request is transferred
       
   162 to the server side of the SIP stack. <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> contains
       
   163 the SIP request as <xref href="GUID-19FB031A-CFA7-3C67-A627-CFF501060AA5.dita"><apiname>CSIPRequestElements</apiname></xref>. The application
       
   164 owns the <xref href="GUID-059F9C3A-EA04-3295-912F-50444F073CE7.dita"><apiname>CSIPClientTransaction</apiname></xref> and <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> objects.
       
   165 When the transaction terminates, the application deletes these objects to
       
   166 conserve memory. </p> <p>A non-<codeph>INVITE</codeph>  <codeph>CSIPClientTransaction</codeph> is
       
   167 deleted when it has received a final response or when the <codeph>ErrorOccured()</codeph> callback
       
   168 is called. A non-<codeph>INVITE</codeph> <codeph>CSIPServerTransaction</codeph> is
       
   169 deleted after the application sends a final response. </p> <p>The <codeph>INVITE</codeph> related
       
   170 transactions are deleted if the <codeph>ErrorOccured()</codeph> callback function
       
   171 is called. These transactions behave differently because of the presence of
       
   172 an <codeph>ACK</codeph>. </p> <p>When the application sends a 2xx response
       
   173 to an <codeph>INVITE</codeph> related <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref>,
       
   174 it enters the <xref href="GUID-93256B64-49C9-37F1-9A4E-72C521759749.dita#GUID-93256B64-49C9-37F1-9A4E-72C521759749/GUID-DF7E4DCE-1F6D-3F2A-A638-5516A733AA9D"><apiname>CSIPTransactionBase::ETerminated</apiname></xref> state and
       
   175 it is deleted at this point. A new <xref href="GUID-7E54C95E-5155-30B1-8169-A59778774403.dita"><apiname>CSIPServerTransaction</apiname></xref> object
       
   176 receives the ACK. </p> <p>When the application sends an <codeph>INVITE</codeph> request
       
   177 and the <codeph>CSIPClientTransaction</codeph> receives a 2xx response, the
       
   178 transaction enters the <codeph>CSIPTransactionBase::ETerminated</codeph> state.
       
   179 The associated <codeph>CSIPClientTransaction</codeph> must not be deleted
       
   180 as it is required to send the <codeph>ACK</codeph> and also to receive the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita#GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4/GUID-2E76BDA0-CE87-3538-A791-963A90230FD4"><apiname>MSIPConnectionObserver::InviteCompleted()</apiname></xref> callback.
       
   181 An <codeph>INVITE</codeph> related <codeph>CSIPClientTransaction</codeph> must
       
   182 be deleted only after a <codeph>MSIPConnectionObserver::InviteCompleted</codeph> or <xref href="GUID-D14D6845-1C5E-3C15-8310-574A2A8C6C95.dita#GUID-D14D6845-1C5E-3C15-8310-574A2A8C6C95/GUID-DED382FB-A6D5-37D7-B8E4-05262F690068"><apiname>MSIPConnectionObserver
       
   183 ::ErrorOccured</apiname></xref> event is received, or if the state of the associated <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> goes
       
   184 to <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-68DD22DC-67E4-387B-BBE9-B9B96D9C9016"><apiname>CSIPConnection::EInactive</apiname></xref> or <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-5963A947-BD5C-3B34-9D10-2CB5DC413774"><apiname>CSIPConnection::EUnavailable</apiname></xref>. </p> </section>
       
   185 </conbody></concept>