Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1...

79
Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Transcript of Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1...

Page 1: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API

Avaya IP Telephone Interface Release 2.1

Issue 1.0 August 2004

Page 2: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Copyright 2004, Avaya Inc.

All Rights Reserved

Notice

Every effort was made to ensure that the information in this document was complete and accurate at the time of printing. However, information is subject to change.

Trademarks

DEFINITY is a registered trademark of Avaya, Inc. MultiVantage is a trademark of Avaya, Inc. HTTP Server functionality is provided by the GoAhead WebServer 2.1, Copyright © 2004 GoAhead Software, Inc. All Rights Reserved.

Disclaimer

Avaya is not responsible for any modifications, additions or deletions to the original published version of this documentation unless such modifications, additions or deletions were performed by Avaya. Customer and/or End User agree to indemnify and hold harmless Avaya, Avaya's agents, servants and employees against all claims, lawsuits, demands and judgments arising out of, or in connection with, subsequent modifications, additions or deletions to this documentation to the extent made by the Customer or End User.

API Support

This support is limited to the API. We can not provide assistance with generic configuration, servers, other software, or network issues. Please visit the Application Support Forum for more information.

How to Get Help

For additional support telephone numbers, go to the Avaya support Web site: http://www.avaya.com/support. If you are:

• Within the United States, click the Escalation Management link. Then click the appropriate link for the type of support you need.

• Outside the United States, click the Escalation Management link. Then click the International Services link that includes telephone numbers for the international Centers of Excellence.

Providing Telecommunications Security

Telecommunications security (of voice, data, and/or video communications) is the prevention of any type of intrusion to (that is, either unauthorized or malicious access to or use of) your company's telecommunications equipment by some party.

Your company's “telecommunications equipment” includes both this Avaya product and any other voice/data/video equipment that could be accessed via this Avaya product (that is, “networked equipment”).

An “outside party” is anyone who is not a corporate employee, agent, subcontractor, or is not working on your company's behalf. Whereas, a “malicious party” is anyone (including someone who may be otherwise authorized) who accesses your telecommunications equipment with either malicious or mischievous intent.

Such intrusions may be either to/through synchronous (timemultiplexed and/or circuit-based) or asynchronous (character, message-, or packet-based) equipment or interfaces for reasons of:

• Utilization (of capabilities special to the accessed equipment)

• Theft (such as, of intellectual property, financial assets, or toll facility access)

• Eavesdropping (privacy invasions to humans)

• Mischief (troubling, but apparently innocuous, tampering)

• Harm (such as harmful tampering, data loss or alteration, regardless of motive or intent)

Be aware that there may be a risk of unauthorized intrusions associated with your system and/or its networked equipment. Also realize that, if such an intrusion should occur, it could result in a variety of losses to your company (including but not limited to, human/data privacy, intellectual property, material assets, financial resources, labor costs, and/or legal costs).

Responsibility for Your Company’s Telecommunications Security

The final responsibility for securing both this system and its networked equipment rests with you - Avaya’s customer system administrator, your telecommunications peers, and your managers. Base the fulfillment of your responsibility on acquired knowledge and resources from a variety of sources including but not limited to:

• Installation documents

• System administration documents

• Security documents

• Hardware-/software-based security tools

• Shared information between you and your peers

• Telecommunications security experts

To prevent intrusions to your telecommunications equipment, you and your peers should carefully program and configure:

• Your Avaya-provided telecommunications systems and their interfaces

• Your Avaya-provided software applications, as well as their underlying hardware/software platforms and interfaces

• Any other equipment networked to your Avaya products

TCP/IP Facilities

Customers may experience differences in product performance, reliability and security depending upon network configurations/design and topologies, even when the product performs as warranted.

To order copies of this and other documents:

Call: Avaya Publications Center

Voice 1.800.457.1235 or 1.207.866.6701

FAX 1.800.457.1764 or 1.207.626.7269

Write: Globalware Solutions 200 Ward Hill Avenue Haverhill, MA 01835 USA Attention: Avaya Account Management E-mail: [email protected]

For the most current versions of documentation, go to the Avaya support Web site: http://www.avaya.com/support

Page 3: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

LIST OF TABLES

Table 1: URI Examples .....................................................................................................................63

Table 2: x-Avaya-Push-Code Responses ........................................................................................69

Table 3: HTTP Error Messages .......................................................................................................71

Push Interface API Page iii Avaya, Inc.

Page 4: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

LIST OF FIGURES

Figure 1: Typical System-wide Network Topolgy .........................................................................17

Figure 2: Avaya IP Telephone Interfaces .......................................................................................18

Figure 3: Push/Pull Operation.........................................................................................................24

Figure 4: Push Flow...........................................................................................................................26

Figure 5: Full Screen Push ................................................................................................................29

Figure 6: Topline Push ......................................................................................................................29

Figure 7: Hotel Application Example .............................................................................................32

Figure 8: Stock Alert Example .........................................................................................................40

Push Interface API Page iv Avaya, Inc.

Page 5: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

TABLE OF CONTENTS

1 Introduction ........................................................................................11

About this Document ..........................................................................................................11

Intended Audience ........................................................................................................11

Document Organization......................................................................................................12

Change History .....................................................................................................................13

What’s New in Issue 1.0 ......................................................................................................13

Conventions Used in This Document...............................................................................13

Symbolic Conventions ..................................................................................................13

Various Note Conventions...........................................................................................13

Typographic Conventions ............................................................................................14

Online Documentation........................................................................................................14

Related Documents ..............................................................................................................15

2 IP Telephone Interfaces..................................................................... 17

System Overview ..................................................................................................................17

Existing Interfaces................................................................................................................18

3 Push Interface .................................................................................... 21

Introduction ..........................................................................................................................21

Brief Feature Description....................................................................................................21

Features ..................................................................................................................................22

4 Push Overview ................................................................................... 23

Push Flow Process ...............................................................................................................23

Two Step View – Push/Pull Process.................................................................................23

Push operation (step 1a and step 1b)..........................................................................23

Push Interface API Page v Avaya, Inc.

Pull operation (step 2a and step 2b)............................................................................24

Page 6: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Message Flow ..............................................................................................................24

Step 1 – XML File (Push Message).............................................................................24

Step 2 – Response from Push Agent ..........................................................................25

Step 3 – XML Message Parsing...................................................................................25

Step 4 – Launch a Request ...........................................................................................26

Step 5 – Push Content ..................................................................................................26

Step 6 – Send Message to Telephone .........................................................................26

5 Push Agent ......................................................................................... 27

Introduction ..........................................................................................................................27

HTTP server..........................................................................................................................27

Push Agent - HTTP POST Address .................................................................................28

6 Push Types......................................................................................... 29

Description ............................................................................................................................29

7 Display Push ...................................................................................... 31

Introduction ..........................................................................................................................31

Features ..................................................................................................................................31

Web Browser Features..................................................................................................31

Alerts................................................................................................................................31

Example ..........................................................................................................................31

Priorities and States ..............................................................................................................32

Pushable vs. Non-Pushable States ..............................................................................32

Successful Push Response...................................................................................................32

Normal Priority ..............................................................................................................33

Barge Priority..................................................................................................................34

XML Messages......................................................................................................................35

Push Interface API Page vi Avaya, Inc.

Push Message (PM) .......................................................................................................35

Page 7: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

<postfield> tag ..............................................................................................................35

Maximum Length .................................................................................................................36

Push Agent......................................................................................................................37

Push Content (PC).........................................................................................................37

8 Topline Push ...................................................................................... 39

Introduction ..........................................................................................................................39

Features ..................................................................................................................................39

Text Message ..................................................................................................................39

Alerts................................................................................................................................39

Example ..........................................................................................................................39

Priorities and States ..............................................................................................................40

Pushable vs. Non-Pushable States ..............................................................................40

Successful Push Response...................................................................................................40

Normal Priority ..............................................................................................................41

Barge Priority..................................................................................................................41

XML Messages......................................................................................................................42

Push Message (PM) .......................................................................................................42

<postfield> tag ..............................................................................................................42

Maximum Length .................................................................................................................43

Push Agent......................................................................................................................44

Push Content (PC).........................................................................................................44

<Response> tag:............................................................................................................44

<Topline> tag................................................................................................................45

9 Audio Push......................................................................................... 47

Introduction ..........................................................................................................................47

Push Interface API Page vii Avaya, Inc.

Features ..................................................................................................................................47

Page 8: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Alerts................................................................................................................................47

Example ..........................................................................................................................47

Priorities and States ..............................................................................................................48

Introduction....................................................................................................................48

Pushable vs. Non-Pushable States ..............................................................................48

Successful Push Response...................................................................................................48

Normal Priority ..............................................................................................................49

Barge Priority..................................................................................................................49

XML Messages......................................................................................................................50

Push Message (PM) .......................................................................................................50

<postfield> tag ..............................................................................................................50

Maximum Length .................................................................................................................51

Push Agent......................................................................................................................52

Push Content (PC).........................................................................................................52

10 Subscribe Push ............................................................................. 57

Introduction ..........................................................................................................................57

Features ..................................................................................................................................57

Alerts................................................................................................................................57

Priorities and States ..............................................................................................................57

Successful Push Response...................................................................................................58

XML Messages......................................................................................................................58

Push Message (PM) .......................................................................................................58

<postfield> tag ..............................................................................................................58

Push Agent......................................................................................................................59

