Title: Windows Powered Smartphone 2002 Development
1Windows PoweredSmartphone 2002Development
Cherno Jagne Developer Support Engineer Product
Support Services Microsoft Corporation
2Agenda
- Platform
- Tools
- Telephony
- Web development
- Device management
- Security
3Smartphone Platform
- Hardware
- Cell phone form factor phone first, PDA second
- No touch screen single-handed UI
- 120 MHz ARM processor
- 8 MB persistent storage
- 176220 16-bit color display
- Internal flash file system (IFFS) replaces RAM
backup battery - Software
- Microsoft Windows CE 3.0 operating system
- Strong wireless communications infrastructure
- Shares a lot with Pocket PC 2002 platform
4Applications
- Telephony
- Integrated phone dialler
- Ringer profiles
- Shortcuts
- Custom ring tones
- Microsoft Outlook
- Integrated Inbox(e-mail, v-mail, sms)
- Contacts
- Calendar
- Tasks
- Smartphone shell
- Microsoft Win32 API platform
- One-handed navigation
- Microsoft Internet Explorer
- HTML 3.2 XML
- WAP 1.2.1
- Scripting support
- MSN Messenger
- Windows Media Player
- Synchronization
- Desktop
- Wireless to server
5Pocket PC vs. Smartphone
6Development Environment
- eMbedded Visual C 3.0
- Smartphone 2002 SDK Plug-in
- Includes emulation environment
- Use Wavecom radio for wireless connectivity
- Ethernet network connectivity is another option
- eMbedded Visual C and SDK available for free at
http//www.microsoft.com/mobile/developer/
7eMbedded Visual C 3.0
- Familiar IDE (similar to Visual C 6.0)
- Same environment used for Pocket PC 2002
- Build, deploy, debug against both Emulator and
physical Smartphone 2002 device - Integrated Smartphone Security tab(simplified
interoperability with Smartphone code signing
security model) - Integrated remote tools
- Remote File Viewer
- Remote Registry Editor
- ... and several others
8Smartphone SDK
- Plugs into eMbedded Visual C 3.0
- Enables rich Win32-based development
- Includes x86 Emulation Images
- No-radio Smartphone 2002 x86 image
- Radio-enabled Smartphone 2002 x86 image
- Supports Microsoft ActiveSync over serial
connections - Supports Wavecom module for GSM/CDPD phone
functionality - Few differences from using a real device
- Unsupported development run times
- eMbedded Visual Basic, ATL, MFC, .NET Compact
Framework
9Smartphone SDK Components
- eMbedded Visual C plug-in
- Smartphone 2002 Emulation images
- API reference
- Documentation
- Design guide
- Application porting guide
- Device management, application management
- Additional white papers and articles
- Code samples
- Miscellaneous tools
10Code Samples
- Basic samples that demonstrate one feature or
area of the device - Telephony samples SMS, TAPI
- Sample PIM Tasks application that uses POOM API
- Samples for getting system information
- Larger samples that cross multiple feature areas
and demonstrate how to use the various features
of the device to solve a business problem
11The Emulator
- A Virtual CEPC that runs x86 CEPC builds in a
skinned window on the desktop - Runs under Windows 2000 or later and emulates an
x86 CEPC - Functions as a standalone executable that resides
in an application window - Extremely high fidelity emulation
- Access to the full range of device languages
- Full communication with the tools as if you were
running a CEPC next to your desktop computer - Emulator is actually running the Windows CE
operating system (within a windowed virtual
computer on top of a host operating system) - Networking is supported
12Sample Emulator Screen
13Radio Add-on Pack
- Purchase radio directly from Wavecom (special
pricing for MSPP members) - Plug and Play
- Full telephony capability
- First level of support will still come from
Microsoft - Note Use of radio and ActiveSync simultaneously
requires three serial ports
14The Architecture
15CellCore Goals
- Improve key Win32 APIs to seamlessly support
digital cellular - Focus on TAPI and Win32
- Fortify Win32 API deficiencies
- How to handle SIM, SMS, WAP, and GPRS
- Abstract the underlying cellular networks and
hardware - Developers should not worry if they are on GSM or
CDMA - Hardware partners should not worry about new
drivers - Enable innovation on top of new APIs
- WAP Support
- Push to talk chat
- OTA SMS configuration
16Advanced Voice Control
- TAPI provides advanced telephony control
- Dial, answer, hold, conference, forward,
transfer, deflect - ExTAPI supports additional cellular features
- Extension of TAPI
- HSCSD, USSD, operator selection, call barring
Extended TAPI
17Data Connections
- Circuit switched data
- TAPI still used, but with Data Mode flag
- PPP obtains COM handle to the virtual serial port
- GPRS
- TAPI is used, but with additional DevConfig
fields - Looks like a RAS connection that was quickly set
up
18Connection Manager
- Intelligent data connectivity
- Network based versus connection based
- Scheduled connections
- Each CSP has connection criteria
- Error rate, cost, bandwidth, latency, connect
time - Can add CSPs to support new connection types
- Planner arbitrates connection decisions
- Preconfigurable by carrier/corporate IT
Connection Manager
Planner
ConnectionServiceProviders
Voice
RAS
Proxy
PPTP
GPRS
etc
19Connection Manager
- Common CSP examples
- ISP
- Corpnet
- Secure tunnelling (PPTP)
- Proxy
Internet
Corpnet
ISP Corpnet Tunnelling Proxy
20Short Messaging Service
- Providers allow custom message types
- GSMText (with fragmentation/reassembly)
- WDP (GSM 03.40)
- Other custom types
- SmsSetMessageNotification to register for a
particular type - Similar to Winsock APIs
- SmsOpen
- SmsClose
- SmsSendMessage
- SmsReadMessage
- Additional APIs for SMS-related tasks
- SmsGetSMSC
- SmsSetSMSC
21WAP
- Several layers of WAP
- WTP reliable transactions
- WTLS secure datagrams
- WDP unreliable datagrams over IP and SMS
- APIs modelled after Winsock
- WapOpen
- WapClose
- WapSend
- WapRead
22SIM Manager
- SIM access exposes a SIM API
- API protection permits concurrent access to the
SIM card - Password locking
- SimGetPhoneLockedState
- Phonebook
- SimReadPhonebookEntry
- SMS storage access
- SimWriteMessage
- SIM record access
- SimReadRecord
23SIM Manager Example
- Simple APIs for accessing records and phone books
on the SIM - Notifications available for detecting SIM changes
24SIM Manager Example, Part 1
- include
- HRESULT result S_OK
- HSIM hSim
- SIMPHONEBOOKENTRY phonebookEntry
- result SimInitialize(0, NULL, NULL, hSim)
- if (result ! S_OK)
-
- // Handle error here
25SIM Manager Example, Part 2
- result SimReadPhonebookEntry(hSim,
SIM_PBSTORAGE_SIM, 42, phonebookEntry) - if (result ! S_OK)
-
- // Handle error here
-
- // Do something with the phone book entry here
- result SimDeinitialize(hSim)
- if (result ! S_OK)
-
- // Handle error here
26Voice Calls
- Based on TAPI, with extensions for GSM-specific
functionality - One simple API to make a voice call
- tapiRequestMakeCall
27Voice Calls Example 1
- include
- LONG result
- result tapiRequestMakeCall(TEXT(18005551212),
NULL NULL, NULL) - if (result ! 0)
-
- Â Â Â // Insert error handling code here
28Voice Calls Example 2
- include
- PHONEMAKECALLINFO mci
- FOO result
- memset(mci, 0, sizeof(mci))
- mci.cbSize sizeof(mci)
- mci.dwFlags SHMCF_PROMPTBEFORECALLING
- mci.pszDestAddress TEXT(18005551212")
- result PhoneMakeCall(mci)
- if (result ! 0)
-
- Â Â Â // Insert error handling code here
29Data Calls
- All data calls are requested through Connection
Manager - Connection Manager takes care of everything
- All connections are made to networks
- The Internet
- My Corporate Network
30Data Calls Example
- Shows how to establish a data connection
- Could be GPRS, CSD, Ethernet
- Does not open a TCP/IP socket
- Additional code is required to do this after the
call is established
31Data Calls Example, Part 1
- define INITGUID
- include
- CONNMGR_CONNECTIONINFO connInfo
- HANDLE hConnection
32Data Calls Example, Part 2
- // Fill in the structure with the connection
details - memset(connInfo, 0, sizeof(connInfo))
- connInfo.cbSize sizeof(connInfo)
- connInfo.dwParams CONNMGR_PARAM_GUIDDESTNET
- connInfo.dwPriority CONNMGR_PRIORITY_USERINTERAC
TIVE - connInfo.dwFlags 0
- connInfo.bExclusive false
- connInfo.bDisabled false
- connInfo.guidDestNet IID_DestNetInternet
- connInfo.hWnd hwnd
- connInfo.uMsg WM_APP_CONNMGR
- connInfo.lParam (LPARAM)0
33Data Calls Example, Part 3
- // Make the connection
- ConnMgrEstablishConnection(connInfo,
hConnection) - // In your main window message loop put the
following code to look for a successful
connection. - case WM_APP_CONNMGRswitch ((WPARAM)wp) case
CONNMGR_STATUS_CONNECTED // Were
connected! break -
34Data Calls Example, Part 4
- // Close the connection
- ConnMgrReleaseConnection(hConnection, 1)
35Internet Explorer
- HTML 3.2
- No frames
- HTML 4.0 innerText, innerHTML, accesskey
- No style sheets
- WAP 1.2.1
- Microsoft JScript 1.1
- cHTML (i-Mode)
- accesskey, tel URL
- XML / XSL
- Microsoft ActiveX controls
- SSL security
- Images
- JPEG, GIF, PNG, BMP, 2BP, XBM, WBMP
36WAP Support
- Seamless integration with HTML viewer
- WAP June 2000 http//www.wapforum.org
- WML, WBXML, WML Script, WTLS security
- Bearers
- IP, SMS (WAP Push, SI/SL)
- Interoperability
- Currently tested against 10 gateways
- Compliance testing when the Open Group finalizes
the 1.2.1 test suite - WTAI?
- Only allow MakeCall
- Other features are not feasible for Smartphone
and are not secure
37Device Management
- Manageable device with low TCO
- Managing millions of devices
- Standards-based provisioning
- Standard WAP provisioning protocols
- Standard WAP Push protocol
- Secure application download
- Signed CAB files
38Scenarios
- Bootstrap
- Configuring corporate network access
- Changing registry information
- Mandatory device settings
- Application settings
- Device personalization
- Over the air (OTA) upgrades
- Security fixes
39OTA Provisioning Architecture
Push Router
Carrier
Provisioning
WAP Push Proxy
Configuration
WAP
System
Gateway
Manager
Gateway
Push
Authentication
Provisioning
P
Website
A
P
Smartphone
Configuration Service
Provider
40Device Management Configuration
Carrier Provisioning System
Web Site
Device-Config Mgr
Interface HTTP/PAP
Configuration Service Provider
Registry / App Database
Configuration Manager
Configuration Manager
SMSC
Push Router
Type Mapping
SMS Router
41Sample Configuration Message
- Content-Type text/vnd.wap.connectivity-xml
-
- "http//schemas.microsoft.com/prov.dtd"
-
-
-
-
-
-
- ity"
-
-
- ces\Small
-
42Bootstrap
- Permits the device to receive provisioning
information - First document to provision device can be stored
locally or sent to device using WAP Push message
- Processed by Configuration Manager
- Support for Standard WAP bootstrap network
PIN-signed message
43Application Installation
- Notification of application availability
- SMS, SI/SL, e-mail
- Forms for application download
- Download an application through pIE over
HTTP/HTTPS/WSP - Installation through desktop ActiveSync
- Application can be sent to a user through e-mail
as an attachment - Transactional support, role mask for installation
tasks - CAB file optionally signed with certificate
- Useful for fixes/patches and new applications
44Installation Security
- Installation through CAB files
- CAB files can be signed
- Security process
- Permissions are assigned
- Configuration Manager receives installation
instructions - Installation succeeds or fails based on
operators security policy
45Execution Security
- All executable files can be signed
- Three modes of execution
- Untrusted, unprivileged, privileged
- Security process
- Mode is assigned
- Execution succeeds or fails based on operators
security policy
46The Signing Process
- Two variables in the signing process
- Which certificates are on the device?
- Mobile2Market
- Mobile Operator
- How is security policy configured?
- OPEN most applications do not require signing
- LOCKED applications require signing
47The Signing ProcessExample with Default Security
- Device has default security policies
- OPEN
- Applications requiring normal access
- Do not have to be signed
- Applications requiring elevated access
- Must be signed with certificate from operator
48The Signing ProcessExample with Oranges Security
- Device has Oranges security policies
- LOCKED
- Applications requiring normal access
- ISV gets application signed by Mobile2Market
partner (Verisign, Baltimore) - Applications requiring elevated access
- Must be signed with certificate from operator
49Resources
- http//www.microsoft.com/mobile/developer/
- http//www.microsoft.com/mobile/
- http//support.microsoft.com
- microsoft.public.smartphone.developer
50- Thank you for joining todays Microsoft Support
- WebCast.
- For information about all upcoming Support
WebCasts, - and access to the archived content (streaming
media - files, PowerPoint slides, and transcripts),
visit - http//support.microsoft.com/webcasts/
- Your feedback is sincerely appreciated. Please
send any - comments or suggestions about the Support
- WebCasts to supweb_at_microsoft.com.