|
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> |