Push Content (PC).........................................................................................................59

Push Interface API Page viii Avaya, Inc.

<Response> tag.............................................................................................................59

Page 9: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

<Subscribe> tag.............................................................................................................60

Maximum Length .................................................................................................................60

11 Administration.............................................................................. 61

Introduction ..........................................................................................................................61

Requirements.........................................................................................................................61

Security................................................................................................ 61

Introduction ..........................................................................................................................61

TPSLIST ................................................................................................................................61

Validation Scenarios .............................................................................................................63

Subscription Service............................................................................ 65

Subscriber Service.................................................................................................................65

SUBSCRIBELIST ................................................................................................................66

Subscription update..............................................................................................................67

Retry Timer............................................................................................................................67

Denial of Service Timer.......................................................................................................67

12 Troubleshooting........................................................................... 69

Avaya HTTP Header Extensions (x-Push-Status Codes) ..............................................69

HTTP Error Messages.........................................................................................................71

13 References .................................................................................... 75

Push Interface API Page ix Avaya, Inc.

14 Glossary ........................................................................................ 77

Page 10: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 10 Avaya, Inc.

Page 11: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

1 INTRODUCTION

About this Document This document provides a description of the Avaya™ Push Interface, describes how to build applications using the Push Interface, and covers how to troubleshoot basic Push problems with the Avaya™ 4610/4620 IP Telephones. This document applies to software release 2.1 and covers only the behavior of the IP telephone. The performance and behavior of the application or application server are not addressed.

Unless otherwise indicated, any references to “the DEFINITY® server” in this document also refer to the Avaya Communication Manager media servers.

The Avaya 4610SW, 4620SW, and 4620 IP telephones are covered in this guide.

Intended Audience This document is intended for the application developers that may develop Push Interface based applications for the Avaya IP Telephones. Chapter 11 – Administration is intended for System Administrators who need to enable the Push feature and setup the Subscription Server Addresses on the TFTP server.

CAUTION: Many of the products mentioned in this document are not supported by Avaya. Care should be taken to ensure there is adequate technical support available for the TFTP, DHCP, LDAP, and Web servers. If the servers are not functioning correctly, the Avaya IP Telephones may not operate correctly.

Push Interface API Page 11 Avaya, Inc.

Page 12: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Document Organization This guide contains the following sections:

Chapter 1, “Introduction” Provides an overview of the Push Interface API document.

Chapter 2, “IP Telephone Interfaces” Describes all the available Avaya IP Telephone Interfaces.

Chapter 3, “Push Interface” Gives a brief description of the Push Interface and outlines available Push features.

Chapter 4, “Push Overview” Overview of the Push technology, describes the Push Message Flow process with diagrams.

Chapter 5, “Push Agent” Describes the Push Agent in the telephone and its significance.

Chapter 6, “Push Types” Differentiates various Push messages that can be sent to the IP Telephone.

Chapter 7, “Display Push” Provides specifications on the display push type with priorities and states, XML message schema, screenshots, code samples, and a walk-through example.

Chapter 8, “Topline Push” Provides specifications on the topline push type with priorities and states, XML message schema, screenshots, code samples, and a walk-through example.

Chapter 9, “Audio Push” Provides specifications on the audio push type with priorities and states, XML message schema, RTP streaming details, and code samples.

Chapter 10, “Subscribe Push” Provides specifications on the subscribe push type with XML message schema and code samples.

Chapter 11, “Administration” Describes the procedure to enable the Push feature and provides details on Security and Subscription service.

Chapter 12, “Troubleshooting” Describes all the error messages that may occur during the operation of the Push feature and provides solutions to resolve them.

Chapter 13, “References” Lists all the references within the scope of this document.

Chapter 14, “Glossary” Provide a detail explanation of the terms used in this document.

Push Interface API Page 12 Avaya, Inc.

Page 13: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Change History Issue 1.0 This document was issued for the first time in August 2004.

What’s New in Issue 1.0 New material in this issue includes:

Availability of the Push Interface for the Avaya 4610/4620 IP telephones.

Conventions Used in This Document This document uses the following textual, symbolic, and typographic conventions to help you interpret information more clearly.

Symbolic Conventions

NOTE:

This symbol precedes additional information about a topic. This information is not required to run your system.

CAUTION:

This symbol is used to emphasize possible harm to software, possible loss of data, or possible service interruptions.

Various Note Conventions

The above note is called “Caution Note” and is geared towards all audiences

Push Interface API Page 13 Avaya, Inc.

Page 14: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The above note is called “General Note” and is geared towards all audiences.

The above note is called “Administrative Note” and is targeted primarily towards system administrators.

The above note is called “Application Developer Note” or simply “Application Note” and is primarily targeted towards Application Developers.

The above note is called “Example Note” and is used to describe a given example.

Typographic Conventions This guide uses the following typographic conventions:

Code Words printed in this type are code excerpts, code samples, and XML tags

Online Documentation The online documentation for the Push Technology API and other Avaya IP Telephone Interfaces is located at the following URL:

http://www.avaya.com/support

Push Interface API Page 14 Avaya, Inc.

Page 15: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Related Documents 4600 Series IP Telephone Release 2.1 LAN Administrator’s Guide

This guide provides a description of Voice over IP, describes how to administer DHCP and TFTP servers, and how to setup Push parameters in the 46xxsettings.txt script file.

Push Interface API Page 15 Avaya, Inc.

Web Browser Application Programmer’s Interface

This document describes the Web Browser on Avaya IP Telephones and provides a detail description of the XML schema used. It also provides applications and examples that use the Web API Interface on Avaya IP Telephones.

Page 16: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 16 Avaya, Inc.

Page 17: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

2 IP TELEPHONE INTERFACES

System Overview Following is a picture of a typical system-wide network diagram that includes Avaya IP Telephones, Avaya Communication Manager Servers, and Application Servers that include Push Servers, Subscription servers, etc.

Figure 1: Typical System‐wide Network Topolgy 

With this picture in the current context, enabling a web server or an application server for a particular enterprise is not an additional entity.

Push Interface API Page 17 Avaya, Inc.

Page 18: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Let’s say company ABC currently has an intranet web server that serves company’s intranet sites and other employee information. Now, ABC just deployed Avaya IP Telephones company-wide and learned about a new feature called Web Browser. In order to setup a web server for the Avaya IP Telephones, all ABC has to do is add two MIME types on their existing intranet web server. So, ABC does not require an additional server or entity to enable web functionality on Avaya IP Telephones. Additionally, a Push Application server or a Trusted Push server can also be the same intranet server. Similarly, a subscription server can also be resident on ABC’s existing intranet server.

For more information on setting up MIME types or setting up a Web server, please refer to the document “WML Server Setup Guide” for release 2.1, available for download at http://www.avaya.com/support

Existing Interfaces Avaya IP Telephones provide the following interfaces to the telephones. Please note that you do not need irDA or TAPI interfaces to use Push Interface.

irDA: This is an infrared interface. Users can dial telephone numbers using the IR port from other IR devices such as PDAs.

Figure 2: Avaya IP Telephone Interfaces 

WEB

TAPI

IrDA

Push Interface API Page 18 Avaya, Inc.

Push (New)

Page 19: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

TAPI: This is a Telephony Application Programmer’s Interface. TAPI is primarily used for call control applications such as NetMeeting or IP Softphone.

Web: This is a Web Browser Interface. Users can navigate web applications and retrieve information about the company, news, interactive applications such as the conference room scheduler, Company Directory lookup, etc.

Push Interface API Page 19 Avaya, Inc.

Page 20: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 20 Avaya, Inc.

Page 21: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

3 PUSH INTERFACE

Introduction Push is the ability for an application to send content to the web browser, to the topline of the display, or to the audio transducers of Avaya™ 4620, 4620SW, and 4610SW IP telephones.

This is a new interface available in Release 2.1 software of the Avaya IP Telephones.

Until now, external applications used to interface with the IP telephone using the Web Browser. The Web Browser Interface requires users to “Pull” the data from an application, i.e., a user has to click on a particular link or page to access the information.

With the new Push Interface, the application can itself spontaneously “Push” the information to the telephone without the user having to click on a link.

Some of the examples of the Push applications are:

Broadcasting emergency alerts

Broadcasting company news

Sending meeting reminders with conference bridge numbers so that users don’t have to search for the conference number

Streaming music such as wake-up alarms in hotel rooms

Streaming audio announcements

Sending critical stock news information

Broadcasting critical weather alerts

Building intelligent databases to target information to an individual or groups of phones.

Brief Feature Description

Push Interface API Page 21 Avaya, Inc.

For release 2.1, a message can be pushed as single line text, a full screen push, or an audio stream to a properly configured Avaya IP Telephone.

Page 22: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

A security mechanism is provided to assure that the content pushed to the phones is from a trusted source. Additionally, a subscription service will allow the phones to provide necessary information to the application server such that pushes may be targeted to the individual user, a group of users, or to the enterprise. Push will be available with two priorities set by the application and may also be accompanied by an optional notification alert.

Features Push Interface provides several features such as:

Full screen pushes (display push type)

Single line text push (topline push type)

Audio streaming (audio push type)

Optional alerts

Push priorities

Security mechanism

Push Interface API Page 22 Avaya, Inc.

Subscription service

Page 23: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

4 PUSH OVERVIEW

Push Flow Process The following terminology is used:

Push Initiator: This is an application that is capable of transmitting the Push Message to the Push Agent.

