Symbian3/SDK/Source/GUID-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06.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-AFE7F3DA-6D61-5A4C-A08F-C998C8805A06" xml:lang="en"><title>How
       
    13 the target Client is Resolved using CSIPResolvedClient2</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>The SIP Client Resolver determines the target clients by comparing the
       
    15 Request-URI of the incoming SIP request to the information stored in SIP Client
       
    16 Resolver mapping table in the Central Repository. The information required
       
    17 to access the map table in the Central Repository is defined in the <filepath>sipclientresolverconfigcrkey.h</filepath> file.
       
    18 The incoming SIP request compares with the Request-URI’s user part in the
       
    19 Central Repository mapping table. </p>
       
    20 <p>If a match is found, the related ECOM plug-in is loaded by its UID. The
       
    21 loaded plug-in matches the incoming SIP requests based on their fields. If
       
    22 the request matches, the plug-in returns the UID of the matching client. SIP
       
    23 Client Resolver requests the resolved ECom plug-in to connect to the Symbian
       
    24 platform server that uses SIP. </p>
       
    25 <p>The resource (<filepath>.rss</filepath>) file contains the information
       
    26 in the Central Repository and also the following information: </p>
       
    27 <ul>
       
    28 <li id="GUID-6CF8E2D5-5BF3-5E56-93BE-97A0D2054B0E"><p> <codeph> dll_uid</codeph> and <codeph>implementation_uid</codeph>:
       
    29 These UIDs are obtained from <xref href="http://www.symbiansigned.com" scope="external">Symbian
       
    30 Signed</xref>. </p> <p> <b>Note:</b> Both these UIDs can be the same. </p> </li>
       
    31 <li id="GUID-A2F95B01-F707-51D1-AD67-4EB364865C33"><p>The <codeph>interface_uid</codeph> must
       
    32 be <codeph>0x10282EE5</codeph>. </p> </li>
       
    33 </ul>
       
    34 <section id="GUID-D0D9C1C9-C0A1-4C4C-ACA6-14C23D651E38"><title>Resolving the target client using CSIPResolvedClient2</title> <p>The
       
    35 following illustration shows how the SIP Client Resolver subsystem resolves
       
    36 the target client implementing <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> and
       
    37 requests the resolved client to connect to the SIP implementation. </p> <fig id="GUID-750221F0-A98E-5C47-B804-5A6CDD16B2E9">
       
    38 <title>              Call flow of resolving a target client implementation
       
    39 using              CSIPResolvedClient2            </title>
       
    40 <image href="GUID-8EF8CDD3-9FFE-5C39-8303-67A661C67F6B_d0e344068_href.jpg" placement="inline"/>
       
    41 </fig> <p>The target clients must implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
       
    42 to receive SIP requests including SIP dialogs and enable the client resolution
       
    43 mechanism. <b/><b>Note</b>: The channel UIDs must be unique across all
       
    44 SIP clients. For example clients may use UIDs assigned for binaries. </p> <p>The
       
    45 SIP stack uses the plug-ins that implement the <xref href="GUID-30BC7BC4-0FBE-3C60-A2E4-2E5AE206C61E.dita"><apiname>CSIPResolvedClient2</apiname></xref> interface
       
    46 as follows: </p> <ol id="GUID-E0C735BE-BBBD-533B-AB2B-59F8936060BA">
       
    47 <li id="GUID-7854B67A-2143-5EA4-949D-B3C96CA51866"><p>If the SIP request does
       
    48 not contain an Accept-Contact-header, go to step 2. If it does, the SIP stack
       
    49 calls <codeph>CSIPResolvedClient2::MatchAcceptContactsL</codeph> for all the
       
    50 plug-ins and applies the following logic: </p> <ul>
       
    51 <li id="GUID-E975B348-52DB-519A-9AC0-98821BA27E95"><p>If none of the clients
       
    52 match, go to step 2 </p> </li>
       
    53 <li id="GUID-99DB2FEE-470B-5E76-8183-AD2C0E1B6FF0"><p>If one of the client
       
    54 match, the SIP request is sent to the matching client </p> </li>
       
    55 <li id="GUID-5F420FD9-2AEE-5517-A216-FA3868941902"><p>If more than one of
       
    56 the clients match, go to step 2 </p> </li>
       
    57 </ul> </li>
       
    58 <li id="GUID-F28D6940-D404-5E0F-B52A-6A47980ADA68"><p>If the SIP request does
       
    59 not contain an Event-header go to step 3. If it does, the SIP stack calls <codeph>CSIPResolvedClient2::MatchEventL</codeph> for
       
    60 all the plug-ins and applies the following logic: </p> <ul>
       
    61 <li id="GUID-390E2FBC-305E-59C0-BE1F-E7C961B47251"><p>If none of the clients
       
    62 match, go to step 3 </p> </li>
       
    63 <li id="GUID-6A41D1A5-7636-51CC-864D-F2AB095D97E6"><p>If one of the client
       
    64 match, the SIP request is sent to the matching client </p> </li>
       
    65 <li id="GUID-8C51B40C-FC7B-566E-B56F-4279233C192E"><p>If more than one of
       
    66 the clients match, go to step 3 </p> </li>
       
    67 </ul> </li>
       
    68 <li id="GUID-9C094348-B7F4-572D-B49B-B99F81C902F2"><p>The SIP stack calls <codeph>CSIPResolvedClient2::MatchRequestL</codeph> for
       
    69 all the plug-ins and applies the following logic: </p> <ul>
       
    70 <li id="GUID-63351732-E32A-58BC-8F32-7BA3832788FD"><p>If none of the clients
       
    71 match, the SIP generates an error response </p> </li>
       
    72 <li id="GUID-9E8765F8-A55F-5EA3-A63E-ACBF8A4BEF24"><p>If one of the client
       
    73 match, the SIP request is sent to the matching client </p> </li>
       
    74 <li id="GUID-AE679FD1-163D-5F3B-ADE8-1C6AEF490552"><p>If more than one of
       
    75 the clients match, SIP selects one of these clients randomly and sends the
       
    76 request to it. The ROM-based clients are preferred. </p> </li>
       
    77 </ul> </li>
       
    78 </ol> </section>
       
    79 <section id="GUID-026A9B43-E096-4D32-AC3B-2DDC7974FFF6"><title>See also</title> <p> <xref href="GUID-0D579DDC-0A8A-5CFA-8194-CAA955B65A57.dita">Example
       
    80 of a SIP Client Resolver Plug-in</xref>  </p> </section>
       
    81 </conbody></concept>