Symbian3/PDK/Source/GUID-A0AF4BAE-E4C4-52BE-BB61-92DFE9422D8D.dita
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
--- a/Symbian3/PDK/Source/GUID-A0AF4BAE-E4C4-52BE-BB61-92DFE9422D8D.dita	Fri Jul 02 12:51:36 2010 +0100
+++ b/Symbian3/PDK/Source/GUID-A0AF4BAE-E4C4-52BE-BB61-92DFE9422D8D.dita	Fri Jul 16 17:23:46 2010 +0100
@@ -11,6 +11,6 @@
   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
 <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>
           SIP Profile Agent plug-in relationship diagram 
-        </title> <image href="GUID-A741A42E-AFF5-5781-A555-134C63A97B53_d0e551490_href.png" placement="inline"/></fig> </conbody><related-links><link href="GUID-11E73F76-46F7-573A-99AC-CC094CEB3A4F.dita"><linktext>SIP Profile
+        </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
                 Agent overview</linktext> </link> <link href="GUID-E9AF73E8-DF31-5C5E-889E-96CCD4C4A46B.dita"><linktext>Example IETF
                 profile agent plug-in</linktext> </link> </related-links></concept>
\ No newline at end of file