Push Agent: This is the telephone software resident on the Avaya IP Telephone that is capable of receiving the Push message from the Push Initiator. The Push Agent processes the Push Message and requests the Push Content.

Trusted Push Server (TPS): This is a web server serving the Push Content that conforms to the security settings as established by the TPSLIST parameter in the script file. This can also be an existing web server within the network or same server as the Push Initiator.

Two Step View – Push/Pull Process The push framework is a two-step process: a "push" operation followed by a "pull" operation. Please refer to Figure 3 below for visual reference.

Push operation (step 1a and step 1b)

Push Interface API Page 23 Avaya, Inc.

The Push Initiator (PI), which is an application server, transmits a Push Message using the HTTP “POST” method to the phone’s Push Agent (PA).

Page 24: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Figure 3: Push/Pull Operation 

Pull operation (step 2a and step 2b) The phone requests the target URI of the Push Content from a Trusted Push Server. The Push Content can be any valid WML file or an XML file with tags that instruct the endpoint to set up an RTP audio stream, display a message on the topline, display a full screen message with images and links or re-subscribe with the subscription server.

Push Message Flow Please refer to figure 3 below for visual reference. Below is a step-by-step process that describes how a particular push message is sent to an Avaya IP Telephone.

Step 1 – XML File (Push Message) The first step of the push process is to POST a Push Message using an XML file to the Push Agent in the Telephone.

Push Interface API Page 24 Avaya, Inc.

The Push Message can only be sent using the HTTP POST method.

Page 25: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

This message contains an XML file with the <Push> tag and instructions for the Push Agent in the phone to request the Push Content from a Trusted Push Server.

For more information on the Push Message, please refer to the individual Chapters of each push type.

Step 2 – Response from Push Agent Now, the Push Agent sends a response back to the Push Initiator with HTTP status codes. The response also contains a HTTP header extension called “x-Avaya-Push-Status” code.

x-Avaya-Push-Status is used to indicate the outcome of a push request back to the Push Initiator.

x-Avaya-Push-Status codes responds with errors such as Forbidden, Not in Push state, etc.

Please refer to Chapter 12 – Troubleshooting for more information on x-Avaya-Push-Status codes.

Step 3 – XML Message Parsing The XML parser parses the Push Message and verifies that the Push Content URL is a Trusted Push Server. If the URL is not a Trusted Push Server, then a HTTP 403 - Forbidden error message is sent back to the Push Initiator using Step 2 mechanisms.

Push Interface API Page 25 Avaya, Inc.

Page 26: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Figure 4: Push Flow 

Step 4 – Launch a Request Once the URL is verified as a Trusted Push server, the Push Agent launches a request for the URL that is embedded in the <go> tag of the Push Message.

Step 5 – Push Content Now the Trusted Push Server sends a response back to the telephone with the proper Push Content. The Push Content consists of an XML file or a WML file based on the Push Type. This file is parsed by the XML Parser and the push content is extracted and prepared for display.

Step 6 – Send Message to Telephone Once the XML file is parsed by the XML parser in the telephone, depending on the push type, the message is either displayed or streamed on the telephone.

Push Interface API Page 26 Avaya, Inc.

Page 27: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

5 PUSH AGENT

Introduction The Avaya IP telephones (4610 and 4620 IP phones) provide an HTTP server in addition to the HTTP client to allow an application server to "push" a request for the following:

The web browser to get and display a particular web page

The phone’s topline application to display a topline message

The phone to receive an audio stream from an application outside the context of a telephone call

HTTP Server functionality is based on (or is provided by) the GoAhead WebServer 2.1, Copyright © 2004 GoAhead Software, Inc. All Rights Reserved.

HTTP server

The Push Agent will activate the receive port 80 for the HTTP server if the phone is properly registered with a call server and if the TPSLIST contains at least one non-null value.

Avaya IP telephones supports an HTTP server as specified for HTTP 1.0 in [4] and an HTTP client as specified in [3]. The HTTP server will use TCP as a transport-layer protocol, and it will only support one connection (socket) at a time. The HTTP client uses TCP as a transport-layer protocol.

The Push Agent only listens to port 80 for all incoming requests.

Push Interface API Page 27 Avaya, Inc.

Page 28: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Agent - HTTP POST Address The HTTP POST address (URL) for the IP telephone where a push request is sent to is:

http://<IP_Address_of_the_telephone>/forms/push

Where,

<IP_Address_of_the_telephone> is the IP address of the telephone where the push is to be sent in the dotted-decimal format.

The Push Agent will process all POST methods received by the phone's HTTP server that contains the above URL. All HTTP POST requests must be sent to this URL only.

All XML messages will be sent in the HTTP POST pre-defined variable called “XMLData”.

A 403 Forbidden response is sent in response to a POST with an invalid Request-URI.

Push Interface API Page 28 Avaya, Inc.

Page 29: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

6 PUSH TYPES

Description The IP phones will support the following push types:

1. Display Push type: Content can be pushed to the web browser with an optional alert. The pushed page can access all web browser features.

For more information on Display Push, please refer to Chapter 7

Figure 5: Full Screen Push 

2. Topline Push type: Text can be pushed to the topline with an optional alert. Topline pushed messages and alerts can be displayed even when the web browser is not in focus.

For more information on topline Push, please refer to Chapter 8

Figure 6: Topline Push 

Push Interface API Page 29 Avaya, Inc.

Topline Push

Page 30: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

3. Audio Push type: The phone can receive an audio stream from an application outside the context of a telephone call. The audio Push Message may be accompanied with an optional alert.

For more information on Audio Push, please refer to Chapter 9

4. Subscribe Push type: The Push Subscription Service will allow the phones to re-subscribe to the subscription application server with the phone’s IP address, user’s extension, Set Id and MAC Id.

For more information on Subscribe Push, please refer to Chapter 10 and Chapter 11

All push types can be delivered either with a Normal priority or with a Barge priority on an individual push basis. Please refer to individual chapters for more information on priorities and states.

Push Interface API Page 30 Avaya, Inc.

Page 31: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

7 DISPLAY PUSH

Introduction Display push can be used when you need to use the full screen of the Telephone, i.e., when the push content contains more than a single-line text message. With display push, a message can have text, images, or hyperlinks.

Features Outlined below are various features that can be utilized by the display push type:

Web Browser Features When using display push type, you can use the entire range of features of the 4610/4620 IP Telephone Web Browser. Some of these features are outlined below:

WBMP Images

Form controls such as radio buttons, check boxes, etc.

Input elements such as text boxes

Hyperlinks to a series of other pages with information

WTAI features such as click-to-dial and add-to-speed dial

Full use of 16 programmable soft keys

Capability to push an entire thin-client web application

Alerts A display push message can be sent using alerts. Alerts are a number of ring pings sounded just prior to displaying the message on the screen. With display push type, an alert can be sounded with 1, 2, or 3 ring pings. If the alert attribute is not associated with the <Push> tag, then no alerts are sounded. Alternatively if the alert attribute is set to “0”, then no alerts are sounded.

Example

Push Interface API Page 31 Avaya, Inc.

Following is an example of the display push.

Page 32: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Let’s assume that the following push message (screen) was to be sent to a telephone in a Hotel Industry. So, let’s refer to it as Hotel Application Example.

Following is the screen shot of the pushed message that will be subsequently referenced in this chapter.

Figure 7: Hotel Application Example 

Priorities and States Push content may be sent in either one of two priorities: normal or barge. Normal priority push conditions are specified first, followed by barge priority push conditions.

Pushable vs. Non-Pushable States The following are to be considered as the non-pushable states for display pushes to an IP Telephone.

When the user is in text entry mode on a Web text entry screen (for normal priority only)

When the telephone is in the process of restoring a retrieved backup file

When a Local Procedure has been initiated

If a phone is not in one of the above states, then it is considered to be in a pushable state, i.e., a pushed message will be accepted.

Successful Push Response

Push Interface API Page 32 Avaya, Inc.

If the phone is in a pushable state, then the Push Agent sends the Push Initiator the following response for all push request modes and all push request types:

Page 33: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 200 “Push Message Accepted”

Normal Priority When the mode attribute in the <Push> tag is set to normal, the telephone state for the display push type is as follows:

When the telephone is in any of the non-pushable states, then the screen currently displayed continues to be displayed (i.e., the display push is rejected).

If the telephone is in the pushable state, then the telephone accepts the push message and generates appropriate notification tone(s).

A normal push is accepted when the endpoint is in text edit mode in applications other than the web. If a non-web application, such as Speed Dial, is in text-edit mode, then x-Push-Status 204 (“Not in Push State: Push Accepted”) is sent:

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 204 “Not in Push State: Push Accepted”

Use Case Scenario:

Q. What happens when a user is editing or adding an entry on the Speed Dial screen and a normal priority display push message is sent?

A. If an alert is associated with this message, then the alert will first sound. Then the pushed content is loaded in the background and is not displayed until the user elects to view the message by launching the web browser (Web Browser is launched by clicking ‘Web’ softkey).

Push Interface API Page 33 Avaya, Inc.

Page 34: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

If the web is in “text edit mode” a subsequent normal push is rejected and x-Push-Status 205 (“Not in Push State: Push Aborted”) is sent. The push request does not proceed.

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 205 “Not in Push State: Push Aborted”

