Mobility Services Platform 3.1 User`s Guide
Transcription
Mobility Services Platform 3.1 User`s Guide
Mobility Services Platform 3.1 User’s Guide Mobility Services Platform 3.1 User’s Guide 72E-100158-04 Revision B January 2008 © 2007 by Motorola, Inc. All rights reserved. No part of this publication may be reproduced or used in any form, or by any electrical or mechanical means, without permission in writing from Motorola. This includes electronic or mechanical means, such as photocopying, recording, or information storage and retrieval systems. The material in this manual is subject to change without notice. The software is provided strictly on an “as is” basis. All software, including firmware, furnished to the User is on a licensed basis. Motorola grants to the User a non-transferable and non-exclusive license to use each software or firmware program delivered hereunder (licensed program). Except as noted below, such license may not be assigned, sublicensed, or otherwise transferred by the User without prior written consent of Motorola. No right to copy a licensed program in whole or in part is granted, except as permitted under copyright law. The User shall not modify, merge, or incorporate any form or portion of a licensed program with other program material, create a derivative work from a licensed program, or use a licensed program in a network without written permission from Motorola. The User agrees to maintain Motorola’s copyright notice on the licensed programs delivered hereunder, and to include the same on any authorized copies it makes, in whole or in part. The User agrees not to decompile, disassemble, decode, or reverse engineer any licensed program delivered to the User or any portion thereof. Motorola reserves the right to make changes to any software or product to improve reliability, function, or design. Motorola does not assume any product liability arising out of, or in connection with, the application or use of any product, circuit, or application described herein. No license is granted, either expressly or by implication, estoppel, or otherwise under any Motorola, Inc., intellectual property rights. An implied license only exists for equipment, circuits, and subsystems contained in Motorola products. MOTOROLA and the Stylized M Logo and Symbol and the Symbol logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective owners. Motorola, Inc. One Motorola Plaza Holtsville, New York 11742-1300 http://www.symbol.com iii Table of Contents About This Guide ...............................................................................................ix Related Documents ........................................................................................................................................ ix Service Information ......................................................................................................................................... ix Chapter 1 What is the Mobility Services Platform............................................1 MSP Editions .................................................................................................................................................. 1 Staging ................................................................................................................................................... 1 Provisioning............................................................................................................................................ 2 Security Features of MSP ............................................................................................................................... 3 Components of MSP....................................................................................................................................... 3 MSP 3 Server ......................................................................................................................................... 3 MSP Client ............................................................................................................................................. 3 Relay Servers......................................................................................................................................... 4 AirBEAM Package Builder...................................................................................................................... 4 Internet Explorer/MSP 3 Console UI ...................................................................................................... 4 Network Overview........................................................................................................................................... 4 Chapter 2 Your Enterprise and MSP Objects ...................................................7 Understanding Your Enterprise....................................................................................................................... 7 Scalability ............................................................................................................................................... 8 Network Topology and Connectivity ....................................................................................................... 8 Security .................................................................................................................................................. 9 Relay Server Communication .................................................................................................. 9 MSP 3 Console UI User Authentication, Role, and Scope ......................................................10 Network Naming/Addressing and Accessibility......................................................................................10 User Access to MSP 3 Console UI..........................................................................................10 MSP 3 Server Access to Relay Server....................................................................................10 Mobile Device Access to Relay Server ...................................................................................11 Identifying Key Enterprise Objects .................................................................................................................11 User(s)...................................................................................................................................................11 User Roles ..............................................................................................................................11 iv MSP 3.1 User’s Guide User Access Prefixes ..............................................................................................................12 Network Settings ...................................................................................................................................13 Relay Server(s) .....................................................................................................................................13 Sites ......................................................................................................................................................13 Installing and Configuring Server(s)...............................................................................................................15 Relay Server(s) .....................................................................................................................................15 MSP 3 Server(s)....................................................................................................................................15 Creating MSP Objects ...................................................................................................................................15 MSP Object Overview ...........................................................................................................................15 MSP Object Naming ..............................................................................................................................16 MSP Enterprise Objects ........................................................................................................................16 Network Settings Objects ........................................................................................................17 Relay Server Objects ..............................................................................................................17 Site Objects.............................................................................................................................18 User Objects ...........................................................................................................................18 SMS Carrier Objects ...............................................................................................................18 MSP Content Objects ............................................................................................................................18 Packages ................................................................................................................................19 Settings Objects ......................................................................................................................20 Message Set Objects ..............................................................................................................20 Bundle Objects........................................................................................................................21 Staging Objects .....................................................................................................................................21 Staging Profile Objects............................................................................................................22 Staging Options Within Staging Objects .................................................................................23 SMS Device Objects ...............................................................................................................24 Provisioning Objects..............................................................................................................................25 Condition Objects....................................................................................................................25 Provisioning Policy Objects .....................................................................................................26 Chapter 3 Performing Staging .........................................................................27 Staging Methods ............................................................................................................................................28 Barcode-Based Staging.........................................................................................................................28 How Barcode-Based Staging Works .......................................................................................28 How to use Barcode-Based Staging .......................................................................................29 On Demand (Electronic) Staging...........................................................................................................31 How On Demand (Electronic) Staging Works .........................................................................31 How to use On Demand (Electronic) Staging..........................................................................32 SMS Staging .........................................................................................................................................34 How SMS Staging Works ........................................................................................................34 How to use SMS Staging ........................................................................................................35 Viewing and Reporting on Staging Status......................................................................................................36 Legacy Staging ..............................................................................................................................................36 Legacy Staging Prerequisites................................................................................................................37 Legacy Staging Process........................................................................................................................37 Chapter 4 Performing Provisioning.................................................................39 Provisioning Operation...................................................................................................................................39 How Provisioning Works........................................................................................................................39 Policy Activation and Deactivation ..........................................................................................40 Policy Types............................................................................................................................40 Policy Applicability...................................................................................................................40 Policy Compliance...................................................................................................................40 Job Initiation ............................................................................................................................41 Readiness Conditions .............................................................................................................41 Job Execution and State .........................................................................................................41 Job Progress ...........................................................................................................................42 How to use Provisioning ........................................................................................................................42 Table of Contents v Policy Activation ......................................................................................................................42 Policy Types............................................................................................................................43 Policy Applicability...................................................................................................................43 Viewing and Reporting on Provisioning Status ..............................................................................................43 Compliant Status ...................................................................................................................................43 Not-Compliant Status ............................................................................................................................43 Policy Details.........................................................................................................................................44 Chapter 5 Using MSP Control Modules ..........................................................45 Purpose .........................................................................................................................................................45 Control Module Types ....................................................................................................................................45 One-Time Action Control Modules ........................................................................................................45 Repetitive Action Control Modules ........................................................................................................46 Readiness Control Module ....................................................................................................................46 Configurable Action Control Modules ....................................................................................................47 Server Control Modules.........................................................................................................................48 MSP 3.1 Control Modules ..............................................................................................................................49 GetAdapters ..........................................................................................................................................49 GetAdapters Device Attributes ................................................................................................49 GetCabInventory ...................................................................................................................................50 GetCabInventory Device Attributes .........................................................................................50 AutoSiteAssign ......................................................................................................................................50 AutoSiteAssign Device Attributes............................................................................................51 LockAndWipe ........................................................................................................................................52 LockAndWipe Scenario Actions ..............................................................................................52 LockAndWipe Device Attributes ..............................................................................................56 RemoteUI and RemoteControl.......................................................................................................................56 Overview ...............................................................................................................................................56 RemoteUI vs. RemoteControl................................................................................................................57 RemoteUI and RemoteControl Changes from MSP 3.0 to MSP 3.1 .....................................................57 Mutual Exclusivity of Packages .............................................................................................................58 Using RemoteUI with MSP Stage..........................................................................................................58 Using RemoteUI with MSP Provision ....................................................................................................59 Using RemoteControl with MSP Provision ............................................................................................59 Dealing with Device IP Addresses.........................................................................................................60 Dealing with Device Contactability ........................................................................................................60 Launching RemoteUI Manually via a Web Browser ..............................................................................61 Launching RemoteUI via the MSP 3 Console UI...................................................................................61 Device Attributes used by the RemoteUI and RemoteControl...............................................................62 One to One NAT .....................................................................................................................63 One to Many NAT ...................................................................................................................64 Chapter 6 Other MSP Features and Operations .............................................67 Importing and Exporting .................................................................................................................................67 Transferring Packages To or From MSP 3 Servers...............................................................................67 Transferring Objects Between MSP 3 Servers ......................................................................................68 Using CSV Files for Bulk Object Creation .............................................................................................70 Backup and Restore ......................................................................................................................................71 Automated .............................................................................................................................................71 Manual...................................................................................................................................................72 Asset Management ........................................................................................................................................72 Site-based Management .......................................................................................................................73 MSP 3 Sites ............................................................................................................................73 Site Assignment in MSP 3.......................................................................................................74 Staging the Device for use at a Production Site ......................................................................74 Pushing a Production Site Bundle as Content ........................................................................75 Using the Automatic Site Assignment Control Module ............................................................75 vi MSP 3.1 User’s Guide Manual Site Assignment .........................................................................................................76 Status Module ................................................................................................................................................77 Viewing Device Status...........................................................................................................................77 Viewing Relay Server Status .................................................................................................................77 Security ..........................................................................................................................................................78 Using HTTPS with MSP 3 ..............................................................................................................................78 Obtaining a SSL Certificate for the Server.............................................................................................78 Installing Your IIS SSL Certificate on Microsoft IIS 5.x / 6.x ..................................................................78 Enabling SSL Web Access for MSP 3 Console UI ................................................................................81 Example File for Redirecting HTTP to HTTPS Access ..........................................................................83 Example File for Redirecting HTTP to HTTPS Access ..........................................................................84 MSP Administration Program.........................................................................................................................84 Description ............................................................................................................................................84 Program Overview.................................................................................................................................84 Installation ...............................................................................................................................84 Backup/Restore.......................................................................................................................85 DB Maintenance......................................................................................................................85 Configuration...........................................................................................................................85 Logging ...................................................................................................................................85 High Availability Configuration of MSP Server 3.1.1 ......................................................................................85 Requirements and Installation ...............................................................................................................85 Switching to the Secondary MSP Web Application and Services PC......................................86 Troubleshooting .............................................................................................................................................86 Performance Monitoring ........................................................................................................................86 Using Windows Error Logging ...............................................................................................................86 Using Staging Logs ...............................................................................................................................87 Device-side Staging Logs......................................................................................................................87 MSP Services........................................................................................................................................87 Appendix A Reference Information .................................................................89 Using Condition Objects ................................................................................................................................89 Adapter condition ..................................................................................................................................90 AdapterTime condition...........................................................................................................................91 Connectivity condition ...........................................................................................................................91 Confirm condition ..................................................................................................................................91 Power condition.....................................................................................................................................91 Time condition .......................................................................................................................................92 Universal condition ................................................................................................................................92 Using Setting Objects ....................................................................................................................................93 Agent.30 ................................................................................................................................................93 Agent.AirBEAM .....................................................................................................................................93 Attribute .................................................................................................................................................93 Certificate ..............................................................................................................................................93 Clock.TimeZone ....................................................................................................................................94 Control.AutoSiteAssign .........................................................................................................................94 Control.LockAndWipe............................................................................................................................94 Network.WLAN.FusionPublic ................................................................................................................94 Network.WLAN.Legacy .........................................................................................................................94 Network.WWAN.GPRS .........................................................................................................................94 UCA.......................................................................................................................................................95 FTP Server Reference ...................................................................................................................................96 Configuring FileZilla for use as Relay Server ........................................................................................96 Configuring Windows IIS FTP Server as Relay Server .........................................................................97 Setting up FTP Server.............................................................................................................97 Configuring the FTP Server ....................................................................................................97 Using WS-2000 FTP Server as Relay Server........................................................................................97 Secure FTP Support ......................................................................................................................................98 Enabling FTPS Support ..........................................................................................................99 Table of Contents vii Troubleshooting...................................................................................................................................100 Error code .............................................................................................................................100 Error causes..........................................................................................................................100 Server Certificate Installation ................................................................................................101 Staging certificates................................................................................................................101 Filezilla Secure FTP Configuration ......................................................................................................102 Creating a self-signed server certificate ................................................................................103 Converting self-signed certificate to DER format...................................................................105 Opening Ports on MSP 3 Server..................................................................................................................105 MSP 3 Client Error Codes............................................................................................................................106 Device WT4090 Keyboard Anomalies .........................................................................................................108 Listing of SMS Carriers Domains .................................................................................................................108 Glossary ..........................................................................................................109 viii MSP 3.1 User’s Guide About This Guide The MSP 3.1 User’s Guide provides general instructions for the use of the Mobility Services Platform software product version 3.1. Newer versions of this document may be available at http://support.symbol.com/support/product/softwaredownloads.do. Related Documents • • • • • MSP 3.1 Installation Guide, p/n 72E-100159 MSP 3.1 Release Notes, p/n 72E-100160 AirBEAM Package Builder Product Reference Guide, p/n 72E-55769-01 AirBEAM Package Builder Version 2.x Addendum Help text is available from the MSP 3 Console UI via two methods: by hovering the mouse pointer over certain input fields of the screen and by clicking the “?” button. Service Information If you have a problem with your software, contact Motorola Enterprise Mobility support for your region. Contact information is available at: http://www.symbol.com/contactsupport. When contacting Enterprise Mobility support, please have the following information available: • Serial number of the software • Model number or product name • Software type and version number • Software license information Motorola responds to calls by email, telephone or fax within the time limits set forth in support agreements. If you purchased your Enterprise Mobility business product from a Motorola business partner, contact that business partner for support. x MSP 3.1 User’s Guide Chapter 1 What is the Mobility Services Platform Motorola’s Mobility Services Platform 3 (MSP 3) is a scalable software solution that provides a single point of control for managing large numbers of Mobile Devices within an your Enterprise. MSP 3 consists of a server-based software product called the MSP 3 Server and a set of device-resident software components collectively called the MSP Client that enable the management of Mobile Devices. Used together, these software components allow you to perform the following tasks: • • Staging – Staging is the configuration of and installation of software onto Mobile Devices by manual request by a Mobile Device User. Provisioning – Provisioning is the configuration of and installation of software onto Mobile Devices remotely under the control of the MSP Server. MSP 3 is a 3-tier management system that always manages Mobile Devices indirectly through one or more intermediary Relay Servers (FTP Servers) located within your Enterprise. This layered architecture makes it possible for MSP 3 to be configured to manage large numbers of Mobile Devices from a central point, using a single MSP 3 Server. MSP Editions MSP 3 is available in two editions: MSP 3 Stage Edition and MSP 3 Provision Edition. MSP 3 Provision Edition contains all the features of MSP 3 Stage Edition plus the features of Provisioning. MSP 3 Stage Edition can be upgraded to MSP 3 Provision Edition through the use of a license key that enables the use of the Provisioning features. Staging Staging is the configuration of and installation of software onto Mobile Devices by manual request by a Mobile Device User. Staging allows Mobile Devices to be quickly and efficiently prepared for use within your Enterprise by configuring Settings to enable 2 MSP 3.1 User’s Guide network connectivity and then using that connectivity to perform additional configuration and software installation. Staging is most commonly performed before initial use when devices are “fresh out of the box”. Staging is supported using a variety of methods such as by scanning barcodes, by pulling a Profile from a Profile Server, or by pushing Profiles via SMS messages sent to a WWAN-enabled Mobile Device. It is important to understand that Staging is an operation must be initiated by a Mobile Device User and hence always requires the attendance of such a User. Staging is sometimes referred to as a “pull” operation since the Mobile Device User explicitly requests that configuration and software be “pulled” from a Relay Server by applying a pre-defined Staging Profile. MSP 3 Stage Edition includes only the Staging function. All Mobile Devices listed as supported by MSP 3 Stage Edition are capable of supporting all the Staging features of MSP 3 Stage Edition. However, if a Mobile Device does not ship with a suitably recent Staging Client pre-installed, then some Staging features may not be available on that device when it is “fresh out of the box”. Such devices can be updated to a suitable Staging Client, using the Legacy Staging Process, after which they will support all the Staging features. MSP 3.1 provides Staging via the following methods: • • • Barcodes – Barcodes are generated from a Staging Profile and printed via the MSP 3 Console UI. The barcodes are scanned by the device, the Profile is extracted, and the device is Staged according to the Profile. On Demand – A PC is used to launch a special Web page from the MSP 3 Console UI. This Web page hosts an ActiveX Object that receives Profiles from the MSP Server and “serves them up” to Mobile Devices. A Mobile Device contacts the Profile Server on the PC, acquires a Profile, and is Staged according to the Profile. Mobile Devices can connect to the PC via: • A Microsoft ActiveSync™ connection to the PC, via which the PC can be reached by the Staging Client. • A exisiting Wired or Wireless connection, via which the PC can be reached by the Staging Client. • A well-known wireless connection, that is automatically established by the Staging Client. SMS messages – Staging commands can be sent to a WWAN-enabled Mobile Device encoded within a sequence of SMS messages. The SMS Staging Client on the device intercepts these messages, extracts the Profile, and the device is Staged according to the Profile. Provisioning Provisioning is the configuration of and installation of software onto Mobile Devices remotely under the control of the MSP Server. Provisioning is a powerful method to ensure that all Mobile Devices have the configuration and software that are necessary for their proper operation on an ongoing basis. Provisioning in MSP 3 is performed based on Policies that determine what configuration and software belongs on which Mobile Devices and when updates should be performed. Provisioning can be configured to be automatic or manual, but it is important to understand that Provisioning is performed by the MSP Server under the control of the MSP 3 Console UI and hence does not require the attendance of a Mobile Device User. What is the Mobility Services Platform 3 Provisioning is sometimes referred to as a “push” operation since configuration and software are “pushed” by the MSP Server to Mobile Devices via a Relay Server. MSP 3 Provision Edition includes both the Staging and Provisioning functions. All Mobile Devices listed as supported by MSP 3 Provision Edition are capable of supporting all the Provisioning features of MSP 3 Provision Edition. However, if a Mobile Device does not ship with a suitably recent MSP Client pre-installed, then some Staging and Provisioning features may not be available on that device when it is “fresh out of the box”. Such devices can be updated to a suitable MSP Client, using the Legacy Staging Process, after which they will support all the Staging features. It is also important to note that Mobile Devices do not ship with the Provisioning features activated. The Provisioning features of MSP 3 Provision Edition must be activated for a device by Staging an “enable” Package. Security Features of MSP MSP provides the ability to partially or completely disable Mobile Devices that may pose a security threat to your Enterprise. A device can be “locked down”, which prevents a Mobile Device User from interacting with the User Interface on the device and hence from accessing any data on the device or accessing the network using the device. A device can also be “wiped” which erases some or all of the configuration, software, or data on the device. Components of MSP The following are components of the Mobility Services Platform version 3.1. MSP 3 Server The MSP 3 Server is software application that is installed on a Windows Server 2003 or Windows XP Professional computer 1 . The majority of the functionality of MSP is implemented within this component. MSP Client The MSP 3 Client is a set of software components that come pre-installed on certain Motorola Mobile Devices. The MSP 3 Client performs Staging and Provisioning functions on Mobile Devices. Supported Mobile Devices that do not have the MSP 3 Client preinstalled on them can be upgraded via the Legacy Staging Process. For information about the specific Mobile Devices supported by MSP 3, see the MSP 3 Device Compliance List 2 . Begin at the following link: Software Downloads on Motorola Support Central Then click the links titled “Mobility Software” and “Mobility Services Platform”. Then locate the version of MSP you are interested in and click the appropriate link in the “Software Downloads” section (e.g. “Mobility Services Platform (MSP) 3.1”). 1 See the MSP 3.1 Software Installation Guide for specifications on which versions of Windows are supported for MSP 3. 2 The MSP 3 Device Compliance list is provided for convenience only and is not intended to be comprehensive or complete. The release notes for the Mobile Device firmware release should be consulted for the definitive statement on MSP 3 compliance. 4 MSP 3.1 User’s Guide Then click the appropriate link for the MSP 3 Compliance List (e.g. “MSP 3.1 Device Compliance List”). Note that Mobile Devices that do not come with the MSP 3 Client pre-installed will not have full Staging functionality when they are “fresh out of the box”. Such devices can be updated to have full Staging functionality by upgrading them to the appropriate MSP 3 Client using the Legacy Staging Process. Relay Servers To manage large numbers of devices, MSP uses intermediate servers called Relay Servers, which run either the FTP or secure FTP (FTPS) protocol. Any computer or device that can function as an FTP or secure FTP Server can be used as a Relay Server so long as it complies with the relevant RFCs, as documented later in this document. No FTP Server software is included with MSP 3. But FTP Server software can be installed as part of Windows IIS or obtained from a variety of sources. At least one Relay Server must be installed somewhere within the Enterprise in order for MSP 3 to be used. AirBEAM Package Builder When software is delivered to a device, it must be contained in a “Package” file. Package files are created using the AirBEAM Package Builder program that is included and installed as part of MSP. Internet Explorer/MSP 3 Console UI You use a Web Browser to access MSP 3 Server console functions. Web Browsers that have been tested and supported with MSP include Microsoft Internet Explorer™ versions 6 and 7. Network Overview The figure on the next page illustrates the components that would be present in a typical Enterprise network in which MSP 3 is deployed. Although this represents a typical network, there are many variations possible: • • MSP 3 Stage Edition • The requirements to run MSP 3 Stage Edition are relatively lightweight and therefore it could be installed on a laptop running Windows XP. • At least one Relay Server (FTP or FTPS Server) is required to use MSP 3. A Relay Server can be run on the same computer as the MSP 3 Server software, if desired. • A Web Browser is required to access the MSP 3 Console UI. A Web Browser can be run on the same compute as the MSP 3 Server software, if desired. • Based on the above, MSP 3 Stage Edition could be installed on a laptop computer and configured to achieve a self-contained, fully mobile Staging solution. MSP 3 Provision Edition • The requirements to run MSP 3 Provision Edition are more intensive and therefore it should generally be installed on a server running Windows 2003 Server. What is the Mobility Services Platform 5 • • • • At least one Relay Server (FTP or FTPS Server) is required to use MSP 3. A Relay Server can be run on the same computer as the MSP 3 Server software, if desired. • A Web Browser is required to access the MSP 3 Console UI. A Web Browser can be run on the same compute as the MSP 3 Server software, if desired. • Based on the above, MSP 3 Provision Edition should generally be installed on a dedicated server to provide a robust and reliable Provisioning solution. MSP 3 can be installed to run in a VMWARE environment, where Windows is running in a virtual PC on any Operating System supported by VMWARE. In MSP 3, Sites are optional, but can often greatly improve manageability when Mobile Devices are used at multiple locations within the Enterprise. MSP 3 requires TCP/IP-based network connectivity between the MSP Server, Relay Servers, and Mobile Devices within the Enterprise. Possible types of connectivity to Mobile Devices include Wireless LAN, Wireless WAN, and Microsoft ActiveSync™. MSP 3 Server MSP 3 Console UI via Web Enterprise network Relay Server MSP Client Relay Server Site A MSP Client Site B Chapter 2 Your Enterprise and MSP Objects Understanding Your Enterprise The most important thing to do BEFORE installing or using MSP 3 is to understand how your Enterprise will be managed and how MSP 3 will manage the Mobile Devices within your. The following figure identifies some of the places within the Enterprise that should be considered and the questions that should be asked as part of the planning process for an MSP 3 deployment. 8 MSP 3.1 User’s Guide The following sections provide additional detail to guide your thinking when assessing your Enterprise and planning for your MSP 3 deployment. Scalability MSP 3 has been tested with varying configurations from small numbers of Mobile Devices to very large numbers likely to exceed that found in most Enterprises. This testing has demonstrated that MSP 3 can perform acceptably even when installed on modest server hardware, such as that described in the MSP 3.1 Software Installation Guide. MSP 3 requires at least one Relay Server, which could be running on the same computer as MSP or could be running on an external computer. Depending on the characteristics of the Enterprise to be managed, it may be necessary or advisable to have multiple external Relay Servers running on computers distributed throughout the Enterprise. The ability of MSP 3 to scale to support the requirements of any given Enterprise is highly variable, depending on the exact servers deployed and the connectivity between them. To help provide a basis for comparison and estimation, the following specific MSP 3 configurations have been tested: • • • 5,000 mobile devices when used with a single Relay Server running on the same server hardware as MSP 5,000 mobile devices when used with 12 Relay Servers running on external server hardware 100,000 mobile devices when used with 1,000 Relay Servers running on external server hardware Note: The above ratings are based on scalability testing performed under lab conditions on servers that comply with recommended minimum hardware guidelines. These ratings should be used as guidelines only. Depending on the exact nature of the Enterprise being managed, the actual network organization, and the hardware capabilities of the server(s) being used, actual achievable scalability will vary. Network Topology and Connectivity The locations at which Mobile Devices will be used within the Enterprise need to be identified, along with the kinds of device usage expected at each location. The connectivity that will be available to devices at various locations should be considered to determine how best to configure an MSP 3 system to manage the devices. Every device to be Staged or Provisioned by MSP will REQUIRE connectivity to a Relay Server during the times when it is actually being Staged or Provisioned. This is generally accomplished by using one or more device network adapters to provide access to one or more networks. In WLAN environments, connectivity to a private local area network is typically expected to be nearly continuous. In WWAN environments, connectivity to a public or private network may be sporadically available and/or intentionally restricted based on cost and/or bandwidth issues. If cradles are used, connectivity to a private local area network will be available only during periods when the device is in the cradle. Your Enterprise and MSP Objects 9 Regardless of the type of connectivity used to provide the device with access to a network from a particular location, the connectivity from that network to the Relay Server that will be used to manage devices at that location must be considered. For example, a retail store might have only a very low bandwidth connection to the central headquarters. In such a case, having devices at the store contact a Relay Server at the central headquarters, over that slow link, might be a poor choice. Relay Servers can be located anywhere within the Enterprise as needed to meet the needs of devices and to compensate for any connectivity issues or limitations that may exist. In many cases, locating a Relay Server at a remote site may be the best way to avoid unnecessary traffic over slow links. In other cases, regional Relay Servers might be used to manage multiple locations that share higher bandwidth regional networks. In other cases, wide area connectivity may be adequate to allow fully centralized management. It should also be understood that MSP 3 is a 3-tier system. An MSP 3 Server talks to one or more Relay Servers and Mobile Devices also talk to those Relay Servers. This means that MSP 3 Servers and Relay Servers need to be located in places where connectivity is suitable for the communications they will interchange. As circumstances warrant, a Relay Server can be located as near or far from its managing MSP 3 Server and as near or far from the devices it is managing. Security Depending on the organization of the Enterprise and its network topology and implementation, security requirements may vary. If the Enterprise network in which MSP 3, the Relay Servers, and the Mobile Devices will operate is inherently and consistently secure, then there may be little need to consider security aspects when deploying MSP 3. If, however, some segments or connections within the Enterprise network are less secure, then it may be necessary to consider adjust the deployment MSP 3 to compensate. The following sections explain some ways in which a deployment of MSP 3 might need to consider such security aspects. Relay Server Communication All management communications between MSP 3 Servers and Mobile Devices is accomplished via one or more Relay Servers. Depending on where Relay Servers are located within the Enterprise, some traffic may need to travel over less secure segments of the Enterprise network. MSP 3 supports either standard (non-secure) FTP or secure FTP (FTPS) for communications between MSP 3 Servers and Relay Servers and between Relay Servers and Mobile Devices. The primary difference between these two protocols is that secure FTP encrypts both authentication and data traffic, thus securing it from unauthorized access. In addition, secure FTP can help ensure that MSP 3 Servers and Mobile Devices only talk to authentic Relay Servers, thus helping prevent “man in the middle” attacks. If all wired and wireless networks within the Enterprise are intrinsically secure, then standard (non-secure) FTP may be perfectly acceptable. If, however, some segments of the Enterprise network are not adequately secure, then secure FTP can help ensure that MSP traffic is not compromised when traveling over these less secure segments. 10 MSP 3.1 User’s Guide MSP 3 Console UI User Authentication, Role, and Scope The MSP 3 Console UI has User authentication to control who is allowed to access the console and what they are allowed to do, based on their assigned role and scope. The MSP 3 Console UI can be accessed via the HTTP protocol or, for added security, can be accessed via the HTTPS protocol. If all wired and wireless networks within the Enterprise are intrinsically secure, then HTTP access may be perfectly acceptable. If, however, some segments of the Enterprise network are not adequately secure, then HTTPS access can be used to help ensure that MSP 3 Console UI traffic is not compromised when traveling over these less secure segments. Detailed guidance on how to configure MSP 3 for HTTPS access is included later in this document. If HTTPS access is not possible or practical to configure and some Users need to access the MSP 3 Console UI over a less secure network segment, then the User should be required to first establish a secure connection (such as a VPN), thus allowing HTTP to be used without compromising any MSP 3 Console UI traffic sent over the less secure segment. Network Naming/Addressing and Accessibility Since the MSP 3 system consists of 3 tiers, the tiers must be connected together for proper operation. The necessary connections are made using network names and/or addresses. Some networks may use static IP addressing and hence experience little change in network addresses over time. Some networks may use dynamic addressing and hence may be subject to periodic changes in network addresses. Some networks may use naming (e.g. DNS, WINS) to provide indirection and hence allow the network to adapt more easily to changes in the underlying network addresses due to dynamic addressing. Some networks may also use Network Address Translation (NAT) to extend or “compartmentalize” the Enterprise network address space. Some networks may also utilize firewalls to limit certain kinds and directions or traffic. NATs and firewalls could have implications on where servers are located with the Enterprise and/or how they are addressed. Names or addresses are needed to connect together MSP 3 system components in the following ways: User Access to MSP 3 Console UI Since the MSP 3 Console UI is accessed via a Web Browser, Users will need to know the network name or address of each MSP 3 Server they will access in order to direct their Web Browser to the proper URL. Frequently, Users will create “shortcuts” within their Web Browser to simplify repeated accesses to commonly used pages. If dynamic addressing is used without naming, such shortcuts will become invalid if there is a change to a referenced MSP 3 Server address. In such a case, the User would need to manually update any affected shortcuts. MSP 3 Server Access to Relay Server Each MSP 3 Server needs to access one or more Relay Servers via the FTP or secure FTP protocol. An MSP Relay Server Object must be created within MSP that specifies Your Enterprise and MSP Objects 11 the “Public” name or address of the Relay Server, which is the one that MSP 3 will use to access that Relay Server. If an address is used, the address must be contactable from the location where the MSP 3 Server resides, despite any NATs or firewalls. In the event that the address of a Relay Server changes, the corresponding MSP 3 Relay Server Object will need to be modified to match the new address. Mobile Device Access to Relay Server Each Mobile Device needs to access exactly one Relay Server whenever Staging or Provisioning is performed. For Staging, the information about the Relay Server is obtained from the Staging Profile. For Provisioning, the information about the Relay Server must have been configured by a prior Staging or Provisioning operation. In addition to the “Public” name or address defined for use by MSP 3, an MSP 3 Relay Server Object must also specify a “Private” name or address of the Relay Server, which is the one that Mobile Devices will use to access that Relay Server. The “Public” and “Private” name or address might be the same or different depending on the situation (e.g. NAT, etc.). If an address is used, the address must be contactable from the location where the Mobile Device resides, despite any NATs or firewalls. In the event that the “Private” address of a Relay Server changes, the corresponding MSP 3 Relay Server Object will need to be modified to match. Once the Relay Server Object has been updated, the new Relay Server Settings will need to be delivered to all affected Mobile Devices. If the Relay Server is not contactable at the old address being used by a Mobile Device, then Provisioning cannot be used to update the Relay Server address and the device may need to be Staged to perform the update. This could be avoided by updating the Relay Server Settings to all Mobile Devices; if possible, before the address of the Relay Server itself is actually changed. Identifying Key Enterprise Objects User(s) Once the nature of the Enterprise is understood, it should be possible to identify the various Users who will be using the MSP 3 Console UI in order to manage the Enterprise. Each of the Users will be identified by a User ID and will have permissions to perform various tasks based upon the User Role assigned to them. The available User Roles are described in the following subsections. User Roles Administrator User MSP Administrator is responsible for installing, managing, and maintaining MSP systems within the Enterprise. This role involves the following activities: • • Install MSP on appropriate system(s) Configure MSP to define the Site(s) and external server(s) to be used. 12 MSP 3.1 User’s Guide • • • • • • • • Perform backups and restores of MSP Upgrade MSP to new versions as available Define and maintain the User database on MSP Define and manage the list of Users that are allowed to use MSP 3 Console UI Define and manage the roles assigned to Users of MSP Maintain User passwords and administrator password(s) of MSP View or change MSP configuration or performance Settings Administer Sites, Relay Servers, and Users Operations User Operations Admin can administer Staging and Provisioning operations, including: • • • Administer Settings, Packages, Message Sets, Bundles, Profiles, Conditions, Policies, and Packages Administer Device Attributes and Values Control, activate, deactivate, restart, and troubleshoot Policies Provisioning Only User A User with the Provisioning role privileges has the rights to view the status of Provisioning operations, including: • • • • View Compliance summary and detail screens for Policies whose Object Names start with an associated Policy prefix assigned to the User View detail screens for Sites whose Object Names start with an associated Site prefix assigned to the User View detail screens for Devices associated with Sites whose Object Names start with an associated Site prefix assigned to the User Launch RemoteUI or RemoteControl from Device Detail pages for Devices associated with Sites whose Object Names start with an associated Site prefix assigned to the User Staging Only User A User with the Staging privileges has the rights to perform Staging operations, including: • • • • Print or save barcode sheet PDF files for selected Profiles whose Object Names start with an associated Profile prefix assigned to the User Launch an On Demand Profile Server to serve up selected Profiles whose Object Names start with an associated Profile prefix assigned to the User Select target Sites from a list of Sites whose Object Names start with an associated Site prefix assigned to the User Select target Profiles from a list of Profiles whose Object Names start with an associated Profile prefix assigned to the User User Access Prefixes In addition to a User Role, each User may also be given access to various Objects within the MSP 3 Console UI. This is achieved by specifying a User Access Prefix for one of more types of Objects. A User will be allowed to access only those Objects of a given type whose Object Name begins with the User Access Prefix specified for that type of Object for that User. For example, is the User Access Prefix for Sites for a given User Your Enterprise and MSP Objects 13 were “US.West”, then that User would be allowed to access a Site Object whose name was “US.West.CA.Store107” but would not be allowed to access a Site Object whose name was “US.East.NY.Store301”. The types of Objects for which User Access Prefixes can be specified for a User include: • • • • • • • • • Bundles Conditions Messages Packages Policies Profiles Relay Servers Settings Sites Network Settings Once the nature of the Enterprise is understood, it should be possible to identify the various Network Settings that will be used at various locations throughout the Enterprise. For example, some locations may use WLAN networks; other locations might use cradles, etc. Even locations that use the same type of network may use different Network Settings (e.g. two locations may both use WLAN networks but have different ESSIDs and/or require different encryption keys). Identifying and recording information about the Network Settings that will be used throughout the Enterprise will help to provide an indication of the complexity of the Enterprise. And the Network Settings recorded will later need to be used to create MSP 3 Network Settings Objects that will be used to capture and apply those Settings to devices. Relay Server(s) Once the nature of the Enterprise is understood, it should be possible to identify the various Relay Server(s) that will be used throughout the Enterprise. Every MSP 3 system requires at least one Relay Server, but some systems may have many Relay Servers, depending on the scale and organization of the Enterprise network. Identifying and recording information about the Relay Server(s) that will be used throughout the Enterprise will help to provide an indication of the complexity of the Enterprise. And the information recorded about the Relay Server(s) will later need to be used to create MSP 3 Relay Server Objects. Sites Once the nature of the Enterprise and how it will be managed by MSP 3 is understood, the various Sites within the Enterprise should be identified. It is important to note that Sites are an OPTIONAL feature of MSP 3. An MSP 3 system CAN be configured that does NOT use Sites. But in MOST cases, identifying, defining, and using Sites will result in a system that is simpler to use and understand. In MSP 3, a Site is a location at which Mobile Devices will be used. A Site may be a Staging Site (a location where devices will be Staged) and/or a Production Site (a 14 MSP 3.1 User’s Guide location where Mobile Devices are used for non-Staging purposes, which may or may not include Provisioning). A Site should be identified when any of the following criteria are met: • Network Settings Vary by Location In some cases, Network Settings will vary by location and Sites can be a great way to track and manage these Settings. For example, if Staging centers use different WLAN Settings than retail stores, then it likely makes sense to define Staging Sites for the Staging centers and Production Sites for the retail stores. This is even more important if the different Staging centers and/or different retail stores use different Network Settings from each other. While it IS possible to manage such varying Network Settings without using Sites, it would be much more difficult and time consuming to do so. Over time, as the Enterprise network changes, consolidation or differentiation of Network Settings may occur across various locations. Rather than tracking down every Object that might reference a specific Network Settings, it is much easier to change the Network Settings assigned to the Site defined for a location. Then all references to that Site will automatically use the new Network Settings. • Relay Server Settings Vary by Location Depending on how the Enterprise network is organized, there may need to be multiple Relay Servers to support the various locations. Sites can be a great way to track and manage the assignment of Relay Servers to locations. Over time, as an Enterprise evolves, Relay Servers may need to be changed or added and locations may need to be changed to use different Relay Servers. Rather than tracking down every Object that might reference a specific Relay Server, it is much easier to change the Relay Server assigned to the Site defined for a location. Then all references to that Site will automatically use the new Relay Server. • Device Tracking by Location Often, the locations where devices are used within the Enterprise have important contextual meaning and it is advantageous to leverage knowledge of the location when managing the devices. Sites can be a great way to identify the locations of devices. In addition, Sites can be used to capture auxiliary information about the locations and administrators associated with locations within the Enterprise. By defining a Site for each location, relevant information about each location can be centralized and managed. If any information about a Site changes later, the Site can be modified accordingly. Key information to capture when identifying Sites should include: • • • • • • Network Settings that will be used at the Site Relay Server that will be accessed from the Site Name or Designation of the Site Address Information for the Site Time Zone of the Site Contact Information for the Site Administrator Your Enterprise and MSP Objects 15 Installing and Configuring Server(s) Relay Server(s) Once all the MSP Sites have been identified, the Relay Server(s) that will be used need to be installed and configured for use at their appropriate locations within the Enterprise. Relay Server(s) hardware should be selected to meet the needs of the expected number of devices they will be used to manage and should be located to best balance the connectivity both to their managed devices and to their managing MSP 3 Server(s). Relay Server(s) must comply with RFCs 959 and 3659 for standard (non-Secure) FTP and RFC 4217 for Secure FTP. As Relay Servers are installed, the names or addresses of those servers (see section above on Network Naming/Addressing and Accessibility) will need to be identified and recorded. If NATs are used, it may be necessary to identify two different addresses for each Relay Server. Each Relay Server needs to have an account created for access by MSP and Mobile Devices. This account must be granted all privileges (read, write, and delete) to a folder that should be dedicated for use by MSP. The Username and password of each account need to be recorded. And the path from the root of each account to the folder dedicated for use by MSP 3 needs to be recorded. Information recorded while installing and configuring Relay Servers will later be needed to create MSP 3 Relay Server Object(s) within the MSP 3 Server(s) that will access them. MSP 3 Server(s) Once the Relay Server(s) that will be used are installed and configured, the appropriate MSP 3 Servers need to be installed at their appropriate locations within the Enterprise. MSP 3 Server(s) hardware should be selected to meet the needs of the scale of devices they will manage and should be located to best utilize the connectivity to the Relay Servers they will manage. MSP 3 Staging Edition could be run on a laptop computer with Windows XP Professional with Service Pack 2. MSP 3 Provision Edition should generally be run on a suitable server with Windows 2003 Server. As the MSP 3 Server software is installed on various servers, the names or addresses of those servers (see section above on Network Naming/Addressing and Accessibility) will need to be identified and recorded. MSP 3 Server names or addresses will need to be entered into the Web Browsers of Users accessing the MSP 3 Console UI(s) of those server(s). Creating MSP Objects MSP Object Overview Objects in MSP 3 are used to define how MSP 3 will operate. There are many types of Objects in MSP 3, so to make describing them easier, they are organized into categories. The primary Object categories in MSP 3 are Enterprise Objects, Content Objects, Staging Objects, and Provisioning Objects. The various types of Objects in MSP 3 will be discussed in more detail by category in the following sections. 16 MSP 3.1 User’s Guide MSP Object Naming Objects in MSP 3 are created and managed using the MSP 3 Console UI. Every Object must have a name and Object Names are generally limited to Letters, Digits, underscores, and dots. When used in some Object Names, dots are used to indicate hierarchy. For example, Site Object Names such as US.West.CA.SJ and US.West.CA.SF indicate that the Sites should be organized into a tree-based hierarchy. The use of the above Sites would create logical “regions” and “sub-regions” called, us, west, and ca. Additional Sites would be located within the tree based on their names. “Dotted names” can also be used to control the access to Objects by Users. Different Users in MSP 3 can have their scope of access controlled by specifying one or more User Access Prefixes in the User Object that defines that User’s credentials and capabilities. User Access Prefixes are defined by Object Type and limit each User to have access only to Objects whose name begins with the User Access Prefix specified for that type of Object for that User. For example, if the Site User Access Prefix for a User were US.West, then that User only be able to access Sites (and devices assigned to Sites) whose Object Names start with US.West, thus assigning geographical access scope to the User. While the above example shows using Site naming for both Site hierarchy and for access scoping, this is not mandatory. For example, a pair of Bundle Objects might be called Shipping.Bundle1 and Shipping.Bundle2, thus enabling access scope based on User function (Shipping) totally independently of the type of scoping used for Sites. Every Object must have a name that uniquely identifies it from all other Objects of the same type. Objects of different types can have the same name, and this is sometimes desirable if the Objects are interrelated. For example, a Bundle Object might have the name Deploy.MyApplication and a Provisioning Policy Object that references that Bundle might have the same name. By using such an approach, it may be easier to see that the Objects, although of different types, are closely related. Such a naming approach can also help organize access control since the same User Access Prefix can be used for several types of related Object for a given User. MSP Enterprise Objects The following Enterprise Objects should generally be created and applied to configure each MSP 3 Server to prepare it to support the Enterprise, or a portion thereof. Note that while Enterprise Objects can be added or modified at any time, for maintenance purposes, most Enterprise Objects would typically be created by a User with the Admin User Role soon after an MSP 3 Server is installed. Enterprise Objects can be created in any order, except for when one type of Object references another, in which case the referenced Object must be created before the referencing Object can be created. The different types of Enterprise Objects are presented below in the order they would normally need to be created in order to ensure that referenced Objects exist before they are needed. The following figure illustrates the types of Enterprise Objects and identifies both which types of Objects can reference other types of Objects and provides some guidelines on how they match up to real-world entities within the Enterprise. Your Enterprise and MSP Objects 17 Network Settings Objects Network Settings Objects are a special case of Settings Objects, which are, strictly speaking, Content Objects not Enterprise Objects. But since Network Settings Objects are commonly referenced by Site Objects, they generally need to be one of the first types of Objects created. So, for the purposes of this discussion, we will consider Network Settings Objects that are referenced by Site Objects to be “honorary” Enterprise Objects. For each unique combination of Network Settings in use at one or more locations within the Enterprise, a separate Network Settings Object should be created. Note that if multiple MSP 3 Servers will be used, it may make sense to apply some or all of the same Network Settings Objects to more than one MSP 3 Server. Whether or not this makes sense depends on how Network Settings are used within Enterprise. In MSP 3.0, Network Settings Objects could only be created and edited using the MSP 3.0 Object Builder utility, not directly using the MSP 3.0 Console UI. Beginning with MSP 3.1, Network Settings Objects are created and edited from the Settings sub-tab of the Library tab of the MSP 3 Console UI. Consequently, the MSP Object Builder utility will no longer be provided or supported from MSP 3.1 onwards. Relay Server Objects For each unique Relay Server that will be managed by a given MSP 3 Server, a separate Relay Server Object should be created. In MSP 3, Relay Server Objects are created and edited from the Relay Servers sub-tab of the Admin tab of the MSP 3 Console UI. 18 MSP 3.1 User’s Guide Note that if multiple MSP 3 Servers will be used, it is generally NOT RECOMMENDED to share the same Relay Server Objects with more than one MSP 3 Server. This is because only one MSP 3 Server should be interacting with a specific Relay Server at one time. If more than one MSP 3 Server was trying to access the same Relay Server at the same time, conflicts would result, leading to unpredictable operation. When defining a Relay Server Object, the key attributes that determine uniqueness are the “Public” and “Private” names or addresses, the usernames and passwords, and the folder path. Only one active MSP 3 Server should be defined to use any one combination of values for these key attributes. Any differences in ANY of these key attributes results in a unique Relay Server. It is therefore possible for multiple MSP 3 Servers to “share” a given FTP or FTPS Server, as long as the Relay Server Objects are defined to use “parallel” accounts or folders to keep the traffic for different MSP 3 Servers segregated. Site Objects For each unique Site that will be managed by a given MSP 3 Server, a separate Site Object should be created. In MSP 3, Site Objects are created and edited from the Sites sub-tab of the Admin tab of the MSP 3 Console UI. Site Objects frequently reference Network Settings Objects and/or Relay Server Objects. All referenced Objects must be created before they can be referenced. User Objects For each unique User that will be allowed to log in to a given MSP 3 Server, a separate User Object should be created. In MSP 3, User Objects are created and edited from the Users sub-tab of the Admin tab of the MSP 3.0 Console UI. Users are defined by specifying the identification information for the User, specifying authentication credentials, and by specifying information about the Role and Scope that will be enabled for that User. In some cases it might well be appropriate to share User Objects between multiple MSP 3 Servers, if the same Users are desired to have the same access to each. SMS Carrier Objects In order to perform SMS-Based Staging, MSP 3 needs some information about the various WWAN carriers (service providers) that will be used to provide WWAN connectivity for Mobile Devices. This is accomplished via SMS Carrier Objects. For each unique WWAN carrier (e.g. Cingular, Verizon, Sprint, etc.) that will be used, a separate SMS Carrier Object should be created. An SMS Carrier Object identifies the method, addressing, and credentials required for delivering SMS messages to devices via that carrier. SMS messages can be delivered via SMTP (Simple Mail Transport Protocol) or SMPP (Short Message Point-to-Point Protocol), depending on the specific carrier. MSP Content Objects Once an MSP 3 Server is properly configured to work with and support the various entities within the Enterprise, Content Objects must be created and uploaded into the MSP 3 Object Library before there will be anything available to Stage or Provision. Your Enterprise and MSP Objects 19 Content Objects are described before the Staging and Provisioning Objects that reference them because they need to be created before they can be referenced. In actual use, the creation and management of Content Objects may be intermixed with Staging and Provisioning Objects as the Staging and Provisioning needs of the Enterprise evolve. The following figure illustrates the types of Content Objects and identifies both which types of Objects can reference other types of Objects and provides some guidelines on when and why they would be used. Packages Packages are the primary unit of Content in MSP 3 and define files and folders to be delivered to and commands to be executed on Mobile Devices. Packages can be created automatically by MSP 3, in some cases (e.g. Settings Packages), or Packages can be User-defined. User-defined Packages are created using either the AirBEAM Package Builder, which can be installed on any Windows PC via the MSP 3 Installer or using the AirBEAM OS Update Package Builder, which is specifically for building OS Update Packages and is available for download from the Symbol Beta Zone at the following link: http://devzone.symbol.com/betazone.cfm?nav=2. 20 MSP 3.1 User’s Guide Once User-defined Packages have been created using the appropriate Package Builder(s), they can be uploaded into MSP 3 Object Library from the Packages sub-tab of the Library tab of the MSP 3 Console UI. Once Packages are in the MSP 3 Objects Library, they can be referenced in Bundle Objects which can then be referenced by Staging and/or Provisioning Objects. Package Versions Versioning of Packages is a valuable MSP 3 feature that allows for management of different versions of a Package without the requirement of renaming them. Navigating to the Library->Packages page will display a list of Packages by name and version. Clicking on the Package name link (e.g. abup30) will display the Packages>Package Detail page. Hitting the “Manage” button on this page will display the different versions of the Package available and the Bundles that contain steps referencing each version of the Package. The User may change the version referenced by a Bundle by selecting the check box for that Bundle and then selecting the desired version in the “Change To” drop down list. Save the change by hitting the “Apply” button. A note worthy feature in Package versioning is the ability of MSP 3.1 to make modifications to a Package without deactivating Policies. For example a Bundle step may be modified to include a newer version of a Package. After hitting the “Finish” button a Warning will be displayed listing the Policies that will be deactivated upon completion of the edit. If you wish to leave one or more affected Policies active, simply select the “check box” for the Policies that should Remain Active and hit the “Save” button. Settings Objects Settings Objects define configuration changes to be made to Mobile Devices. Settings Objects can be directly applied to Mobile Devices by referencing them from a Staging Profile Object. Settings Objects can also be used as an alternate form of Content in MSP 3 by referencing them from a Bundle Object. When used as Content, MSP 3 automatically creates the Settings Packages required to deploy and apply them. In MSP 3.0, Settings Objects could only be created and edited using the MSP 3.0 Object Builder utility, not directly using the MSP 3.0 Console UI. Beginning with MSP 3.1, Settings Objects are created and edited from the Settings sub-tab of the Library tab of the MSP 3 Console UI. Consequently, the MSP Object Builder utility will now longer be provided or supported from MSP 3.1 onwards. Additional information on Settings Objects is contained in Appendix A, later in this document. Message Set Objects Message Set Objects are Objects that allow messages to be optionally associated with Bundle Objects so they can be presented to Mobile Device Users during Provisioning. In MSP 3.0, Message Set Objects could only be created and edited using the MSP 3.0 Object Builder utility, not directly using the MSP 3.0 Console UI. Beginning with MSP 3.1, Message Set Objects can be created and edited from the Message Sets sub-tab of the Library tab of the MSP 3 Console UI. Consequently, the MSP Object Builder utility will now longer be provided or supported from MSP 3.1 onwards. Your Enterprise and MSP Objects 21 Bundle Objects Bundle Objects are the primary unit of Staging and Provisioning in MSP 3 and define the Deployment Steps to be performed during Staging or Provisioning operations. A Bundle Object can specify any number of Packages to be installed or uninstalled, in any order. When installing a Package, a Bundle can also specify that the Package should “Force Install”, which means that it will be installed even if the same version of the Package is already present on a device. This overrides the default behavior where a Package is “skipped” if the same version of that Package is already on the device. This can be useful with “Control” Packages, where the primary purpose of the Package is to perform a “Control Action”, not to deliver Content. A Bundle Object can also specify that reboots be performed at any point amidst the installing and uninstalling of Packages. A Bundle Object can optionally specify a Message Set Object to cause messages to be presented to the Mobile Device User during Provisioning of that Bundle. In MSP 3, Bundle Objects are created and edited from the Bundles sub-tab of the Library tab of the MSP 3 Console UI. Bundle Objects can reference Packages and/or Settings Objects. Note that any referenced Objects must be created before they can be referenced. Staging Objects The following figure illustrates the types of Staging Objects and identifies both which types of Objects can reference other types of Objects and provides some guidelines on when and why they would be used. 22 MSP 3.1 User’s Guide Staging Profile Objects Staging Profile Objects define the operations to be performed during Staging in MSP 3. Staging Profile Objects can reference Settings Objects to define how to configure Mobile Devices and/or a Bundle Object to define Content to deploy to Mobile Devices. In MSP 3, Staging Profile Objects are created and edited from the Staging Profiles subtab of the Staging tab of the MSP 3 Console UI. To perform Staging on “fresh out of the box” Mobile Devices, some configuration of the devices (e.g. configuring a network connection and Relay Server) is almost always required to prepare the devices for Content deployment. It may sometimes be desirable to re-Stage devices if they need to be reconfigured for alternate uses. Settings Objects provide a generic and extensible means to define and apply configuration to Mobile Devices. Settings applied directly during Staging are called Staging Settings. Staging Objects can be made into Staging Settings by using the “Inherit from Site” option when creating a Staging Profile Object, causing it to inherit all Settings Objects defined as part of a referenced Staging Site. Alternately, Staging Objects can be made into Staging Settings using the “Select pre-defined Settings” option to explicitly reference one or more Settings Objects when creating a Staging Profile Object. It is important to note that Staging Settings are applied first, before any Content is deployed. This is a critical distinction since successful Content deployment often relies on the configuration performed by the Staging Settings. It is possible to define a Profile that has no Content to deploy (i.e. specifies no Bundle), in which case the ONLY action performed by the Staging operation would be the configuration defined by the Staging Settings. This might be done, for example, if the ONLY purpose of the Staging was to (re)configure a device onto a wireless network. It is also important to note that Staging Settings are, by definition, transient. Staging Settings are applied when Staging is performed. While the configuration changes made by Staging Settings are NOT removed when the Staging is complete, neither is any specific action made to make them persist. As a result Staging Settings generally will NOT persist across subsequent cold/clean boots (depending on the device). This is intentional and, after consideration, will be seen as desirable. Staging Settings have no versioning or traceability and hence, if they WERE made persistent, there would be no way to detect that they were present or to remove them if they became obsolete. In SOME cases, certain Settings classes (e.g. Network.WLAN.*) may provide their own built-in persistence mechanisms, for backward compatibility with prior versions of MSP. The use of these legacy persistence methods is not recommended, however, since MSP 3 provides a more flexible and reliable method of accomplishing persistence, one that can be applied to ALL classes of Settings Objects. When Settings Objects are converted into Packages by MSP 3, they are referred to as Settings Content. Settings Content is, by definition, persistent. Settings Packages deployed as Content to devices are persistent because they will automatically be reapplied as needed, thus making them automatically persist across cold/clean boots. This is the recommended way of accomplishing persistence since it can be applied to ALL classes of Settings Objects, even ones added through the development of Plug-Ins. Settings Objects can be made into Settings Content by referencing them in an install step when creating a Bundle Object. Settings Objects can alternately be made Settings Content by referencing them in a Production Site and inheriting Settings from that Production Site in a Staging Profile Object. Your Enterprise and MSP Objects 23 A key advantage of using Settings Content is that since Settings Objects are packaged, they are also versioned. This makes sense when you think about it. Anything that is persistent should be traceable and versioned. Otherwise it could be very difficult to accurately determine the state of a device or how it got that way. MSP 3 uses tried-andtrue AirBEAM Packages to achieve persistence, traceability, and versioning of Settings Content. The actual Content to be deployed by a Staging Profile Object (if any), is specified by referencing a Bundle Object, which MUST already have been defined. Staging Options Within Staging Objects Staging Options can be defined as part of a Staging Profile Object to define the Staging Method(s) that will be allowed to be used when Staging the Profile and the default types of barcodes that will be generated (if the Barcode Staging Method is selected). MSP 3.1 supports the following Staging Methods: • Barcode-Based Staging A Staging Profile can be rendered as barcodes in an Adobe Acrobat™ PDF file from the Staging Profiles sub-tab of the Staging tab of the MSP 3 Console UI using the Barcode Create link. The barcodes in the PDF file can be printed directly or the PDF file can be transmitted elsewhere for later printing. Once printed, barcodes can be scanned by a device to obtain the information required to perform the Staging for the Staging Profile. Depending on the type of barcode scanner present on a device, it may also be possible to scan barcodes directly from the PDF file displayed on a computer screen. • On Demand (Electronic) Staging A Staging Profile can be pulled directly from an On Demand Profile Server running within the Web Browser on a computer from which the MSP 3 Console UI is being run. The On Demand Profile Server can be invoked from the Staging Profiles subtab of the Staging tab of the MSP 3 Console UI using the Method On Demand link. Profiles can be electronically served-up to Mobile Devices via various types of connections, including: • Microsoft ActiveSync™ Connection An IP connection is typically automatically established when a device is directly connected to a computer running Microsoft ActiveSync™ via a USB or serial cable or cradle. The most common configuration would be where the On Demand Profile server is running on the computer to which the device is connected via Microsoft ActiveSync™. It would also work on with the On Demand Profile Server running on any other computer that is on the same subnet as the computer to which the device is connected via Microsoft ActiveSync™. If a Microsoft ActiveSync™ connection is established and if an On Demand Profile Server is running on a computer that is on the same subnet that is accessible from the connection, then Electronic Staging can proceed using that connection. • Ethernet Cradle Connection With an Ethernet cradle, an IP connection is typically automatically established when a device is inserted into an Ethernet cradle that is plugged directly into an Ethernet LAN backbone. Some devices come ready to use with their Ethernet cradles while others require software to be installed and configured before the 24 MSP 3.1 User’s Guide Ethernet cradle connection can be established. The MSP 3 Rapid Deployment Client does not provide any means to install Ethernet cradle software or configure or establish an Ethernet cradle connection, but can use Ethernet cradle connections for Staging, if they exist. If an Ethernet cradle connection exists and if an On Demand Profile Server is running on a computer that is on the same subnet that is accessible from the connection, then Electronic Staging can proceed using that connection. • Existing WLAN Connection If a WLAN IP connection is already configured and established, and if an On Demand Profile Server is running on a computer that is on the same subnet that is accessible from the connection, then Electronic Staging can proceed using that connection. • Well-Known WLAN Connection The MSP 3 Rapid Deployment Client (a.k.a. Staging Client) can be asked to attempt to configure and establish WLAN IP connections using pre-defined Motorola WLAN Settings. If the Staging Client is able to successfully configure and establish such a connection, and if an On Demand Profile Server is running on a computer that is on the same subnet that is accessible from the connection, then Electronic Staging can proceed using that connection. • SMS-Based Staging A Staging Profile can be pushed directly to WWAN-equipped Mobile Devices by converting the Profile into a sequence of SMS messages and sending those messages to the device. SMS Staging can be initiated from the SMS Staging Jobs sub-tab of the Staging tab of the MSP 3 Console UI using the Create button. The MSP 3 SMS Staging Client will intercept SMS Staging Messages and reassemble them into the original Staging Profile on the device. The device User can then elect to execute the Staging Profile to Stage the devices. SMS Device Objects In order to perform SMS-Based Staging, MSP 3 must have some information about the devices that will be Staged so it can deliver SMS messages to the devices. This is accomplished by creating SMS Device Objects to capture the required information, such as the device phone number, hardware identification number, and assigned carrier. When performing SMS Staging, a Profile can be sent to one or more devices identified by SMS Device Objects. Your Enterprise and MSP Objects 25 Provisioning Objects The following figure illustrates the types of Provisioning Objects and identifies both which types of Objects can reference other types of Objects and provides some guidelines on when and why they would be used. Condition Objects Condition Objects are used to limit the MSP 3 Agent from performing operations on a Mobile Device unless certain conditions are met on that device. In MSP 3.0, Condition Objects could ONLY be used as Readiness Conditions to control when Job Execution could occur. In MSP 3.1 and up, Condition Objects can also be referenced by Settings Objects. This new capability is described in more detail in Appendix A, later in this document. In MSP 3.0, Condition Objects could only be created and edited using the MSP 3.0 Object Builder utility, not directly using the MSP 3.0 Console UI. Beginning with MSP 3.1, Condition Objects are created and edited from the Conditions sub-tab of the Library tab of the MSP 3 Console UI. Consequently, the MSP Object Builder utility will now longer be provided or supported from MSP 3.1 onwards. 26 MSP 3.1 User’s Guide Additional information on the capabilities and usage of Condition Objects is contained in Appendix A, later in this document. Provisioning Policy Objects In MSP 3, Provisioning Policy Objects are created from the Policy Management sub-tab of the Provisioning tab of the MSP 3 Console UI. There are two types of Provisioning Policies: On-Going and Manual. On-Going Policies periodically evaluate applicability and Compliance and automatically take action as required to ensure Compliance. Manual Policies periodically evaluate applicability and Compliance, but take action to achieve Compliance ONLY when initiated via the MSP 3 Console UI. Aside from the method of initiation, the actual operation of the two types of Policies is identical. When defining a Provisioning Policy, Applicability Rules define the Mobile Devices to which the Policy is Applicable. A Policy can either be defined to apply to “All Devices” or a “Custom Rule” can be created. A custom rule allows expressions using any or all available Device Attributes to be used to determine the Applicability of the Policy. The Content to be deployed by a Provisioning Policy Object is specified by referencing a Bundle Object. All referenced Objects must be created before they are referenced. To prevent Provisioning operations from occurring on devices except under specific conditions, Readiness Conditions can be specified as part of a Provisioning Policy Object. Readiness Conditions are specified by referencing one or more Condition Objects. All referenced Objects must be created before they are referenced. A Policy can have multiple Condition Objects specified, in which case an implicit AND will be applied to all specified Condition Objects. This means that ALL specified conditions will have to be met before the Job created to implement the Policy will be executed on a device. If any conditions are not met, then the Job for that Policy for that device will be deferred and re-evaluated each time the device checks in until the Job is able to execute. Chapter 3 Performing Staging Once a Staging Profile Object is defined in MSP 3, the Profile defined by the Object can be Staged into one or more Mobile Devices. It is important to remember that Staging is always an operation that is initiated by and hence requires the attendance of a Mobile Device User. The Staging Options, defined as part of the Staging Profile Object, determines which methods the Mobile Device User is allowed to use to Stage the Profile. Before a Mobile Device User can Stage a Profile the Profile must be made available. • For Barcode-Based Staging, find the Profile in the list of Profiles shown on the Staging Profiles sub-tab of the Staging tab of the MSP 3 Console UI and click the Barcode Create link to produce an Adobe Acrobat™ PDF file containing the barcodes. The barcodes in the PDF file can be printed directly or the PDF file can be transmitted elsewhere for later printing. Once printed, barcodes can be scanned by a device to obtain the information required to perform the Staging for the Staging Profile. Depending on the type of barcode scanner present on a device, it may also be possible to scan barcodes directly from the PDF file displayed on a computer screen. • For On Demand (Electronic) Staging, find the Profile in the list of Profiles shown on the Staging Profiles sub-tab of the Staging tab of the MSP 3 Console UI and click the Method On Demand link. This will • For SMS Staging, go to the SMS Staging Jobs sub-tab of the Staging tab and click the Create button. Further details on the exact process followed for each Staging Method is provided in the following sections. 28 MSP 3.1 User’s Guide Staging Methods Barcode-Based Staging How Barcode-Based Staging Works The following figure illustrates the basic operation of Barcode-Based Staging Method. In accordance with the above figure, the Barcode-Based Staging Method process proceeds as described below: • An MSP 3 Console UI User creates Content and Staging Objects which describe the Staging Operation to be performed. In general, this consists of: • Ensuring that any Site and/or Relay Server Objects exist in the MSP Library, and creating any that are not. • Ensuring that all required Packages exist in the MSP Library, and creating and uploading any that are not. • Ensuring that all required Settings Objects exist in the MSP Library, and creating any that are not. • Creating a Bundle to desribed the exact deployment steps to be performing, including: • Install any required Packages and/or Settings Objects • Uninstall any desired Packages • Perform any required deployment steps Performing Staging 29 • Do all of the above in the proper relative order • Creating a Staging Profile to inherit from the proper Sites or specify the proper Settings Objects and to specify the Bundle. • The MSP 3 Server delivers Content to Relay Server(s), including: • Determines which Relay Server(s) require the Bundle. • Delivers each Package (.APD file and subfolder) that is referenced by the Bundle to the designated folder of each Relay Server that requires the Bundle if the Relay Server does not already have that Package. • Delivers the Bundle (.BDL file) to the JOBS sub-folder of each Relay Server that requires it. • An MSP 3 Console UI User selects a single Staging Profile and requests to print a barcode sheet for Staging one or more devices. A Mobile Device User invokes the Rapid Deployment function on a device and scans the barcodes on the barcode sheet appropriate for the Site at which the device is being Staged, the Site at which the device will be used, and the Staging Operation to be performed. The MSP 3 Staging Client configures the device as specified by the Staging Profile, contacts the Relay Server, downloads the Bundle, and performs the deployment steps, including installing or uninstalling Packages or performing specified reboot(s). The MSP 3 Staging Client pushes a Discovery Document (.XML file), describing the device, to the DISCOVERY sub-folder on the Relay Server. The MSP 3 Staging Client pushes a Staging Log (.completed or .failed file), describing the results of the Staging operation, to the LOGS sub-folder of the Relay Server. The MSP 3 Server pulls the Discovery Document and adds the device to the list of Staged Devices and pulls the Staging Logs and stores it for reference in the MSP 3 Database. An MSP 3 Console UI User consults the list of Staged Devices to see which devices have been Staged. For any device, he can also consult the Staging Logs to see what was Staged or to troubleshoot any Staging issues. • • • • • • How to use Barcode-Based Staging To generate barcodes for a single Staging Profile, click the “Create” link on the Staging Profiles sub-tab of the Staging tab of the MSP 3 Console UI to bring up the Generate RD Barcode Sheets page for the selected Profile. In MSP 3, it is not possible to generate barcodes for multiple Profiles at once. When the Generate RD Barcode Sheets page is displayed, it will show default values for the type(s) of barcodes to be produced based on what was defined in the Staging Options defined in the Staging Profile Object. The type(s) of barcodes to be produced can be changed before generation if the defaults do not suit the situation. Once the options are set correctly, clicking the “Generate” button creates and opens an Adobe Acrobat™ PDF file containing printable barcode sheet(s). The free Adobe Acrobat™ reader must be installed on the computer running the MSP 3 Console UI in order to view or print barcodes sheets. The PDF file can also be saved and then transmitted to other locations for remote use. 30 MSP 3.1 User’s Guide Once the barcode sheets are printed, they can be used to Stage devices. Simply launch the MSP 3 Rapid Deployment Client and scan the barcodes on the barcode sheet(s). If the device has an imager-based barcode scanner, it MAY also be possible to scan barcodes directly from the computer screen, depending on the screen type, lighting conditions, and device barcode scanner performance. Note that barcodes can be generated in one of two “RD Compatibility” modes: MSP 3 or MSP 2.X. If a Mobile Device currently has a Rapid Deployment Client version less than 3, then ONLY barcodes created in 2.X “legacy” mode can be used. Such barcodes will be limited by the capabilities of the Rapid Deployment Client present on the device (which must be indicated). If a Mobile Device has an Rapid Deployment Client version of 3 or higher, then barcodes created in EITHER mode can be used, but MSP 3 compatible barcodes will provide the most functionality and hence are recommended. If a mixture of devices with varying Rapid Deployment Client versions need to be Staged with a single set of barcodes, then the lowest version of Rapid Deployment Client present on any device should be selected. Performing Staging 31 On Demand (Electronic) Staging How On Demand (Electronic) Staging Works The following figure illustrates the basic operation of the On Demand (Electronic) Staging Method. In accordance with the figure above, the basic operation of On Demand (Electronic) Staging proceeds as follows: • • An MSP 3 Console UI User creates Content and Staging Objects which describe the Staging Operation to be performed. In general, this consists of the same steps described above for Barcode-Based Staging. The MSP 3 Server delivers Content to Relay Server(s), including: • Determines which Relay Server(s) require the Bundle. • Delivers each Package (.APD file and subfolder) that is referenced by the Bundle to the designated folder of each Relay Server that requires the Bundle if the Relay Server does not already have that Package. 32 MSP 3.1 User’s Guide • • • • • • • • • • • Delivers the Bundle (.BDL file) to the JOBS sub-folder of each Relay Server that requires it. An MSP 3 Console UI User selects one or more Staging Profiles and requests to Stage them On Demand. The MSP 3 Server gathers together the selected Staging Profiles with the On Demand Server and delivers it to the PC. The MSP 3 Console UI User starts the On Demand server that is now running in the Web Browser on his PC. A Mobile Device User invokes the Rapid Deployment function on a device and requests either the Search Connected Networks or Search Unconnected Networks function. The MSP 3 Staging Client locates the On Demand Server running on the PC and downloads a Staging Profile from it. The MSP 3 Staging Client configures the device as specified by the Staging Profile, contacts the Relay Server, downloads the Bundle, and performs the deployment steps, including installing or uninstalling Packages or performing specified reboot(s). The MSP 3 Staging Client pushes a Discovery Document (.XML file), describing the device, to the DISCOVERY sub-folder on the Relay Server. The MSP 3 Staging Client pushes a Staging Log (.completed or .failed file), describing the results of the Staging operation, to the LOGS sub-folder of the Relay Server. The MSP 3 Server pulls the Discovery Document and adds the device to the list of Staged Devices and pulls the Staging Logs and stores it for reference in the MSP 3 Database. An MSP 3 Console UI User consults the list of Staged Devices to see which devices have been Staged. For any device, he can also consult the Staging Logs to see what was Staged or to troubleshoot any Staging issues. How to use On Demand (Electronic) Staging To serve up a single Staging Profile to one or more Mobile Devices, click the “On Demand” link in the Method column of the Staging Profiles sub-tab of the Staging tab of the MSP 3 Console UI to cause the On Demand Profile Server to be opened and serve up the single Profile selected. To serve up multiple Profiles at once, check the boxes at the far left of all desired Profiles and then click the “On Demand Staging” button to cause the On Demand Profile Server to be opened and serve up all the selected Profiles. When the On Demand Profile Server is opened, the Staging Server page is presented. The selected Profile(s) are downloaded to Web Browser along with the On Demand Profile Server, which is executed on the computer within the context of the Staging Server page. Once the Staging Server page is displayed, click the “Turn Staging server on” button to enable the On Demand Profile Server and begin serving up the selected Profile(s). Once the Staging Server is on, it can be used to Stage one or more devices. Simply launch the Rapid Deployment Client, click the “Options” button, and then select either the “Search Connected Networks” option or the “Search Unconnected Networks” option. Connected Networks are Networks that are already connected and can be checked to see if a Staging Server can be found. Unconnected Networks are the Well-Known WLAN Performing Staging 33 connections that are automatically configured and established to see if a Staging Server can be found. When requested by one of the above options, the Rapid Deployment Client will begin searching for a Staging Server. If it finds one, it will get a list of all Profiles being served that are suitable for Staging on that device (based on Model and OS only). This could lead to one of the following results: • There are no suitable Profiles being served In this case, a message will be displayed to the device User and the Staging process will terminate. • There is exactly one suitable Profile being served In this case, the single suitable Profile will be executed automatically. • There are multiple suitable Profiles being served In this case, the device User will be presented with a list of all suitable Profiles and requested to select one for execution. The Staging Server page will hold the selected Profile(s) as long as it is open. The Staging Server can be kept open, whether on or off, as long as is necessary, but should be closed, using the “Exit” button, when it is no longer needed. Note that any changes to Staging Profile Objects made within the MSP 3 Console UI will NOT be reflected in the Profiles served by the Staging Server, since the Profiles are cached within the Staging Server. When the server is closed and reopened, the Profiles will be re-downloaded and hence will reflect any changes that may have been made. The Staging Server will keep track of and display the number of and identity of devices that have been Staged since it was turned on. The Staging Server can be left running as long as necessary, but should be stopped, using the “Turn Staging server off” button, when it is no longer needed. Note that each time the server is turned off, the number of devices Staged will be set back to zero and the list of device identities will be cleared. 34 MSP 3.1 User’s Guide SMS Staging How SMS Staging Works The following figure illustrates the basic operation of the SMS Staging Method. In accordance with the figure above, the basic operation of SMS Staging proceeds as follows: • • • An MSP 3 Console UI User creates Content and Staging Objects which describe the Staging Operation to be performed. In general, this consists of the same steps described above for Barcode-Based Staging, but in addition this consists of: • Ensuring that an SMS Carrier Object is created to describe each Cellular Carriers over which SMS messages will be sent to Stage one or more devices. • Ensuring that an SMS Device Object is created for each device that will be Staged using SMS. The MSP 3 Server delivers Content to Relay Server(s), including: • Determines which Relay Server(s) require the Bundle. • Delivers each Package (.APD file and subfolder) that is referenced by the Bundle to the designated folder of each Relay Server that requires the Bundle if the Relay Server does not already have that Package. • Delivers the Bundle (.BDL file) to the JOBS sub-folder of each Relay Server that requires it. An MSP 3 Console User selects a single Staging Profile and requests to Stage it via SMS Staging to a collection of SMS Devices. Performing Staging 35 • • • • • • • The MSP 3 Server converts the Staging Profile into a set of SMS messages for each SMS Device and delivers the SMS messages via the associated SMS Carrier for each SMS Device. A Mobile Device User determines that a Staging Profile is available on a device and requests to process it. The MSP 3 Staging Client configures the device as specified by the Staging Profile, contacts the Relay Server, downloads the Bundle, and performs the deployment steps, including installing or uninstalling Packages or performing specified reboot(s). The MSP 3 Staging Client pushes a Discovery Document (.XML file), describing the device, to the DISCOVERY sub-folder on the Relay Server. The MSP 3 Staging Client pushes a Staging Log (.completed or .failed file), describing the results of the Staging operation, to the LOGS sub-folder of the Relay Server. The MSP 3 Server pulls the Discovery Document and adds the device to the list of Staged Devices and pulls the Staging Logs and stores it for reference in the MSP 3 Database. An MSP 3 Console UI User consults the list of Staged Devices to see which devices have been Staged. For any device, he can also consult the Staging Logs to see what was Staged or to troubleshoot any Staging issues. How to use SMS Staging When devices are equipped with WWAN radios and have been set up with data service from WWAN carriers that provide ‘short message service’ (SMS) text messaging, SMS Staging can be used to push a Staging Profile to one or more devices. In order to support SMS Staging, a Mobile Device must have the MSP 3 SMS Staging Client installed in order to detect and process the SMS messages that will be used to deliver the Profile to the device. To deliver a Staging Profile to one or more Mobile Devices using SMS Staging, go to the SMS Staging Jobs sub-tab of the Staging tab of the MSP 3 Console UI and click the Create button. In MSP 3, it is not possible to send more than one Staging Profile via SMS Staging in a single SMS Staging Job. The following MSP 3 Objects items are required to use the SMS Staging Method: • • • SMS Carrier Object(s) define the cellular provider (e.g. Cingular, Verizon, etc.) that a device uses for cellular service and SMS message delivery. SMS Carrier Objects are typically defined in advance by a User with the Administrator Role for use during later SMS Staging operations. SMS Device Object(s) defines individual WWAN-enabled devices that can be Staged using SMS Staging. Each SMS Device Object references an SMS Carrier Object, which must already exist. SMS Device Objects must exist before they can be used to Stage devices using the SMS Staging Method. A Staging Profile Object must exist to define the Staging to be performed before the SMS Staging Method can be invoked. When a Mobile Device with SMS Staging capability receives SMS Staging messages, it will consume them, extract the Staging Profile encoded within them, and make the Profile available to the User for Staging. Note that SMS Staging is not automatic and requires User intervention to actually initiate the Staging process based on an extracted Staging Profile. The User will be notified via a pop up window and an SMS message in their inbox 36 MSP 3.1 User’s Guide that a Staging Profile is available for Staging. The User must manually launch the SMS Staging Client software, choose a Staging Profile, and initiated the Staging process. The details and needed steps for configuring Objects for SMS Staging and the tasks required to perform SMS Staging are the following. The following steps describe how to perform SMS Staging: • • • • • • A User creates SMS Carrier Object(s) using the MSP 3 Console UI. A User creates Staging Profile Object (s) using the MSP 3 Console UI. A User creates SMS Device Object (s) using the MSP 3 Console UI. A User creates SMS Staging Job using the MSP 3 Console UI. A Mobile Device User interacts with the SMS Staging Client on a Mobile Device and initiates Staging. A User tracks Staging status using the MSP 3 Console UI. Viewing and Reporting on Staging Status The Staging Status of the one or more devices can be viewed using the Staged Devices sub-tab of the Staging tab of the MSP 3 Console UI. A device will appear in on the list of Staged Devices only when it successfully completed Staging via MSP 3. Click on the link to a device in the “Device ID” column to display the Device Detail page containing detailed information regarding the device. The Device Attributes section displays information determined about the device during the Staging process. The Installed Packages section displays a list of Packages that are installed on the device. Click on the number in the “# of Logs” column to display the Contents of the Staging Logs captured during the Staging Process for a device. This enables the details of Staging operations to be examined, to verify success or detect, diagnose, and correct problems with the Staging of Mobile Devices. Note that Staging Status is not available for devices that are staged using an MSP 2.xcompatible Rapid Deployment Client (Legacy Staging, see next section). Legacy Staging MSP 3 supports many different model, OSes, and revisions of Mobile Devices. Many of these devices ship with the MSP 3 Staging Client pre-installed, but some, especially older, devices ship with an older MSP 2.x-compatible Rapid Deployment Client. Devices that ship with an older (earlier than version 3) Rapid Deployment Client are referred to as Legacy Devices. Legacy Devices can be used with MSP 3 Stage and Provision Editions, but the MSP 3 Client will need to be upgraded before full MSP 3 functionality will be available. Legacy Devices can be upgraded to a newer MSP 3 Client by using the Legacy Staging Process whereby the old Rapid Deployment Client is used to Stage the new MSP 3 Client. The Legacy Staging Process on Legacy Devices can only support the forms of Staging supported by the version of the Rapid Deployment Client they have. This will definitely rule out On Demand (Electronic) Staging and SMS Staging and may limit the features available in Barcode-Based Staging. Once a device has completed the Legacy Staging Process, all features of MSP 3 will be available for use with that device. Performing Staging 37 Legacy Staging Prerequisites Before performing the Legacy Staging Procedure, ensure that you have met all the following pre-requisites. Ensure that Legacy Devices are listed on the MSP 3 Supported Devices List. For current reference information related to supported devices, please see http://support.symbol.com/support/product/softwaredownloads.do. • Know the version(s) of Rapid Deployment Client that are on the Legacy Devices Legacy Staging can generate barcodes that are compatible with various versions of Rapid Deployment Clients from 1.1 onward. Selecting a newer Rapid Deployment Client will enable newer features, especially smaller barcodes and/or more WLAN security options. But you cannot use barcodes that target a newer version of Rapid Deployment Client than the version present on a given device. If you have a mixture of devices with different versions of Rapid Deployment Clients, then you may want to consider the benefits of using a single “least common denominator” barcode sheet vs. having several more precisely targeted barcode sheets. Note: Legacy Staging is a one time operation that will need to be performed on EVERY LEGACY DEVICE before full MSP 3 functionality will be available. • Have MSP 3 installed on a server and properly configured Legacy Staging requires either MSP 3 Stage Edition or MSP 3 Provision Edition to be installed, properly configured, and available for use. • Have the two Packages abup30.apf and enable30.apf available separately from MSP 3. These Packages are required for performing the Legacy Staging Procedure and can be installed as part of the workstation components via the MSP 3 Installer. Note: Some Legacy Devices may require patches in order to work correctly with MSP 3. In such cases, the required patches will be listed in the MSP 3 Device Compliance List. Any required patches should be installed BEFORE the “abup30” Package is installed. This would normally be done in the same Staging Profile as the “abup30” Package, as part of Legacy Staging. If a required patch is not installed before Legacy Staging Device is complete, then the device may not operate correctly with MSP 3. In such a case, the device should be Staged again to add the missing patch. Legacy Staging Process To perform Legacy Staging, perform the following steps in order: 1. Verify that the Packages abup30.apf and enable30.apf are present in the MSP 3 Package library on the MSP 3 Server. These Packages should present automatically as part of the MSP 3 Server installation. 2. Define one or more Relay Server(s) that represent the FTP Server(s) that will be used to perform the Legacy Staging. Note that secure FTP (FTPS) cannot be used during Legacy Staging. 3. Define one or more Network.WLAN Settings Objects that represent the WLANs over which the Legacy Staging will be performed. This is done using the MSP 3 Server console. 38 MSP 3.1 User’s Guide Legacy Staging can only be performed over WLAN and every unique set of WLAN Settings over which Legacy Staging will be performed must be defined as part of a Network.WLAN Settings Object. Note that a Network.WLAN Settings Object is not required if the device is already configured for use on a WLAN over which the target FTP Server can be reached. 4. Using the MSP 3 Server console, define a single Bundle containing the Package(s) to be Staged. In MSP 3, Packages must be included in a Bundle to be Staged. Note: To enable Provisioning after Staging, include both enable30.apf and abup30.apf. In MSP 3.1, abup30.apf must be installed before enable30.apf. 5. Define one or more Staging Profile(s) on the MSP 3 Console UI to Stage the Bundle to the device(s). If multiple Relay Servers and/or WLAN Settings will be used for Legacy Staging, it will either be necessary to create multiple Staging Profiles or to use late site binding. 6. Create sheet(s) of legacy barcodes for the Staging Profile(s) previously created. This is done by clicking “Create” in the barcode column for each Staging Profile. Make sure to check the 2.x checkbox for RD compatibility and select the RD version from the drop down that is appropriate for your device(s). When in doubt, select the lowest version of any devices you will be working with. DO NOT SCAN THE BARCODES YET! 7. Using the AirBEAM Package Builder, which can be installed a PC using the MSP 3 installer, load the Packages abup30.apf and enable30.apf manually onto each FTP Server that will be used for Legacy Staging, as follows: Open each APF file in AirBEAM Package Builder and select FileÆInstall Package (APD). Complete the information about the desired FTP Server and click OK. This must be repeated for each Package to be Staged for each FTP Server. Note: Although MSP 3 distributes Packages automatically to all Relay Servers, this feature is NOT provided when using Legacy Staging. Because it leverages older versions of Rapid Deployment Clients, Legacy Staging uses an older Package naming convention than is used by MSP 3. 8. Using the Rapid Deployment Client on each Legacy Device, scan the barcode sheet to perform Legacy Staging. It is important to get the right barcode sheet for the right device if multiple Staging Profiles are used. Once Legacy Staging has been successfully completed for a device, that device will have the MSP 3 Client loaded on it and will be ready to use with MSP 3. Chapter 4 Performing Provisioning Provisioning Operation How Provisioning Works The following figure illustrates how the Provisioning process works. 40 MSP 3.1 User’s Guide In accordance with the above figure, the Provisioning process is future detailed in the following sections. Policy Activation and Deactivation Once a Provisioning Policy Object has been defined in MSP 3, it can be used to Provision one or more Mobile Devices. Note, however, that a Policy must be activated before it will cause any Provisioning to occur. A Policy can be deactivated to prevent it from performing additional Provisioning. A Policy must be deactivated before it can be edited or deleted. If a Policy fails for one or more devices, deactivating and then activating the Policy will also force MSP 3 to retry the Policy on all devices to which it is Applicable and which are not yet Compliant to the Policy. Policy Types On-Going Policies If an active Policy is of type On-Going, MSP 3 will evaluate the Policy periodically to determine the devices to which it is Applicable and to determine the Compliance status for each Applicable device. Based on this periodic evaluation, MSP 3 will detect new devices and changes in existing devices and automatically create Jobs as needed to deploy any software required to bring Applicable devices in Compliance with the Policy. Manual Policies If an active Policy is of type Manual, MSP 3 will also evaluate the Policy periodically, just as described for an On-Going Policy, to determine the devices to which it is Applicable and the Compliance status for each Applicable device. But unlike an On-Going Policy, MSP 3 will NEVER automatically create Jobs to deploy software to achieve Compliance to a Manual Policy. Jobs will only be created for a Manual Policy when the Policy is manually pushed by clicking either the Push or Push All link for the Policy in the list of devices shown on the Compliance Summary or Policy Management sub-tabs of the Provisioning tab. Policy Applicability When a Policy is periodically evaluated, the Applicability Rules defined for the Policy are checked to determine the set of devices to which the Policy is Applicable. Policy Compliance For each device to which a Policy is determined to be Applicable, the Bundle referenced by the Policy is tested to determine if that device is Compliant or Not-Compliant to that Policy, as follows: • If any Deployment Step within the Bundle would require action, based on the last reported state of the device, then the device is considered Not-Compliant to that Policy. In particular: Performing Provisioning 41 • • • If a Bundle specifies that a specific version of a Package is to be installed and the device does NOT have that specific version of that Package, then that device is considered Non-compliant to that Policy. • If a Bundle specifies that a Package is to be uninstalled and the device has ANY version of that Package, then that device is considered Non-compliant to that Policy. If no Deployment Steps within the Bundle would require action for a device, then that device is considered Compliant to that Policy. Note that Reboot deployment steps in a Bundle are ignored when determining the Compliance status of a device to a Policy that references that Bundle, but will be executed if the decision is made to execute the Bundle on a device. Job Initiation When a Policy is Applicable to a device and that device is Not-compliant to that Policy, then a Job (.delivered file) is queued up to go to the JOBS sub-folder of the Relay Server associated with that device. The Job will tell the device to execute the Bundle referenced by that Policy. Once a Job is sent to the Relay Server associated with a device, it will be picked up by the device when the MSP Agent on the device later checks-in with the Relay Server. Readiness Conditions When the MSP Agent on a device checks-in with a Relay Server, it locates Jobs (.delivered files) in the JOBS sub-folder on the Relay Server that are specific to that device. Jobs are processed in the order they were created. If a Policy references one or more Condition Objects, then the MSP 3 Agent on the device evaluates these Readiness Conditions to determine if it is appropriate to execute the Job on the device under the present conditions. If any Readiness Condition does not pass, then the Job is deferred (the Job file is renamed on the Relay Server to .deferred) and will checked again later on a subsequent check-in. Depending on the conditions specified, a Job could be deferred multiple times and could continue to be deferred indefinitely, until all Readiness Conditions are met. Or, depending on the Condition Objects(s) used, the Job could fail if a specific Readiness Condition is not met within a specified number of tries or within a specified time period. Job Execution and State When all Readiness Conditions for a Job are met, the Job is executed by processing the Bundle in a way nearly identical to that used for processing Bundles during Staging. The only significant difference is if the Bundle references a Message Set Object, in which case messages may be presented to the device User during the processing of the Bundle. A Job starts in the Queued state and remains in that state until it has been delivered to the appropriate Relay Server, at which time it is changed to the Delivered state. A Job changes from the Delivered state to the Deferred state if the MSP Agent decides to defer the Job because one or more conditions are not met. A Job changes to the Started state when the MSP Agent begins executing the Job. A Job changes to the Completed or Failed state when the MSP Agent finishes executing the Job. 42 MSP 3.1 User’s Guide Note that a Job invokes the execution of the Bundle referenced by the Policy for which the Job was created, even if only some of the steps in the Bundle are required. However, the MSP 3 Agent on the device will optimize the execution of the Bundle as follows: • • • If a deployment step requests the installation of a specific version of a Package and the device already has that exact version of that Package, then the Package will be skipped unless the Bundle specifies the Force Install option for that Package. If a deployment step requests the uninstallation of a Package and the device has no version of that Package, then the step will be ignored. Reboot deployment steps are always executed, in their specified sequence within the Bundle, whenever a Bundle is executed. Job Progress When a Job is executing, the Job state is recorded in the extension of the Job file that resides on the Relay Server. The MSP Agent renames the Job file to reflect the changing status of the Job as processing proceeds. When the Job status is changed to Completed or Failed, a Job log is also uploaded to the Relay Server, providing details of the progress of the Job during processing. MSP periodically retrieves Job status from the Relay Server and updates the Policy with the progress of all extant Jobs. The Compliance status of all Policies can be monitored from the Compliance Summary sub-tab of the Provisioning tab. By definition, a Job will be created for a device only if that device is Non-compliant to the Policy for which that Job was created. By examining devices that are Non-compliant to a Policy, the Job status for a Job can be monitored to see how it is progressing. If a Job fails, the Job log can also be viewed to see what went wrong and to determine what corrective action should be taken. How to use Provisioning Policy Activation When a Policy is first created or imported into MSP 3, it is inactive. A Policy can be activated by using the Activate button on the Policy Detail page for the Policy or by using “Activate” link in the list of Policies shown on the Policy Management sub-tab of the Provisioning tab. If a Policy is active, then it must be deactivated before it can be edited or deleted. A Policy can be deactivated by using the Deactivate button on the Policy Detail page for the Policy or by using the “Deactivate” link in the list of devices shown on the Policy Management sub-tab of the Provisioning tab. To edit or delete a Policy, navigate to the Policy Detail page for the Policy from either the Compliance Summary or Policy Management sub-tabs of the Provisioning tab by clicking the link for the Policy in the “Name” column. The Policy Detail page will show Edit and Delete buttons only for deactivated Policies. If a Bundle Object that is referenced by one or more active Policies is changed, the Policies can be impacted, thus impacting in-progress Provisioning operations for many devices. In such cases, a warning is displayed showing a list of Policies affected by the changed Bundle. The default behavior is for all affected Policies to be automatically deactivated. This can be overridden by selecting one or more Policies to be left active. Performing Provisioning 43 Policy Types On-Going Policies An On-Going Policy is typically used when certain Packages should be on all devices that meet certain criteria. Any time a new device is discovered that meets the specified criteria, the Packages will be deployed automatically. Any time a device that meets the specified criteria changes and no longer has the specified Packages, corrective action will be taken to re-deploy the Packages automatically. Manual Policies A Manual Policy is typically used when a “Control Action” needs to be performed on one or more devices. This would be accomplished by delivering a “Control Package” via a Bundle referenced by a Manual Policy. One example of a “Control Action” would be locking or unlocking a Mobile Device. Another example might be presenting information to a device User, such as via a text message, or by playing an audio or video file. It would generally not make sense to have such a “Control Action” be repeated automatically as would happen if an On-Going Policy were used. Additionally, Manual Policies are often combined with the “Force Install” Bundle option to cause a “Control Package” to be installed even if it the same version of the Package is already on the device. A Manual Policy might also be used during troubleshooting to test out the deployment of patches or workarounds to selected devices to see if they correct a specific problem. A Manual Policy might also be used to deliver targeted software components, such as RemoteControl, to a device on an as-needed basis. Policy Applicability The devices for which a Policy is Applicable and Not-Applicable can be accessed from the Policy Detail page for the Policy. Viewing and Reporting on Provisioning Status Compliant Status A summary of the Compliance Status of all active Policies can be viewed from the Compliance Summary sub-tab of the Provisioning tab. The Compliance Summary page displays a list of Policy Names and a summary showing the number of device that are and are not Compliant to each Policy. Not-Compliant Status Beginning with MSP 3.1, the Compliance Summary sub-tab of the Provisioning tab has been enhanced to further break down the reasons for a Policy being Not-Compliant. A Policy could be Not-Compliant for any for any of the following reason, which are summarized separately. • In-Progress This status indicates that a Job has been sent to a device to enforce Compliance and that the results of that Job are still pending. • Failed 44 MSP 3.1 User’s Guide This status indicates that a Job was sent to a device to enforce Compliance but that the Job failed and that it will NOT be retried until the Policy is disabled and reenabled. • Timed-out This status indicates that a Job was sent to a device to enforce Compliance but that the Job did not complete before it expired and that it will NOT be retried until the Policy is disabled and re-enabled. • Must Push This status indicates that the Policy needs to be manually pushed to the device to achieve Compliance. Policy Details Clicking on a the link in the “Name” column in the Compliance Summary or Policy Management sub-tabs of the Provisioning tab will bring up the Policy Detail page. The “Device Information” section of the table displays the number of devices for which the Policy is Applicable and Not-Applicable. Clicking on the link for “Applicable” devices will navigate to Compliance Summary->Policy Detail->Compliance Overview page. This page displays Policy details as well as Bundle Steps and Device IDs. The “Last Job” column will navigate to the Compliance Summary->Policy Detail->Compliance Overview>Jobs for Device page which displays a list of Jobs by ID number along with the Action, Status, Results and Date of each Job for the specific device. Chapter 5 Using MSP Control Modules Purpose Although MSP 3.1 is primarily for Staging and Provisioning, it nonetheless provides a means for implementing some Control functionality. This is accomplished through the development, deployment, and use of Control Modules. The purpose of this document is to introduce the various types of Control Modules, describe specific Control Modules shipped with MSP 3.1, and explain how to use them. Control Module Types In MSP 3.1, a Control Module is any Package that performs any sort of Action on a device and can be deployed to one or more devices using MSP 3 Provision Edition. Control Modules are generally designed to leverage the capabilities of Provisioning may provide less functionality or no functionality when used with MSP Stage Edition. The basic types of Control Modules are described below. One-Time Action Control Modules A One-Time Action Control Module is one designed to perform some desired Action once each time it is deployed. This is typically done by including a utility program into a Package and invoking that utility program as part of the Install Command of that Package. Since a One-Time Action Control Module likely does not need to keep the utility in the device after it has been executed, the “Delete After Install” option can be used within the Package for various files to clean up and save storage space on the device. Since such a Package may leave little or no “residue” on the device, the uninstall command of the Package often has little or nothing to do. In most cases, a One-Time Action Control Module is deployed using a Manual Policy via MSP 3 Provision Edition. The Bundle deployed by the Manual Policy indicates that the Package that implements the Action Control Module is to be Installed with the Force 46 MSP 3.1 User’s Guide Install option. This ensures that the same Action Control Module can be pushed to the same device any number of times and the Package won’t be “skipped” because the same version of the Package is already in the device. When the Manual Policy is pushed to a given device, the Policy is marked as In Progress for that device and then a Job is queued to be sent to the device. When the device checks in and pulls and executes the job, the Bundle referenced by that Policy is executed. The Bundle causes the Package that implements the One-Time Action Control Module to be installed on the device. If the Install Command of the Package is successful (as a result of a ZERO return value from the called utility program), the Package install succeeds. If all the Packages in the Bundle succeed, then the Job issued by the Policy succeeds and that Policy is marked as Compliant for that device. So, for a One-Time Action Control Module, the Policy status, Compliant or Non-Compliant, is an indication of whether the action was successfully executed on one or more devices. MSP 3.1 currently DOES NOT include any One-Time Action Control Modules. MSP 3.0 did have some, including FetchDevInfo, which has been obsoleted and replaced by GetAdapters, which is a Repetitive Action Control Module. Nonetheless, One-Time Action Control Modules can easily be developed and used with MSP 3.1 and can provide a powerful method of executing custom actions. Repetitive Action Control Modules A Repetitive Action Control Module is very similar to a One-Time Action Control Module except the utility included in the Package is designed to be kept around and run repeatedly. This is accomplished using the new Check-In Command feature of Packages in MSP 3.1. Each time the MSP 3.1 Agent checks in with its Relay Server, it executes the Check-In command associated with any Packages that have one. This provides the ability for a Repetitive Action Control Module to execute periodically. Since such a Control Module must execute repetitively, it cannot remove all of its Content at the end of installation and hence generally should NOT use the “Delete After Install” option, like a One-Time Action Control Module might. Also, since a Repetitive Action Control Module may keep information around (in the device Registry or File System) to communicate information to itself between executions, it may require an uninstall command to clean up if/when the Package is uninstalled. In MSP 3.1, two Repetitive Action Control Modules are provided: GetAdapters and GetCabInventory. Each of these Control Modules executes periodically and captures information from the device and places it into the device registry where it will be reported to MSP 3 as Device Attributes via the discovery document sent via the Relay Server at the end of the check-in. Readiness Control Module A Readiness Control Module is one designed to install Content on one or more devices, which then makes the Content ready to be used by one or more subsequent Packages. Depending on the nature of the service, a Readiness Control Module might consist of an executable program, DLL, or any other Content that might be needed to perform a function needed by a Package deployed later. Using MSP Control Modules 47 Since the primary purpose of a Readiness Control Module is to place Content onto a device, it generally does NOT use the “Delete After Install” option, at least not on the primary Content files. Unless some special action (e.g. decoding, unpacking, registering, etc.) was required when installing a Package that implements a Readiness Control Module, its uninstall function likely has little to do. The main reason for having a Readiness Control Module is to separate a Package containing potentially large Content from a likely smaller Package that uses that Content. If the large Content were included in the Package that uses it, it would need to be transferred to each device each time it is needed. By separating the Content into a Package that is sent in advance, the Action can be performed with less impact on the device, network, etc. and with less total time lag when it is used. Some examples may help to illustrate this concept: • A large utility application or DLL is deployed in advance to make a device ready to perform a complex Action. • A large media file, such as a video, is deployed in advance to make a device ready to play that media file at need. A Readiness Control Module could be deployed to devices via Staging or via Provisioning, using either a Manual or On-Going Policy. The decision of the method used to deploy a Readiness Control Module would likely depend on which devices will likely use the Content. • If the Content changes seldom and many devices are likely to use it, then the Content might be Staged onto every device as a matter of course. • If the Content changes periodically and many devices are likely to use it, then the Content might be Provisioned via a On-Going Policy that can ensure that all devices have the proper version at all times. • If the Content is only occasionally needed on some devices, then it might be Provisioned via a Manual Policy, on an as-needed basis. Placing the Content into a separate Package allows it to be deployed at a more convenient time and/or to be skipped if it is already present on a given device. If a Policy is being used, the Package containing the Content could be included in the same Bundle as the Package that uses it. If the device already has the proper version of the Content, then the Package to deploy that Content would be skipped, otherwise it would be deployed. In MSP 3.1, no simple examples of Readiness Control Modules are provided. Nonetheless, Readiness Control Modules can easily be developed and used with MSP 3.1 and can provide a powerful method of executing custom actions. In addition, MSP 3.1 does provide some sophisticated Configurable Action Control Modules, which have all the characteristics of Readiness Control Modules as well as additional capabilities. Configurable Action Control Modules A Configurable Action Control Module is a sophisticated Control Module that combines aspects of a Readiness Control Module with those of a Repetitive Action Control Module. Such a Control Module typically also includes a Settings Plug-In that can be used to configure the ongoing repetitive action of the Control Module. Once a Configurable Action Control Module is installed on the device, a Settings Object can be created and pushed to the device via a Bundle referenced by a Manual or OnGoing Policy. When the Setting Object is applied on the device, the Plug-In part of the 48 MSP 3.1 User’s Guide Control Module communicates the information contained in the Settings Object to the Repetitive Action part and the ongoing repetitive action (during Check-In commands) is altered accordingly. In MSP 3.1, two Configurable Action Control Modules are provided: LockAndWipe and AutoSiteAssign. Each of these Control Modules are installed to prepare the device for later support of the repetitive action implemented by that Control Module, whose ongoing operation can be enabled, disabled, or altered by pushing a Settings Object. Server Control Modules A Server Control Module is one designed to deploy a Server onto one or more devices. This Server would typically auto-launch and either run continuously or periodically in order to provide some service. Some examples might include: • A Web Server, FTP Server, SOAP Server, or other similar Server application that listens for incoming network connections and provides well-defined services to applications on or off the device. • A RemoteControl Server that allows connections from PCs that will remotely control the operation of the device. • An data collection Server application that runs on the device and periodically collects data and delivers it to a remote location. • A local Policy evaluation Server that runs on the device and periodically checks the status of and enforces local Policies deployed to the device. Since the primary purpose of a Server Control Module is to start a Server running on a device, it generally does NOT use the “Delete After Install” option, at least not on the primary Server files. The install command of a Package that implements a Readiness Control Module generally should start the Server running and the uninstall command generally needs to shut down the Server so it can be cleanly uninstalled. Note that a Server Control Module may need to ensure that the Server is automatically restarted in the event the device is rebooted. This can be done via various device and OS-specific methods (such as shortcuts placed in specific folders). Such methods MAY be required if is important that the server start up very early following a reboot. But if the need to start the server early is not critical, then the server can be restarted by using the new Check-In Command feature of Packages in MSP 3.1. When the MSP Agent first checks-in, the server can use the call to the check-in command to start up. If a Server Control Module implements an HTTP server, then the Package can be augmented with a URL field that causes a button to be added to the Device Detail page of the MSP 3 Console UI for each device that has that Package in its Package Inventory. When the button is clicked, it launches the URL specified in the Package, which can connect to the HTTP server in the device. In MSP 3.1, two Server Control Modules are provided: RemoteControl and RemoteUI. Each of these Control Modules listens for incoming connections to provide the ability to control and troubleshoot a device remotely. Using MSP Control Modules 49 MSP 3.1 Control Modules This section will describe the Control Modules provided in MSP 3.1 and how to use them. GetAdapters The GetAdapters Repetitive Action Control Module is most commonly used as an enabler for the RemoteControl and RemoteUI Server Control Modules. In order to connect to a device for RemoteControl or RemoteUI purposes, it is important to know the IP address of the device to connect to. The GetAdapters Control Module sends up information about all networks adapters present in a device and also determines and sends up information on what it considers to be the “best” adapter for purposes of connecting to the device. Unlike the MSP 3.0 One-Time Action Control Module, FetchDevInfo, which it replaces, GetAdapters is a Repetitive Action Control Module and hence sends updated information, if it exists, each time the device checks in. This significantly increases the chances that the IP address information will be correct. This is especially true if the device is roaming between networks or if dynamic addressing is used. In addition to adapter information, this Control Module also sends some Device Attributes containing Phone information on WWAN-enabled devices. Further, some additional Device Attributes containing auxiliary information needed by the RemoteControl and RemoteUI Server Control Modules are sent, including keyboard type, screen size, default color depth, etc. GetAdapters Device Attributes The following is an example of the Device Attributes produced by this Control Module: UserAttribute.adapter.lannds1.class Cradle UserAttribute.adapter.lannds1.gatewayip 192.168.1.1 UserAttribute.adapter.lannds1.ipaddr 192.168.1.103 UserAttribute.adapter.lannds1.macaddr 00:A0:F8:E4:2F:FC UserAttribute.adapter.lannds1.name LANNDS1 UserAttribute.adapter.lannds1.subnetmask 255.255.255.0 UserAttribute.adapter.pccardx5cphoton1.class WLAN UserAttribute.adapter.pccardx5cphoton1.gatewayip 192.168.0.1 UserAttribute.adapter.pccardx5cphoton1.ipaddr 192.168.0.108 UserAttribute.adapter.pccardx5cphoton1.macaddr 00:15:70:6A:F9:C8 UserAttribute.adapter.pccardx5cphoton1.name PCCARDx5CPHOTON1 UserAttribute.adapter.pccardx5cphoton1.subnetmask 255.255.255.0 UserAttribute.adapterbest.adapter LANNDS1 UserAttribute.adapterbest.ipaddr 192.168.1.103 UserAttribute.adapterbest.macaddr 00:A0:F8:E4:2F:FC UserAttribute.adapterbest.name LANNDS1 UserAttribute.phone.manufacturer Sierra Wireless UserAttribute.phone.model EM5625D Rev 3 UserAttribute.phone.number 4807731375 UserAttribute.phone.revision 3.03.00:50800 UserAttribute.phone.serialnumber 602a5ca0 UserAttribute.phone.subscriber 6 UserAttribute.remotecontrol.bitdepth 16 UserAttribute.remotecontrol.keyboard MC70XX_NUMERIC UserAttribute.remotecontrol.screenheight 320 50 MSP 3.1 User’s Guide UserAttribute.remotecontrol.screenwidth 240 Note that although the GetAdapters Repetitive Action Control Module is primarily provided to support the RemoteControl and RemoteUI Server Control Modules, the Device Attributes delivered to the MSP Server could be useful for other purposes as well. The adapter information could be used in Policy Applicability Rules to limit sending certain types of Content to devices with certain types of connectivity. In addition, this information might come in handy as a reference during device troubleshooting. GetCabInventory The GetCabInventory Repetitive Action Control Module sends up information about all the CAB files installed on a device each time the device checks in. While MSP 3.1 automatically tracks the Packages installed on a device, some devices may have applications installed through CAB files instead. By using the GetCabInventory Repetitive Action Control Module, the list of installed CAB files can be tracked. If a CAB file is deployed using an Package, then the same “application” could be reported in two different ways, as an installed CAB (via GetCabInventory Repetitive Action Control Module) and as an installed Package (via the built-in MSP Package inventory tracking). Note however that if the CAB file were manually removed without uninstalling the Package that installed it, a discrepancy would occur which might be of interest when troubleshooting device operation. If a CAB file was NOT deployed using a Package, then it would ONLY be reported as an installed CAB (via GetCabInventory Repetitive Action Control Module). This could allow the detection of undesirable or “rogue” applications installed on devices using “out of band” methods. GetCabInventory Device Attributes The following is an example of the Device Attributes produced by this Control Module: UserAttribute.getcabinventory.myx20app1 My App1 UserAttribute.getcabinventory.thirdx20partyx20tool Third Party Tool AutoSiteAssign The AutoSiteAssign Configurable Action Control Module enables the automatic assignment and/or reassignment of devices to Sites dynamically, while they are being managed. Like all Configurable Action Control Modules, AutoSiteAssign must be Staged or Provisioned to a device before it can be activated. AutoSiteAssign is then configured and activated by applying a Settings Object of Class Control.AutoSiteAssign. The basic operation of AutoSiteAssign is to test to see if the device has “moved” to a new Site each time the device checks in. The device pulls a Relay Server Information File from the Relay Server when it checks in and uses the information contained therein to determine when/if the device should automatically be assigned to a new Site. There are two modes supported by AutoSiteAssign: • Assign Site Based On: The Relay Server accessed by the device In this mode, the ONLY information from the Relay Server Information File used to determine the eligible Sites for automatic assignment is the list of Site names that Using MSP Control Modules 51 reference that Relay Server. All Sites that reference the Relay Server will be considered potential candidate Sites. • Assign Site Based On: The Relay Server accessed by the device AND the WLAN Profile in use on the device In this mode, the WLAN Profile name (if any) of the Network Settings (if any) of each Site is used in addition to the list of Site names that reference that Relay Server. Only those Sites whose WLAN Profiles name match the WLAN Profile name currently in use on the device AND that also reference the Relay Server will be considered potential candidate Sites. Once the list of potential candidate Sites is determined based on the selected mode, if there is only ONE candidate, then that candidate is selected. If more than one candidate exists, then the Site is considered “Ambiguous” and the selection made for “Handle Site Ambiguity By” is used to determine what to do. There are two choices: • Handle Site Ambiguity By: Not automatically assigning a Site If this choice is made, no automatic assignment of the device to a Site will be made when the Site is ambiguous. In this case, the device is known to be at one of several Sites, but since the proper Site cannot be determined, no change is made. • Handle Site Ambiguity By: Asking the device User which Site to assign If this choice is made, the device User is prompted to select the Site from the candidate list when the Site is ambiguous. If the selected Site matches the Site to which the device was already assigned, then no action is required to assign the device to that Site. If the selected Site does not match the Site to which the device is currently assigned, then the Production Site Bundle for the new Site is automatically pulled from the Relay Server the next time the device checks in. Pulling the Production Site Bundle for the Site will apply the Settings defined for that Site AND will assign the device to that Site. AutoSiteAssign Device Attributes AutoSiteAssign sends up some information about what it does to help understand what automatic Site assignment activities have taken place on the device. The following is an example of the Device Attributes produced by this Control Module: UserAttribute.autositeassign.relayserver MyRelayServer UserAttribute.autositeassign.relayservercrc C970 UserAttribute.autositeassign.Profile MyWlan In the above example, the device is currently checking in via the Relay Server named “MyRelayServer” and is currently using the WLAN Profile named “MyWlan”. This information can be useful in determining how/why a device was assigned to a particular Site. While not sent by this Control Module, the following Device Attribute holds the Site to which the device is assigned and hence may be affected by the operation of this Control Module. UserAttribute.autositeassign.siteID MySite 52 MSP 3.1 User’s Guide LockAndWipe The LockAndWipe Configurable Action Control Module enables a device to be locked or unlocked or wiped either unconditionally (when initiated by Server Policy) or conditionally (when determined by device conditions defined by Server Policy). Like all Configurable Action Control Modules, LockAndWipe must be Staged or Provisioned to a device before it can be activated. LockAndWipe is then configured and activated by applying a Settings Object of Class Control.LockAndWipe. The basic operation of LockAndWipe is to check periodically to see if any Scenario defined by a pushed Settings Object is met and, if so, to take the Action defined for that Scenario. There may be multiple Scenarios specified, numbered starting from one (1). The Scenarios are checked in order. If a Scenario is met, then the Action is taken for that Scenario and then no further Scenarios are checked. If no Scenarios are met, then no Action is taken. Each Scenario must specify one of two possible modes: • Unconditional This mode causes the Scenario to ALWAYS be met. This is most commonly used when only a single Scenario is used, although it COULD also be used as the LAST Scenario in a list of Scenarios. But note that when an Unconditional Scenario is reached, the Action for the Scenario will be taken ONE time and then no further checking of ANY Scenarios will be done until the same or a different Settings Object is applied. • Conditional This mode causes the Scenario to test one or more Conditions, as specified by one or more Condition Objects. All Conditions specified for a Scenario must be met for the Action to that Scenario to be taken. In other words, there is an implicit AND between all specified Condition Objects for a given Scenario. There is no way to implement an OR between Condition Objects, but a similar result can be achieved by using multiple Scenarios that all specify the same action. Each Scenario must specify one of three possible types of Action: LockAndWipe Scenario Actions Lock The Lock Action causes the device lockdown UI to be invoked, thus preventing the device User from interacting with the UI of the device. If the device lockdown UI was already running, then this Action will cause it to be stopped and restarted to allow new configuration (if any) to be applied. When this action is selected, the text strings for all messages and buttons to be displayed by the lockdown UI can be specified. Default values are provided, but can be overridden by editing the default strings in the Settings Object. The following strings can be controlled: • Lockdown UI Title This is the text string to be displayed in the title of the lockdown UI (between the two icons). • Lockdown UI Message Prefix This is the text string to be displayed on the first message line of the lockdown UI Using MSP Control Modules 53 • Lockdown UI Message This is the text string to be displayed on the second message line of the lockdown UI. • Lockdown UI Message Suffix This is the text string to be displayed on the third message line of the lockdown UI (just above the password entry field, if present). • Unlock Button Text This is the text string to be displayed on the Unlock Button (if one is presented). • Unlock Password This is the text string to be used as the Unlock Password. If this text string is anything EXCEPT a single asterisk character (“*”), then the device operator will be allowed to enter a password on the device to unlock it. If the text string is a single asterisk character (“*”), then no password entry will be permitted and hence the Unlock Button Text (above) will be ignored. It is important to note that when a Lock Action is applied, the device will remain locked until one of the following: • • • The device is unlocked by an Action applied by another Scenario. A new Settings Object of Class Control.LockAndWipe is pushed to the device. The Package that delivered the Settings Object of Class Control.LockAndWipe is uninstalled from the device. • The Package that delivered the LockAndWipe Control Module is uninstalled from the device. • The Lock Action included an Unlock Password and the Mobile Device User successfully entered the password to unlock the device. It is also important to note that rebooting the device will NOT unlock it. The lock will be re-established after the device reboots. The time it takes a device to lock following a reboot may vary depending on the device model and OS. But the lock should be reestablished in a relatively short time, providing little opportunity for mischief if the device is in unfriendly hands. Note, however, that on some Mobile Devices, that cannot properly support cold/clean boot persistence, the lock may not be possible to persist across a cold or clean boot. But in such cases, data and network connectivity will also be lost, hence reducing the risk of compromise. Nonetheless, if the lock was intended to protect the device hardware from being useful to a potential thief, it may not serve that purpose since the device may be usable, even though it does not compromise Enterprise data. Unlock The Unlock Action causes the device lockdown UI to be terminated, thus allowing the device User to again interact with the UI of the device. If the device lockdown UI was not running, then this Action does nothing. Wipe The Wipe Action causes one or more Device Wipe Operations to be performed on the device. Depending on the operations selected, this could result in a large or small amount of actual wiping of device data. In fact, some operations may not result in any wiping of device data at all. The following types of Device Wipe Operations are available: 54 MSP 3.1 User’s Guide • Wipe Silently / Wipe Message This allows a message to be displayed to the device User when a Wipe Action is being taken. Selecting Wipe Silently means that NO message will be displayed to the device User. Depending on the reason for the Wipe Action being taken, it may be preferable to have no message to prevent any interference with the Wipe (such as when an unauthorized person is in possession of the device). If the device were rebooted in the middle of a Wipe Action, then all intended data would not be wiped. Consequently, it might be better not to warn a potential thief that data is in the process of being wiped. • Wipe AirBEAM Packages This Device Wipe Operation allows up to five (5) AirBEAM Packages to be uninstalled, thus removing key applications from the device. • Execute a BATCH File This Device Wipe Operation allows an AirBEAM-style text BATCH file (like those supported in Package install and uninstall commands) to be executed. The BATCH file must already be resident on the device and the full path to where the BATCH file resides on the device must be provided. The BATCH file could be delivered to the device via a Package included in the same Bundle that delivers the Control.LockAndWipe Settings Object. The use of a BATCH file opens up unlimited possibilities for implementing custom Device Wipe Operations since it permits custom executables to be run. Such custom executables must be resident on the device and the full path to each executable must be specified in the BATCH file that invokes it. Such custom executables can be delivered to the device via Packages included in the same Bundle that delivers the Control.LockAndWipe Settings Object. • Wipe Specific Files or Folders This Device Wipe Operation allows one or more files, folders, or complete folder trees to be wiped. Files are specified by a full path to the file and may include wildcard characters. Folders are specified by a path ending in a backslash character (“\”) and MUST NOT contain any wildcard characters. If a folder is wiped, all files and subfolders under that folder are also wiped. This Device Wipe Operation should be used with caution since by definition it can cause DATA LOSS (in fact that is its primary intent). Configuring a Conditional Scenario to automatically wipe entire folder trees could be catastrophic if the Conditions are incorrectly specified and/or the wrong path is provided. It is important to note that it may not always be possible to Wipe Files or Folders. If a file is in use, such as by a running application, then the Operating System will not allow it to be deleted. If a folder contains any file that was not deleted then that folder will also not be deleted. To ensure that critical files and folders are deleted, it is necessary to stop any applications that may be using them. For applications that were installed via a Package, this can often by done by uninstalling the Package before attempting to Wipe the files or folders used by the application. For other applications, it may be necessary to include a command to stop the application in a BATCH file before attempting to Wipe the files or folders used by the application. Using MSP Control Modules 55 • Wipe Built-In File Systems This Device Wipe Operation allows complete built-in File Systems to be wiped. This operation is often device and/or OS specific, since not all devices and OSes have the same sorts of built-in File Systems. Note that wiping of built-in File Systems happens LAST, since it often results in a reboot of greater or lesser severity. So, any other Device Wipe Operations that were specified will have happened BEFORE this one. Note also that removable media is NOT considered to be a built-in File System. But files on removable media CAN be wiped using Wipe Specific Files or Folders as long as the full path of the folder for the removable media is known (e.g. “\Storage Card”). The following forms of wiping built-in File Systems are provided: • Don’t wipe any built-in file systems This indicates that no wiping of built-in file systems should occur. • Wipe transient file system and registry (cold boot) This indicates that a cold boot should be done to wipe the transient file system and registry. Note that on devices with a version of Windows Mobile BEFORE Windows Mobile 5.0 or most devices with Windows CE, the root file system and Device Registry are in RAM. On such devices, a cold boot completely erases the (transient) root file system and Device Registry. Note that on devices with a version of Windows Mobile 5.0 or higher, the root file system and Device Registry are in Flash and hence are persistent. On such devices, a cold boot does NOT wipe them. • Wipe persistent file system and registry (clean boot) This indicates that a clean boot should be done to wipe the persistent file system and registry. Note that a clean boot is only available on devices with Windows Mobile 5.0 or higher. On devices that cannot support a clean boot, a cold boot is performed instead. Note that on devices that CAN support a clean boot, a clean boot can ONLY be performed when the device is on AC power. It may therefore be desirable to defer the execution of a clean boot until a device is on AC power in one of the following two ways: If the wipe is being initiated via an Unconditional Scenario pushed as part of a Settings Object in a Bundle referenced by a Policy, then use a Power Condition Object to defer the execution of the Job until AC power is available. This will cause the Job to be rechecked each time the device checks in until AC power is available and then executed. If the wipe is being initiated via a Condition Scenario, then add a Power Condition Object so the Scenario is not met until the other Conditions AND the device is on AC power. • Wipe all built-in file systems (includes application) This indicates that the “super persistent” built-in file system (called the \Application partition on legacy Symbol Motorola devices) should be wiped in addition to everything in the other built-in File System wiping options. This is as close to returning a device to “factory Settings” as it is practical without doing an OS update. 56 MSP 3.1 User’s Guide Note that on legacy Symbol Motorola devices which have a “\Platform” partition, there may be no reliable way to completely return the device to “factory Settings.” This is because there may be information stored in the \Platform partition. Since deleting things indiscriminately from the \Platform partition could prevent the device from booting, there is no built-in code to automatically wipe anything from the \Platform partition even though it is a built-in File System. Nonetheless, if there are specific files in the \Platform partition that need to be deleted for security reasons, the Wipe Specific Files or Folders option can be used to explicitly delete them. It is important to note that the \Application partition is Wiped using the same method used by the Wipe Specific Files or Folders Action. As such, it is subject to the same limitations about Wiping files that are in use. LockAndWipe Device Attributes LockAndWipe sends up some information about what it does to help understand what Scenario of what Setting Object has caused the device to be placed in what state. The following is an example of the Device Attributes produced by this Control Module: UserAttribute.lockandwipe.Object MyLockSettings UserAttribute.lockandwipe.scenario 1 UserAttribute.lockandwipe.state Locked In the above example, the device is currently Locked due to the application of Scenario 1 (first scenario) in the Control.LockAndWipe Settings Object Named “MyLockSettings”. The possible states are: • Locked The device lockdown UI was invoked by a Scenario Action. • Unlocked The device lockdown UI was terminated by a Scenario Action. • Password The device lockdown UI was terminated by entry of a password by the device User. • Wiped One or more Device Wipe Operations were invoked by a Scenario Action. RemoteUI and RemoteControl MSP 3 comes with Control Modules that offer RemoteUI and RemoteControl functionality. The purpose of this section is to explain these features and describe how to deploy, configure and use these capabilities when managing devices with the MSP 3 Stage and/or MSP 3 Provision products. Overview In MSP 3, RemoteUI and RemoteControl are implemented as Server Control Modules. For more information on Control Modules, consult the document titled “MSP 3 Control Modules”. Using MSP Control Modules 57 RemoteUI vs. RemoteControl In MSP 3, there are two different Control Modules provided: RemoteUI and RemoteControl. The RemoteUI Module provides the ability to view and control ONLY the User Interface (UI) of the device. The RemoteControl Module provides all the features of the RemoteUI Module plus features related to the maintenance and troubleshooting of a device, including Registry Management, File Management, Application and Process Management, DLL Management, and Rebooting. MSP 3 Stage Edition offers only the RemoteUI Module and requires that the RemoteUI functionality be launched manually, since the MSP 3 Stage Edition provides no Asset Management and hence provides no means to track devices and launch RemoteUI for them. In addition, the GetAdapters Control Module cannot be used in MSP Stage Edition and hence the User must manually enter the IP address needed to launch RemoteUI. The MSP 3 Provision product offers BOTH the RemoteUI and RemoteControl Modules. Even though RemoteControl is a superset of Remote UI, BOTH are provided for the following reasons: • Device Storage and Memory Footprint The RemoteUI Module is significantly smaller than the RemoteControl Module and hence is lighter on device resources. • Less Opportunity to Damage Device Configuration Since the RemoteUI Module only permits the UI of the device to be controlled, an untrained help desk operator could not inadvertently use the other tools to damage the device configuration. The MSP 3 Provision product provides a certain amount of Asset Management and hence can also provide a means to track devices and launch RemoteUI or RemoteControl for them. In addition, the GetAdapters Control Module can be used in MSP Provision Edition and hence the User need not manually supply the IP address needed to launch RemoteUI. RemoteUI and RemoteControl Changes from MSP 3.0 to MSP 3.1 The following improvements in RemoteUI and RemoteControl have been made between MSP 3.0 and MSP 3.1: • Primary Package Naming Changes A Package naming change has been made from MSP 3.0 to MSP 3.1. In MSP 3.0, the RemoteUI Package name was rui.apf and the RemoteControl Package name was rc.apf. Since these Packages have been significantly improved and overhauled for MSP 3.1 the names have been changed to keep them separate from the earlier Packages. In MSP 3.1, the RemoteUI Package name is RemoteUI.apf and the RemoteControl Package name is RemoteControl.apf. These new Package are also more intuitive and self-documenting. • Auxiliary Package Changes In MSP 3.0, a Package named FetchDevInfo.apf was provided to collect Device IP address information for use with RemoteUI and RemoteControl. In MSP 3.1, this Package is replaced by a Package named GetAdapters. In addition, GetAdapters now periodically updates the adapter information to help keep MSP up to date if device conditions change. 58 MSP 3.1 User’s Guide • Improved Licensing In MSP 3.0, some Motorola Devices shipped with pre-installed License Keys to enable the use of RemoteUI and RemoteControl. All other Motorola Devices required the installation of License Key Packages before RemoteUI or RemoteControl could be installed and used. Since these License Key Packages were device-specific, and no device could have more than one License Key at a time, the task of deploying RemoteUI or RemoteControl to mixed populations of Devices could become quite complex. In MSP 3.1, the RemoteUI and RemoteControl Packages now ship with a built-in “Symbol” Vendor Key that enables use on all supported “Symbol” Motorola Devices. This change significantly simplifies deployment of the RemoteUI and RemoteControl Packages to all supported “Symbol Legacy” Motorola Devices, since only the RemoteUI.apf Package or the RemoteControl.apf Package must be deployed – no additional License Key Package is required. As additional “Symbol” Motorola Devices are added, most should be supported by the same “Symbol” Vendor Key. If additional Motorola Devices are later added, an additional “Motorola” Vendor Key will be added. A single Device can have any number of Vendor Keys deployed to it, so it is safe to deploy the same Packages to every Device. Mutual Exclusivity of Packages Only one of the two RemoteUI and RemoteControl Packages should never be loaded on the same device at the same time or on a device that has the earlier rui.apf or rc.apf Packages from MSP 3.0. When creating a Bundle to install these Packages, it is a good idea to explicitly uninstall any of the other Packages. Such uninstall commands placed in the Bundle will be benign if the specified Packages are not present yet can help prevent inadvertently loading more than one Package. In the advent that more than one RemoteUI or RemoteControl Package (of any version) is loaded onto a device at the same time, the proper corrective action is to uninstall ALL versions of all such Packages and then install the single one desired. Any other recovery action could result in improper operation either immediately or following a subsequent reboot. Using RemoteUI with MSP Stage Before the RemoteUI feature can be used for a given device from the MSP Stage Product, the following prerequisites must be met: • The Device must be Contactable from the computer that will be used to control it In order for a device to be controllable, it must be contactable via an IP address or name (e.g. DNS, etc.). See the section “Device Contactability,” later in this document, for information on how to deal with device contactability. • The Device must have a Vendor Key suitable for the vendor of the Device model See the Improved Licensing bullet in the section “RemoteUI and RemoteControl Changes from MSP 3.0 to MSP 3.1,” earlier in this document, for more information on Vendor Keys. • The Device must have the RemoteUI Package Installed The MSP Stage product ships with the RemoteUI Package built-in. As part of the Staging of the device, this Package should be installed. Using MSP Control Modules 59 Once this Package is successfully installed, the RemoteUI Server will automatically launch on the device, but only if the requisite License Key (see previous bullet) is present. • The User Must Know the IP Address of the Device In order to launch RemoteUI for a device that has the RemoteUI Server running on it, the User must know the IP address at which the device can be contacted. See the section “Dealing with Device IP Addresses,” later in this document, for information on how to deal with device IP addresses. Using RemoteUI with MSP Provision Before the RemoteUI feature can be used for a given device from the MSP Provision Product, the following prerequisites must be met: • The Device must be Contactable from the computer that will be used to control it In order for a device to be controllable, it must be contactable via an IP address or name (e.g. DNS, etc.). See the section “Device Contactability,” later in this document, for information on how to deal with device contactability. • The Device must have a Vendor Key suitable for the vendor of the Device model See the Improved Licensing bullet in the section “RemoteUI and RemoteControl Changes from MSP 3.0 to MSP 3.1,” earlier in this document, for more information on Vendor Keys. • The Device must have the RemoteUI Package Installed The MSP Provision product ships with the RemoteUI Package built-in. As part of the Staging or Provisioning of the device, this Package must be installed. If the RemoteUI Package was NOT installed as part of Staging, then it can be deployed via a Provisioning Policy, either Manual or On-Going. Once this Package is successfully installed, the RemoteUI Server will automatically launch on the device if the requisite Vendor Key is present. • MSP (or the User) Must Know the IP Address of the Device In order to launch RemoteUI for a device that has the RemoteUI Server running on it, MSP (or the User) must know the IP address at which the device can be contacted. See the section “Dealing with Device IP Addresses,” later in this document, for information on how to deal with device IP addresses. Using RemoteControl with MSP Provision Before the RemoteControl feature can be used for a given device from the MSP Provision Product, the following prerequisites must be met: • The Device must be Contactable from the computer that will be used to control it In order for a device to be controllable, it must be contactable via an IP address or name (e.g. DNS, etc.). See the section “Device Contactability,” later in this document, for information on how to deal with device contactability. • The Device must have a Vendor Key suitable for the vendor of the Device model 60 MSP 3.1 User’s Guide See the Improved Licensing bullet in the section “RemoteUI and RemoteControl Changes from MSP 3.0 to MSP 3.1,” earlier in this document, for more information on Vendor Keys. • The Device must have the RemoteControl Package Installed The MSP Provision product ships with the RemoteControl Package built-in. As part of the Staging or Provisioning of the device, this Package must be installed. If the RemoteControl Package was NOT installed as part of Staging, then it can be deployed via a Provisioning Policy, either Manual or On-Going. Once this Package is successfully installed, the RemoteControl Server will automatically launch on the device, if the requisite Vendor Key is present. • MSP (or the User) Must Know the IP Address of the Device In order to launch RemoteControl for a device that has the RemoteUI Server running on it, MSP (or the User) must know the IP address at which the device can be contacted. See the section “Dealing with Device IP Addresses,” later in this document, for information on how to deal with device IP addresses. Dealing with Device IP Addresses Both RemoteUI and RemoteControl require an IP Address or name (e.g. DNS, etc.) in order to contact the device to be controlled. The device must be contactable at this IP Address or name. See the section “Dealing with Device Contactability,” later in this document, for information on dealing with any contactability issues that may exist. Since MSP 3 Stage is NOT an Asset Management solution, it provides no means to track devices or launch RemoteUI for them. When using RemoteUI with MSP 3 Stage, the IP Address or name of a device must be determined manually by cooperation between the device User and the MSP User that seeks to control the device. MSP 3 Provision DOES offer some Asset Management functionality and hence DOES provide a means to track devices and launch RemoteUI or RemoteControl for them. MSP Provision ALSO provides a means to remotely collect the IP Address for a device, so it can automatically be available for launching RemoteUI or RemoteControl. Remote collection of device IP Addresses is accomplished via the built-in GetAdapters Control Module. This Package can be Staged or Provisioned to a device, after which the device will report information about its network adapters each time it checks in. Dealing with Device Contactability Depending on the type of network connectivity being used by the device and the organization of the network between the device and the computer from which it will be controlled, the device may or may not be contactable. If the GetAdapters Control Module is used as described in section “Dealing with Device IP Addresses”, the device can only report to MSP the IP Address that it knows for itself. Depending on the network topology, this IP Address may or may not be contactable by the computer from which the User wished to control it. The most common reasons for a lack of contactability are Network Address Translation (NAT) Routers and Firewalls. Both of these can effectively block certain network traffic and interfere with the contactability required for RemoteUI or RemoteControl. The NAT or Firewall that is blocking required contactability may or may not be under the direct control of the Enterprise. For example, most GPRS service providers (carriers) Using MSP Control Modules 61 implement a NAT and hence do not allow devices to be contacted. In such a case, only the carrier can correct the issue, and doing do might require a different data plan, if it is available at all. When a Firewall is under the control of the Enterprise, then it may be possible to open the necessary ports through the Firewall to achieve the requisite contactability. When a NAT is under the control of the Enterprise, it may be possible to configure the NAT Router to achiever the desired contactability. If One to One NAT is in use, the it will be necessary to set up “Port Forwarding” to forward contactable (i.e. Public) IP Addresses through to the uncontactable (i.e. Private) IP Addresses. If One to Many NAT is in use, then it will be necessary to set up “Port Address Translation” (PAT) to map varied ports on the single contactable (i.e. Public) IP Address through to the desired port on the uncontactable (i.e. Private) IP Addresses. If “Port Forwarding” or “Port Address Translation” are used, then contactability of devices will generally require that MSP use IP Addresses other than those that can be reported by the device. Consequently, the GetAdapters Control Module cannot be relied upon to collect these addresses. In such situations, it will be necessary to define the IP addresses to be used to contact devices by uploading Device Attributes into MSP using CSV files as described later in this section. Launching RemoteUI Manually via a Web Browser When using RemoteUI with MSP 3 Stage Edition, it is possible to launch RemoteUI manually using a Web Browser. Note that this approach CANNOT be used when launching RemoteControl, since RemoteControl requires authentication with the device that is ONLY available when launched via the MSP 3 Console UI. To launch RemoteUI manually via a Web Browser, ensure that all the prerequisites defined in section “Using RemoteUI with MSP Stage”, earlier in this document. Using the IP Address or name (e.g. DNS, etc.) at which the device is known to be contactable from the PC, launch the Web Brower on the computer and browse to a URL in one of the following formats: http://deviceip:8080/RemoteControl/ or http://devicename:8080/RemoteControl/ The Web Browser will display an HTML page, served up by the device and a Java applet, also served up by the device, will be hosted on that HTML page. The Java applet connects back to the device and presents the RemoteUI functionality. Note that the use of the Java applet requires Internet Explorer on the computer from which the device will be controlled have the Java Runtime Environment (JRE) installed. The JRE can be downloaded from various Web Sites, including http://sun.com. Launching RemoteUI via the MSP 3 Console UI The RemoteUI Package contains information that allows the MSP 3 Stage Console UI to automatically launch RemoteUI via a link shown in the Tools section of the Device Detail page. A link to launch RemoteUI is shown in the Tools section ONLY if the software inventory reported for by the device includes the RemoteUI Package. Note that 62 MSP 3.1 User’s Guide depending on whether a device has been Staged or Provisioned, the means by which the Device Detail page is reached may be different. Clicking the RemoteUI button on the Device Detail page launches a new Web Browser window that displays a RemoteUI “launching page”. The “launching page” may show information MSP 3 knows about the device if the GetAdapters Control Module is running on that device. Since the GetAdapters Control Module cannot be used with MSP 3 Stage Edition, this information will never be known by MSP 3. If the information is not known by MSP 3 or of the information known by MSP 3 is not correct, then the information will need to be entered and/or edited by the User before proceeding. Once the information on the “launching page” is correct, click the “Connect” button on the to connect to the device using that information. Note that any information modified on the “launching page” is transient and any changes made by the User will NOT be saved by MSP 3 and hence will NOT be displayed when the page is re-entered at a later time. To permanently change the IP address used to contact a device, it will be necessary to upload the IP address into MSP 3 using a CSV file as described later in this section. Device Attributes used by the RemoteUI and RemoteControl When RemoteUI or RemoteControl is launched from the MSP 3 Console UI, the last known value of the Device Attribute containing the device IP address is used. If IP Addresses within the network change, the IP address last reported by the device may NOT actually be the current IP Address of the device. In MSP 3.1, the GetAdapters Control Module collects adapter information for a device each time the device checks in. Nonetheless, the IP Address known by MSP for a device could become out of date. The GetAdapters Control Module determines and reports to MSP what it considers to be the “best” adapter for contacting the device. If the state of device connectivity changes (e.g. switching between radios, going in and out of coverage, DHCP lease renewal, etc.), then MSP will not know the new information until the device next checks in. This should seldom be an issue if the device is checking in fairly frequently (the default is every 15 minutes). But if a device has been reconfigured to check in much less frequently, then Users should be made aware that they may not be able to connect to a device until its next check in provides MSP with updated information. The GetAdapters Control Module reports the IP Address of the device via the Device Attribute UserAttribute.adapterBest.ipAddr. This is then used by MSP 3 to fill in the “launching page” for RemoteUI or RemoteControl. This Device Attribute COULD also be set by uploading a CSV file to set Device Attribute values of many devices at once. But since GetAdapters reports information each time the device checks in, it would override any information uploaded via a CSV file. This could lead to confusion depending on how often the device checks in, since the uploaded CSV values would be used for “a while” then changed based on the values reported by the device. To avoid this, and to enable some of the more complex cases described later in this section, MSP provides additional Device Attributes which, if present, override the information collected and reported by the GetAdapters Control Module. These Device Attributes are: • UserAttribute.remoteControl.natIpAddr If this Device Attribute is present for a device, then MSP uses that in preference to the Device Attribute UserAttribute.adapterBest.ipAddr. This is important for cases Using MSP Control Modules 63 where the public address for a device cannot be known by the device, such as in cases where “Port Forwarding” or “Port Address Translation” will be required. • UserAttribute.remoteControl.natWebPort If this Device Attribute is present for a device, then MSP uses that in preference to the default port number of 8080. This is important for supporting cases where “Port Address Translation” will be required, • UserAttribute.remoteControl.natRcPort If this Device Attribute is present for a device, then MSP uses that in preference to the default port number of 7777. This is important for supporting cases where “Port Address Translation” will be required, Note that in all cases where CSV files are described for specifying IP Addresses, names (e.g. DNS, etc.) could be used instead, if the names ultimately resolve to the proper IP address values. Note also that when using CSV files to upload Device Attributes, the values uploaded will apply ONLY to devices that were discovered prior to the time that the CSV file was uploaded. So, if a large CSV, covering all potential devices in the Enterprise were prepared and uploaded early, before all devices were discovered, some of the data would be discarded since it did not apply to devices that were actually known by MSP. In such a case, the CSV could simply be re-uploaded later, after more devices had been discovered. There is no harm or danger in re-uploading Device Attributes that have been uploaded before. If a device is operating inside a NAT, relative to the computer that will be controlling it, then the address reported by the device typically CANNOT be used, since it is a Private IP Address at which the device will NOT be contactable by the PC. There are two primary NAT cases. One to One NAT In One to One NAT, the NAT router obtains a unique Public IP Address from the outer network for each device and maps it to the Private address assigned to each device by the router’s local DHCP server. The device is aware only of its Private IP Address. Consequently, the GetAdapters Control Module cannot report the IP Address at which the device can be contacted. Instead, the Public IP Addresses of the devices must be defined to MSP via a CSV file that would be uploaded into MSP using the Library->Attributes page of the MSP 3 Console UI. This information would generally be determined at the time the NAT Router is configured and captured in a CSV file for uploading into MSP. A CSV file to set up Device Attributes to configure RemoteUI or RemoteControl over One to One NAT might look as follows: identity.uuid,1501aa010c42fd61,UserAttribute.adapterBest.ipAddr,10.10.1.1 identity.uuid,1501aa010c42fd62,UserAttribute.adapterBest.ipAddr,10.10.1.2 identity.uuid,1501aa010c42fd63,UserAttribute.adapterBest.ipAddr,10.10.1.3 Uploading the above CSV file would define the specified Public IP Addresses for the corresponding devices identified by UUID. Note that in MSP 3, UUID is the only automatically collected and reported Device Attribute available for identifying individual devices. If other Device Attributes have been 64 MSP 3.1 User’s Guide added, then they could also be used in the CSV file to identify the devices for which the IP address attribute should be set. One to Many NAT In One to Many NAT, the NAT router obtains a single Public IP Address from the outer network that it shares amongst all devices. As in the One to One NAT case, the device is still aware only of its Private IP Address. Consequently, the GetAdapters Control Module cannot report the IP Address at which the device can be contacted. Furthermore, since there is only a single Public IP Address used for all devices there is no way, using that IP Address alone to contact the correct device. As mentioned earlier, to support One to Many NAT, Port Address Translation (PAT) must be used. This requires a different port number to be used for each device that shares the same Public IP Address. The use of the port number permits the NAT router to forward the connection to the appropriate device. MSP assumes the standard default port numbers of 7777 (for RemoteUI separately and as part of RemoteControl) and 8080 (for non-RemoteUI functions of RemoteControl) for all devices. For One to Many NAT cases, the standard default port numbers cannot be used since “Port Address Translation” will be required to traverse the One to Many NAT. Instead, for each device a unique port (for Remote UI) or pair of ports (for RemoteControl) will need to be defined as part of the configuration of the NAT Router and then captured in a CSV file for uploading into MSP. Remote UI A CSV file to set up Device Attributes to configure RemoteUI over One to Many NAT might looks as follows: identity.uuid,1501aa010c42fd61,UserAttribute.remoteControl.natIpAddr,10.10.1.1 identity.uuid,1501aa010c42fd61,UserAttribute.remoteControl.natRcPort,7701 identity.uuid,1501aa010c42fd62,UserAttribute.remoteControl.natIpAddr,10.10.1.1 identity.uuid,1501aa010c42fd62,UserAttribute.remoteControl.natRcPort,7702 identity.uuid,1501aa010c42fd63,UserAttribute.remoteControl.natIpAddr,10.10.1.1 identity.uuid,1501aa010c42fd63,UserAttribute.remoteControl.natRcPort,7703 This assumes that the NAT router has a Public IP Address of 10.10.1.1 and maps port 7701 to port 7777 of one device, port 7702 to port 7777 of another device, etc. For a real Enterprise, the CSV file would need to be expanded to cover all the devices behind all NATs. This means the above list would need to be extended based on the number of devices behind a NAT and then repeated based on the number of NATs. Uploading the above CSV file would define the specified Public IP Addresses and ports for the corresponding devices identified by UUID. Note that in MSP 3, UUID is the only automatically collected and reported Device Attribute available for identifying individual devices. If other Device Attributes have been added, then they could also be used in the CSV file to identify the devices for which the IP address attribute should be set. RemoteControl A CSV file to set up Device Attributes to configure RemoteControl over One to Many NAT might looks as follows: identity.uuid,1501aa010c42fd61,UserAttribute.remoteControl.natIpAddr,10.10.1.1 identity.uuid,1501aa010c42fd61,UserAttribute.remoteControl.natRcPort,7701 Using MSP Control Modules 65 identity.uuid,1501aa010c42fd61,UserAttribute.remoteControl.natWebPort,8801 identity.uuid,1501aa010c42fd62,UserAttribute.remoteControl.natIpAddr,10.10.1.1 identity.uuid,1501aa010c42fd62,UserAttribute.remoteControl.natRcPort,7702 identity.uuid,1501aa010c42fd62,UserAttribute.remoteControl.natWebPort,8802 identity.uuid,1501aa010c42fd63,UserAttribute.remoteControl.natIpAddr,10.10.1.1 identity.uuid,1501aa010c42fd63,UserAttribute.remoteControl.natRcPort,7703 identity.uuid,1501aa010c42fd63,UserAttribute.remoteControl.natWebPort,8803 This assumes that the NAT router has a Public IP Address of 10.10.1.1 and maps ports 7701 and 8801 to ports 7777 and 8080 of one device, ports 7702 and 8802 to ports 7777 and 8080 of another device, etc. For a real Enterprise, the CSV file would need to be expanded to cover all the devices behind all NATs. This means the above list would need to be extended based on the number of devices behind a NAT and then repeated based on the number of NATs. Uploading the above CSV file would define the specified Public IP Addresses and ports for the corresponding devices identified by UUID. Note that in MSP 3, UUID is the only automatically collected and reported Device Attribute available for identifying individual devices. If other Device Attributes have been added, then they could also be used in the CSV file to identify the devices for which the IP address attribute should be set. Reducing CSV File Size As mentioned earlier, MSP 3 provides Device Attributes that can be used to override values collected and reported by GetAdapters Control Module, hence allowing GetAdapters to be used in parallel with the definition of IP addressing information by CS file upload. In some cases, it may be possible to “infer” the Public IP Addresses and ports information reported by GetAdapters. This could be especially useful if a so-called “cookie-cutter” approach to network organization is used. For example, consider that each Site has a Motorola WS-2000 Wireless Switch used in One to Many NAT mode. Assume that each Site has identical NAT configuration and that each Site has a relatively small number of Mobile Devices which are assigned “well known” Private IP Addresses via the WS-2000 NAT DHCP server. The result of the above is that the WS-2000 at each Site would have a unique Public IP Address and the devices at each Site would all have identical (overlapping) Private IP Addresses. This means that every device at a given Site shares the same Public IP Address (of the WS-2000). It also means that every device, regardless of Site, with the same Private IP Address could use the same ports. Given the above assumptions, it would make the NAT Router configuration of the WS2000 switches much easier and would produce a drastically simpler a CSV file to configure MSP for One to Many NAT across many Sites. An example of such a CSV file is shown below: UserAttribute.siteID,SiteA,UserAttribute.remoteControl.natIpAddr,10.10.1.1 UserAttribute.adapterBest.ipAddr,192.168.1.101,UserAttribute.remoteControl.natRcPort,7701 UserAttribute.adapterBest.ipAddr,192.168.1.101,UserAttribute.remoteControl.natWebPort,8801 UserAttribute.adapterBest.ipAddr,192.168.1.102,UserAttribute.remoteControl.natRcPort,7702 UserAttribute.adapterBest.ipAddr,192.168.1.102,UserAttribute.remoteControl.natWebPort,8802 UserAttribute.adapterBest.ipAddr,192.168.1.103,UserAttribute.remoteControl.natRcPort,7703 UserAttribute.adapterBest.ipAddr,192.168.1.103,UserAttribute.remoteControl.natWebPort,8803 This example assumes that the NAT router has a Public IP Address of 10.10.1.1 and maps ports 7701 and 8801 to ports 7777 and 8080 of the device with the Private IP Address of 192.168.1.101, ports 7702 and 8802 to ports 7777 and 8080 the device with the Private IP Address of 192.168.1.102, etc. 66 MSP 3.1 User’s Guide For a real Enterprise, the CSV file would need to be expanded to cover all NATs and the maximum number of devices behind any one NAT. But there is a significant reduction in CSV size, which comes from leveraging the wildcard comparison capabilities of the CSV file. Consider the following lines: UserAttribute.siteID,SiteA,UserAttribute.remoteControl.natIpAddr,10.10.1.1 UserAttribute.siteID,SiteB,UserAttribute.remoteControl.natIpAddr,10.10.1.2 UserAttribute.siteID,SiteC,UserAttribute.remoteControl.natIpAddr,10.10.1.3 The above will cause all devices whose Site ID matches “SiteA” to be assigned the value of “10.10.1.1” for the Device Attribute “UserAttribute.remoteControl.natIpAddr”, all devices whose Site ID matches “SiteB” to be assigned the value of “10.10.1.2” for the Device Attribute “UserAttribute.remoteControl.natIpAddr”, etc. This means that one line covers the assignment of a Public IP Address to every device at one Site. Similarly, the consider the following lines: UserAttribute.adapterBest.ipAddr,192.168.1.101,UserAttribute.remoteControl.natRcPort,7701 UserAttribute.adapterBest.ipAddr,192.168.1.101,UserAttribute.remoteControl.natWebPort,8801 The above will cause all devices whose Private IP Address matches “192.168.1.101” to be assigned the value of “7701” to Device Attribute “UserAttribute.remoteControl.natRcPort” and the value of “8801” to Device Attribute “UserAttribute.remoteControl.natWebPort”, all devices whose Private IP Address matches “192.168.1.102” to be assigned the value of “7702” to Device Attribute “UserAttribute.remoteControl.natRcPort” and the value of “8802” to Device Attribute “UserAttribute.remoteControl.natWebPort”, etc. This means that one line covers the assignment of a given port to every device using that port across all Sites. If there were 10 devices per Site and 500 Sites, this would reduce the size of the CSV file from 500*10*3 = 15,000 lines to 500*1+10*2 = 520 lines. Clearly this is a major savings, both in initial creation of the CSV file and maintenance of the CSV file if IP addressing within the Enterprise should later change. Chapter 6 Other MSP Features and Operations Importing and Exporting Transferring Packages To or From MSP 3 Servers If Objects will be transferred between MSP 3 Servers, particularly Bundle Objects, it may be necessary to transfer Packages so that any Packages referenced by one or more Bundles will be present, thus allowing the successful transfer of the Bundles. There is no means provided in either MSP 3.0 or MSP 3.1 to export Packages from an MSP 3 Server using the MSP 3 Console UI. If it is necessary to transfer Packages from one MSP 3 Server to another, it must be done by accessing the Windows Console of the Server. If only a few Packages are involved, and if the original APF files are available, it may be simplest to just manually import the required Packages, one at a time into the destination MSP 3 Server before importing the Objects that reference the Packages. If, however, many Packages are involved, or if it is uncertain whether or not the identical versions of the APF files for all Packages are available, then it may be preferable to extract the Packages from the source MSP 3 Server and then install them into the new MSP 3 Server. This can be done by using the following procedure: • • • • • • • Log into the source MSP 3 Server via the Windows Console of the PC on which it is running. Browse to the folder <install dir>\Library\Packages. Copy from the folder all (or desired) Package APF files to an external media or location. Log into the destination MSP 3 Server via the Windows Console. Browser to the folder <install dir>\PackagesToInstall. Copy into the folder all (or desired) Package APF files from an external media or location. Wait for MSP to detect and process the Packages. 68 MSP 3.1 User’s Guide • • • Refresh the folder and see that all Packages have been removed or replaced by an Error file. Determine and correct the cause for any error if needed. The most common reason for an error is when the same version of the same Package already exists. Log into the MSP 3 Console UI of the destination MSP 3 Server and verify that all expected Packages are shown on the Packages sub-tab of the Library tab. Transferring Objects Between MSP 3 Servers MSP 3.1 allows all types of Objects to be created from within the MSP 3 Console UI. This is a significant improvement over MSP 3.0, where many Objects had to be created externally using the MSP 3.0 Object Builder utility and then transferred into MSP. MSP 3.1 also allows all types of Objects to be edited from within the MSP 3 Console UI. This is another significant improvement since over MSP 3.0, since it is no longer necessary to edit Objects externally using the MSP 3.0 Object Builder utility and then transfer them into MSP. MSP 3.1 is fully compatible with ALL Objects created for use with MSP 3.0 and all such Objects can be preserved across an update from MSP 3.0 to MSP 3.1 and/or freely imported into any MSP 3.1 Server. Additionally, MSP 3.1 includes comparable capabilities to import and export Objects in all formats supported by MSP 3.0, all from the MSP 3 Console UI without the to use the external MSP 3.0 Object Builder utility. For this reason, the MSP 3.0 Object Builder utility is no longer supplied with or formally supported in MSP 3.1. Note that no explicit method was provided to import or export Packages to or from either MSP 3.0 or MSP 3.1. Nonetheless, since Packages may be referenced by Bundles, it may be necessary to transfer Packages before Bundles can be successfully transferred. See the section titled “Transferring Packages To or From MSP 3 Servers” for information on how to accomplish this. The following are the key use cases supported for transferring Objects to and from an MSP 3.1 Server: • Import collections of Objects into MSP 3.1 from one or more XML files that were exported from MSP 3.0 In MSP 3.0, the MSP 3.0 Object Builder utility could be used to export all Objects of one or more types from an MSP 3.0 Server into one XML file per Object type. If such exported XML files exist, they can be imported into an MSP 3.1 Server using the Import XML sub-tab of the Transfer tab within the MSP 3 Console UI. Each individual XML file will need to be imported into the MSP 3.1 Server one at a time in the proper order. This will ensure that any referenced Objects exist before they are needed by Objects that reference them. The recommended ordering is: Users, Conditions, Settings, Relay Servers, Sites, Message Sets, Bundles, Profiles, and then Policies. • Import individual Objects into MSP 3.1 from one or more XML files that were created using MSP 3.0 Object Builder utility In MSP 3.0, the MSP 3.0 Object Builder utility could be used to create individual Objects of various types and save them as individual Object XML files. If such XML files exist, they can be imported into an MSP 3.1 Server using the Import XML subtab of the Transfer tab within the MSP 3 Console UI. Each individual XML file will need to be imported into the MSP 3.1 Server one at a time and it is the responsibility of the User to import them in an appropriate order Other MSP Features and Operations 69 such that any referenced Objects are imported before any Objects that reference them. • Import collections of Objects into MSP 3.1 from one or more CSV files that were created using the MSP 3.0 Object Builder utility and/or hand-edited using a text editor or CSV-aware tool (e.g. Microsoft Excel). In MSP 3.0, the MSP Object Builder utility could be used to create a “starter” CSV file from a “representative” Object of a given type. This CSV file could then be edited using a text editor or CSV-aware tool (e.g. Microsoft Excel) to add more Objects of the same type in subsequent rows of the CSV file. If such CSV files exist, they can be imported into an MSP 3.1 Server using the Import CSV sub-tab of the Transfer tab within the MSP 3 Console UI. Each CSV file will need to be imported into the MSP 3.1 Server one at a time and it is the responsibility of the User to import them in an appropriate order such that any referenced Objects are imported before any Objects that reference them. • Import collections of Objects into MSP 3.1 from one or more XML files that were exported using the MSP 3.1 Console UI of the same or a different MSP 3 Server. In MSP 3.1, the MSP 3 Console UI can be used to export all Objects of one or more types into a single XML file. If only one type of Object is selected, then only the Objects of that type will be exported. If more than one type of Object is selected, the Objects of the selected types will be exported in an order that ensures proper importing of all exported Objects. • Import collections of Objects into MSP 3.1 using one or more CSV files that were created using the MSP 3.1 Console UI and/or hand-edited using a text editor or CSV –aware tool (e.g. Microsoft Excel). In MSP 3.1, the MSP 3 Console UI can be used to export any single Object of any type to a CSV file. This CSV file can then be edited using a text editor or CSV-aware tool (e.g. Microsoft Excel) to add more Objects of the same type in subsequent rows of the CSV file. Such CSV files can then be imported into an MSP 3.1 Server using the Import CSV sub-tab of the Transfer tab within the MSP 3 Console UI. Each CSV file will need to be imported into the MSP 3.1 Server one at a time and it is the responsibility of the User to import them in an appropriate order such that any referenced Objects are imported before any Objects that reference them. • Export all Objects of one or more types from an MSP 3.1 Server into a single XML file using the MSP 3.1 Console UI. In MSP 3.0, it was possible to use the MSP 3.0 Object Builder utility to export all Objects of one or more selected types to a specified folder with one XML file being created in that folder per type of Object. In MSP 3.1 the MSP 3 Console UI can be used to export all Objects of one or more selected types to a single XML file. There are several advantages to the new approach. First, since all Objects are in a single XML file, it is easier to keep track of an share the exported set of Objects. Second, all Objects are exported in an order that ensures proper importing later. In the event that it is desired, for some reason, to export a separate file for each Object type, this can still be accomplished by exporting on selected type of Object at a time. • Export a single Object from an MSP 3.1 Server into a CSV file using the MSP 3.1 Console UI. In MSP 3.0, there was no way to export a single Object of any type; Only ALL Objects of one or more selected types could be exported. In MSP 3.1, the CSV export feature can be used to export individual Objects of any type from an MSP 3.1 Server via the Export to CSV button on the Details page for any Object in the MSP 3 Console UI. 70 MSP 3.1 User’s Guide Once exported to a CSV file, an Object can later be imported into the same or a different MSP 3.1 Server. This can be handy for saving and restoring or sharing individual Objects. Note that there is no means provided to export individual Objects as an XML file. This method can also used to create a “starter” CSV file from a “representative” Object of a given type. This CSV file could then be edited using a text editor or CSVaware tool (e.g. Microsoft Excel) to add more Objects of the same type in subsequent rows of the CSV file. Such extended CSV files can be imported into an MSP 3.1 Server using the Import CSV sub-tab of the Transfer tab within the MSP 3 Console UI. Using CSV Files for Bulk Object Creation Depending on the Enterprise, the number of Objects of various types to be created may be quite numerous. MSP 3.1 allows all types of Objects to be created manually as a CSV file and then imported in bulk into an MSP 3.1 Server using the Import CSV sub-tab of the Transfer tab within the MSP 3 Console UI. This can be result in a very significant reduction in effort over creating all Objects individually via the MSP 3 Console UI. For example, for an Enterprise with 1000 Sites, each of which has a unique Relay Server and WLAN Settings, there will be a need to create 1000 Settings Objects, 1000 Relay Server Objects, and 1000 Site Objects. Creating 3 CSV files and them importing them will likely be far less work than creating 3000 Objects individually. There is a key limitation that must be understood when using this approach. All Objects in the same CSV file must specify the same set of attributes, although the values assigned to the attributes may be different. For example, for Network Settings Objects, all Objects would need to use the same type of encryption (e.g. WPA-PSK) even though the details (e.g. Pass phrase) could be different for each Object. If very disparate Objects of the same type need to be created, then multiple CSV files, one for each set of “similar” Objects, will be needed. A CSV file for Bulk Object Creation can be created using the following general procedure: • • • Using the MSP 3 Console UI, create or locate a single “representative” Object of the desired type which includes “representative” values for all the desired attributes. Go to the Object Detail Page in the MSP 3 Console UI and click the Export CSV File button to export the definition of that Object to a CSV file. Edit the exported CSV file using a text editor or CSV-aware tool (e.g. Microsoft Excel). The first row of the CSV file will contain the Object Class name and should not be altered. The second row of the CSV file will contain a list of the attribute names for which the “representative” Object supplied values and should not be altered. The third row of the CSV file will contain the “representative” values exported for the selected Object, in the order defined by the attributes names in the second row. Other MSP Features and Operations 71 Note: When importing CSV files into MSP, the values in the password fields MUST BE preceded by one of two characters, a ‘p’ or an ‘e’. A preceding ‘e’ indicates to MSP that the following text is currently encrypted. If a field is preceded by an ‘e’, DO NOT change the values in the field. A preceding ‘p’ indicates to MSP that the following text is unencrypted and must be encrypted by MSP upon import. Therefore, if you are entering a new value in a password field, you must precede the value with the letter ‘p’. For example, if a User’s password is xyz123, you MUST enter it as “pxyz123” so that MSP will encrypt the field. Additional Objects can be added by adding rows to the CSV file, following the guideline provided by the “representative” values in the third row. • • Save the new CSV file when all changes and/or additions have been made. On the Import CSV sub-tab of the Transfer tab in the MSP 3 Console UI, import the CSV to add all the Objects to the MSP 3 Server. Note that if the original exported “representative” Object is left in the third row of the CSV file, then if that CSV is imported into the original MSP 3 Server that Object will be replaced. This will be benign if the Object has not been changed since it was exported. To avoid replacing the Object, the third row could be deleted from the CSV file after all new rows have been added. If the CSV file will be imported into another MSP 3 Server that does not already have Object, then the row containing the definition for that Object may be appropriate to leave in the file. Backup and Restore MSP 3 provides two methods of backing up the MSP 3 Server database: automated and manual. MSP backups consist of a copy of the database .mdf file and the log .ldf file. The backup of the file system is not included in either backup process but is a required step in a complete system backup. Note: Backups should only be restored on the same version of MSP. For example, you should not attempt to restore a backup from an MSP 3.1 system onto an MSP 3.1.1 system. Automated Automated backups are performed automatically every 24 hours at a pre-defined time. The system administrator can set the time an automated backup is performed using the MSP 3 Console UI, on the Admin tab, Back-up sub-tab. Automated backups are stored in the same location as the active database used by MSP. The only way to restore an automatic backup is to use the MSP Backup Utility described in the following section. Automated backups are local backups and should be incorporated into an Enterprise backup management plan. This plan should also include the backup of the default MSP installation. The location of the MSP files is determined at installation. All folders should be included in the backup. The folders in an MSP installation are shown above. The files in the default MSP directory, the database file, and the log file should be backed up after the automated MSP backup, and before any additional changes to the MSP database can occur to ensure accurate association of the database and MSP Package, Bundle, and Object files. 72 MSP 3.1 User’s Guide The Automated Backup may also be disabled using the MSP 3 Console UI, however it is recommended that this only be done when alternative backup procedures have been established. One alternative is the Manual Backup procedure described below. Manual Manual backups can be made using the MSP Administration Program provided with the MSP installation. Refer to the MSP Administration Program section for more information. Asset Management Although the primary function of MSP 3 is to Stage and Provision Mobile Devices, some of the MSP features can be used to manage Enterprise Mobile Devices as assets. The following list of topics is not meant to be comprehensive but is only intended to provide some ideas on how MSP 3 can be used to manage assets. • Sort devices by “As of” time to see when they last checked in. This can give an indication of when a device may have gone “missing”. Note that although devices may check in often (default is every 15 minutes), they do not upload a new discovery document unless something has changed. As such, MSP will not see a change in the time of the document and hence will not update the “As of” time for the device. The MSP Agent will, by default, upload a discovery document at least once per day, even if it has not changed. This would allow the “As of” time to be used to tell if a device has not checked in for multiple days, which could be useful. Through the use of an Agent.30 Settings Object, the MSP Agent can be configured to force a discovery document to be sent every N check-ins. This can be used to adjust the maximum time between updates of the “As of” time. • • • • • • Push-All a Manual Policy that deploys a Bundle containing a “benign no-op” Package to a device with Force Install. Those devices that become compliant are responding. Those that stay non-compliant are not. This could be a way to determine which devices are “on and working” at a given time. Develop a custom one-time Control Module that prompts the User to enter a Device Friendly Name or User Name and places the entered value into a device attribute. This will allow Users to track devices by names that are meaningful, as opposed to tracking them by UUID. Write a custom Repetitive Action Control Module that collects a few key pieces of information about a device and puts them into device attributes. This could allow periodic sampling and reporting of system information (e.g. memory, processes, battery, etc.) or application information (number of transactions, what screen on the application is it in, etc.). Use the LockAndWipe Control Module to lock down devices under specific conditions, use the device attributes reported by LockAndWipe to classify devices based on their lock/wipe/unlock status. This could allow a User to display potentially lost or stolen devices. Develop custom Condition Plug-ins to enhance the ability for LockAndWipe to trigger based on system or application-specific conditions (for example, too few application transactions completed in a given unit of time). Use as above for device tracking from the MSP 3 Console UI. Create a Policy whose Applicability Rules check some useful combination of Device Attributes. Keep the Policy deactivated and use the Applicable and Not Applicable links on the Policy Detail page for that Policy to obtain lists of devices that do and do Other MSP Features and Operations 73 not meet the specified Applicability Rules. This could also be used, for example, to locate a device based on a Device Attribute that is currently not supported by the Filter function on the Device Status page. Site-based Management Site-Based Management involves assigning Devices to Sites so they can be tracked and managed based on the locations at which they are being used. MSP 3 Sites MSP 3 defines a Site as a location within the Enterprise at which a Mobile Device will be used. Typically this would be a physical place such as a warehouse, an office building, or other remote location. Sites are optional in MSP 3 and need not be used when they do not make sense to the nature of the Enterprise. Site-Based Management can be an especially valuable feature to use if the nature of the Enterprise has Mobile Devices being used at well-defined locations. Sites provide the ability to configure Mobile Devices with additional information pertinent to a given location. This could include WLAN Settings and/or Relay Server Settings. Sites can also provide a convenient means to track where Devices are being used. There are two types of Sites that can be defined in MSP 3: • Staging Sites Staging Sites are locations within the Enterprise where Mobile Devices will be Staged. Since Staging is typically a one-time operation, Devices are often not intended to be used at the locations at which they are Staged. Further, Settings that may be applied to a Device to allow it to be Staged at a Staging Site are typically not made persistent since Devices are typically not expected to remain at a Staging Site once Staging is complete. • Production Sites Production Sites are locations within the Enterprise where Mobile Devices will be used for Production operations. Even if only MSP 3 Stage Edition is being used, there may still be a need for Production Sites since the device may need to be configured for use at a different location than the one at which it was Staged. In such cases, it would be expected that Settings would be persistent until they are changed by Staging the device with new Settings. If the MSP 3 Provision Product is being used, then ongoing management of Devices at Production Sites becomes possible. In such cases, Devices are likely expected to remain at Production Sites for significant durations and hence Settings applied to a Device to allow it to be used at a Production Site must typically be persistent. For every Production Site created, MSP will automatically create a Production Site Bundle that can be used assign Devices to that Production Site. One exception to the above is when a Device will be Staged at the same location at which it will be in Production use. In such cases, a Site can be defined to be BOTH a Staging Site and a Production Site and the SAME Site can be used for both purposes. It is also important to note that Sites are a somewhat “loose” concept in MSP 3. While Site Objects can be defined and Devices can be assigned to those Sites, it is NOT 74 MSP 3.1 User’s Guide necessary for a Device to be assigned to a Site for which a Site Object is defined within MSP 3. A Device need not be assigned to ANY Site. A Device can also be assigned to ANY Site name, whether or not a Site Object exists in MSP 3 with that name. If a Device is reported as being assigned to a given Site name, the MSP 3 Provision Console UI will reflect that fact, whether or not a Site Object in MSP 3 exists with that name. Site Assignment in MSP 3 Site Assignment in MSP 3 most commonly means assigning a Mobile Device to the Production Site at which it is or will be used. There are three primary methods by which a Device can be assigned to a Production Site: • • • Staging the Device for use at a Production Site Pushing a Production Site Bundle as Content Using the Automatic Site Assignment Control Module All of the above methods accomplish the assignment of Devices to Production Sites by causing the proper Production Site Bundle(s) to be deployed to the Devices. These methods are described in more detail later in this section. When a Production Site Bundle is deployed to a Device, it causes any Settings defined as part of that Production Site to be applied to the Device. It also causes the value of the Device Attribute UserAttribute.siteID to be set to name of that Production Site. Once this Device Attribute is reported to MSP 3 by the MSP 3 Agent, the MSP 3 Provision Console UI will reflect that the Device is assigned to that Production Site. Once a Device has been assigned to a Production Site, it will remain assigned to that Production Site unless it is explicitly re-assigned to a new Production Site. Site reassignment can be achieved using any of the same methods used for initial Site assignment or can be through various manual process that will be discussed later in this section. Staging the Device for use at a Production Site The simplest method to initially assign a Mobile Device to a Production Site is by Staging the Device for use at that Production Site. This is done by creating a Staging Profile that inherits from a Production Site. This will cause the Device to automatically pull the Production Site Bundle at the end of the Staging Process. Note that Devices may be Staged at separate Staging Sites locations or may be Staged at the locations at which they will be in Production use. • • If the Device will be Staged at a different location from which it will be in Production use, then the Staging Profile should inherit from a separate Staging Site that defines the location at which it will be Staged AND from a Production Site that defines the location at which it will be in Production use. If the Device will be Staged at the same location from which it will be in Production use, then the Production Site should be defined to be BOTH a Staging Site AND a Production Site. Then the Staging Profile should inherit from the SAME Site as both Other MSP Features and Operations 75 a Staging Site, that defines the location at which it will be Staged, and a Production Site, that defines the location at which it will be in Production use. This method is very powerful since it ensures that when a Device completes the Staging process it is properly configured for use at its target Production Site and is registered with MSP 3 as being assigned to that Production Site. This is true even if the Device had to be temporarily configured differently during Staging. It also ensures that the Settings appropriate for the Production Site are applied persistently. Pushing a Production Site Bundle as Content The simplest method to manually assign a Device to a Production Site remotely from the MSP 3 Console UI is by Pushing a Production Site Bundle as Content. This is done by creating a Provisioning Policy to push the Production Site Bundle to a Device. When selecting the Content to be deployed by the Policy, instead of choosing a User-Defined Bundle, choose Content – Site, which allows you to select a Production Site Bundle that was automatically created by MSP when the Production Site was created. This method is very powerful since it ensures that when a Devices is assigned to a Production Site it is also properly configured with the Settings required for use at that Production Site and registered with MSP 3 as being assigned to that Production Site. Using the Automatic Site Assignment Control Module If Devices can move between Production Sites or if there are many Production Sites and it would be too labor-intensive to Stage Devices for use at their target Production Sites, it may be preferable to assign Devices to their Production Sites by Using the Automatic Site Assignment Control Module. This is done by installing the AutoSiteAssign Control Module Package to a Device and then configuring it using a Settings Object. This will cause the Device to determine dynamically what Production Site it “should” be at and arrange to automatically assign itself to that Production Site. See the section on Control Modules for information on configuring the AutoSiteAssign Control Module. AutoSiteAssign uses a Relay Server Information file that is automatically created by MSP 3 and delivered to the Relay Server. This file contains a list of all Sites that use the Relay Server and also may contain the name of WLAN Profile used by each Site. AutoSiteAssign can be configured to determine the Production Site to which a Device should be assigned either based on the Relay Server being used by the Device or based on based on BOTH the Relay Server being used by the Device and the current WLAN Profile name being used by the Device. Since a given Relay Server can be shared by multiple Sites, and since a given WLAN Profile name could be used at multiple Sites, AutoSiteAssign may not be able to uniquely determine a single Site based on the selected criteria. In the case where AutoSiteAssign cannot unique identify a single target Site, it can be configured to prompt the Device User to select the desired Site. Alternately, it can be configured to skip automatic Site assignment when a unique Site cannot be automatically determined. Once AutoSiteAssign determines that a Device should be assigned to a particular Production Site, the actual assignment is accomplished by pulling the Production Site 76 MSP 3.1 User’s Guide Bundle for the desired Site. This ensures that when a Device is assigned to a Production Site it is also properly configured for use at that Production Site and registered with MSP 3 as being assigned to that Production Site. It also ensures that the Settings appropriate for the Production Site are applied persistently. Manual Site Assignment The methods of Site Assignment described earlier in this section, which are based on the use of Production Site Bundles, are generally preferred since they have the benefits of coordinating the registration of the Device with MSP with the application of Site-based Settings. There may however be cases where manual Site Assignment methods may make sense, such as: • When there are no Site-based Settings that need to be applied to Devices • When there are many Sites and it is not practical to define Site Objects for them all • When there is no practical way to assign Devices to Sites automatically Since, as described earlier, Sites are a “loose” concept in MSP 3, when one or more of the above, or similar, situations occur, it may not be useful or desirable to perform Site Assignment based on Production Site Bundles. Instead, it may be preferable to simply set the Device Attribute that registers a Device with MSP 3 as being assigned to a given Site. All Manual Site Assignment methods involve setting the Device Attribute UserAttribute.siteID to the name of the desired Site. There are two primary methods that can be used to achieve this in MSP 3: • Apply an Attribute Settings Object In this method, the Device Attribute UserAttribute.siteID is set by applying an Attribute Settings Object (Attribute.Setting.xml) to one or more Devices. The Attribute Settings Object allows the values of Device Attributes within the UserAttribute class to be set via Settings Object. When specifying a Device Attribute name when creating an Attribute Settings Object, the prefix “UserAttribute.” is always assumed, hence to set the Device Attribute UserAttribute.siteID, only the name “siteID” needs to be specified. As the value, specify the name of the Site to which the Device will be assigned. Once created, a Settings Object can can applied to Devices as Content by placing it in a Bundle Object using the Content – Setting option. When an Attribute Settings Object that sets the Device Attribute UserAttribute.siteID is applied on a Device, the Device will register itself with MSP as being assigned to that Site the next time the MSP Agent checks in with MSP. • Execute Custom Device Code In some cases, it may be desirable to have custom code on a Device decide the name of the Site to which a Device should be assigned. For example, it might be desirable to have the Device User enter the location or there might be an applicationspecific method for determining where the device is being used. It might even be possible on some devices to assign a Site based on positioning information, such as from a GPS receiver. Once custom Device code has been developed to determine the name of the Site to which a Device should be designed, this code can simply place the desired Site name into the Device Registry at the following location: Other MSP Features and Operations 77 [HKEY_LOCAL_MACHINE\Software\MSP\Attributes] “siteID”=”Site_Name” where: Site_Name is the Site name to which the device should be assigned. The Device will register itself with MSP as being assigned to that Site the next time the MSP Agent checks in with MSP. Status Module The Status Module allows you to view the status of all the devices and Relay Servers in your system. Viewing Device Status The Device Status page shows the identity and status information about the Mobile Devices being managed by MSP. The purpose of this page is to display key identity and status information for all devices or all devices that match the specified search criteria and to allow navigation to the Device Details page for any displayed device. This page is useful to survey all or a portion of the managed Mobile Device to determine their status or to perform a basic inventory of Mobile Devices. This page shows the Policy Compliance Status for each displayed device. A device is shown as Compliant if it has been updated with every Policy that applies to it. A device is shown as Non-compliant if it has not been updated with one or more Policies that apply to it. This page also shows the As Of time, which is the last time the device checked-in and provided new information. To view the details of a particular device, click the name of the Device ID. Viewing Relay Server Status The Relay Server Status page shows the status of the Relay Servers being managed by MSP. The purpose of this page is to display status information for all Relay Servers or all Relay Servers that match the specified search criteria and to allow navigation to the Relay Server Details page for any displayed Relay Server. This page is useful to survey all or a portion of the managed Relay Servers to determine their status or to perform a basic inventory of Relay Servers. This page shows the Name and Content Status (Green for success, Red for error, Yellow for trying to connect) for each Relay Server. The Content Status is the status of files that are being pushed out to the devices. The Content Processed column gives the last time that the Relay Server attempted to deliver Content to the devices. The Content Message column shows the result of the last attempt at Content delivery. If there was an error, the error message is in the Content Message column. The Upload Status (Green for success, Red for error, Yellow for trying to connect) refers to files and information that are passed from the devices to the Relay Server. The Upload Processed column gives the last time that the Relay Server attempted to retrieve an upload from the devices. The Upload Message column shows the result of the last attempt at upload delivery. If there was an error, the error message is in the Upload Message column. To view more information about a particular Relay Server, click on the Name of the server. This link takes you to the Relay Server Detail page. 78 MSP 3.1 User’s Guide Security Using HTTPS with MSP 3 Obtaining a SSL Certificate for the Server Several providers exist that can coordinate and provide, for a fee, trusted SSL certificates which can be installed on the MSP 3 Server to enable trusted HTTPS access. The following are links to some common providers. The following list is provided for convenience, is not intended to be complete and does not indicate any endorsement by Motorola: • www.thawte.com • www.verisign.com • www.geotrust.com • www.godaddy.com In addition, Microsoft provides the capability to produce self-signed SSL certificates through the IIS 6.0 Resource Toolkit which can be obtained from Microsoft. Self-signed certificates may be untrusted by browsers accessing MSP unless the SSL certificates are exported to the browsers that access MSP. Note: Verisign, GoDaddy, GeoTrust, Thawte, and Microsoft are trademarks of their respective companies. Installing Your IIS SSL Certificate on Microsoft IIS 5.x / 6.x • • • Select Administrative Tools Start Internet Services Manager Open the properties window for the website. You can do this by right clicking on the Other MSP Features and Operations 79 • • Default Website and selecting Properties from the menu Open Directory Security by right clicking on the Directory Security tab Click Server Certificate. The following Wizard will appear: 80 MSP 3.1 User’s Guide • • • • • Choose to Process the Pending Request and Install the Certificate. Click Next. Enter the location of our IIS SSL certificate (you may also browse to locate your IIS SSL certificate), and then click Next. Read the summary screen to be sure that you are processing the correct certificate, and then click Next. You will see a confirmation screen. When you have read this information, click Next. You now have an IIS SSL server certificate installed. Important: You must now restart IIS to complete the install. You may want to test the Web site to ensure that everything is working correctly. Other MSP Features and Operations 81 Enabling SSL Web Access for MSP 3 Console UI • • • In IIS select and right click on Default Web Site, Choose Properties In Properties select Directory Security. Select Edit under Secure Communications • Select Require Secure Channel (SSL) 82 MSP 3.1 User’s Guide • (Optional) Set up HTTP access to redirect to HTTPS by selecting Custom Errors Tab in Properties. Other MSP Features and Operations 83 • Select HTTP Error 403.4 and choose a file that you create to redirect. See example below. 84 MSP 3.1 User’s Guide Example File for Redirecting HTTP to HTTPS Access <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>MMS Demo Server Redirector</title> <meta http-equiv="REFRESH" Content="1;url=https://www.mmsdemoserver.com/MSP.web"></HEAD> <BODY> Loading... https://www.mmsdemoserver.com/MSP.web </BODY> </HTML> MSP Administration Program Beginning with MSP version 3.1.1, a new Administration Program is provided and installed on the same system as MSP 3 Server. Description The MSP Administration Program provides a convenient way to start and stop MSP services and to back up the MSP database. The program gives a summary of MSPrelated programs and files installed on the system and provides access to the MSP error log. This utility also allows you to specify locations of MSP configuration and database files. The utility is included in the MSP Server installation executable. You must be logged onto the server machine that has the Administration program installed on it with Administrator privileges to use the program. Program Overview The MSP Administration Program consists of five Modules: Installation, Backup/Restore, DB Maintenance, Configuration and logging. Click on the tabs at the left to enter the applicable module. Installation The Installation module shows the MSP related files and services installed on the system and gives their version number. If a file or service is not installed, it will still be listed, but will be labeled as “No” for Installed and as “N/A” for the Version. Yellow icons are services. Blue icons are files. The green icon represents the MSP Web program. Other MSP Features and Operations 85 Backup/Restore Use the Backup/Restore module to start and stop MSP services and to back up, restore, and delete the MSP database files. The backup and restore functions of this module allow you to manually backup and restore the database files. Note: Backups should only be restored on the same version of MSP. For example, you should not attempt to restore a backup from an MSP 3.1 system onto an MSP 3.1.1 system. Note: Stopping the MSP Web Application will stop IIS services on XP systems. If other applications are using IIS, they will also be stopped. DB Maintenance The DB Maintenance Module allows Users to check the current collation of the MSP database and, if applicable, to change the collation to agree with the master database. In order to check the collation, you must have the SQL sa password. If you do not know the password, contact Tier II Support. Configuration The Configuration module allows Users to specify the location of MSP configuration, database, installation, and client data files in one place without having to manually change the path names in multiple places. For instance, if MSP were to be installed on a server that was using a database in a shared folder on another server, Users can specify the directory path for the database in the configuration module and it will be changed throughout the system. Logging The Logging module Displays the MSP Logs and allows you to save the logs to a text file. High Availability Configuration of MSP Server 3.1.1 The High Availability Configuration of MSP Server 3.1 allows for quick system availability and easy recovery in the event of an unexpected machine failure. The system includes a Primary MSP Server PC and at least one Secondary MSP Server PC. If the Primary MSP Server PC were to fail, or if it would need to be shut down for maintenance, the Secondary MSP Server PC can be used to ensure that the system continues to operate without a lengthy interruption. Requirements and Installation The High Availability Configuration requires at least four Servers or PCs. All of the PCs or servers must be operating Microsoft Server 2003. The four PC’s include a Domain Controller PC, an SQL Database and File System PC, a Primary Web Application and Services PC, and a Secondary Web Application and Services PC. It is possible to have more than one Secondary Web Application and Services PC if desired. All of the PCs must be operating on the same domain. Refer to the Mobility Services Platform 3.1.1 86 MSP 3.1 User’s Guide Software Installation Guide for detailed information on system requirements and installation. Switching to the Secondary MSP Web Application and Services PC In the event of a failure to the Primary MSP Web PC, or for testing or maintenance purposes, the Enterprise can be switched over to the Secondary MSP Web Application and Services PC. Before Switching operation to the Secondary MSP Web Application and Services PC, stop the MSP Web Services on the Primary MSP Web Application and Services PC. Use the MSP Administration Program to stop the services. Note: To prevent loss of data and application errors, only one MSP Web Application can be operational at a time. In order to operate and test the MSP Web Application on the Secondary PC, the MSP Web Application and MSP Services must be shut down on the Primary PC and vice/versa. Troubleshooting Performance Monitoring The Windows Performance Utility can be used to monitor MSP 3.1 performance, including memory usage. Start the Performance Monitor utility by going to the Start menu and select Control Panel>Administrative Tools>Performance. The System Monitor portion of the Performance tool gives a real-time graphical display of various performance counters. This part of the Performance tool can be used for a quick monitoring of the system. Performance Counters can be used to track performance data over a longer period of time. To access the Performance Counters, double click Performance Logs and Alerts tree and click Counter Logs. You can create a new “log Settings” (right-click in the Performance Window and select New Log Settings ...). You can include the Counters you need to track, the format of the log, and the time interval for capturing the counters in the new log definition. Many of the same counters can be used in both System Monitor and Counter Logs. Refer to the Microsoft Management Console Help Topics for details. Using Windows Error Logging MSP adds entries to the Windows Event log to aid in the trouble shooting process. To view these MSP entries go to the Start menu and select Control Panel>Administrative Tools>Event Viewer. Click the Application page in the Event Viewer window. All events recorded for all applications will be displayed. The events recorded for MSP begin with Motorola.MSP. Click a specific event in order to view a detailed description of the event. The Event log may be exported to a .txt file for later reference. To export the event log click the Export List button at the top of the Event Viewer window. Other MSP Features and Operations 87 Using Staging Logs Staging logs are a good source of information when troubleshooting. Under normal operation Staging logs are automatically uploaded from devices to their Relay Server and then sent to the MSP Server. The information contained in these logs is stored in the MSP database. The information is then made available through the MSP 3 Console UI. View the Staging Status of by clicking the Staging tab and then “Staged Devices”. The Staging->Staged Devices page displays the IDs of the devices that have been Staged. Click on the link to a device in the “Device ID” column. Detailed information regarding the device can be obtained by expanding “Device Attributes”, “Installed Packages” and “Policy Status”. Expand “Device Attributes” to display device parameters such as software versions residing on the device as well as IP addresses etc. Expand “Installed Packages” to display Packages that are installed on the device. Expand “Policy Status” to show Policies that the device is compliant with. Clicking on the link under “Last Activity” will display a “Results” table listing various “Activities”, “Dates” and “Job IDs” for this device. Device-side Staging Logs In the case where a device is unable to communicate with a Relay Server, the Staging logs will not be uploaded and therefore the information will not be made available through the MSP 3 Console UI. In this situation it is necessary to look at the Staging logs on the device. To view the device logs select “Log Menu” from the Main Menu of the MSP Agent. Selecting “View Log” displays a log of activities involving the execution of the MSP Agent. A date/time stamp is followed by specific MSP Agent actions such as “MSP 3.0 Agent starting”, “agent inf Log file Opened”, etc. Selecting “View Job Log” displays a log MSP tasks. A date/time stamp is followed by a specific task such as “inf Loading Bundle …” , “inf Installing Package …”, “inf Package installed…”, etc. Setting the log level will affect what information is contained in the logs. Available log levels are Critical, Error, Warning, Info and Verbose. MSP Services MSP has a number of services that must be running. In order to view the services that are running on the system go to the Start menu and select Control Panel>Administrative Tools>Services. The MSP services that should be running include: • • • • • Motorola MSP Content Delivery Service Motorola MSP Discovery and Status Service Motorola MSP Policy Engine Service Motorola MSP SMS Content Service Motorola MSP Task Scheduler Service The Backup and Recovery utility is the only method that should be used for stopping and starting MSP Services. 88 MSP 3.1 User’s Guide Appendix A Reference Information Using Condition Objects A Condition Object is used to define criteria that can be evaluated on a device to determine whether or not a specified condition exists on that device. As described earlier, Condition Objects can be used as Policy Readiness Conditions to control when the execution of Jobs is allowed to occur on individual devices. In MSP 3.0, Condition Objects could ONLY be used as Policy Readiness Conditions. In MSP 3.1 and up, Condition Objects can also be referenced by Settings Objects. This new capability enables Settings Objects to configure dynamic reaction based on definable conditions on the device. MSP uses this capability to implement two key new capabilities: • Check-In Conditions The MSP Agent is configured using an Agent.30 Settings Object. This now allows Condition Objects to be specified that control when the MSP Agent will check in with the Relay Server. The ability to specify the check-in interval at which the MSP Agent checks in has not been removed. Instead, this interval can now be used in conjunction with Check-In Conditions to achieve powerful new results. If no Condition Objects are referenced by the Agent.30 Settings Object that is applied to the MSP Agent on a device, the MSP Agent will attempt to check in with the Relay Server at the frequency indicated by the check-in interval. It may or may not succeed, but it will try every interval. If connectivity is available, a check-in will generally occur, unless the Relay Server is unreachable for some reason. Whether or not the Relay Server was contacted, contact will be attempted again on the next interval. If one or more Condition Objects are referenced by the Agent.30 Settings Object that is applied to the MSP Agent on a device, then the MSP Agent evaluates the Check-In Conditions every interval but may not actually check-in every interval. On the check-in interval the MSP Agent evaluates all the Check-In Conditions referenced by the Agent.30 Settings Object to see if it is ALLOWED to check in with the Relay Server. Only if ALL such conditions are met will the MSP Agent actually 90 MSP 3.1 User’s Guide attempt to contact the Relay Server. This enables fine-grained control over the communications that actually occur between the MSP Agent and the Relay Server. Some common cases of Check-In Conditions include: • Limiting check-in based on what adapter is being used. For example, check-in might be allowed when WLAN or ActiveSync are being used but not when WWAN is being used. • Limiting check-in to certain times or days. For example, check-in might be allowed on the evenings and weekends, but not during the workday. • Limiting check-in to occur when there is adequate battery power or when the device is on the charger. • LockAndWipe Conditions When configuring the LockAndWipe Control Module using a Control.LockAndWipe Settings Object, Condition Objects can be referenced to specify the conditions under which lock, unlock, or wipe actions will be taken. This enables sophisticated local conditions to be used to trigger these actions. Some common cases of LockAndWipe Conditions include: • Locking a device automatically when it loses connectivity and/or unlocking it automatically when it regains connectivity. • Locking a device when it is placed on the charger and unlocking it again when it is removed from the charger. • Locking a device during selected hours of the day or on the weekends. Condition Objects are implemented as Plug-Ins so the number of available types of conditions can be extended. Each type of Condition deals with a particular aspect of the device that can be tested (e.g. Power, Adapters, Time, User Confirmation, etc.). A specific instance of a Condition Object is created to identify a specific condition on the device. Condition Objects can generally be combined to create complex combinations. The new ways to use Condition Objects described above can use any available types of Conditions, both those built-in to MSP and those added via Condition Plug-Ins. This provides for a high degree of extensibility. There are seven types of Provisioning conditions currently supported, which are described in the following sections: Adapter condition The Adapter Condition checks to see which network adapters, if any, are available and could be used by the MSP Agent to communicate with the Relay Server. When creating an Adapter Condition Object, you specify either the list adapters that are allowed (included) or the list of adapters that are not allowed (excluded). You can specify as many as three adapters in an Adapter Condition Object. An Adapter Condition Object might be used as a Policy Readiness Condition to prevent a large Provisioning Job from being executed over the wrong type of adapter (e.g. WWAN) and cause the Job to be deferred until a more suitable adapter is in use (e.g. WLAN or Ethernet cradle). Reference Information 91 AdapterTime condition The AdapterTime Condition combines the functionality of the Adapter Condition and the Time condition. This allows you to combine what checks for what adapters are being used (or not used) with checks for when they can or cannot be used. You can specify up to five different scenarios in a single AdapterTime Condition Object. An AdapterTime Condition Object might be used as a Check-In Condition, which could all of the following to be configured via a single Condition Object: • • • • On the weekends, regardless of the adapter used to connect, the MSP Agent should be allowed to check in up to once every 15 minutes. When connected via Ethernet Cradle, regardless of the time, the MSP Agent should be allowed to check in up to once every half hour. When connected via WLAN, during working hours, which are 9:00AM to 5:00PM on Monday through Friday, the MSP Agent should be allowed to check in up to once every half hour. When connected via WWAN, during early morning hours, which are 2:00AM to 6:00AM, the MSP Agent should be allowed to check in up to once every hour. Connectivity condition The Connectivity Condition checks to see when connectivity is continuously available or unavailable on a device. Two types of constraints are support: Adapter Constraints and Target Constraints. An Adapter Constraint allows the result to be based on whether an adapter or class of adapters has been continuously connected or unconnected for at least a certain duration. This can a low-impact way of determining, for example, of a device is or is not within range of a WLAN network. In such a case, it might be important to take action to secure the device. A Target Constraint allows the result to be based on whether a specified network address (target) has been continuously pingable or unpingable for at least a certain duration. This may be necessary if is capable of “roaming” to a network from which it cannot contact a specified server. In such a case, detecting the inability to reach a specified server via a ping may be a more reliable method of detecting effective loss of meaningful connectivity. A Connectivity Condition Object might be used as a LockAndWipe Condition to cause a device to be locked when connectivity is lost and unlocked when it is regained or lost. Confirm condition The Confirm Condition checks with the Mobile Device User to determine its result. The prompts to be displayed to the Mobile Device User can be controlled, effectively allowing the “question” being asked to be customized. A Confirm Condition might be used as a Policy Readiness Condition to allow a Mobile Device User to temporarily defer or even reject a Provisioning Job that might interfere with his productivity at a crucial time. Power condition The Power Condition is check to see how a Mobile Device is being powered, including whether the device is on A/C and or has a suitably high battery level. It can also be used 92 MSP 3.1 User’s Guide to prompt the Mobile Device User to place the device into the cradle or change the battery. For example, a Power Condition Object could be used as a Policy Readiness Condition to defer an large OS Update Job until the device is in on A/C power and/or has a full battery. Time condition The Time Condition is used to check the current local date and time on a Mobile Device. Up to three windows, consisting of start and end date/time pairs, can be specified. The result is based on whether the current local time on the device falls within at least one of these windows. For example, this condition could be used as a Policy Readiness Condition to defer a large Job until the middle of the night when the device would presumably not be in use. Universal condition The Universal Condition checks to see if a certain file, folder, registry value, registry key, or process exists or does not exist on a Mobile Device. This can be used to check very generic things about a device, such as the presence of a log or error file, a key placed into the registry by an application, or a process that is running on the device. A Universal Condition Object might be used as a Check-In Condition to prevent the MSP Agent from checking-in while an application is performing some critical activity. This might be done by having the application create and delete a file around its “critical section” and having the Universal Condition Object check for the non-existence of that file. A Universal Condition Object might be used as a LockAndWipe Condition to cause a device to be locked if a specific process, such as Solitare.exe is found to be running, indicating that the Mobile Device User is playing a game. A Universal Condition Object might be used as a Policy Readiness Condition to cause a Provisioning Job to be deferred until a critical device file is present. Reference Information 93 Using Setting Objects A Settings Object is used to specify configuration to be applied to a Mobile Device. The following classes of Setting Objects are built into the MSP Library. Support for some of these classes of Settings Objects is built into the MSP Client. For the rest, a Package needs to be Staged or Provisioned to a device before Settings Object of that class can be successfully applied on that device. Agent.30 The Agent.30 Settings Object Class enables the configuration of the MSP Agent, allowing its operation on the device to be adjusted. The standard Package enable30 that comes with MSP 3 is an example of an Agent.30 Settings Object that configures the MSP Agent to check-in at the default interval of 15 minutes. Additional Agent.30 Settings Objects can be created as needed to customize the MSP Agent to the needs of your Enterprise. Agent.AirBEAM The Agent.AirBEAM Settings Object Class enables the configuration of the Legacy AirBEAM Client, allowing its operation on the device to be adjusted. In the event that a need exists to use the Legacy AirBEAM Client for some reason, MSP 3 includes this Settings Object Class to configure its settings, although this should seldom be required. Attribute The Attribute Settings Object Class enables up to five Device Attributes to be assigned values on a Mobile Device. Only Device Attributes whose names begin with “userAttribute” can be set. The values of existing Device Attributes can be overwritten and/or new Device Attributes can be created. Once set, the values of these Device Attributes are reported back to MSP 3 then next time the MSP Agent checks-in. An Attribute Settings Object might be used to change the Site to which a Mobile Device is assigned or to assign tags to a device, such as to indicate that it is part of a Pilot test. Values assigned to Device Attributes can be examined from the MSP 3 Console UI and/or used in the definition of Policy Applicability Rules. Certificate The Certificate Settings Object Class enables Security Certificates to be installed into the certificate store of a Mobile Device. Security Certificates are most commonly used when connecting a device to a network resource, such as when configuring a WLAN or VPN connection or to access a secure Web Site. A Certificate Settings Object might be used to install a Security Certificate required to enable a Web-Based application to access a secure Web Server that implements the application logic. 94 MSP 3.1 User’s Guide Clock.TimeZone The Clock.TimeZone Settings Object Class enables the configuration of the Time Zone, which is used to translate time in Universal Time Coordinates (UTC) into the proper local time on the device. A Clock.TimeZone Settings Object might be Staged into a device to initially configure its Time Zone or might be pushed to a device by a Policy to change the Time Zone on the a device, such as when a device moves to a new area. Control.AutoSiteAssign The Control.AutoSiteAssign Settings Object Class enables the configuration of the AutoSiteAssign Control Module to adjust the criteria used to automatically (re)assign devices to Sites. A Control.AutoSiteAssign Settings Object might be used to configure a device to move to a new Site when it roams to a new WLAN or Relay Server. Control.LockAndWipe The Control.LockAndWipe Settings Object Class enables the configuration of the LockAndWipe Control Module to adjust when the device will be locked, unlocked, and/or wiped either unconditionally (when applied based on Server Policy) or conditionally (when determined by referenced Condition Objects). A Control.LockAndWipe Settings Object might be used to configure a device to wipe all its data if it is continuously unable to ping a specific server in the Enterprise for longer than a week. Network.WLAN.FusionPublic The Network.WLAN.FusionPublic Settings Object Class enables the configuration of the 802.11 WLAN network on devices equipped with the Fusion WLAN Stack version 2.35 or 2.5 and later. Devices equipped with other versions of the Fusion WLAN Stack must use the Network.WLAN.Legacy Settings Object Class instead. A Network.WLAN.FusionPublic Settings Object is commonly used to define the WLAN settings to be applied on the most recent Motorola Mobile Devices during Staging. Network.WLAN.Legacy The Network.WLAN.Legacy Settings Object Class enables the configuration of the 802.11 WLAN network on Mobile Devices with older Legacy version of the Fusion WLAN Stack, most version of the Mobile Companion WLAN Stack, or the Microsoft Wireless Zero Config Stack. A Network.WLAN.Legacy Settings Object is commonly used to define the WLAN settings to be applied on older Motorola Mobile Devices during Staging. Network.WWAN.GPRS The Network.WWAN.GPRS Settings Object Class configuration of the WWAN data connection on Mobile Devices equipped with General Packet Radio Service (GPRS) modems. Reference Information 95 A Network.WWAN.GPRS Settings Object is commonly used to define the WWAN data connection settings to be applied on Motorola GPRS-enabled Mobile Devices during Staging. UCA The UCA Settings Object Class enables the configuration of device-specific settings on Motorola CA50 Mobile Devices. A UCA Settings Object is commonly used when Staging Motorola CA50 devices to configure the server location for these network appliances. 96 MSP 3.1 User’s Guide FTP Server Reference The following reference information is included for convenience for choosing and configuring FTP Servers for use as an MSP Relay Server. Information is provided for the following FTP Servers: • • • • FileZilla, an open source FTP Server. Microsoft IIS FTP that is provided with Windows. Note that IIS FTP does not support secure FTP. Motorola WS-2000 FTP Server. Note that WS-2000 does not support secure FTP. Any external FTP Servers that are compliant to relevant RFCs. Configuring FileZilla for use as Relay Server To configure FileZilla as the Relay Server: 1. Go to FileZilla and select Edit > Users > Add. The Add User account window appears 2. In the Add User account window, enter the Username and click OK. The Username that you have entered appears in the User pane. 3. From the Account Setting pane, enable the Enable password check box. 4. In the Password field, enter a password. 5. Go to the Shared folders pane and click Add. 6. Select a folder from your system and click OK. The selected folder appears under the Shared folders pane. All the Contents (Packages, Bundles, and network Settings) from MSP will be delivered to this folder. 7. Enable the following options under Files and Directories pane: Files • • • • Read Write Delete Append Directories • • • • Create Delete List +Subdirs 8. Click OK. Refer the FileZilla documentation for more information. Once you have configured FileZilla for use as an MSP Relay Server, you must create a Relay Server Object in MSP with the details pertaining to the FTP Server. Reference Information 97 If you wish to use secure FTP on FileZilla, see the section later in this Appendix on Secure FTP. Configuring Windows IIS FTP Server as Relay Server Setting up FTP Server • • • • • • • The Windows FTP Server is not installed by default. Put the Windows CD in and use the following steps to install it. From the System Start menu, select Control Panel > Add/Remove Windows Components. Select Application Server and click Details. Select IIS and click Details. Check the FTP Service box and click OK to close the IIS window. Click OK to close the Application Server window. Click Next to continue and complete the Windows Components Wizard. Configuring the FTP Server • • • • • • • • • From the System Start menu, select Administrative Tools > Internet Information Services (IIS) Manager Under the Computer pane, double-click the local computer and select FTP Sites Select Default FTP Site > Properties. In the Default FTP Site Properties window: Under FTP Site tab, set the IP address of the server and the desired port number. Under Security Accounts tab, set desired FTP Username and password Under Home Directory tab, set desired local path and make sure it has both Read AND Write access. Click OK and make sure the service is running. Verify that you can access the FTP directory from a different computer. Make sure you can access the FTP directory from another PC. Once you have configured IIS for use as an MSP Relay Server, you must create a Relay Server Object in MSP with the details pertaining to the FTP Server. Using WS-2000 FTP Server as Relay Server A Motorola WS-2000 Wireless Switch, running firmware version 2.0 or higher, and equipped with a Compact Flash (CF) card, implements an FTP Server. This FTP Server can be used to implement an MSP 3 Relay Server, if desired. This can allow the benefits of having a local Relay Server without the expense or complexity of installing and managing a separate FTP Server. The WS-2000 includes a single built-in FTP User account with a User name of AirBEAM (User name is case sensitive). You can configure the password for this account as part of the WS-2000 configuration. When defining a Relay Server Object to reference a WS-2000 FTP Server, always specify a User name of AirBEAM along with the password that was configured, and along with the IP addresses from which MSP and Mobile Devices can access the FTP 98 MSP 3.1 User’s Guide Server of the WS-2000. The exact IP addresses required will depend on how the WS2000 is configured (e.g. LAN, WAN, NAT, etc.). The path specified in the Site definition MUST be /compactflash/MSP 30/ –for both Public and Private. Before a CF card can be used in the WS-2000 FTP Server, you must configure the WS2000 to enable CF Card Access (via LAN and/or WAN as appropriate). See Also, you must format the CF card using the following commands issued via the CLI (command line interface) of the WS-2000, where the text in bold represents the CLI prompts presented by the WS-2000. admin >system admin(system) >exec cformat Secure FTP Support FTPS usage is configured as part of the definition of each Relay Server. When the Private Server Details are configured to use FTPS as the Protocol, then the MSP 3 Client will use FTPS exclusively when it communicates to that Relay Server. When the Public Server Details are configured to use FTPS as the Protocol, then the MSP Server will use FTPS exclusively when it communicates to that Relay Server Relay Server. It is possible to configure the Private and Public Details differently for a single Relay Server, in which case the MSP Client and MSP Server will use different protocols to communicate to the same Relay Server. For example the MSP Server might be configured to use FTP because its communication is entirely within a secure network; whereas MSP Clients might be configured to use FTPS to provide additional security across a WLAN connection. The support for FTPS in MSP 3 conforms to RFC 2228 (FTP Security Extensions). MSP 3 supports the AUTH TLS mode of FTPS. The deprecated AUTH SLL, and implicit FTPS (port 990) modes are NOT supported. MSP does not support the SFTP protocol, which is part of the SSH (secure shell) suite, and is not actually an FTP protocol. The FTPS protocol supports three forms of security: • Data encryption All FTP traffic, after the initial AUTH command is encrypted. Technically, FTPS can support leaving data in the clear on an FTPS connection, but the MSP Client does not support clear data over an FTPS connection. Data is always encrypted over an MSP Client FTPS connection. • Server authentication This optional feature authenticates that the FTPS server that the FTPS client is communicating with is in fact the server it is intending to communicate with. This feature can defeat man-in-the-middle attacks where a rogue FTPS server impersonates a Relay Server. This feature requires that a server certificate, signed by a CA recognized by the client, to be installed on the client before any FTPS connections are attempted. Some FTPS servers, including Filezilla (see below), provide tools for generating a self-signed server certificate that can be installed on a client. The certificate setting plug-in that is built into the client can be used to Stage and/or Provision server certificates onto a device. Reference Information 99 This feature is enabled using the VerifyServer Relay Server setting. When the VerifyServer option is enabled, the client will not communicate with the Relay Server (FTPS server) unless it is able to authenticate the server with the server certificate installed on the device. • Client authentication This optional feature authenticates that the FTPS client that the FTPS server is communicating with is in fact who it claims to be. This feature requires that a client-specific client certificate, signed by a CA recognized by the server, be installed on the client before any FTPS connections are attempted. The requirements for this certificate are server dependant. Enabling FTPS Support MSP Relay Server Configuration In general, MSP FTPS is enabled through the Relay Server configuration on the MSP Server. The MSP Relay Server configuration has fields that can be used to specify FTPS is to be used by the server and client respectively. The client-side protocol (FTP or FTPS) is configured using the Private Server Details : Protocol and VerifyServer fields. The client-side handler for the Relay Server Settings creates registry entries in the HKEY_LOCAL_MACHINE\SOFTWARE\AIRBEAM hive. Direct Registry Configuration There are special situations where it is appropriate to enable FTPS, and optionally FTPS server authentication, directly through the device registry. Two of the situations where the registry can be configured directly are: • • When creating an abupdate.reg file to automate the transition from MSP 2.x to MSP 3.x. In this case, the FTPS registry Settings for the MSP 3.x client are added to the abupdate.reg file. Refer to the separate document that describes the automation of the migration of clients from MSP 2.x to MSP 3.x. When creating a “gold image” that pre-configures the MSP 3.c client. In this case, an AirBEAM.reg file can be created that initializes the MSP 3.x client Settings during the device’s initial boot. Sample Reg File The following lines are an example of the Content of an abupdate.reg file that could be used to enable FTPS, and server authentication. [HKEY_LOCAL_MACHINE\SOFTWARE\AIRBEAM] "FTPS"="1" "VERIFYSERVER"="1" The FTPS and VERIFYSERVER entries could be included in an AirBEAM.reg file in a “gold image:” 100 MSP 3.1 User’s Guide Troubleshooting Error code When the client is unable to connect to the specified FTPS server a -1011 error will be returned from the connection attempt. This error will be written to the MSP 3.0 client log, and will displayed by the RD client UI, and the 30 agent UI, if enabled. Error causes There are two common issues that will cause the client to be unable to connect with an FTPS Relay Server: • • The FTP Server does not support, or is not configured, to support “AUTH TLS” FTPS connections Server authentication is enabled (Verify Server set to true) and the server certificate is missing or invalid. Invalid server certificate A server certificate can be determined to be invalid by the client for several reasons: • • • Certificate is not signed by a CA that the device recognizes. The certificate must be signed by a CA for which the client has a root certificate installed. The certificate can be a self-signed root certificate (see Filezilla below) Certificate does not contain the correct common name for the server (usually the IP address or DNS name). The client verifies that the common name in the server certificate matches the IP address of the Relay Server, as configured on the client. Certificate time window is invalid. Certificates have a valid date range and the client verifies the current date on the device is within this range. This error typically occurs if the server certificate time window has expired. This error can also occur if the client clock is not set correctly Diagnostic Steps The following steps can be used to determine the issue if the client cannot connect to an FTPS Relay Server. • • • • • Verify the client FTPS Settings (Relay Server – Protocol and Verify Server) are set correctly. Use an Ethernet network monitor, or the FTP Server logging to determine whether the server is processing the FTP AUTH command. If the client disconnects immediately after the AUTH command then it generally indicates there is an issue with the server certificate installed on the device. If the server rejects the AUTH command then generally it means FTPS is not enabled on the server. Verify the client clock is set correctly. An incorrect client clock setting can cause the server certificate time window to be considered invalid. Use the Settings / Certificates control panel applet on the device to verify the server certificate is installed. Use the Settings / Certificates control panel applet on the device to verify the Contents of the server certificate: • Verify the certificate is signed by a CA for which a root certificate is installed on the device. If the CA root certificate is not on the device then a certificate setting can be used to install the root certificate. Reference Information 101 • Verify the server certificate’s time window is valid, and specifically that the certificate has not expired. • Verify the common name in the server certificate matches the IP address of the Relay Server, as configured on the client. Server Certificate Installation In order to use the FTPS server authentication feature on the client a valid server certificate must be installed on the client. The built-in certificate plug-in can be used to Stage and/or Provision certificates onto the device. • Obtain the server certificate The server certificate can be obtained from a CA, or it can be a self-signed certificate (see Filezilla below) The certificate must be in DER format to be installable onto a client device. • Create a certificate setting to install the certificate on the device Use MSP Server to create an instance of a certificate setting that contains the server certificate • Install the server certificate onto the device Use MSP Staging or Provisioning to install the certificate setting generated above. Once the server certificate is installed on the device then VerifyServer can be enabled on the client. Note, that VerifyServer must not be enabled until a server certificate is installed or the FTPS server authentication will fail and the client will be unable to connect to the FTPS Relay Server. Creating a certificate setting The following steps should be used to create a certificate setting suitable for installation onto a client: • Use the MSP Server to create a new instance of a certificate setting. The certificate setting contains the following fields: • Name – enter an unique meaningful name for the setting instance (i.e. <Relay Server name>_cert • Description – this optional field can be used to provide a description for the setting instance (i.e. Server certificate for <Relay Server name>) • Certificate File – Use the provided browse button to specify the file that contains the server certificate. Once a file is selected the certificate Contents will be embedded in the setting. If the server certificate changes then the updated file will need to be re-selected to update the setting Contents. • Root Certificate – This boolean field should be set to False if the certificate is not a self-signed certificate. This field should be set to True if the certificate is a selfsigned certificate (see Filezilla below) Staging certificates There are two ways a server certificate can be Staged: • • Include the certificate setting in the “barcodes” section of a Profile Include the certificate setting in the “Content”, or the Bundle that Staging loads 102 MSP 3.1 User’s Guide There are considerations regarding which option is used: • • • If the certificate is included in the Profile itself then the client can be configured to authenticate the server and the Staging Content can be downloaded from an FTPS server that is authenticated. A certificate can be relatively large (usually 1-2KB). Including a certificate in the Profile can result in a large Profile. If linear barcodes are being used, an unacceptably large number of barcodes will be generated. Using PDF barcodes may be usable, but they will still be several PDF barcodes, that may span more than a single page. A better solution when including certificates in a Profile may be to use OnDemand Staging. In this mode, the Profile, including the embedded certificates, is transferred to the device by the OnDemand server. One compromise option is to enable FTPS, but not server authentication, in the Staging Profile and use the Staging Content to download the certificate. This approach results in smaller barcodes, and may be a reasonable solution in a dedicated Staging environment. Once the Staging Content is loaded, including the certificate, server authentication can be enabled. Filezilla Secure FTP Configuration Edit - Settings - SSL/TLS Settings Enable SSL/TLS support This checkbox should be checked to enable SSL/TLS (FTPS) support Reference Information 103 Private key file This field is used to specify the file that contains the server private key. This field is automatically filled in if a self-signed certificate is generated (see Generate new certificate …). This can be the same file as the server certificate file if it contains the private key. Certificate file This field is used to specify the file that contains the server certificate. This field is automatically filled in if a self-signed certificate is generated (see Generate new certificate …) Allow explicit SSL/TLS on normal conditions This checkbox should be checked to enable explicit SSL/TLS (AUTH TLS) support Force explicit SSL/TLS This checkbox may be checked to disable FTP and only allow FTPS connections Force PROT P to encrypt data channel in SSL/TLS mode This checkbox should be unchecked Listen for SSL/TLS-only connections on the following ports This field should be cleared in order to disable implicit FTPS (not supported b MSP). The default value is 990. Generate new certificate … This button can be used to create a self-signed server certificate (see Creating a selfsigned server certificate) Creating a self-signed server certificate The Filezilla server supports generating a self-signed server certificate. This approach can be useful during testing because it is faster than obtaining a server certificate signed by a real CA. 104 MSP 3.1 User’s Guide The following dialog is used to create a self-signed server certificate. Most of the fields are informational only. Key size Specify the key size for the server certificate. Larger keys are more secure, but the generated certificate file is larger. The default value of 1024 is suggested. 2-Digit country code Specify the country code of the country where the server is located (i.e. US) Full state or province Specify the state where the server is located (i.e. Texas) Locality (City) Specify the city where the server is located (i.e. Houston) Organization Specify the organization the server is associated with (i.e. Motorola) Organization unit Specify the unit within the organization the server is associated with (i.e. MSD) Reference Information 105 Contact E-Mail Specify a contact email address (i.e. [email protected]) Common name (Server address) Specify the server’s IP address or DNS name. NOTE: The specified value must match the IP address used by the client to access the FTPS server. Save key and certificate to this file Specify the name and location of the server certificate file to be created. Name the certificate file Filezilla.crt if the certificate is going to be converted using the PEM to DER conversion utility (see below). Generate certificate Use this button to create the server certificate file with the provided information. Converting self-signed certificate to DER format The server certificate generated by Filezilla is in PEM format. Certificates must be in DER format to be installed on a Windows CE device. There are utilities that can convert a PEM format certificate to DER format. One utility that does work to convert PEM to DER is the openssl.exe utility that is part of openssl. openssl is an open-source implementation of SSL. A separate ZIP file is available that contains the openssl.exe utility, openssl DLL libraries, and a batch file for creating a DER format certificate from a PEM format certificate. The ZIP file with the conversion utility is called FilezillaCert.zip. Conversion utility The utility to create a DER format certificate from a PEM format certificate is called ConvertFileZilla.bat. The ConvertFileZilla.bat utility creates a DER format certificate (Filezilla.cer) from a PEM format certificate (Filezilla.crt). Opening Ports on MSP 3 Server MSP specifically uses TCP Port 80 (if there is a firewall on the Server) for http connection with MSP 3 Console UI. The FTP Servers use a variety of ports that are described below: If the FTP Server will be running in on the same server, then the appropriate ports will need to be opened on the firewall depending on whether Active or Passive FTP will be used. Note: Windows XP with Service Pack 2 automatically turns on the Windows firewall. Ports used when FTP Server is in Active Mode: • FTP Server's port 21 from anywhere (Client initiates connection) 106 MSP 3.1 User’s Guide • • FTP Server's port 21 to ports > 1023 (Server responds to client's control port) FTP Server's port 20 to ports > 1023 (Server initiates data connection to client's data port) • FTP Server's port 20 from ports > 1023 (Client sends acknowledgements to server's data port) Ports used when FTP Server is in Passive Mode: • • • FTP Server's port 21 from anywhere (Client initiates connection) FTP Server's port 21 to ports > 1023 (Server responds to client's control port) FTP Server's ports > 1023 from anywhere (Client initiates data connection to random port specified by server) • FTP Server's ports > 1023 to remote ports > 1023 (Server sends acknowledgments and data) to client's data port) If you are using a work station PC and wants RemoteControl connection to the Mobile Devices from the Workstation PC, you must set port 8080 for communication between the workstation and the Mobile Devices. MSP 3 Client Error Codes The MSP 3 Client components (AirBEAM, Rapid Deployment and the MSP 3.0 agent) can return error codes in the -8xx rand and the -10xx range. Error codes in the -8xx range are legacy AirBEAM error codes. Refer to the AirBEAM User Guide documentation for information on these error codes. The following table lists the -10xx error codes used by the MSP 3.0 Client. Error Code -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1009 -1010 Description A Job was orphaned. A Job is considered orphaned when the MSP Agent starts and the Job was left in a started state. This can occur if a program within the Job reboots the device (i.e. osupdate) without returning to the agent. A pending Job was cancelled. An error occurred opening the MSP Client log file. An error occurred reading the MSP Client log file. Buffer length error. This is an internal error code used by the logging logic and should never be reported by the agent. Invalid plug-in class error. This error code is not retuned by the agent. It is use by custom plug-ins to indicate an unsupported plug-in class value was specified. Invalid plug-in provider error. This error indicates the Provider registry value is missing from the plug-in registration. In other words, the HKLM\Software\MSP\Plugins\<vendor>\Provider registry entry is missing. Error reading registry value. This error is returned when an unexpected lowlevel error occurs reading the device registry. No plug-in provider. This error indicates the a plug-I is not registered correctly. In other words, the HKLM\Software\MSP\Plugins\<vendor> registry key is missing. Missing Bundle error. This error indicates a Bundle specified in a Staging Profile, or a job, was not found on the Relay Server. Reference Information 107 -1011 -1012 -1013 -1014 -1015 -1016 -1017 -1018 -1019 -1020 -1021 -1022 -1023 -1024 -1025 -1026 -1027 -1028 -1029 -1030 Error connecting to FTPS server. This error is usually caused by missing/invalid server certificate when VerifyServer is enabled. Invalid Bundle error. This error indicates a Bundle file has invalid Contents. Invalid Job error. This error indicates a file has invalid Contents Error occurred during FTP file deletion Error occurred creating Bundle Error occurred writing Bundle Invalid message file. Messages are limited to 50 characters. Invalid blob header. This error indicates a blob header has invalid Contents. Invalid device UUID. This error indicates an error occurred while trying to obtain the device’s UUID from the CE system calls. Too many attributes. This is an internal error code used by the User attribute logic and should never be reported by the agent. No MSP Client mutex error. This error indicates the low-level Staging/Provisioning engine is in-use by another process. Provisioning cancelled error. This error indicates the Provisioning process was cancelled by a Staging process. Error writing registry entry. This error is returned when an unexpected lowlevel error occurs writing the device registry. Error processing condition. This error indicates a condition plug-in returned a failue. Error occurred during FTP CWD command Error occurred processing Relay Server info file Insufficient buffer space for Relay Server info file site list. This is an internal error code used by the Relay Server info file processing logic and should never be reported by the agent. Plug-in (setting or condition) entry point is undefined Missing plug-in DLL. The specified plug-in DLL does not exist on the device. Error returned from setting plug-in entry-point. 108 MSP 3.1 User’s Guide Device WT4090 Keyboard Anomalies The keyboard for the WT4090 does not use the expected key combinations in some cases. When the User selects Exit to shut down the MSP Agent, the UI asks if you are sure you want to exit and the No button is highlighted. A User would expect that pressing the Enter button would select “No” and pressing the TAB or Right Arrow key would move to the Yes button, but this does not work. On the WT4090, the P1 and P2 keys are used instead. P1 is used for No and P2 is used for Yes. When the RemoteControl utility sends a message to the WT4090, the message is displayed on the UI and the OK button is highlighted. Since the OK button is highlighted, a User would expect to press the Enter button to select it. However, this does not work. The only way to select the OK button to acknowledge the message is to press the SPACE key. This is a two button sequence on the WT4090 (Function + BKSP). Listing of SMS Carriers Domains The following is a list of domains for some of the SMS Carriers. Verizon: [email protected] AT&T: [email protected] Sprint: [email protected] T-Mobile: [email protected] Nextel: [email protected] Cingular: [email protected] Virgin Mobile: [email protected] Alltel: [email protected] OR message.alltel.com CellularOne: [email protected] Omnipoint: [email protected] Qwest: [email protected] Glossary Term Attribute Barcode sheet(s) BLOB Bundle Condition Attribute Device Attribute Enterprise Mobility Domain Enterprise Mobility Segment Definition An Attribute is a name/value pair that is used to define and capture a single unit of information, such as configuration or status. Printed sheet(s) of paper containing barcodes that can be scanned by a barcode scanner built-into or attached to a Mobile Device. A Blob is a binary file in which an Object is encoded for transfer from the MSP Server to a Mobile Device by way of a Relay Server. Blobs are most commonly used for Objects such as Settings, Conditions, Bundles, etc. A Bundle is a generic description of a set of Deployment Steps to be performed to accomplish Content Deployment as Staging and/ or Provisioning for one or more Mobile Devices. A Bundle can specify Packages that are to be installed and/or uninstalled in a defined order and can optionally initiate “reboot” steps if needed. A Bundle can also specify a Message Set to define messages to be displayed on the device. A Condition Attribute is a name/value pair that is defined as part of a Condition Class and is used to capture information that will ultimately be used to test a Mobile Device to see if some required pre-condition is met. A Device Attribute is a name/value pair that is used to capture information about a Mobile Device. Device Attributes may be originate on and be collected from a device and/or they may be generated on or by the MSP Server. Device Attributes are used to provide identity and status information about devices, for display purposes and/or for use in writing and evaluating Provisioning Policy Applicability Rules A customer's complete Enterprise mobility domain, which is comprised of one or more Enterprise Mobility Segments. A portion of an Enterprise Mobility Domain managed by MSP. 110 MSP 3.1 User’s Guide ESSID Mobile Device MSP MSP Client MSP 3 Console UI MSP Agent MSP Server MSP Server Software MSP Solution Network Operations Center (NOC) Network Settings Objects Packages Production Site On Demand Profile Extended Service Set Identification. The ESSID is the identifying name of a wireless network. ESSID allows one wireless network to be clearly distinguishable from another. A mobile computing device possessing network connectivity and managed by an MSP as part of an Enterprise Mobility Segment. A term used generically to refer to all or part of the Mobility Services Platform Solution. Also used generically to refer to a specific instance of an MSP Server A set of software components that collectively implement the mobility management services on a Mobile Device to integrate the Mobile Device into an Enterprise Mobility Segment managed by MSP. A Web-based User interface used to control an MSP Server and manage its Enterprise Mobility Segment. A device-resident software component and part of the MSP 3 Client. Provisioning is the process of keeping devices up-to-date with respect to software Packages, configuration Settings, and other device-resident Content. The MSP Agent performs Provisioning as a background process and hence must be installed and activated on every Mobile Device before it can be managed using MSP 3 Provision Edition. A suitable customer-supplied server, running a supported version of Windows, on which the MSP Server Software is properly installed. A single MSP Server is used to manage an Enterprise Mobility Segment. MSP Software that can be installed on a Windows Server. A complete solution deployed using MSP components to manage a customer's Enterprise mobility domain. The location from which centralized management operations are performed. A Network Settings is any Settings whose Class name in “dotted name” notation starts with “Network.” These Classes are used to represent Settings that configure Network Connectivity subsystems on the device. In particular, all such Settings Classes relate to types of Connectivity that may be used for Staging or Provisioning, and hence are of special importance to MSP. Objects are different work products created and manipulated by Users of MSP. Objects in MSP include Profiles, Sites, Bundles, Packages, and Settings. Packages are software Content that needs to be installed on Mobile Devices for upgrading or downgrading the devices. MSP supports Content in the form of AirBEAM Packages. A Production Site is a Site at which a Mobile Device will be in Production use. Note that a Production Site may or may not be a Site at which Provisioning can be performed. If Provisioning will be performed at the Site, it may or may not be a requirement for a Production Site to specify Network Settings. If Provisioning of Mobile Devices will be performed at the Site, then it would be a requirement for a Production Site to specify a Relay Server, since otherwise no Content Deployment could be performed at the Site. The server that serves Staging Profile information to Rapid Glossary 111 Server Profiles Provisioning Provisioning Client (also known as MSP Agent) Provisioning Policy Provisioning Policy Condition Plug-In Provisioning Policy Deployment Steps Provisioning Policy Job Provisioning Policy Readiness Conditions Relay Server Rules (Provisioning Policy Applicability Rules) Deployment Client for Staging devices. Profiles contain network setting details and Packages information required for Staging of devices. Deployment of Content (Packages and Settings) to Mobile Devices that is initiated by a management system. The device-side component that is responsible for keeping the device up-to-date as defined by a Provisioning Policy. On the device, the Provisioning Client is launched as MSP Agent and identifies itself as such when it runs. A Provisioning Policy is a generic description of a Content Deployment that should be performed by MSP, either automatically or under the control of a User of the MSP 3 Console UI. A Policy consists of Applicability Rules, Deployment Steps, and Readiness Conditions. MSP periodically examines each Mobile Device to determine whether or not each Active Policy is applicable to that device, based on the Applicability Rules defined for the Policy. A Provisioning Policy Condition Plug-In is a means by which new Condition Classes can be added or existing Condition Classes can be modified, based on the changing capabilities and needs of Mobile Devices. Provisioning Policy Deployment Steps are the steps that will be followed to deploy software onto one or more Mobile Devices as a result of an Active Provisioning Profile. Deployment Steps are encapsulated in a Bundle A Provisioning Policy Job is an Object created and sent to a Mobile Device to implement any Policy Deployment Steps necessary to bring the device into Compliance to a Provisioning Policy. Provisioning Policy Readiness Conditions define the conditions that must be met before a Job can be executed on a Mobile Device to implement Policy Deployment Steps to make a device Compliant to a Policy A Relay Server is an intermediate server used for interchanging Content and status information between an MSP Server and one or more Mobile Devices. In MSP 3.0, Relay Servers must be FTP Servers, which can be located on the same Server as MSP and/or on other Servers throughout the Enterprise. MSP 3.0 supports two protocols: FTP and Secure FTP for communicating with Relay Servers. Relay Servers that use the FTP Protocol must be compliant to RFCs 959 and 3659 File Transfer Protocol (FTP). Relay Servers that use the Secure FTP Protocol must be compliant to RFC 4217, Securing FTP with TLS. Provisioning Policy Applicability Rules are used within a Policy to determine the set of Mobile Devices for which the Policy will be Applicable. A special case of a Rule is “All Devices”, which indicates that no filtering or limitation on the set of Applicable devices should be applied. An Explicit Rule can also be defined which compares one or more of the Device Attributes of a specific device to supplied values to determine if the Policy is Applicable to that device. 112 MSP 3.1 User’s Guide Settings Settings Attribute Settings Plug-In Site Staging Staging Client (also known as Rapid Deployment Client) Staging Barcode Sheet A Settings is a collection of Settings Attributes that provide information needed to configure a subsystem on a Mobile Device. Settings are defined by Settings Classes, which categorize Settings based on the subsystems they are used to configure. Classes are also sometimes subdivided hierarchically into Subclasses that allow similar Settings to be further distinguished and organized. The hierarchy of Settings Classes is represented by using “dotted name” notation. For example, Network.WLAN.Legacy, Network.WLAN.FusionPublic, and Network.WWAN.GPRS A Settings Attribute is a name/value pair that is defined as part of a Settings Class and is used to capture information that will ultimately be used to configure a subsystem on a Mobile Device. For example, ESSID might be the name of a Settings Attribute within a Settings Class called Network.WLAN.Legacy, whose value holds the ESSID of the Wireless Network being configured. A Settings Plug-In is a means by which new Settings Classes can be added or existing Settings Classes can be modified, based on the changing capabilities and needs of Mobile Devices. A Settings Plug-In implements a single Settings Class and consists of two parts: An XML Settings Class Definition Document (DefDoc) and a Settings Device-side Component (DLL). The DefDoc describes how to display, enter, validate, and encode the values of the Settings Attributes of that Settings Class. The DLL contains code to take the values of the various Settings Attributes and apply them to the appropriate subsystem on a device A Site is a generic description of a location within the Enterprise at which a Mobile Device will be used. A Site can be defined to be a Staging Site and/or a Production Site. A Site can specify descriptive information about the location of the Site and contact information for the Site Administrator. Additionally, a Site can specify Network Settings that should be used by Mobile Devices operating at that Site and/or a Relay Server that is available for use by Mobile Devices operating at that Site. Deployment of Content (Packages and Settings) to Mobile Devices that is initiated by a device User. Since Staging is often performed on un-configured Mobile Devices, Staging also allows Settings (e.g. network and Relay Server) to be configured, from a Profile, before Content Deployment begins. The device side component that is responsible for implementing all device-side Staging activities as defined by a Profile. On the device, the Staging Client is launched as Rapid Deployment Client and identifies itself as such when it runs. A Staging Barcode Sheet is a printable encoding of the information in a Staging Profile into Barcodes that can be scanned by a Mobile Device equipped with a Barcode Scanner. Various types of Barcodes can be generated, depending on the Barcode Scanning capabilities of various devices. Normal PDF Barcodes have the highest density, requiring the fewest Barcodes to be scanned for a Profile. For some devices with lower quality Barcode Scanners, Small PDF Barcodes can be used to improve the readability, at the expense of having to scan more Barcodes. For devices with only Glossary 113 Staging On Demand Profile Server Staging Profile Staging Profile Deployment Steps Staging Site 1D (laser) Barcode Scanning capabilities, Normal Linear Barcodes can be used. For some devices with very low-end Barcode Scanners, Narrow Linear Barcodes can be used to improve the readability, at the expense of having to scan more Barcodes. An On Demand Profile Server allows Staging Profiles to be acquired by a Mobile Device directly from the PC that is used to run the MSP 3 Console UI. Using an On Demand Profile Server enables devices that have connections, such as cradles, ethernet, etc. that do not require pre-configuration, to be used to accelerate Staging by avoiding the need to scan Barcodes. A Staging Profile is a generic description of a Content Deployment that should be performed by MSP as requested by a User on a Mobile Device. A Profile consists of Staging Settings, Deployment Steps, and Staging Options. When Staging is initiated by a User on a Mobile Device, a specific Profile is acquired by the device. The Staging Options for the Profile determine how the Profile can be acquired by the device, which could include having the User scan a Profile Barcode Sheet or pulling the Profile from an On Demand Profile Server. Staging of a device proceeds by first applying any Staging Settings defined by the Profile. Then the device performs the Deployment Steps for the Profile, which are defined by a Bundle, to deploy the required software to the device Staging Profile Deployment Steps are the steps that will be followed to deploy software onto one or more Mobile Devices as a result of applying a Staging Profile. Deployment Steps are encapsulated in a Bundle. A Staging Site is a Site at which Staging of Mobile Device will be performed. Depending on how Staging will be performed, it may or may not be a requirement for a Staging Site to specify Network Settings. In general, it is a requirement for a Staging Site to specify a Relay Server, since otherwise no Content Deployment could be performed at the Site. MSP 3.1 User’s Guide Motorola, Inc. One Motorola Plaza Holtsville, New York 11742, USA 1-800-927-9626 http://www.symbol.com MOTOROLA and the Stylized M Logo and Symbol and the Symbol logo are registered in the U.S. Patent and Trademark Office. All other product or service names are the property of their registered owners. © Motorola, Inc. 2007 72E-100158-04