Symbian3/PDK/Source/GUID-A0AF4BAE-E4C4-52BE-BB61-92DFE9422D8D.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     6
<!-- Initial Contributors:
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     7
    Nokia Corporation - initial contribution.
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     8
Contributors: 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     9
-->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    10
<!DOCTYPE concept
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    12
<concept xml:lang="en" id="GUID-A0AF4BAE-E4C4-52BE-BB61-92DFE9422D8D"><title>How to Develop a SIP Profile Agent Plug-in using the SIP Profile Agent API</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A SIP Profile Agent plug-in is an ECOM plug-in that is used by the SIP Profile server to register the corresponding SIP profiles. For example, if the SIP Profile type is IETF, the profile server uses the IETF plug-in to register the profile. </p> <p>In the following illustration, the SIP Profile Agent plug-in implements interfaces, uses APIs, and inherits a class. </p> <p>The following steps describe how to develop a SIP Profile Agent plug-in. </p> <ol id="GUID-7EC57F82-9A98-5651-AC53-B9EE80BD4F6A"><li id="GUID-7B046198-3C5F-5111-A11A-3A8023A63659"><p>Derive a profile agent plug-in class from <xref href="GUID-F324C2F6-1336-361C-B270-EFBAA256C46A.dita"><apiname>CSIPProfileAgent</apiname></xref>, which provides an ECOM interface for SIP Profile Agent plug-ins. </p> </li> <li id="GUID-81288220-4895-5213-B522-75896DCF7E76"><p>Implement the following interfaces in the plug-in class: </p> <ul><li id="GUID-8190B7B7-0C28-5ADA-A2F2-A0AD5BE7982E"><p> <xref href="GUID-8E42520B-698F-3925-8F0F-6CD0F9745EF2.dita"><apiname>MSIPProfileAgentObserver</apiname></xref> - To receive notifications of profile registration, update and deregister events, and any errors reported while doing these tasks. </p> </li> <li id="GUID-1F4AE0B4-4E69-5E5D-B610-6C1839D56B61"><p> <xref href="GUID-EB6027F7-D166-3B2C-9AE2-F65457D128B5.dita"><apiname>MSIPProfileFSMUser</apiname></xref> - To receive profile state change notifications. </p> </li> <li id="GUID-DD164449-34E0-54FE-B685-6371D433C5B3"><p> <xref href="GUID-C6FF4A83-0097-3A82-B4ED-802E1FEA05D1.dita"><apiname>MSIPObserver</apiname></xref> - To receive SIP requests from the SIP connections that the user does no initialise. </p> </li> <li id="GUID-F1FED442-C5C3-50A5-9DE6-1EF035D44B70"><p> <xref href="GUID-64AD3756-2FEC-37CB-9A31-838738DEC03D.dita"><apiname>MSIPHttpDigestChallengeObserver2</apiname></xref> - To provide HTTP Digest authentication for SIP registrations when an instance of the <xref href="GUID-F9FBAFBE-A895-3FD3-A526-604A6C9E035D.dita"><apiname>CSIPHttpDigest</apiname></xref> class is used. </p> </li> </ul> </li> <li id="GUID-8B3E553F-A92C-59CE-B959-CF13D43BD1AD"><p>Derive and implement the following classes in the profile context and connection context classes: </p> <ul><li id="GUID-446A39EF-12B7-56B1-A477-A0B2DDDF7BE7"><p>Implement the <xref href="GUID-6B6F73C9-1288-3F6F-B6A3-FD0AE39DE0E2.dita"><apiname>MSIPProfileContext</apiname></xref> interface in the profile context class to get and set the information about the profile when it is in a particular state. </p> </li> <li id="GUID-330406BA-8A73-56DC-867F-F5AA837BDA5C"><p>Implement the <xref href="GUID-B889A3FD-3B14-3785-90AE-3546F0C9A5D4.dita"><apiname>MSIPConnectionObserver</apiname></xref> interface in the connection context class to receive requests, responses, connection state notifications, and error notifications from the SIP stack. </p> </li> <li id="GUID-55F08A29-83C4-519C-8195-D8B15A6AD1B4"><p>Implement the <xref href="GUID-981869F9-0137-303F-9A55-DA18A89C72A7.dita"><apiname>MSIPProxyResolverObserver</apiname></xref> interface to receive notifications about the state of the asynchronous request to resolve proxy. </p> </li> <li id="GUID-FD500D85-05E7-53EF-87BB-9BF5DE8FF45E"><p>Derive the profile context and the connection context classes from <xref href="GUID-8F6FE089-E2A8-30F4-B67E-10F286347681.dita"><apiname>CBase</apiname></xref> to create the objects on the heap. </p> </li> </ul> </li> <li id="GUID-19B99A3A-D50D-55ED-B973-424DA488D20F"><p>Create instances of 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> classes, and monitor the states of CSIPConnection object. </p> <p> <b>Note:</b> SIP Profile registration is performed when the state of <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> object is <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita#GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94/GUID-2B88DB09-5C64-38AD-96D3-0095F2203EB7"><apiname>CSIPConnection::EActive</apiname></xref>. </p> </li> <li id="GUID-45896E47-490E-575A-887B-BC03E98059FA"><p>Create instances of the <xref href="GUID-48AA01D5-CE7B-3C22-B2E0-529261121EC4.dita"><apiname>CSIPRegistrationBinding</apiname></xref> class to perform SIP profile registrations. </p> </li> <li id="GUID-F757E38E-13A3-5AF6-A8BC-80B1AE1367CD"><p>Implement the SIP profile registration state machine. The state machine responds to the state changes to <xref href="GUID-2A070F4D-A35B-3505-BE86-E6C7A2F27B94.dita"><apiname>CSIPConnection</apiname></xref> instances and SIP profile registrations. </p> </li> </ol> <p>The following illustration shows the relationship between the SIP Profile Agent plug-in and other components used by it. </p> <fig id="GUID-4B5948A1-0355-5F5A-BA2E-0D24B37CEB4A"><title>
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    13
          SIP Profile Agent plug-in relationship diagram 
12
80ef3a206772 Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 9
diff changeset
    14
        </title> <image href="GUID-A741A42E-AFF5-5781-A555-134C63A97B53_d0e558946_href.png" placement="inline"/></fig> </conbody><related-links><link href="GUID-11E73F76-46F7-573A-99AC-CC094CEB3A4F.dita"><linktext>SIP Profile
9
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    15
                Agent overview</linktext> </link> <link href="GUID-E9AF73E8-DF31-5C5E-889E-96CCD4C4A46B.dita"><linktext>Example IETF
1
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    16
                profile agent plug-in</linktext> </link> </related-links></concept>