If a normal display push was denied, then the entire display push was denied, including the title of the web page. Hence, the application writer might choose to send two pushes: a topline push followed by a display push to maximize the chance the user will at least view one or the other.

Barge Priority When the mode attribute in the <Push> tag is set to barge, the telephone state for the display push type is as follows:

A barge display push is rejected, for the following non-pushable states: When the telephone is in the process of restoring a retrieved backup file

When a Local Procedure has been initiated (Refer to LAN Administrator’s Guide on support.avaya.com website for more details on Local maintenance procedures).

In either case, the barge content (including any notification tones) is discarded. In all other cases, the telephone must accept the barge request. Use Case Scenario:

Q. What happens when a user is editing or adding an entry on the Speed Dial screen and a barge priority display push message is sent?

A. If an alert is associated with this message, then the alert will first sound. Then the pushed message is displayed immediately. The user can leave the displayed web page normally by pressing the ‘PHONE/EXIT’ button on their telephone.

The state of the telephone is as if the user had selected the softkey corresponding to the web browser from the Phone Screen – e.g., any incomplete task, such as FTP Setup, is considered as having been interrupted. Additionally, the user can leave the displayed web page normally (e.g. by pressing the Phone/Exit button).

Push Interface API Page 34 Avaya, Inc.

Page 35: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

XML Messages The following section describes how to send a display push using XML messages with Hotel Application as a reference.

Push Message (PM) To send a display push, an application has to send an HTTP POST request to the Push Agent in the telephone.

The format of the XML Message (PM) sent from the Push Initiator to the Push Agent is as follows:

<postfield> tag The <postfield> tag is supported by Avaya IP Telephones Web Browser Interface. The <postfield> tag allows an application to set a name/value pair that can be sent to the source of the request. The name is set by the name attribute and must be a valid WML variable name. The value is set by the value attribute. A <go> element can contain one or more <postfield> tags.

For more information on <postfield> tag, please refer to the Web Browser API on http://www.avaya.com/support web site for more download information.

Postfield tags must be sent if HTTP POST method is used.

Push Interface API Page 35 Avaya, Inc.

<?xml version="1.0"?>

<Push alert=“0|1|2|3” type=“display” mode=“normal|barge” >

<go href=“http://trusted_push_server/filename.wml” method=“get|post”> <postfield name=“name1” value=“value1”/> <postfield name=“name2” value=“value2”/> </go>

</Push>

Page 36: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Description of the Elements and Attributes used in the Push XML Message:

Element or Tag Attribute Description

Each Push Message must contain one valid root <Push> tag.

alert=0|1|2|3 Optional notification alerts – number of ring pings

type Push Content = display

mode normal or barge priority

<go href=…/> A fully qualified URL -

• to a valid WML file for display pushes

<Push>

method HTTP get or post methods for Push Content

It’s lunch time and the hotel is ready to serve the lunch. So, the hotel application can send the lunch menu directly to the room by sounding an alert to take the attention of the customer. When the request is submitted, below is the actual message that is sent.

The code excerpt from the Hotel example to be sent as part of the Push Message is as follows:

<!– Following is the XML Push Request Message sent as a POST request embedded as part of form data -->

XMLData = <?xml version="1.0"?>

<Push alert=“2” type=“display” mode=“normal”>

<go href=“http://trusted_push_server/lunch_menu.wml” method=“get”> </go>

</Push>

<!– The above message is part of the form data (XMLData) being sent in Step 1 request -->

Maximum Length

Push Interface API Page 36 Avaya, Inc.

The maximum length of <go> URI should not exceed more than 1024 characters.

Page 37: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Agent Once a Push Message is received from the Push Initiator, the Push Agent first parses the XML file for validation and tag mismatch errors. Then the Push Agent verifies that the URL in the <go> tag is part of the Trusted Push Servers.

For more information on Trusted Push Servers, please see Chapter 10 – Security.

Now, the Push Agent requests the Push Content from the Trusted Push Server using the URL.

Push Content (PC) The Push Content for the display push type has to be a WML file. This WML file may contain any of the web browser elements and features. Please see the Web Browser API for more details on elements and tags that are supported by Avaya IP telephones.

The outline of the “lunch_menu.wml” file (PC) from the Hotel example is as follows:

Push Interface API Page 37 Avaya, Inc.

<!– Server Sends Response – Push Content (PC) - File in the <Push…<go href Url> --><?xml version="1.0"?>

<wml> <card id=”lunch” title=”Lunch Menu”>

<p> <select name=”selection” multiple=”true”> <option value=”cheeseburger”>Cheeseburger w/fries</option> <option value=”pizza”>Pizza</option> <option value=”sub”>Sub</option> <option value=”salad”>Chicken Caesar Salad</option> </select> <a href=”wtai://wp/mc;5551212”>Call Concierge</a> </p> <do type=”accept” name=”submit” label=”Submit”> <go href=”submit_form.php” method=”get”/> </do>

<do type=”prev” label=”Back”> <prev/> </do>

<do type=”accept” name=”home” label=”Home”> <go href=”home.wml”/> </do>

<do type=”accept” name=”help” label=”Help”> <go href=”help.wml”/> </do>

</card> </wml>

Page 38: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Once the XML parser of the Avaya IP telephone parses the above wml file, depending on the priorities and state of the telephone, the push content is displayed as below on the telephone with alert 2 ring pings.

No WML error messages from an invalid WML Display push will be displayed to a user.

Push Interface API Page 38 Avaya, Inc.

Page 39: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

8 TOPLINE PUSH

Introduction The topline push can be used when you only need to send a single-line text message.

Features Outlined below are various features that can be utilized using topline type push:

Text Message Some of the features are outlined below when using topline type push:

Single-line alternating text message

Message can be displayed even when the web browser is not in focus

Supports UTF-8[1], ISO-888991[1], and Latin1[1] character encodings

Alerts A topline push message can be sent with alerts. Alerts are number of ring pings sounded just prior to displaying the message on the screen. For a topline type push, an alert can be sounded with 1, 2, or 3 ring pings. If the alert attribute is not associated with the <Push> tag, then no alerts are sounded. Alternatively if the alert attribute is set to “0”, then no alerts are sounded.

Example Following is an example of the topline push.

Let’s assume that the following push message was sent to a telephone. Let’s refer to it as a Stock Alert Example. Let’s say you want to be alerted when your stock (Avaya – AV in this example) reaches $15 price target.

Push Interface API Page 39 Avaya, Inc.

Page 40: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The following is the screen shot of the pushed message that will be subsequently referenced in this chapter.

Figure 8: Stock Alert Example 

PTp

PTp

Im

SIr

P

Topline Push

riorities and States he Push content may be sent in either one of two priorities: normal or barge. Normal priority ush conditions are specified first, followed by barge priority push conditions.

ushable vs. Non-Pushable States he following are to be considered as the non-pushable states for an IP Telephone with topline ush type.

When the telephone is in the process of restoring a retrieved backup file

