|
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 task |
|
11 PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd"> |
|
12 <task id="GUID-E2AF923A-D796-5DA9-B678-C6E2ABF7A6CC" xml:lang="en"><title>Call |
|
13 Completion to Busy Subscriber Tutorial</title><shortdesc>This tutorial describes how to get the Call Completion to Busy |
|
14 Subscriber (CCBS) supplementary service information from the network. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> |
|
15 <context><p>GSM network (CCBS) supplementary service repeatedly calls a destination |
|
16 that is busy at the time of the initial call attempt.</p><p>The <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone</apiname></xref> methods |
|
17 are at phone-level because the mobile station must interrogate the network |
|
18 for the status of all CCBS requests at once. Each CCBS subscriber can have |
|
19 up to five CCBS requests outstanding at a time. |
|
20 </p><p/><p>The high level steps to get the CCBS information are shown here: |
|
21 |
|
22 </p></context> |
|
23 |
|
24 |
|
25 <steps id="GUID-53D0919A-7B45-5DAA-A58E-E717FCF94F06"> |
|
26 <step id="GUID-4C86EF37-6EB1-5463-A79F-1EAF52DF53BC"><cmd>Get the current |
|
27 status of the CCBS service using <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::GetCCBSStatus()</apiname></xref>. </cmd> |
|
28 |
|
29 <info>Status is described by <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneCCBSStatus</apiname></xref>. </info> |
|
30 </step> |
|
31 <step id="GUID-28C7BCA8-C0C3-5AE5-A883-5545B3135D41"><cmd>Use <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::NotifyCCBSStatusChange()</apiname></xref> to |
|
32 get the notification of any changes in the status of the CCBS service. </cmd> |
|
33 </step> |
|
34 <step id="GUID-48C0C143-6AB9-5231-AE00-F23E1FB82C3B"><cmd>Deactivate all CCBS |
|
35 requests using <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::DeactivateCCBS()</apiname></xref> </cmd> |
|
36 </step> |
|
37 <step id="GUID-FC7666E8-49C8-53EA-877B-59A6BA9D591A"><cmd>Get a list of active |
|
38 CCBS requests using <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>CRetrieveMobilePhoneCcbsList</apiname></xref>. </cmd> |
|
39 <info>The list of active CCBS requests is a <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>CMobilePhoneCcbsList</apiname></xref> object |
|
40 that contains: </info> |
|
41 <substeps id="GUID-0EE16687-BBCB-4B88-BE49-ABFD930EC4E5"> |
|
42 <substep id="GUID-AD3D87FD-73EB-47F8-8809-57BDB2E99A2E"><cmd/> |
|
43 <info>0 or more <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone::TMobilePhoneCCBSEntryV1</apiname></xref> objects |
|
44 for each request </info> |
|
45 </substep> |
|
46 <substep id="GUID-FA73FFA0-A911-4256-9A83-5AEF5C9253A0"><cmd/> |
|
47 <info>the name of the call that represents the CCBS request </info> |
|
48 </substep> |
|
49 <substep id="GUID-07733205-6808-457F-9250-78F6F939D21E"><cmd/> |
|
50 <info>the service group </info> |
|
51 </substep> |
|
52 <substep id="GUID-490C5986-3D8A-4D3A-B8A9-269EB482A0F9"><cmd/> |
|
53 <info>a network-allocated index number </info> |
|
54 </substep> |
|
55 <substep id="GUID-AA835788-558E-4685-9CED-2FEDF2166468"><cmd/> |
|
56 <info>the phone number of the remote party </info> |
|
57 </substep> |
|
58 </substeps> |
|
59 </step> |
|
60 </steps> |
|
61 <example><title>CCBS example</title> <p>The following code gets the list of |
|
62 active CCBS requests and prints the remote number for each. </p> <p>The code |
|
63 assumes <codeph>iMobilePhone</codeph> is an <xref href="GUID-AA81AFA4-6FAC-3B0D-A082-BE0AEC58CCA8.dita"><apiname>RMobilePhone</apiname></xref> object. </p> <codeblock id="GUID-33E4DB3B-EE3F-5186-B01F-AF9DD4760ACF" xml:space="preserve">void CClientApp::CCBSL() |
|
64 { |
|
65 |
|
66 // Create and start CCBS retriever |
|
67 CRetrieveMobilePhoneCcbsList* retrieveCCBSList = CRetrieveMobilePhoneCcbsList::NewL(iMobilePhone); |
|
68 |
|
69 CleanupStack::PushL(retrieveCCBSList); |
|
70 |
|
71 TRequestStatus status; |
|
72 retrieveCCBSList->Start(status); |
|
73 User::WaitForRequest(status); |
|
74 User::LeaveIfError(status.Int()); |
|
75 |
|
76 // Get the list of active CCBS requests |
|
77 CMobilePhoneCcbsList* ccbsList = retrieveCCBSList->RetrieveListL(); |
|
78 CleanupStack::PushL(ccbsList); |
|
79 |
|
80 // Print each remote number for which a CCBS request is active |
|
81 TInt nEntries = ccbsList->Enumerate(); |
|
82 RMobilePhone::TMobilePhoneCCBSEntryV1 ccbsEntry; |
|
83 |
|
84 for (TInt i=0; i<=nEntries; i++) |
|
85 { |
|
86 ccbsEntry = ccbsList->GetEntryL(i); |
|
87 console->Printf(_L("CCBS request to %S active\n"), ccbsEntry.iDestination.iTelNumber); |
|
88 } |
|
89 |
|
90 // Clean up |
|
91 CleanupStack::PopAndDestroy(2); // ccbsList, retrieveCCBSList |
|
92 |
|
93 } |
|
94 </codeblock> </example> |
|
95 </taskbody><related-links> |
|
96 <link href="GUID-2318B1DC-D258-5BA2-90C0-5DF368D80933.dita"><linktext>Multimode |
|
97 lists</linktext></link> |
|
98 <link href="GUID-0B743C31-9B99-54A0-AF7B-22AFA823101B.dita"><linktext>CCBS Control |
|
99 Tutorial</linktext></link> |
|
100 </related-links></task> |