You are previewing Developing Cisco IP Phone Services: A Cisco AVVID Solution.
O'Reilly logo
Developing Cisco IP Phone Services: A Cisco AVVID Solution

Book Description

Create applications that deliver interactive content to Cisco IP Phones

  • Learn information and techniques vital to building and integrating third-party services for Cisco IP Phones

  • Understand the development process using XML and HTTP client and server applications to successfully build a service

  • Discover advanced services information about objects, advanced runtime generation, and other XML development tools

  • Utilize the provided CallManager Simulator to support an IP phone for development purposes Get the most out of your IP phone systems with strategies and solutions direct from the Cisco team

  • Services on Cisco IP Phones help you enhance productivity, gain the competitive advantage, and even help generate revenue. Services are simply applications that run on the phone rather than on a PC or a web browser. By developing services tailored to your particular needs, you can achieve unlimited goals.

    Cisco AVVID IP Telephony provides an end-to-end voice-over-IP solution for enterprises. Part of that solution are Cisco IP Phones, a family of IP-based phones. Cisco IP Phones feature a large display, an XML micro browser capable of retrieving content from web servers, and the ability to deploy custom services tailored to your organization's or enterprise's needs.

    Developing Cisco IP Phone Services uses detailed code samples to explain the tools and processes used to develop custom phone services. You'll learn about XML, CallManager, Cisco IP Phones, and the history behind why Cisco chose XML to deploy phone services. You'll find detailed information to help you learn how to build a service, how to build a directory, and how to integrate your service with Cisco CallManager.

    This book complements and expands on the information provided in the Cisco IP Phone Services Software Developer's Kit (SDK). With the information in this book, you can maximize your productivity using the tools provided in the SDK and the custom tools provided on the companion CD-ROM. Beginner and advanced service developers alike benefit from the information in this book. Developing Cisco IP Phone Services represents the most comprehensive resource available for developing services for Cisco IP Phones.

    Companion CD-ROM
    The CD-ROM contains the sample services that are covered in the book, development utilities from the Cisco IP Phone Services SDK, and new tools written specifically for this book such as XML Validator. One of the most useful applications on the CD-ROM is the CallManager Simulator (CM-Sim). CM-Sim significantly lowers the requirements for service development. You only need a Windows-based PC with CM-Sim and a web server running, and one Cisco IP Phone 7940 or 7960.

    This book is part of the Cisco Press Networking Technologies Series, which offers networking professionals valuable information for constructing efficient networks, understanding new technologies, and building successful careers.

    Table of Contents

    1. Copyright
      1. Dedications
    2. About the Authors
      1. About the Technical Reviewers
    3. Acknowledgments
    4. Foreword
    5. Introduction
      1. Objectives
      2. Audience
      3. Organization/Chapter Organization
      4. Book Features and Text Conventions
      5. Target Release—Cisco CallManager 3.1
      6. Reader Feedback
      7. Icons Used in This Book
    6. 1. How This Book Can Help You Achieve Business Goals
      1. Increase Productivity
      2. Gain the Competitive Advantage
      3. Generate Revenue
      4. If You Want Something Done Right …
      5. Can I Get Rich Developing Services?
      6. Deploying Services on Cisco IP Phones
        1. Tips for Building Successful Services
      7. About the CD-ROM
      8. Forum on HotDispatch
      9. The Horse's Mouth
        1. AAC Associates
        2. Berbee
        3. Calence
      10. Conclusion
    7. 2. The Basics
      1. CallManager Architecture
        1. Key components of the network architecture
        2. Low-level Networking
        3. Higher-level Communication Protocols
      2. The Cisco IP Phone
        1. IP Phone Services Capability
        2. Phone-Initiated Service
        3. Beyond Simple Text
      3. What Is an IP Phone Service?
        1. The Services Menu
        2. Service Architecture
      4. Web Servers, Web Development
        1. Already a Web Developer?
        2. Languages
          1. Traditional Compiled Languages
          2. Scripting Languages
          3. Hybrid Systems
      5. XML
        1. A History Lesson
        2. The Highly Improved Modern World
        3. HTTP—A Generic Envelope
        4. XML—A Generic Wrapper
        5. XML—What is it?
        6. XML—A Few Details
        7. XML Tools
      6. A Simple Sample
        1. MagicCube.asp
      7. Using XML Objects
        1. SonOfMagicCube.asp
      8. Training and Support for the Cisco IP Phone Services SDK
      9. Additional Resources, Further Reading
        1. Networking Infrastructure
        2. Administration, Programming, and Care of Web Servers
        3. Administration of CallManager
      10. Conclusion
    8. 3. Phone Services Primer
      1. How to Do it, in a Nutshell
      2. XML and Cisco IP Phones
      3. Services and Directory Architecture
      4. Providing Help for Your Services or Redirecting the i Button
      5. HTTP and Cisco IP Phones
        1. HTTP Client
        2. HTTP Server
          1. Gathering Device Information
          2. Using HTTP Post
          3. Creating a Screen Capture of a Phone Display
        3. Identifying a Requesting Client Device
      6. Push vs. Pull
      7. URIs
      8. Stream Control
      9. Soft Key Support for Directories and Services
      10. New Characters for Cisco IP Phones
      11. Security
        1. Client Authentication
        2. Authenticating to the Phone's HTTP Server
      12. Fail Over and Fail Back
      13. Conclusion
    9. 4. Using Cisco IP Phone XML Objects and Tags
      1. Using Soft Keys and URLs/URIs
      2. Understanding Objects
      3. CiscoIPPhoneMenu
        1. Definition
      4. CiscoIPPhoneText
        1. Definition
      5. CiscoIPPhoneInput
        1. Definition
      6. CiscoIPPhoneDirectory
        1. Definition
        2. Custom Directories
      7. CiscoIPPhoneImage
        1. Definition
      8. CiscoIPPhoneGraphicMenu
        1. Definition
      9. CiscoIPPhoneIconMenu
        1. Definition
      10. CiscoIPPhoneExecute
        1. Definition
      11. CiscoIPPhoneResponse
        1. Definition
      12. CiscoIPPhoneError
        1. Definition
      13. XML Considerations
        1. Mandatory Escape Sequences
      14. Cisco IP Phone XML Object Quick Reference
    10. 5. Using HTTP
      1. HTTP Requests and Responses
      2. HTTP Client
        1. Cisco IP Phone Browser Request Method: GET
        2. HTTP Client Headers
          1. Content-type Header
          2. Refresh Header
          3. Location Header
          4. Expiration Header
          5. Set-Cookie Header
        3. HTTP Client Sessions
          1. URL History
          2. State Management
          3. Session Life
          4. Authentication
          5. Proxy
      3. HTTP Server
        1. Push
          1. Authentication
          2. HTTP POST
        2. Accessing Device Information
      4. Conclusion
    11. 6. XML Conventions
      1. What is XML?
        1. Structured Documents
      2. XML Basics
        1. Tags
        2. Attributes
        3. Elements and Content
        4. Objects
      3. An XML Browser that Ships with Windows
      4. Nitty-gritty
        1. The Prolog
        2. Escape Sequences
        3. Comments
      5. XML Structure Rules—Your Friend the Schema
        1. Rules—Who Needs Them?
        2. Two Varieties of Schema
        3. DTD Out—XML Schema In
        4. Validating
      6. Debugging XML Problems
      7. Need More?
      8. Conclusion
    12. 7. Building a Service
      1. Enhancing the End User's Experience
        1. Guidelines for Custom Soft Keys
        2. Web Server Error Messages
        3. Version Compatibility
      2. Voice Anomaly Tracking (VAT) Service
        1. VAT Service Overview
          1. Designing the Service Using Primitives and HTTP Headers
          2. Sample Service Source
      3. Conclusion
    13. 8. Building a Directory
      1. Behavioral Differences with Directories vs. Services
      2. Designing a Directory Using Primitives
      3. Making the Directory Appear on Cisco IP Phones
      4. Making a Directory with the LDAP Search COM Object
      5. Conclusion
    14. 9. Integrating a Service with Cisco IP Phones
      1. Using CallManager Administration
        1. Adding a Phone Service
        2. Updating or Deleting a Phone Service
      2. User Subscription
      3. Providing Default Services to All Phones
      4. Appending the Device Name
      5. Conclusion
    15. 10. Techniques for Advanced Services
      1. Adding Graphics
        1. Generating Graphics for Applications Using Arrays
        2. Numeric Digits to CiscoIPPhoneImage Sample
        3. Runtime Conversion of Graphics
          1. Resize an Image Maintaining its Aspect Ratio
        4. Manipulating Graphics at Runtime
        5. Capturing the Phone's Display
          1. Manually Capturing the Display
          2. Programmatically Capturing the Display
        6. Pushing Content
      2. Conclusion
    16. 11. XML Development Tools
      1. Graphics Conversion Control
        1. Server-side Conversion
        2. Installation
        3. Methods and Properties
          1. Methods: LoadGIF(filename), LoadJPG(filename)
          2. Properties: Width, Height
          3. Method: Resize(width, height)
          4. Property: ColorBitDepth/Method: RGBToPalette()
          5. Property: ColorImage/Method: ColorToGray()
          6. Property: ColorCount/Method: ReducePaletteColors()
          7. Method: SetPrompt()/Method: SetTitle()
          8. Method: SaveCIP()
        4. An Example
      2. URL Proxy Control
        1. Installation
        2. Methods and Properties
          1. Authentication
          2. Error Reporting
          3. Proxy Use
        3. A Short Example
      3. LDAP Search Control
        1. Installation
        2. Use
          1. LDAP Server Properties
        3. Output Options
        4. Search Options
        5. Search Methods
        6. Formatting Output
        7. An Example
        8. Advanced Topics
      4. Photoshop Graphics Filter
        1. Installation
      5. Validator
        1. Installation
        2. Using Validator
      6. Conclusion
    17. 12. Cisco CallManager Simulator
      1. The Function of CM-Sim
      2. The TFTP Server Role
      3. The CallManager Role
      4. Routing Calls
      5. Limitations
      6. CM-Sim Installation
      7. System Requirements
        1. Using CM-Sim
      8. Configuring CallManager
      9. Phone Setup
        1. Step 1—Enable Network Configuration Changes
        2. Step 2—Enable the Alternate TFTP Server
        3. Step 3—Enter the TFTP Address
        4. Step 4 – Save and Restart
      10. Configuring the Default Phone Settings
      11. Configuring Specific Cisco IP Phone Settings
      12. Seeing It In Action
      13. Internals
      14. Debugging with Command Line TFTP
      15. Conclusion
    18. 1. Glossary