When a Local Procedure has been initiated (Refer to LAN Administrator’s Guide on http://www.avaya.com/support website for more details on Local maintenance procedures)

When the telephone is in any text entry mode (for normal priority)

When any call appearance is in the Alerting (for normal priority)

When the telephone is in Soft-Hold call state (for normal priority)

f a phone is not in a non-pushable state, then it is considered as in pushable state, i.e., a pushed essage will be accepted.

uccessful Push Response f the phone is in a pushable state, then the Push Agent sends the Push Initiator the following esponse for all push request modes and all push request types:

ush Interface API Page 40 Avaya, Inc.

Page 41: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 200 “Push Message Accepted”

Normal Priority When the mode attribute in the <Push> tag is set to normal, the telephone state for the topline push type is as follows:

If the topline is being used for system messages such as application help messages, then the text string is buffered until the higher-priority message is complete.

If the phone is in a non-pushable state (i.e., the Push Message cannot be displayed onto the topline) then the Push Agent sends the Push Initiator the following response for a normal mode topline push request. The push request does not proceed to request Push Content.

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 205 “Not In Push State: Push Aborted”

If a text string is pushed while the topline is displaying an earlier pushed text string, then the new text string replaces the previous one, as normal.

The expiration time on all pushed text strings is 30 seconds, i.e., all topline messages are discarded after 30 seconds.

Barge Priority When the mode attribute in the <Push> tag is set to barge, the telephone state for the topline push type is as follows:

A barge topline push is rejected, for the following non-pushable states: When the telephone is in the process of restoring a retrieved backup file

When a Local Procedure has been initiated (Refer to LAN Administrator’s Guide on support.avaya.com website for more details on Local maintenance procedures).

Push Interface API Page 41 Avaya, Inc.

In either case, the barge content (including any notification tones) is discarded. In all other cases, the telephone must accept the barge request.

Page 42: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

All barge topline messages are displayed immediately regardless of the state.

XML Messages The following section describes how to send a topline push with XML messages using the Stock Alert Example as a reference.

Push Message (PM) The first step in sending a topline push is to send an HTTP POST request from the Push Initiator to the Push Agent in the telephone. The XML Message (PM) sent from the Push Initiator to the Push Agent is as follows:

<postfield> tag The <postfield> tag is supported by Avaya IP Telephones Web Browser Interface. The <postfield> tag allows an application to set a name/value pair that can be sent to the source of the request. The name is set by the name attribute and must be a valid WML variable name. The value is set by the value attribute. A <go> element can contain one or more <postfield> tags.

For more information on <postfield> tag, please refer to the Web Browser API on http://www.avaya.com/support web site for more download information.

Postfield tags must be sent if HTTP POST method is used.

Push Interface API Page 42 Avaya, Inc.

<?xml version="1.0"?>

<Push alert=“0|1|2|3” type=“topline” mode=“normal|barge” >

<go href=“http://trusted_push_server/filename.xml” method=“get|post”> <postfield name=“name1” value=“value1”/> <postfield name=“name2” value=“value2”/> </go>

</Push>

Page 43: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Description of the Elements and Attributes used in the Push XML Message:

Element or Tag Attribute Description

Each Push Message must contain one valid root <Push> tag.

alert=0|1|2|3 Optional notification alerts – number of ring pings

type Push Content = topline

mode normal or barge priority

<go href=…/> A fully qualified URL -

• to a valid XML Push Content file for topline pushes.

<Push>

method HTTP get or post methods.

Maximum Length The maximum length of <go> URI should not exceed more than 1024 characters.

Example:

Let’s say that the price of the AV is reaching the $15 price target. Now, a stock broker’s current state of the telephone is as follows:

Push Interface API Page 43 Avaya, Inc.

Page 44: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

the code excerpt associated with the Stock Alert example to be sent as part of the Push Message is as follows:

<!– Following is the XML Push Request Message sent as a POST request embedded as part of form data -->

XMLData = <?xml version="1.0"?>

<Push alert=“3” type=“topline” mode=“normal”>

<go href=“http://trusted_push_server/stock_alert.xml” method=“get”> </go>

</Push>

<!– The above message is part of the form data (XMLData) being sent in Step 1 request -->

Push Agent Once a Push Message is received from the Push Initiator, the Push Agent first parses the XML file for validation and tag mismatch errors. Then the Push Agent verifies that the URL in the <go> tag is part of the Trusted Push Servers.

For more information on Trusted Push Servers, please see Chapter 10 – Security.

Now, the Push Agent requests the Push Content from the Trusted Push Server using the URL.

Push Content (PC) The Push Content for the topline push type has to be an XML file.

The following is the code excerpt associated with the Stock Alert example to be sent as part of the Push Content:

<!– Server Sends Response – Push Content (PC) - File in the <Push…<go href Url> --> <?xml version="1.0"?>

<Response> <Topline> Stock Alert: AV @ $15 </Topline> </Response>

<Response> tag:

Push Interface API Page 44 Avaya, Inc.

The <Response> tag for the topline push type has to be the root element in the (PC) XML file.

Page 45: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

<Topline> tag The <Topline> tag consists of the actual text message that is to be displayed on the Telephone’s topline display.

If the length of the message exceeds the given pixels, then the entire message is divided so that the message fits on a single line and the remaining text alternates on the topline display.

The topline message can only be 56 characters long. If the text is longer than 56 characters, then all the characters beyond 56th is ignored and not viewed.

The text within the <Topline> tag can consist of different character encodings such as UTF-8[1], ISO-888991[1], and Latin1[1].

Once the XML parser of the Avaya IP telephone parses the above XML file, according to the priorities and state of the telephone, the push content is displayed as below on the telephone with an alert ring ping of 3.

Phone screen before the topline push Phone screen after the topline push

Push Interface API Page 45 Avaya, Inc.

Page 46: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 46 Avaya, Inc.

Page 47: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

9 AUDIO PUSH

Introduction An Audio push can be used when you need to stream a particular audio message to the telephone. The Audio push is the ability to transmit RTP streams to the endpoint with additional capabilities of controlling the streams such as start and stop. The RTP stream can also send notification to the phone that the stream has ended.

Features Outlined below are various features that can be utilized using the audio type push:

Ability for the telephone to connect to an incoming RTP stream

“Pure” stream, not a telephone call

Ability to turn temporarily replace the active stream

Ability to sound alerts

Built-in timer to allow for a stream to play for given period of time

Alerts An audio push message can be sent with accompanying alerts. Alerts are a number of ring pings sounded just prior to displaying the message on the screen. With an audio type push, an alert can be sounded with 1, 2, or 3 ring pings. If the alert attribute is not associated with the <Push> tag, then no alerts are sounded. Alternatively if the alert attribute is set to “0”, then no alerts are sounded.

Example Let’s assume that the following push message was sent to a telephone in a such as Hotels.

Push Interface API Page 47 Avaya, Inc.

Let’s refer to this as the Hotel Wake-Up Example. So, let’s say you want to schedule a wake-up call at the hotel from your room. A typical user can schedule the alarm directly from an existing Web Application loaded on to the IP telephone. The next morning the application can sound the alarm by using RTP streaming directly on to the telephone and also send the Hotel Breakfast menu for the customer to order breakfast right from the telephone.

Page 48: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Priorities and States Push content may be sent in either one of two priorities: normal or barge. Normal priority push conditions are specified first, followed by barge priority push conditions.

Introduction To the user, the telephone’s handling of pushed audio content in general mirrors the telephone’s handling of a call. The user can switch between speaker, handset, and headset as desired, adjust Volume, and view LED state, as usual for a call.

The user can terminate the pushed audio stream by taking one of the following actions:

By “going on-hook”,

By simply pressing the ‘SPEAKER’ fixed button,

By pressing the ‘DROP’ fixed button,

By selecting a Call Appearance button.

While the telephone is playing back pushed audio content, the call server may independently send messages that require the telephone to generate tones (e.g., Alert an incoming call).

Pushable vs. Non-Pushable States The following are to be considered as the non-pushable states for an IP Telephone with audio push type.

Any Call Appearance is alerting (e.g. the user is adjusting Volume settings or the telephone is Alerting an incoming call)

Any call appearance is Active, i.e., a user is on the phone call.

The telephone is restoring a retrieved backup file

When a Local Procedure has been initiated (Refer to LAN Administrator’s Guide on http://www.avaya.com/support website for more details on Local maintenance procedures)

The telephone is already broadcasting any pushed audio content

If a phone is not in non-pushable state, then it is considered as in pushable state, i.e., a pushed message will be accepted.

Successful Push Response

Push Interface API Page 48 Avaya, Inc.

If the phone is in a pushable state, then the Push Agent sends the Push Initiator the following response for all push request modes and all push request types:

Page 49: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 200 “Push Message Accepted”

Normal Priority When the mode attribute in the <Push> tag is set to normal, the telephone state for the audio push type is as follows:

An Audio push with a normal priority will not stream if the phone is in a non-pushable state.

When the telephone is in any of the non-pushable states, then the current audio activity (if any) continues without interruption or user notification (i.e., the audio push stream is rejected). The following error message is sent:

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 208 “Not in Audio Push State: Push Aborted”

The push request does not proceed.

If the telephone is in the pushable state, then the telephone accepts the audio push and broadcasts the pushed audio stream through the speaker. As specified above, once the pushed audio stream is being transmitted to the user, the user can redirect it; terminate it, etc. as indicated.

Barge Priority When the mode attribute in the <Push> tag is set to barge, the telephone state for the audio push type is as follows:

A barge audio push is rejected, for the following non-pushable states: When the telephone is in the process of restoring a retrieved backup file,

When a Local Procedure has been initiated (Refer to LAN Administrator’s Guide on support.avaya.com website for more details on Local maintenance procedures).

In either case, the barge audio content (including any notification tones) is discarded and the RTP socket is closed. In all other cases, the telephone will accept the barge audio request regardless of any user activity.

Push Interface API Page 49 Avaya, Inc.

The Volume Up and Volume Down buttons work normally when the user presses them while listening to pushed audio content.

Page 50: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Use Case Scenario:

Q. What happens when a user is on the call and a barge audio push message is sent?

A. If a user is on the call and a barge audio push message is sent, then the current active call is placed on-hold, and the audio is streamed immediately. Once the pushed audio stream is terminated, if the call is still on hold, the user can select the appropriate call appearance button to continue the original call. Note that the far-end party does not get any indication that the current call is being placed on hold.

XML Messages The following section describes how to send an audio push.

Push Message (PM) First step in sending an audio push is to send an HTTP POST request from the Push Initiator to the Push Agent in the telephone. Following is the format of the XML Message (PM) sent from the Push Initiator to the Push Agent:

<postfield> tag The <postfield> tag is supported by Avaya IP Telephones Web Browser Interface. The <postfield> tag allows an application to set a name/value pair that can be sent to the source of the request. The name is set by the name attribute and must be a valid WML variable name. The value is set by the value attribute. A <go> element can contain one or more <postfield> tags.

For more information on <postfield> tag, please refer to the Web Browser API on http://www.avaya.com/support

Push Interface API Page 50 Avaya, Inc.

<?xml version="1.0"?>

<Push alert=“0|1|2|3” type=“audio” mode=“normal|barge” >

<go href=“http://trusted_push_server/filename.xml” method=“get|post”> <postfield name=“name1” value=“value1”/> <postfield name=“name2” value=“value2”/> </go>

</Push>

Page 51: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Postfield tags must be sent if HTTP POST method is used.

Description of the Elements and Attributes used in the Push XML Message:

Element or Tag Attribute Description

Each Push Message must contain one valid root <Push> tag.

alert=0|1|2|3 Optional notification alerts – number of ring pings

type Push Content = audio

mode normal or barge priority

<go href=…/> A fully qualified URL -

• to a valid XML file for Audio Push Content

<Push>

method HTTP get or post methods.

Maximum Length The maximum length of <go> URI should not exceed more than 1024 characters.

Push Message Type Syntax

“audio” GET|POST

http://server_IP_address?rtpLPort=xxxx

The RTP Local port information that is sent by the Push Agent to the Push Initiator from the GET request is as follows:

GET Parameter

Description

rtpLPort RTP Local port that will be used for streaming.

Push Interface API Page 51 Avaya, Inc.

Page 52: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The rtpLPort is generated dynamically and may be different for every new audio stream push session. The telephone will play the audio stream only on this specified port.

The code excerpt associated with the Hotel wake-up example to be sent as part of the Push Message is as follows:

<!– Following is the XML Push Request Message sent as a POST request embedded as part of form data -->

XMLData = <?xml version="1.0"?>

<Push alert=“3” type=“audio” mode=“barge”>

<go href=“http://trusted_push_server/wake_up.xml” method=“get”> </go>

</Push>

<!– The above message is part of the form data (XMLData) being sent in Step 1 request -->

Push Agent Once a Push Message is received from the Push Initiator, the Push Agent first parses the XML file for validation and tag mismatch errors. Then the Push Agent verifies that the URL in the <go> tag is part of the Trusted Push Servers.

For more information on Trusted Push Servers, please see Chapter 10 – Security.

Now, the Push Agent requests the Push Content from the Trusted Push Server using the URL.

Push Content (PC) A special XML file for RTP streaming must initiate audio Push.

<?xml version="1.0"?> <Response> <Audio packetsize=”10|20|30|40|50|60” codec = “PCMU | PCMA” >

<AudioTimer value="30"/> <Url href=”RTPRx://rtpserver_ip_address:rtpLPort”>

Push Interface API Page 52 Avaya, Inc.

</Audio> </Response>

Page 53: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Each <Response> can contain only one <Audio> tag with the following attributes:

Attribute Value Description

codec PCMU | PCMA Silence suppression on

G.711 Annex A (no CID frames) µ-law | A-law

Default is PCMU

packetsize 10|20|30|40|50|60 (milliseconds)

Default is 40 milliseconds

Only G.711 µ-law wav encoding is supported for RTP streaming.

Each <Audio> tag can contain the following <AudioTimer> and <Url> tags with the following attributes:

The <AudioTimer> tag is used as an inter-packet timer. This timer is set every time a packet is received. After an administrable duration where no packets are received the RTP stream is terminated. This tag has the following attributes:

Attribute Value Description

value X (seconds) Default is 20 seconds. The range is 5 to 30 seconds

Each <Url> tag consists of information for the RTP streaming server and the local receive port of the telephone. The <Url> tag has the following attributes:

Attribute Value Description

href string RTP Streaming URI Format

RTP Streaming URI Format IP Address Port

RTPRx denotes “Receive” by the phone

rtpserver_ip_address is the IP address of the RTP streaming server.

Port Number separated by a colon. This is the receive port number or rtpLPort value from the GET request.

Push Interface API Page 53 Avaya, Inc.

Page 54: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The following reserved URIs can be used in the href attribute to control an audio stream:

Reserved URI’s Description

RTPRx://STOP Can be used to stop an audio streaming on the receive end.

All push requests that will result in sending the RTPRx://STOP must be with the priority of “barge" for it to be successful.

For example, if an audio stream originator wanted to explicitly stop an audio stream the following would be sent in new push content:

<!– Following is the XML Push Request Message sent as a POST request embedded as part of form data -->

XMLData = <?xml version="1.0"?>

<Push type=“audio” mode=“barge”>

<go href=“http://trusted_push_server/stop_audio.xml” method=“get”>

</go>

</Push>

<!– The below message is from the Push Content file called “stop_audio.xml” from above go href URI -->

<?xml version="1.0"?> <Response> <Audio>

<Url href=”RTPRx://STOP”>

</Audio> </Response>

Audio quality depends on the streaming source providing the audio at an appropriate pace. The pace depends on the packet size. If you are using 40ms packets, then the packets should be separated by 40ms.

Push Interface API Page 54 Avaya, Inc.

Transmitting the packets too slowly will result in odd silences when the telephone has no audio to play out its speaker. Transmitting the packets too quickly will result in broken sound as the telephone is forced to drop packets it can not maintain in its buffer.

Page 55: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The error in the pace measured at the telephone is called jitter. If the jitter stays below the size of one packet, then the audio quality will not be impacted by jitter. Note that a +2ms jitter on one packet cancels out a -2ms jitter on the next. 40ms packets each separated by 38ms, however, means that the jitter grows +2ms with each packet. After 3 seconds, the jitter would be +150ms and the telephone would need to drop audio to maintain its buffers.

Push Interface API Page 55 Avaya, Inc.

Page 56: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 56 Avaya, Inc.

Page 57: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

10 SUBSCRIBE PUSH

Introduction The Subscribe push is used as a subscription service for the IP telephones. The subscription service is used so that an intelligent application can get the telephone’s information from an external database without having to query for the target telephone.

Features Outlined below are various features that can be utilized using subscribe type push:

Send re-subscription requests when push type is subscribe

No User Interface; subscription service launched in background

Recommended to build databases of IP Telephones

The following information is provided by the telephone while subscribing to a particular subscription server:

o User’s Telephone Extension

o IP Address of the telephone

o MAC Address of the telephone

o Set ID (eight character model number; fixed-does not change)

For 4610SW IP Phone, the Set ID that is sent is: 4610D01A

For 4620 IP Phone, the Set ID that is sent is: 4620D01A

For 4620SW IP Phone, the Set ID that is sent is: 4620D01B

Alerts Alerts are not sounded for the Subscribe push type as there is no user interaction.

Priorities and States

Push Interface API Page 57 Avaya, Inc.

Normal and barge priorities are not used for the subscribe push type.

Page 58: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The Subscription service is initialized during the registration or IP telephone boot-up process. Once the telephone is properly registered (logged in) with the ACM, the telephone subscribes to the subscription server listed in the SUBSCRIBELIST parameter.

(For more information on SUBSCRIBELIST and boot-time subscription service, please see Chapter 10 – Administration)

Successful Push Response If the phone is in a pushable state, then the Push Agent sends the Push Initiator the following response for all push request modes and all push request types:

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 200 “Push Message Accepted”

XML Messages The following sections describe how to send a re-subscription push request.

Push Message (PM) The first step in sending a subscribe push is to send an HTTP POST request from the Push Initiator to the Push Agent in the telephone. Following is the format of the XML Message (PM) sent from the Push Initiator to the Push Agent:

<postfield> tag The <postfield> tag is supported by Avaya IP Telephones Web Browser Interface. The <postfield> tag allows an application to set a name/value pair that can be sent to the source of the

Push Interface API Page 58 Avaya, Inc.

<?xml version="1.0"?>

<Push type=“subscribe”>

<go href=“http://subscription_server/filename.xml” method=“get|post”> <postfield name=“name1” value=“value1”/> <postfield name=“name2” value=“value2”/> </go>

</Push>

Page 59: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

request. The name is set by the name attribute and must be a valid WML variable name. The value is set by the value attribute. A <go> element can contain one or more <postfield> tags.

For more information on <postfield> tag, please refer to the Web Browser API on http://www.avaya.com/support

Postfield tags must be sent if HTTP POST method is used.

Description of the Elements and Attributes used in the Push XML Message:

Element or Tag Attribute

Value Description

Each Push Message must contain one valid root <Push> tag.

type subscribe For subscribe push type, set type to subscribe.

<go href=…/>

<Url> A fully qualified URL -

• to an XML file with <Response> and the associated embedded <Subscribe> tag.

<Push>

method get | post HTTP get or post methods.

Push Agent Once a Push Message is received from the Push Initiator, the Push Agent first parses the XML file for validation and tag mismatch errors. Then the Push Agent verifies that the URL in the <go> tag is part of the Trusted Push Servers.

For more information on Trusted Push Servers, please see Chapter 10 – Security.

Now, the Push Agent requests the Push Content from the Trusted Push Server using the URL.

Push Content (PC) The Push Content for the subscribe push type has to be an XML file. This XML file contains the URL to the subscription server and the type of subscription request made.

<Response> tag

Push Interface API Page 59 Avaya, Inc.

The <Response> tag for the subscribe push type has to be the root element in the (PC) XML file.

Page 60: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

<Subscribe> tag Following is the syntax for the subscribe xml file:

<?xml version="1.0"?> <Response> <Subscribe type=”all|me”>

<Url href= ”Subscription_Server_Url” />

</Subscribe> </Response >

Each < Response> can contain only one <Subscribe> tag with the following attributes:

Attribute Value Description

“all” Instructs the endpoint to re-subscribe to all servers in the SUBSCRIBELIST

type

“me” Instructs the endpoint to re-subscribe to the server in the href attribute of the <Url>tag. This url string must exactly match one of the subscription server list servers in SUBSCRIBELIST variable for this type of subscription to proceed.

If the matching fails the subscription request is aborted.

The <Url> tag has the following attributes:

Attribute Value Description

href string Contains the URL of the subscription server for which the endpoint must subscribe

Maximum Length The maximum length of <Url> href URI is 1024 characters.

An exact string based comparison is done to match the subscription URIs against the values in the SUBSCRIBELIST. If the subscription server URI does not exactly match the values in the SUBSCRIBELIST, then the subscription request is aborted.

Please see Chapter 10 – Administration for more information on Subscription Service

Push Interface API Page 60 Avaya, Inc.

Page 61: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

11 ADMINISTRATION

Introduction This chapter discusses the administrative actions required in order for the push interface to work correctly. Please note that you should consult your administrator for modifying these settings. Also, please see the LAN Administrator’s Guide for Release 2.1 on http://www.avaya.com/support web site for more information.

Requirements In order for push to be enabled, a non-null variable called “TPSLIST” is required to be administered on the TFTP server in the 46xxsettings.txt script file. “SUBSCRIBELIST” variable is used to define the list of subscription servers that all the telephones will subscribe to. Please note that “SUBSCRIBELIST” is not required in order to send push messages. The following sections discuss these two topics in more detail.

Security The TPSLIST is also known as Trusted Push Server List.

Introduction Security is an important feature provided by the Push Interface. The Security for Push is validated by domain-based authentication algorithm. If the Push Content URL is not part of the Trusted Push server, then the push message is denied.

TPSLIST Depending upon the setting of the TPSLIST in the script file, the Push Message is accepted for additional processing or denied.

Push Interface API Page 61 Avaya, Inc.

Page 62: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

An administrator can set the level of security using the following domain-based security values for the TPSLIST parameter in the 46xxsettings.txt script file.

System Value Name

Application Software Default

Usage (Value Range; References)

TPSLIST “” (Null) List of Trusted Push Servers, contains zero or more domain/path strings, separated by commas without any intervening spaces, up to 255 ASCII characters, including commas.

Specifically, the List of Trusted Push Servers contains one or more domains and paths in a DNS format or an IP Address in dotted-decimal format, separated by commas.

1) The values for TPSLIST are set by the administrator in the 46xxsettings.txt script file on the TFTP server. Please refer to the LAN Administrator’s Guide on http://www.avaya.com/support website for more details.

2) If the value of TPSLIST is null, push messages cannot be received and the Push feature is disabled.

3) If the value of TPSLIST contains only a forward slash character (/), then all push messages are accepted, i.e., any Push server is considered a Trusted Push Server.

4) Wild cards such as asterisks are not allowed for URL strings in the TPSLIST.

If the pushed URI string (the value of the href attribute in the <go> tag in the push request) does not begin with the proper HTTP schema, "http://", the URI string is rejected and the response back to the Push Initiator will contain the following parameters:

Parameter Status Code Reason Phrase

HTTP Status Code 403 “Forbidden”

x-Push-Status 402 “Push security failure”

To validate a particular pushed URI string, a string based comparison is done against the values of the TPSLIST administered in the 46xxsettings.txt script file.

Push Interface API Page 62 Avaya, Inc.

Page 63: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Validation Scenarios Table 1: URI Examples 

Push Interface API Page 63 Avaya, Inc.

Validation String

(Validation string Interpreted as)

Pushed URI string

/ = domain/path separator)

Example 1

http://www. company.com/

Example 2

http://support. company.com/

Example 3

http://www. company.com/push/

Example 4

http://www.hacker.com/

“company”

(“company /”) X X X X

“company.com”

(“company.com/ ”) OK OK OK X

“support.company.com”

(“support.company.com/”) X OK X X

“company.com/push”

(“company.com/push”) X X OK X

“/push”

(“/push”) X X OK

X

(OK for “http://www.hacker.com/push” )

“company.com/xy/push”\

(“company.com/xy/push”) X X X X

“http://www.company.com”

(“http://www.company.com/”) OK X OK X

“http://support.company.com”

(“http://support.company.com/”) X OK X X

“http://support.company.com/push”

(“http://support.company.com/push”)

X X X X

Page 64: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Validation String

(Validation string Interpreted as)

Pushed URI string

/ = domain/path separator)

Example 1

http://www. company.com/

Example 2

http://support. company.com/

Example 3

http://www. company.com/push/

Example 4

http://www.hacker.com/

“http://www.company.com/push”

(“http://www.company.com/push”)

X X OK X

“/”

(“/”) OK OK OK OK

In above Table 2, ‘X’ means failure and ‘OK’ means success.

RECOMMENDATIONS: If the domain from above example is “associate.avaya.com” and the TPS string is “company.com”, then the domain “hackercompany.com” will also match the TPS string.

For example if the TPS string is “company.com” and the URLs are:

http://www.company.com : this URL is acceptable.

http://associate.company.com : this URL is acceptable.

http://www.hackeravaya.com : this URL is acceptable.

In this case “hackeravaya” will pass the security validation.

RECOMMENDATIONS: To avoid such security issues the administrator must set the TPS string to “.company.com” (where there is a “dot” before “company”).

For example if the TPS string is “.company.com” and the URLs are:

http://www.company.com : this URL is acceptable.

http://associate.company.com : this URL is acceptable.

http://www.hackeravaya.com : this URL is not acceptable.

In this case “hackeravaya” will fail the security validation.

Push Interface API Page 64 Avaya, Inc.

Page 65: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Subscription Service The phone will provide a set of values such as the IP address and user telephone number to subscription servers when the telephones register with the ACM. An explicit subscription message can also be sent to the phone using <Push type=”subscribe”… /> to re-subscribe the phones.

Please see Chapter 9 – Subscribe Push for more details on sending a push re-subscribe request to the telephone.

Applications must maintain their own database of information for each phone. Databases can be built with respect to a group of telephones or an individual phone.

A typical example in a corporate work environment is to have distribution lists according to specific teams. An application can only target pushes to that team such as “team meeting reminders” with conference bridge numbers, etc.

Once an application builds a database that has the required information of all of the telephones in the network, it can target Push Content or an audio stream to a specific phone or a group of phones. Additionally, Push Initiator Servers may poll the phone to update its database.

The phone will not unsubscribe when logging off from ACM.

Subscriber Service Using the “Push Subscription Service” the phone will make the following values known to the trusted subscription service server:

IP Address of the Phone

User’s Extension

Set Id (eight character model number, fixed does not change)

o For 4610SW IP Phone, the Set ID that is sent is: 4610D01A

o For 4620 IP Phone, the Set ID that is sent is: 4620D01A

o For 4620SW IP Phone, the Set ID that is sent is: 4620D01B

MAC Address

The HTTP Push Subscription Message Syntax is as follows:

Push Interface API Page 65 Avaya, Inc.

GET:http//<subscription_server>/<script_name>?MAC=xxx+Extn=xxx+ip=xxx+ SetID=xxx

Page 66: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

At logon to the call server the push subscription service will update all values. There will be no unsubscribe event sent at user logoff event.

SUBSCRIBELIST This list specifies the Push administrative requirements for setting a new system value for the subscription-trusted list of servers. Specifically, the Subscription list contains one or more fully qualified URLs, separated by commas.

An administrator can administer the subscription server addresses using the following domain-based values for the SUBSCRIBELIST parameter in the 46xxsettings.txt script file.

System Value Name

Application Software Default

Usage (Value Range; References)

SUBSCRIBELIST “” (Null) List of Trusted Subscription Servers, contains zero or more domain/path strings, separated by commas without any intervening spaces, up to 255 ASCII characters, including commas.

Specifically, the List of Trusted Subscription Servers contains one or more fully qualified URLs of the subscription servers, separated by commas.

The values for SUBSCRIBELIST are set by the administrator in the 46xxsettings.txt script file on the TFTP server. Please refer to the LAN Administrator’s Guide on the http://www.avaya.com/support website for more details.

Please note that the Subscription Servers specified in the SUBSCRIBELIST are considered to be Trusted Push Servers and hence no additional security validation is done for the subscription server URIs.

The syntax of the Trusted Subscription List is a series of fully qualified URIs of the form

<scheme>://<host>:<port>/<url-path>

Push Interface API Page 66 Avaya, Inc.

Page 67: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

If http://10.0.1.101/subscribe.asp , http://company.com/subscribe/ , http://abc.company.com:8000/cgi/subscribe are lists of the three subscription servers, then

To administer the above URLs as the subscription servers, the syntax to be used in the 46xxsettings.txt script file is as follows:

SET SUBSCRIBELIST http://10.0.1.101/subscribe.asp,http://company.com/subscribe/, http://abc.company.com:8000/cgi/subscribe

Subscription update An asynchronous request can be made to a phone to re-subscribe and update all values defined above using the Subscribe push type.

Please see Chapter 9 – Subscribe Push for more details on sending a push subscribe request to the telephone.

An exact string based comparison is done to match the subscription URIs against the values in the SUBSCRIBELIST. If the subscription server URI does not exactly match the values in the SUBSCRIBELIST, then the subscription request is aborted.

Retry Timer If the subscription server is unresponsive to the initial subscription message from the phone at boot and does not return a 200 ok, then the subscription service retry timer will send subscription messages to the subscription server every 20 minutes, up to five times.

The retry timer does not apply to a subscription update from the subscription server.

Denial of Service Timer The Denial of Service Subscription Timer will limit the number of subscription updates requested by the trusted subscription service server. The Push Agent following a successful subscription will accept only 1-subscription request per minute.

This implies that the Push Agent in the telephone can handle 1 subscription request/minute.

Push Interface API Page 67 Avaya, Inc.

Following a push request for subscribe, the denial of service timer is started and no subscribe request will be accepted for the next minute.

Page 68: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

The response when another subscribe request is received within that minute is as follows:

Parameter Status Code Reason Phrase

HTTP Status Code 200 “OK”

x-Push-Status 503 “Service Unavailable”

Push Interface API Page 68 Avaya, Inc.

Page 69: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

12 TROUBLESHOOTING

Avaya HTTP Header Extensions (x-Push-Status Codes) The Push Agent sends a response back to the Push Initiator with HTTP status codes.

Please refer to Figure 4: Push Flow, Step 2: Response from Push Agent

In addition to the HTTP response codes, an additional HTTP header extension called “x-Push-Status” is sent.

The x-Push-Status header is used to indicate the outcome of a push request back to the Push Initiator. The header is included in all responses to the Push Initiator for push requests. General guidelines for error codes for x-Push-Status are as follows:

Status-Code 200-299: Push Service Response and Rejection codes, Push State codes

Status-Code 300-399: XML parsing codes

Status-Code 400-499: Trusted Domain Security codes

Status-Code 500-599: General rejection reasons

Table 2: x‐Avaya‐Push‐Code Responses 

Push Interface API Page 69 Avaya, Inc.

x-Push-Status code

Reason Phrase (Description) Resolution (“N/A”: Avaya IP Phone will never send the status code)

200 “Push Message Accepted” This is to report that the Push has been successfully accepted by the telephone.

201 “Push Services Disabled” Please ask your system administrator to administer the TPSLIST value on the TFTP Server. See Chapter 10 for more information.

202 “Internal Error: Push Aborted”

There was a problem processing your request. Please resend the Push request.

Page 70: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 70 Avaya, Inc.

204 “Not in Push State: Push Accepted”

The push message was accepted but the user’s telephone is busy such as in a text-edit mode. The push message is loaded in the background and once the user launches the Web Browser on the phone, the user will be able to view the Push message. Try sending a “barge” priority message instead if you want the user to view the message immediately.

205 “Not In Push State: Push Aborted”

The push message was rejected since the phone is in one of the non-pushable states. Try sending a “barge” priority message instead. See chapters 6-8 for more information.

208 “Not in Audio Push State: Push Aborted”

The audio stream was rejected since user is currently on the call or busy. Try sending a “barge” priority message instead. See chapter 8 for more information.

301 “XML document not valid” Please check the proper XML schema as described in this API. See chapters 6 – 9 for more information.

302 “XML Document not well-formed”

Please make sure that all the XML tags are properly formed. See chapters 6 – 9 for more information.

303 “No element found” Please make sure that all the XML tags are properly formed. See chapters 6 – 9 for more information.

304 “Unknown encoding” Please make sure that all the XML tags are properly formed. See chapters 6 – 9 for more information.

305 “Invalid root element” Please make sure that all the XML tags are properly formed. See chapters 6 – 9 for more information.

306 “Empty Post Content” If you’re using the HTTP POST method in the PM, please include postfield tags along with the message.

307 “Push Content too large” The XML file is larger than 5K bytes. Please send an XML file less than 5K bytes.

Page 71: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

402 “Push security failure” The security service failed to validate the Trusted Push Server.

501 “Invalid Push URI” Please recheck the URI included in the <go href…/> request for fully qualified URL string. Also, make sure the length of the URI is no longer than 1024 characters.

503 “Subscription Service Unavailable”

Please ask your system administrator to administer the SUBSCRIBELIST value on the TFTP Server. See Chapter 10 for more information.

HTTP Error Messages The following standard HTTP Error Messages will be supported. 4xx status codes indicate a client error in which the request contains bad syntax or cannot be fulfilled. 5xx status codes indicate a server error in which the server failed to fulfill an apparently valid request.

Table 3: HTTP Error Messages 

Push Interface API Page 71 Avaya, Inc.

Status Code

Cause of Failure Failure Message Displayed to the User/Resolution (“N/A”: Avaya IP Phone will never send the status code)

400 Bad Request Due to incorrect syntax the server could not understand the request.

401 Unauthorized The request requires user authentication.

402 Payment Required N/A

403 Forbidden The server has indicated it will not respond to your query.

404 Not Found The server has not found anything matching the request.

405 Method Not Allowed

N/A

406 Not Acceptable N/A

Page 72: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 72 Avaya, Inc.

407 Proxy Authentication Required

The request requires user authentication.

408 Request Time-out N/A

409 Conflict The request could not be completed due to a conflict with the current state of the resource.

410 Gone The requested resource is no longer available.

411 Length Required The server refuses to accept the request.

412 Precondition Failed N/A

413 Request Entity Too Large

The server refuses to accept the request because the request entity is too large.

414 Request-URI Too Large

The request-URI is longer than the server can interpret.

415 Unsupported Media Type

The server refuses to accept the request because it's in an unsupported format.

416 Requested range not satisfiable

N/A

417 Expectation Failed N/A

500 Internal Server Error

The server encountered an unexpected condition that prevented it from fulfilling the request.

501 Not Implemented N/A

502 Bad Gateway The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.

503 Service Unavailable The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.

504 Gateway Time-out The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified

Page 73: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

505 HTTP Version not supported

The server does not support, or refuses to support, the HTTP protocol version that was used in the request message.

Push Interface API Page 73 Avaya, Inc.

Page 74: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 74 Avaya, Inc.

Page 75: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

13 REFERENCES

[1] The Unicode Consortium, The Unicode Standard, Version 3.2, Addison Wesley, 2002

[2] Extensible Markup Language (XML) 1.0 (Second Edition), W3C Recommendation 6 October 2000.

[3]. IETF RFC 2616: http://www.ietf.org/rfc/rfc2616.txt?number=2616

[4]. IETF 1945: http://www.ietf.org/rfc/rfc1945.txt?number=1945

Push Interface API Page 75 Avaya, Inc.

Page 76: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Push Interface API Page 76 Avaya, Inc.

Page 77: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

14 GLOSSARY

Push Interface API Page 77 Avaya, Inc.

Terms Description

ACM Avaya Communication Manager, previously known as MultiVantage. A member of a family of Avaya PBX’s providing advanced call features. Avaya IP Telephones register or login on to the ACM.

Alerts An optional notification alert such as a series of ring pings to sound the user of an incoming Push message.

href The href attribute refers to either a relative or an absolute Uniform Resource Locator.

HTTP Hyper Text Transfer Protocol, used to request and transmit pages on the World Wide Web.

IP Internet Protocol – a suite of information exchanged message sets widely used for data transmission and increasingly used for the transmission of voice.

Link The URI that is used to chain cards together.

mode Push Priority type – normal or barge – to distinguish between emergency messages and ideal messages.

PBX Private Branch Exchange – A generic name for a premise based switch supporting telephony features owned by an enterprise.

Push Agent or PA

The Telephone software that is capable of receiving a Push Message from a server (Push Initiator).

Push Initiator or Push Server

A web application that is capable of transmitting the Push Message to the Push Agent.

Push Content (PC)

A valid XML or a WML file that contains <Response> tag as the root or <WML> as the root. The file carries the actual information to be displayed or streamed on to an IP Telephone.

Push Message (PM)

An XML message that contains a <Push> tag as the root and specifies a URI using a <go> tag for the Push Agent to use to launch a request for the Push Content.

Page 78: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Terms Description

Push Interface API Page 78 Avaya, Inc.

Push State When the telephone is in busy state such as an active phone call or user entering information in the Speed Dial Application.

Registration The registration is a scheme of allowing an Avaya IP Telephone to authenticate itself with the Avaya Communication Manager. The Avaya media server switch supports registering and authenticating Avaya IP Telephones using the extension and password.

RTP Audio An audio stream received from an application outside the context of a telephone call. The audio Push Message may be accompanied with an optional notification alert.

Topline The topline is 18 pixels in height, including one black pixel at the bottom of the area, extending across the width of the display. The other 17 pixels of height are available for text, icons, etc.

Trusted Push Server (TPS)

Application Server with a URI that conforms to the security settings as established by the TPSLIST parameter in the script file. The Trusted Push Server and the Push Initiator can be the same entity.

TPSLIST List of Trusted Push Servers, contains one or more domains and paths in DNS format, separated by commas without any intervening spaces, up to 255 ASCII characters, including commas. The default is “” (Null)

SUBSCRIBELIST

The Subscription list for potential pushed content contains zero or more fully qualified URLs, separated by commas without any intervening spaces, up to 255 ASCII characters, including commas. The default is “” (Null).

Subscription Servers

A server or a database that stores the information for a push-enabled IP telephone such as IP Address, Extension, MAC Address, etc.

Type Type specifies a tag or attribute.

User Agent Software that interprets WML, WMLscript, WTAI and other forms of codes.

WBMP WBMP is a Bitmap graphic format that is required for the integration of graphics into WML pages.

WML Wireless Markup Language is a subset of XML, used by Avaya IP Telephone’s Web Browser to communicate with WML servers.

WML tags WML cards/deck are composed of a number of elements. Each element begins with a descriptive tag. Tags are indicated by a pair of angled brackets that start with the < character and end with the > character. The first element inside the angled brackets is the tag name.

W3C World Wide Web Consortium

Page 79: Push Interface API · 2004. 9. 1. · Push Interface API Avaya IP Telephone Interface Release 2.1 Issue 1.0 August 2004

Terms Description

x-Push-Status

The Push Agent HTTP extension header. This extension is used by Push Agent to send the Push Message status to the Push Initiator.

XML eXtensible Markup Language. W3C's standard for Internet Markup Languages. WML is one of these languages.

Push Interface API Page 79 Avaya, Inc.