Linksys PAP2 and RT31P2

PHONE ADAPTER Administration Guide

August 2004

Disclaimer ??? Please Read:

This document contains implementation examples and techniques using Linksys and, in some instances, other company???s technology and products and is a recommendation only and does not constitute any legal arrangement between Linksys and the reader, either written or implied. The conclusions reached and recommendations and statements made are based on generic network, service and application requirements and should be regarded as a guide to assist you in forming your own opinions and decision regarding your particular situation. As well, Linksys Technology reserves the right to change the features and functionalities for products described in this document at any time. These changes may involve changes to the described solutions over time.

Use of Proprietary Information and Copyright Notice:

Major portions of this document are the sole property of Sipura Technology,

Inc. and are provided to its licensee, Linksys LLC., and protected by United

States and international copyright laws. (c)2003-2004 Sipura technology,

Inc. - All rights reserved.

Table of Contents

1. Introduction

This guide describes basic administration and use of the Linksys Technology PHONE ADAPTER phone adapter ??? an intelligent low-density Voice over IP (VoIP) gateway. The PHONE ADAPTER enables carrier class residential and business IP Telephony services delivered over broadband or high-speed Internet connections. By intelligent, we mean the PHONE ADAPTER maintains the states of all the calls it terminates. It is capable of making proper decisions in reaction to user input events (such as on/off hook or hook flash) with little or no involvement by a ???middle-man??? server or media gateway controller.

Examples of proper reactions are: playing dial tone, collecting DTMF digits, comparing them against a dial plan and terminating a call. With intelligent endpoints at the edges of a network, performing the bulk of the call processing duties, the deployment of a large network with thousands of subscribers can scale quickly without the introduction of complicated, expensive servers. As described later in this section, the Session Initiation Protocol (SIP) is a good choice of call signaling protocol for the implementation of such a device in this type of network.

The phenomenal growth of broadband Internet access (DSL, Cable, FTTH, etc.), has brought the realization of reliable packet switched IP Telephony Services with circuit switched toll-quality and subscriber feature transparency with that of the PSTN???s CLASS feature-set. In addition to basic offerings comparable to traditional PSTN services, many service providers have integrated their IP Telephony offering with a large number of web-based productivity applications like unified messaging and call management features such as, remote call forward configuration via the web. Such advances over traditional phone services, with equal or better voice quality and lower per-minute prices, have made IP Telephony service a viable business. In fact, IP Telephony service providers in the US and abroad have seen their subscriber base growing at a rapid pace.

The technical challenges in deploying and operating a residential IP Telephony service, however, are not small. One of the main challenges is to make the service transparent to subscribers: The subscribers shall expect to use their existing phones to make or receive calls in the same way as with the existing PSTN service. To enable this level of transparency, the IP Telephony solution has to be tightly integrated. A key element in this end-to-end IP Telephony solution is the provision of an endpoint device that sits at a subscriber???s premises that serves as an IP Telephony gateway or telephone adapter. This phone adapter offers one or more standard telephone RJ-11 phone ports ??? identical to the phone wall jacks at home ??? where the subscriber can plug in their existing telephone equipment to access phone services. The IP Telephony gateway may connect to the IP network, like the Internet, through an uplink Ethernet connection.

Important!! Please note: The information contained herein is not a warranty from Linksys Customers planning to use the PHONE ADAPTER in a VoIP service deployment are warned to test all functionality they plan to support in conjunction with the PHONE ADAPTER before putting the PHONE ADAPTER in service. Some information in Section 1 of this guide is written for educational purposes and describes functionality not yet implemented in the PHONE ADAPTER.

1.1.The Session Initiation Protocol

There are many excellent articles and books that discuss the advantages of SIP.i Here are some of the more popular details:

???SIP message constructs are very similar to those of HTTP which is well-known to be IP Network (Internet) friendly.

???SIP is transport agnostic ??? meaning it can be used over TCP/IP or UDP/IP, with or without security.

???SIP has a better chance of traversing NATs than other control protocols.

???SIP enables the implementation of intelligent endpoints to support scalable advanced services.

In a nutshell, SIP is a distributed signaling protocol (as opposed to a centralized protocol such as SS7, MGCP or MEGACO/H.248). With a distributive protocol, the intelligence does not necessarily reside on a central server, but can be built into the individual endpoints. By moving the intelligence to reside within the endpoints at the edge of the network, the processing load of the network application and associated call servers are significantly reduced, thus making the network a very scalable solution.

1.1.1.Components of a SIP Network

Service

Provider

Domain

Subscriber

Database

PSTN

Gateway

Figure 1 -- Components of a SIP IP Telephony Network

IP Telephony Gateway (PHONE ADAPTER): The PHONE ADAPTER is a small device that sits at the subscriber???s premises. It converts between analog telephone signals and IP Telephony signals. It has up to two RJ-11 ports where standard analog telephones can be directly attached, and an RJ-45 interface for the Ethernet connection to the home or business LAN. Intelligence can be built into this device to provide a wide range of features to the subscribers in association with the other elements in the service. The PHONE ADAPTER functions as a SIP User Agent (UA).

Home/SOHO Routers with NAT Functionality: A home/SOHO router is used for routing IP packets between the subscriber???s private network and the ISP???s public network. If the ISP provides only one public IP address to the subscriber, the devices attached to the private network will be assigned private IP addresses and the router will perform network address translation (NAT) on packets sent from the private network to the public network via the router. Home routers offer the following features:

???An R-J45 WAN interface for connection to the ISP???s public network and one or more RJ-45 LAN interfaces for connection to the subscriber???s private network. The router directs packets between the private network and the public network.

???A PPPoE client to connect with the ISP through a DSL modem.

???A DHCP client where the router will obtain an IP address, subnet mask, default router assignment, etc., for its WAN interface from a DHCP server on the public network.

???A DHCP server for auto-assignment of private IP addresses, subnet mask, and default router assignment to devices attached to the private network, i.e. computers, IP Telephony

gateways, etc. The default router in this case is the IP address of the LAN interface of the router itself.

???Performs NAT on packets sent from the private network to the public network. This is an important feature such that recipients of the private packets will perceive them as originated from a public IP address (the router???s WAN interface) and will therefore return messages to the proper public IP address and port. Different routers may use different rules for allocating port numbers at the WAN interface to forward packets from a private IP address/port to a public IP address/port. The allocated port number is also used for routing packets from external IP addresses to a private address. Most routers will accept a number of static port mapping rules for forwarding packets received on a specific port at the WAN interface to a specific IP address/port in the private network.

PSTN - VoIP Gateways: These devices are required if user agents are expected to make calls to or receive calls from the PSTN. Many gateways may be deployed in order to service a wide area. Gateways also behave like SIP user agents. The proxy server can be configured with cost-saving rules based call routing information so that it may decide which gateway to use depending on the destination and the time of the call. The IP Telephony service provider will assign each subscriber an E164 telephone number so that it may be reached from the PSTN just like any other telephone.

Billing Servers: Billing servers are used to generate billing data per usage of the IP Telephony service. Typically, the service provider will charge a flat fee for unlimited calls between IP Telephony subscribers (on-net-to-on-net calls). Per use or minute chargers will be incurred only when the subscriber makes calls to PSTN numbers (on-net-to-off-net calls) through one of the PSTN gateways. CDR (call detail record) data are generated by the PSTN gateway and sent to the billing servers.

Provisioning Servers: Provisioning servers are used to provision the subscriber user agent devices, e.g. the PHONE ADAPTER. When a subscriber signs up for IP Telephony service, he selects an appropriate service level and enters his personal information including billing information. This information is processed by the provisioning server and stored into the service provider???s customer database. The provisioning server generates a device profile based on the subscriber???s choice of options. The device profile, which is list of configuration parameters, is downloaded into the PHONE ADAPTER from the provisioning server. The PHONE ADAPTER can be configured to contact the provisioning server periodically to check for any update of the device profile, which may include a firmware upgrade or configuration modification to the PHONE ADAPTER.

Application Servers: Application servers are used to provide value added services, such as call forwarding, outgoing or incoming call blocking

Voice Mail Servers: Specialized servers provide voice mail services to the IP Telephony service subscribers. When the subscriber is busy or the PHONE ADAPTER is out of service for maintenance or other reason, incoming calls to the subscriber may be redirected to the voice mail servers where the caller can leave a voice mail. The voice mail server will then notify the subscriber???s PHONE ADAPTER of the availability of voice mail(s) in his mailbox. The subscriber can then contact the voice mail server to retrieve his voice mail(s). The PHONE ADAPTER can indicate the message-waiting status to the subscriber through a number of methods such as stuttered dial tone heard through the telephone every time the subscriber lifts up the handset until the voice mail is retrieved.

1.1.2.Provisioning Overview

The PHONE ADAPTER is configurable in many ways such that it can provide a wide range of customizable services and operate in many diverse environments with a variety different vendors??? SIP Proxy Servers, VoIP Gateways, Voice Mail Servers, NAT applications, etc. Provisioning is the process by which the PHONE ADAPTER obtains a set of configuration parameters in order for it to operate in the Service Provider???s network.

The complete set of configuration parameters for an PHONE ADAPTER corresponding to an individual subscriber is referred to as a configuration profile or simply a Profile. The Profile can be encoded as an XML file or a simple plain text file with a list of tag/value pairs. When the PHONE

ADAPTER unit is shipped from the factory, it contains a default common Profile and is considered Unprovisioned. To save costs and expedite delivery, however, it is very desirable that an Unprovisioned unit can be shipped directly from the factory to the subscriber???s location without any preprocessing by the Service Provider.

The PHONE ADAPTER contacts the Service Provider???s provisioning server via the IP network or Internet when it is plugged into the subscriber???s home or business Local Area Network (LAN) ??? assuming the provisioning server is reachable from the subscriber???s home network ??? to pull the designated profile to be installed in that particular PHONE ADAPTER unit. Furthermore, the PHONE ADAPTER unit will periodically contact the provisioning server to download an updated profile. The protocol for downloading the configuration profile can be ???clear text??? TFTP or HTTP data or it can be encrypted TFTP, HTTP or HTTPS data if security is required. Security will be discussed in more details in a later section.

This type of autonomous remote provisioning, where the individual PHONE ADAPTER unit pulls the profile from the provisioning server is very scalable and flexible. Using this provisioning method, a large number of PHONE ADAPTER units can be provisioned simultaneously and updated periodically.

However, some basic information must be provided to the PHONE ADAPTER before it can be provisioned in this fashion: a) the IP address or domain name of the provisioning server to contact, and b) an ID and/or a password to send to the provisioning server such that it can associate it with a specific subscriber and obtain the corresponding profile. This information can be sent out-of-band to the subscriber via secured email or in a letter inside a welcome kit, for example. The subscriber might need to punch in some numbers using a telephone connected to the PHONE ADAPTER in order to enter this information into the unit. The PHONE ADAPTER provides an easy-to-use interface with audio instructions to make this initial configuration process as painless as possible. An alternative is for the unit to be provisioned with this basic information by the Service Provider before the unit is shipped to the subscriber.

In addition to the batch mode of remote provisioning, the PHONE ADAPTER allows an interactive mode of local provisioning. One way to offer this feature is through the use of an IVR system (accessed through an attached telephone set). The user can access a diagnostic or configuration menu to check the status of the device or to change some of the settings. This method of provisioning may be applied by an administrator when the device is at the Service Provider???s office, or by the subscriber under the guidance of trained personnel during over-the-phone troubleshooting.

A third method of entering provisioning information into the PHONE ADAPTER is by way of its integral web server via a browser on a PC. The subscriber has the option to set and adjust configuration parameters via an easy-to-use, password protected graphical user interface. This method of provisioning might be preferred by administrators who wish to access the PHONE ADAPTER over a secure corporate/institutional LAN or by the residential subscriber who is a ???power user.???

1.1.3.Security Overview

Security may be applied at many levels in the context of the PHONE ADAPTER. The following are examples of information that should be secured:

???The configuration profile pulled from the provisioning server ??? The downloading of the profile should be secured since it contains authentication (password/user name ID / number) information for accessing subscriber telephony services. It may also contain other passwords and/or encryption keys used for a variety of management and service operations.

???The administration password to the PHONE ADAPTER unit ??? The unit must disallow access to administrative functions to unauthorized users. This access can be controlled with an administrator password. The administrator password can be one of the parameters in the PHONE ADAPTER configuration profile.

???The SIP signaling messages ??? The SIP messages exchanged between the SIP proxy server and the PHONE ADAPTER should be encrypted with a secret key. This can be achieved, for instance, by transporting SIP over TLS.

???RTP packets ??? The RTP payload exchanged between SIP user agents can be encrypted with a secret key to protect against eavesdropper. The secret key can be negotiated with proper SIP signaling messages. Hence the signaling path must be secured also.

1.1.3.1.Proxy Servers

Proxy servers handle two functions:

1.Accept registrations from the SIP user agents,

2.Proxy requests and responses between user agents.

Registration is the process by which a user agent tells the proxy who it is and at what IP address and port that it can be reached via SIP. Registration usually expires within a finite period (e.g., 60s or 3600s) and the UA shall renew their registration periodically before the last registration expires. When a user agent initiates a call, it sends a SIP INVITE request to the proxy server and indicates the target recipient of the call. The proxy server then consults a database to determine where to forward the request to the destination user agent. The proxy server can request authentication credentials from the user agent before granting the service. The credentials are computed by the user agent based on a pre-provisioned password and a challenge ???nonce??? dynamically generated by the proxy server per request. This mechanism prevents unauthorized user agents from getting IP Telephony services through the proxy server. SIP proxy servers are operated by the IP Telephony service provider and resides at the service provider???s domain. They may be implemented in many different ways. They can be stateless, stateful, or B2BUA. Stateless proxies do not maintain states of each call; they simply proxy the requests and responses between the user agents. Hence they are the simplest, most scalable, but provide the least types of services. Advanced IP Telephony services are possible with these proxies only with intelligent user agent devices that are capable of delivering these services without proxy intervention. Stateful proxies maintain the call state of each call and can provide more intelligent services at the expense of more processing load per call. B2BUA proxies process every request and response from the user agents and are capable of providing very advance services even with relatively simple user agent devices. Obviously B2BUA proxies have the highest processing load per call.

1.1.4.SIP Services

Today???s PSTN offers a large number of enhanced services in addition to basic phone services. Most of the services offered by the PSTN are accessed by the subscribers through their telephone sets. The subscribers provide their input by talking into the handset, pressing the keypad, the switch hook or flash button, while the PSTN presents instructions/information/confirmation to the subscribers through a variety of audio tones, beeps and/or announcements. The PHONE ADAPTER supports a comparable range of services via a similar user interface in order to make the IP Telephony service transparent to subscribers.

The PHONE ADAPTER is fully programmable and can be custom provisioned to emulate just about any traditional telephony service available today. This ability to transparently deliver legacy services over an IP network coupled with the availability of Internet connected devices (PCs. PDA, etc.) and browsers opens up a new world of potential offerings that a provider can use to differentiate their service and grow their business.

The following is a list of commonly supported phone services:

1.1.4.1.Basic Services

1.1.4.1.1.Making Calls to PSTN and IP Endpoints

This is the most basic service. When the user picks up the handset, the PHONE ADAPTER provides dial tone and is ready to collect dialing information via DTMF digits from a touch tone telephone. While it is possible to support overlapped dialing within the context of SIP, the PHONE ADAPTER collects a complete phone number and sends the full number in a SIP INVITE message to the proxy server for further call processing. In order to minimize dialing delay, the PHONE ADAPTER maintains a dial plan and matches it against the cumulative number entered by the user. The PHONE ADAPTER also detects invalid phone numbers not compatible with the dial plan and alerts the user via a configurable tone (reorder) or announcement.

1.1.4.1.2.Receiving Calls from PSTN and IP Endpoints

The PHONE ADAPTER can receive calls from the PSTN or other IP Telephony subscribers. Each subscriber is assigned an E.164 phone number so that they may be reached from wired or wireless callers on the PSTN. The PHONE ADAPTER supplies ring voltage to the attached telephone set to alert the user of incoming calls.

1.1.4.2.Enhanced Services

Enhanced Services are provided in addition to Basic calling services and accessed by way of a touchtone phone through a series of menus. Since the service enabled by the PHONE ADAPTER are Internet in nature, these enhanced services can be made better by offering users a web browser based interface to control certain aspects of some or all services.

1.1.4.2.1.Caller ID

In between ringing bursts, the PHONE ADAPTER can generate a Caller ID signal to the attached phone when the phone is on-hook.

Calling Line Identification Presentation (CLIP)

Some subscribers will elect to always block their Caller ID information, yet there may be a circumstance where sending Caller ID information for a particular call is desired, i.e. trying to reach a party that does not accept Caller ID blocked calls.

The subscriber activates this service to send his Caller ID when making an outgoing call. To activate the service, the subscriber enters the corresponding * or # code prior to making the call. This service is in effect only for the duration of the current call.

Calling Line Identification Restriction (CLIR) ??? Caller ID Blocking

The subscriber activates this service to hide his Caller ID when making an outgoing call. To activate the service, the subscriber enters the corresponding * or # code prior to making the call. This service is in effect only for the duration of the current call.

1.1.4.2.2.Call Waiting

The subscriber can accept a call from a 3rd party while engaging in an active call. The PHONE ADAPTER shall alert the subscriber for the 2nd incoming call by playing a call waiting tone.

Disable or Cancel Call Waiting

By setting the corresponding configuration parameter on the PHONE ADAPTER, the PHONE ADAPTER supports disabling of call waiting permanently or on a per call basis.

Call-Waiting with Caller ID

In between call waiting tone bursts, the PHONE ADAPTER can generate a Caller-ID signal to the attached phone when it is off hook.

1.1.4.2.3. Voice Mail

Message Waiting Indication

Service Providers may provide voice mail service to their subscribers. When voice mail is available for a subscriber, a notification message will be sent from the Voice Mail server to the PHONE ADAPTER. The PHONE ADAPTER indicates that a message is waiting by, playing stuttered dial tone (or other configurable tone) when the user picks up the handset.

Checking Voice Mail

The PHONE ADAPTER allows the subscriber to connect to their voice mail box by dialing their personal phone number.

1.1.4.2.4.Call Transfer

Three parties are involved in Call Transfer: The transferor, transferee, and transfer target. There are 2

flavors of call transfer: Attended Transfer (Transfer with consultation) and Unattended Transfer (???Blind??? Transfer).

Attendant Transfer

The transferor dials the number of the transfer target, then he hangs up (or enters some * or # code) when the transfer target answers or rings to complete the transfer.

Unattended or ???Blind??? Transfer

The transferor enters some * or # code and then dials the number of the transfer target to complete the transfer (without waiting for the target to ring or answer).

1.1.4.2.5.Call Hold

Call Hold lets you put a caller on hold for an unlimited period of time. It is especially useful on phones without the hold button. Unlike a hold button, this feature provides access to a dial tone while the call is being held.

1.1.4.2.6.Three-Way Calling

The subscriber can originate a call to a 3rd party while engaging in an active call.

1.1.4.2.7.Three-Way Ad-Hoc Conference Calling

The PHONE ADAPTER can host a 3-way conference and perform 3-way audio mixing (without the need of an external conference bridge device or service).

1.1.4.2.8.Call Return

The PHONE ADAPTER supports a service that allows the PHONE ADAPTER to automatically dials the last caller???s number.

1.1.4.2.9.Call Return on Busy

If the last called number is busy, the subscriber can order this service to monitor the called party and to receive a notification from the PHONE ADAPTER (such as special phone ring) when that party becomes available.

1.1.4.2.10. Automatic Call Back

This feature allows the user to place a call to the last number they tried to reach whether the call was answered, unanswered or busy by dialing an activation code.

1.1.4.2.11. Call Forwarding

These services forward all the incoming calls to a static or dynamically configured destination number based on three different settings. These services may be offered by the PHONE ADAPTER or by the SIP proxy server. They can be activated by entering certain * or # code, followed by entering a

telephone number to forward calls to. The PHONE ADAPTER provides audio instructions to prompt the user for a forwarding number and confirms that the requested service has been activated.

Call FWD ??? Unconditional

All calls are immediately forwarded to the designated forwarding number. The PHONE ADAPTER will not ring or provide call waiting when Call FWD ??? Unconditional is activated.

Call FWD ??? Busy

Calls are forwarded to the designated forwarding number if the subscriber???s line is busy because of the following; Primary line already in a call, primary and secondary line in a call or conference.

Call FWD - No Answer

Calls are forwarded to the designated forwarding number after a configurable time period elapses while the PHONE ADAPTER is ringing and does not answer.

1.1.4.2.12. Anonymous Call Blocking

By setting the corresponding configuration parameter on the PHONE ADAPTER, the subscriber has the option to block incoming calls that do not reveal the caller???s Caller ID.

1.1.4.2.13. Distinctive / Priority Ringing

The PHONE ADAPTER supports a number of ringing and call waiting tone patterns to be played when incoming calls arrive. The choice of alerting pattern to use is carried in the incoming SIP INVITE message inserted by the SIP Proxy Server (or other intermediate application server in the Service Provider???s domain).

1.1.4.2.14. Speed Dialing

The PHONE ADAPTER supports speed dialing of up to eight (8) phone numbers or IP addresses. To enter a telephone number speed dial using a touch tone telephone, the user dials a feature code (*74), followed by a number (2-9), then the destination speed dialed target number. When the user wishes to speed dial a target number, they press the corresponding speed dial assigned number followed by the ???#??? (pound) key.

Users may also enter/review speed dials from User1/User2 web-pages. This interface or similar is required to enter IP address targets.

1.1.4.3.PSTN Interworking

The PHONE ADAPTER is designed to provide a transparent interworking relationship with the PSTN. Service providers can deploy the PHONE ADAPTER in such a way that PSTN endpoints ??? wired or wireless ??? communicating with PHONE ADAPTER endpoints do so without modification to their configuration or network settings.

The service provider may choose to deploy a multi-protocol VoIP network, much the same way the PSTN supports multiple signaling schemes today. Most telecommunication providers operate equipment that supports CAS or channel associated signaling, ISDN signaling and SS7 signaling. When VoIP is introduced or used in the telecommunications landscape, it is likely that the service provider will implement a signaling gateway that supports multiple IP Telephony protocols along with legacy PSTN protocols. The signaling gateway is commonly referred to as a Softswitch.

Architecture and functionality can vary greatly amongst the different softswitch vendors. The protocols used will depend on the types of connections that will be set-up across the service provider???s network. If the provider is simply providing transport of calls to/from their network to another provider???s network, but not originating or terminating calls with the endpoints, SIP will likely be used for softswitch to softswitch communication.

If the service provider is offering origination and/or termination on endpoint equipment then it is very likely that the softswitch chosen for network operations will support multiple PSTN and VoIP signaling protocols.

The table below lists the most commonly accepted, de-facto standards used when implementing a VoIP signaling scheme based on the type of gateway or endpoint equipment being deployed:

The PHONE ADAPTER supports SIP today. It has the capability to communicate with a variety of endpoints and signaling entities via SIP messages.

1.2.Network Address Translation (NAT) Traversal

1.2.1.What is a NAT or NAPT (Network Address Port Translator)?

A NAT allows multiple devices to share the same external IP address to access the resources on the external network. The NAT device is usually available as one of the functions performed by a router that routes packets between an external network and an internal (or private) one. A typical application of a NAT is to allow all the devices in a subscriber???s home network to access the Internet through a router with a single public IP address assigned by the ISP. The IP header of the packets sent from the private network to the public network can be substituted by the NAT with the public IP address and a port selected by the router according to some algorithm. In other words, recipient of the packets on the public network will perceive the packets as coming from the external address instead of the private address of the device where the packets are originated.

In most Internet protocols, the source address of a packet is also used by the recipient as the destination to send back a response. If the source address of the packets sent from the private network to the public network is not modified by the router, the recipient may not be able to send back a response to the originator of the message since its private source IP address/port is not usable. When a packet is sent from a device on the private network to some address on the external network, the NAT selects a port at the external interface from which to send the packet to the destination address/port. The private address/port of the device, the external address/port selected by the NAT to send the packet, and the external destination address/port of the packet form a NAT Mapping.

The mapping is created when the device first sends a packet from the particular source address/port to the particular destination address/port and is remembered by the NAT for a short period of time. This period varies widely from vendor to vendor; it could be a few seconds, or a few minutes, or more, or less. While the mapping is in effect, packets sent from the same private source address/port to the same public destination address/port is reused by the NAT. The expiration time of a mapping is extended whenever a packet is sent from the corresponding source to the corresponding destination.

More importantly, packets sent from that public address/port to the external address/port of the NAT will be routed back to the private address/port of the mapping session that is in effect. Some NAT devices actually reuse the same mapping for the same private source address/port to any external IP address/port and/or will route packets sent to its external address/port of a mapping from any external

address/port to the corresponding private source address/port. These characteristics of a NAT can be exploited by an PHONE ADAPTER to let external entities send SIP messages and RTP packets to it when it is installed on a private network.

1.2.2.VoIP-NAT Interworking

In the case of SIP, the addresses where messages/data should be sent to an PHONE ADAPTER are embedded in the SIP messages sent by the device. If the PHONE ADAPTER is sitting behind a NAT, the private IP address assigned to it is not usable for communications with the SIP entities outside the private network. The PHONE ADAPTER must substitute the private IP address information with the proper external IP address/port in the mapping chosen by the underlying NAT to communicate with a particular public peer address/port. For this the PHONE ADAPTER needs to perform the following tasks:

???Discover the NAT mappings used to communicate with the peer. This could be done with the help of some external device. For example a server could be deployed on the external network such that the server will respond to a special NAT-Mapping-Discovery request by sending back a message to the source IP address/port of the request, where the message will contain the source IP address/port of the original request. The PHONE ADAPTER can send such a request when it first attempts to communicate with a SIP entity in the public network and stores the mapping discovery results returned by the server.

???Communicate the NAT mapping information to the external SIP entities. If the entity is a SIP Registrar, the information should be carried in the Contact header that overwrites the private address/port information. If the entity is another SIP UA when establishing a call, the information should be carried in the Contact header as well as in the SDP embedded in SIP message bodies. The VIA header in outbound SIP requests might also need to be substituted with the public address if the UAS relies on it to route back responses.

???Extend the discovered NAT mappings by sending keep-alive packets. Since the mapping is only alive for short period, the PHONE ADAPTER continues to send periodic keep-alive packets through the mapping to extend its validity as necessary.

1.3.Voice Quality Overview

Voice Quality perceived by the subscribers of the IP Telephony service should be indistinguishable from that of the PSTN. Voice Quality can be measured with such methods as Perceptual Speech Quality Measurement (PSQM) (1-5 ??? lower is better) and Mean Opinion Score (MOS) (1-5 ??? higher is better).

The table below displays speech quality metrics associated with various audio compression algorithms:

Several factors that contribute to Voice Quality are described below.

Audio compression algorithm ??? Speech signals are sampled, quantized and compressed before they are packetized and transmitted to the other end. For IP Telephony, speech signals are usually sampled at 8000 samples per second with 12-16 bits per sample. The compression algorithm plays a large role in determining the Voice Quality of the reconstructed speech signal at the other end. The PHONE ADAPTER supports the most popular audio compression algorithms for IP Telephony: G.711 a-law and ??-law, G.726, G.729a and G.723.1.

The encoder and decoder pair in a compression algorithm is known as a codec. The compression ratio of a codec is expressed in terms of the bit rate of the compressed speech. The lower the bit rate, the smaller the bandwidth required to transmit the audio packets. Voice Quality is usually lower with lower bit rate, however. But Voice Quality is usually higher as the complexity of the codec gets higher at the same bit rate.

Silence Suppression ??? The PHONE ADAPTER applies silence suppression so that silence packets are not sent to the other end in order to conserve more transmission bandwidth; instead a noise level measurement can be sent periodically during silence suppressed intervals so that the other end can generate artificial comfort noise that mimics the noise at the other end (using a CNG or comfort noise generator).

Packet Loss ??? Audio packets are transported by UDP which does not guarantee the delivery of the packets. Packets may be lost or contain errors which can lead to audio sample drop-outs and distortions and lowers the perceived Voice Quality. The PHONE ADAPTER applies an error concealment algorithm to alleviate the effect of packet loss.

Network Jitter ??? The IP network can induce varying delay of the received packets. The RTP receiver in the PHONE ADAPTER keeps a reserve of samples in order to absorb the network jitter, instead of playing out all the samples as soon as they arrive. This reserve is known as a jitter buffer. The bigger the jitter buffer, the more jitter it can absorb, but this also introduces bigger delay. Therefore the jitter buffer size should be kept to a relatively small size whenever possible. If jitter buffer size is too small, then many late packets may be considered as lost and thus lowers the Voice Quality. The PHONE ADAPTER can dynamically adjust the size of the jitter buffer according to the network conditions that exist during a call.

Echo ??? Impedance mismatch between the telephone and the IP Telephony gateway phone port can lead to near-end echo. The PHONE ADAPTER has a near end echo canceller with at least 8 ms tail length to compensate for impedance match. The PHONE ADAPTER also implements an echo suppressor with comfort noise generator (CNG) so that any residual echo will not be noticeable.

Hardware Noise ??? Certain levels of noise can be coupled into the conversational audio signals due to the hardware design. The source can be ambient noise or 60Hz noise from the power adaptor. The PHONE ADAPTER hardware design minimizes noise coupling.

End-to-End Delay ??? End-to-end delay does not affect Voice Quality directly but is an important factor in determining whether subscribers can interact normally in a conversation taking place over an IP network. Reasonable delay figure should be about 50-100ms. End-to-end delay larger than 300ms is unacceptable to most callers. The PHONE ADAPTER supports end-to-end delays well within acceptable thresholds.

2. Hardware Overview

The PHONE ADAPTER has one of the smallest form factors on the market. It can be installed in minutes as a table-top or wall mount CPE device. Figures Figure 2 and Figure 3 show the front and rear, of the PHONE ADAPTER, respectively. Figures 4 and 5 show the front and rear, of the RT31P2 Broadband Router, respectively.

Figure 3 ??? PAP2 Back

Figure 2 ??? PAP2 Front

The PAP2 PHONE ADAPTER has the following interfaces for networking, power and visual status indication:

1. Two (2) RJ-11 Type Analog Telephone Jack Interfaces (Figure 3 , above):

These interfaces accept standard RJ-11 telephone connectors. An Analog touchtone telephone or fax machine may be connected to either interface. If the service supports only one incoming line, the analog telephone or fax machine should be connected to port one (1) of the PHONE ADAPTER. Port one (1) is the outermost telephone port on the PHONE ADAPTER and is labeled ???Phone 1.???

2. One Ethernet 10baseT RJ-45 Jack Interface (Figure 3, above):

This interface accepts a standard or crossover Ethernet cable with standard RJ-45 connector. For optimum performance, Linksys recommends that a Category 5 cable or greater be used in conjunction with the PHONE ADAPTER.

The Broadband Router RT31P2 has the following interfaces for networking, power and visual status indication:

1. Two (2) RJ-11 Type Analog Telephone Jack Interfaces (Figure 4, above):

These interfaces accept standard RJ-11 telephone connectors. An Analog touchtone telephone or fax machine may be connected to either interface. If the service supports only one incoming line, the analog telephone or fax machine should be connected to port one (1) of the RT31P2. Port one (1) is the outermost telephone port on the RT31P2 and is labeled ???Phone 1.???

2. Four (4) Ethernet 10/100 baseT, three (3) for Local Network and one (1) for Internet, all the 4 ports uses RJ-45 Jack Interface, (Figure 5, above):

This interface accepts a standard or crossover Ethernet cable with standard RJ-45 connector. For optimum performance, Linksys recommends that a Category 5 cable or greater be used in conjunction with the PHONE ADAPTER.

3. LEDs

2.1.Phone Adapter LED Status

2.2.Broadband Router (RT31P2) LED Status

4. One 5 Volt Power Adapter Interface (Figure 3, above) for PAP2 Phone Adapter and 12 Volt Power Adapter for the Broadband Router (RT31P2)

This interface accepts the PHONE ADAPTER power adapter that came with the unit. Linksys does not support the use of any other power adapters other then the power adapter that was shipped with the PHONE ADAPTER unit or the Broadband Router (RT31P2)

Please check to make sure that you have the following package contents:

1.Linksys Phone Adapter Unit or Linksys Broadband Router (RT31P2)

2.Ethernet Cable

3.5 Volt (PAP2) or 12 Volt (RT31P2) Power Adapter

4.CD with User Guide

You will also need:

1.One or Two Analog Touch Tone Telephones (or Fax Machine)

2.Access to an IP Network via an Ethernet Connection

3.One or Two RJ-11 Phone Cable(s).

Please observe the following steps to install the PHONE ADAPTER. From the rear Side of the

PHONE ADAPTER:

1.Insert a standard RJ-45 Ethernet cable (included) into the LAN port.2. Insert the power adapter cable into the 5V power adapter cable receptacle. Ensure that the power adapter jack is snugly attached to the PHONE ADAPTER.

2.Insert a standard RJ-11 telephone cable into the Phone 1 port.2. Connect the other end of the cable to an analog telephone or fax machine.

3.Insert a standard RJ-11 telephone cable into the Phone 2 port (Optional)

4.Connect the other end of the cable to an analog telephone or fax machine.

Note: Do not connect RJ-11 telephone cable from the PHONE ADAPTER to the wall jack to prevent any chance of connection to the circuit switched Telco network. You may now insert the plug end of the power adapter into a live power outlet which will power up the PHONE ADAPTER.

3. Software Configuration Mechanisms

The PHONE ADAPTER provides for secure remote provisioning and remote upgrade. Linksys recommends that providers use a secure first-time provisioning mechanism using HTTPS (described in more detail in section 3.2). Subsequent, provisioning is achieved through configuration profiles transferred to the device via TFTP, HTTP or HTTPS. These configuration profiles can be encrypted using AES 256-bit symmetric key encryption using a key configured into the device during the initial HTTPS provisioning stage. As an alternative method for initial configuration, an unprovisioned PHONE ADAPTER can receive an encrypted profile specifically targeted for that device without requiring an explicit key, although this is not as secure as using HTTPS.

The PHONE ADAPTER can be configured to resync its internal configuration state to a remote profile periodically and on power up. An administrator can also remotely trigger a profile resync by sending an authenticated SIP NOTIFY request to the PHONE ADAPTER.

Likewise, remote upgrades are achieved via TFTP, HTTP or HTTPS. The PHONE ADAPTER upgrade logic is capable of automating multi-stage upgrades, in case intermediate upgrades are ever required to reach a future upgrade state from an older release.

General purpose parameters are provided as an additional aid to service providers in managing the provisioning process. The administrator can configure simple comparisons, translations, concatenations, and parameter substitution with the aid of these parameters.

All profile resyncs are attempted only when the PHONE ADAPTER is idle, since they may trigger a software reboot. User intervention is not required to initiate or complete a profile update or firmware upgrade. In general, most configuration changes take effect without requiring a reboot.

The PHONE ADAPTER also provides a Web Interface with two-level access (user-level and admin- level) to configuration parameters. For standalone PHONE ADAPTERS (which contain no router or NAT functionality), an IVR (Interactive Voice Response) interface is also available for configuring basic networking.

3.1.Configuration Profile Formats

The PHONE ADAPTER configuration profile is an XML or binary file with encoded PHONE ADAPTER parameter values and optionally user access permissions for those parameters. By convention, the profile is named with the extension ???.cfg??? (e.g. pap2.cfg). An administrator can easily generate the XML format and compress and/or encrypt this file with off-the-shelf tools (e.g. gzip, openssl).

The XML configuration file always begins with the top-level element <flat-profile>. Within this element are any number of the configuration elements which are visible in the GUI. The XML tag names are case-sensitive and are identical to the names in the GUI, except that characters other than hyphen, period, underscore, and alphanumeric characters from the GUI are replaced with an underscore in the XML names. For example, User ID(1) becomes <User_ID_1_> .

Empty elements (ex: <element/> ) or missing elements do not change the value already stored in

memory. An opening and closing tag (ex: <element></element>) with no included value, deletes the value stored in memory. Standard XML comments and arbitrary whitespace can be included in the file for readability purposes. Note that in XML, less-than ("<") and ampersand ("&") characters within an element must be escaped (using "<" and "&" respectively). Element names in XML are case- sensitive.

<flat-profile> <Profile_Rule>https://config.provider.net/linksys/$MA-cfg.xml </Profile_Rule> <Resync_Periodic>86400</Resync_Periodic> <Admin_Passwd>9b4cef5677a129</Admin_Passwd>

<Proxy_1_>sip.provider.net</Proxy_1_> <User_ID_1_>1234567890</User_ID_1_> <Password_1_>YhJ89_Luk4E</Password_1_> <Display_Name_1_>1234567890</Display_Name_1_> <Line_Enable_2_>0</Line_Enable_2_>

</flat-profile>

The Linksys Supplementary Profile Compiler tool (SPC) is provided for compiling a plain-text file containing parameter-value pairs into a binary cfg file which is optionally encrypted. The spc tool is available from Linksys for the Win32 environment (spc.exe), Linux-i386-elf environment (spc-linux- i386-static) and for the OpenBSD environment.

The syntax of the plain-text file accepted by the profile compiler is a series of parameter-value pairs, with the value in double quotes. Each parameter-value pair is followed by a semicolon, e.g. parameter_name ???parameter_value???;. If no quoted value is specified for a parameter (or if a parameter specification is missing entirely from the plain-text file) the value of the parameter will remain unchanged in the PHONE ADAPTER.

The SPC syntax also controls the parameter???s user-level access when using the built-in web interface to the PHONE ADAPTER (PAP2-only). An optional exclamation point or question mark, immediately following the parameter name, indicates the parameter should be user read-write or read-only,

respectively. If neither mark is present, the parameter is made inaccessible to the user from the web interface. Note that this syntax has no effect on the admin-level access to the parameters.

When using the SPC, a service provider is given full control over which parameters become inaccessible, read-only, or read-write following provisioning of the PHONE ADAPTER.

If the parameter specification is missing entirely from the plain-text file, the user-level access to the parameter will remain unchanged in the PHONE ADAPTER. If the plain-text file contains multiple occurrences of the same parameter-value specification, the last such occurrence overrides any earlier ones.

Parameter names in the plain-text file must match the corresponding names appearing in the PHONE ADAPTER web interface, with the following modifications:

???Inter-word spaces are replaced by underscores ???_??? (e.g. Multi_Word_Parameter).

???For the PHONE ADAPTER, line and user specific parameters use bracketed index syntax to identify which line or user they refer to (e.g. Line_Enable[1] and Line_Enable[2]).

Comments are delimited by a ???#??? character up to the end-of-line. Blank lines can be used for readability.

Parameter_name [ ??????? | ???!??? ] [???quoted_parameter_value_string???] ???;???

Example of plain-text file entries:

# These parameters are for illustration only

Multiple plain text files can be spliced together to generate the source for each CFG file. This is accomplished by the ???import??? directive: the literal string ???import??? (placed at the start of a new line) followed by one or more spaces and the file name to splice into the stream of parameter-value pairs. The following example illustrates. File splicing can be nested several files deep.

#base.txt contains . . .

Param1 ???base value 1??? ; Param2 ???base value 2??? ;

. . .

#Phone Adapter1234.txt contains . . .

import base.txt

Param1 ???new value overrides base??? ; Param7 ???particular value 7??? ;

. . .

# The Phone Adapter1234.txt file above is equivalent to . . .

Param1 ???base value 1??? ; Param2 ???base value 2??? ;

. . .

Param1 ???new value overrides base??? ; Param7 ???particular value 7??? ;

. . .

A sample plain-text file, containing default parameter-value and access settings for the PHONE ADAPTER can be obtained from the profile compiler tool, using the following command-line arguments.

spc ???-sample-profile defaults.txt

In both the XML and SPC configuration formats,] Boolean parameter values that evaluate to true are any one of the values {Yes | yes | Enable | enable | 1}. Boolean values that evaluate to false are any one of the values {No | no | Disable | disable | 0}.

3.1.1.Using the Supplemental Profile Compiler

Once a plain-text file has been generated with the desired parameter settings, it needs to be compiled into a binary CFG file. The profile compiler can generate a generic unencrypted CFG file, a targeted CFG file (encrypted for a unique PHONE ADAPTER), a generic key encrypted CFG file, or a targeted and key encrypted CFG file.

A generic CFG file (non-targeted) is accepted as valid by any PHONE ADAPTER device. A targeted CFG file is only accepted as valid by the PHONE ADAPTER device bearing the target MAC address. Targeted CFG files are encrypted with a 128-bit algorithmically generated key, and therefore do not require a key to be issued explicitly. Targeted CFG files provide a basic level of security for remotely locking an otherwise unprovisioned PHONE ADAPTER.

The binary configuration format supports RC4 and AES symmetric key algorithms, with keys of up to 256 bits. The key can be specified explicitly as a hex-string, or it can be generated from a password or a quoted pass-phrase. In the case of passwords and pass-phrases, the internally generated key is 128 bits in length.

The following command-line syntax generates a generic and unencrypted CFG file:

spc pap2.txt pap2.cfg

A targeted CFG file (with basic encryption) is specified by supplying the MAC address of the target device:

spc ???-target 000e08aaa010 pap2.txt pap2.cfg

An encrypted CFG file requires either a password (or quoted pass-phrase) or a hex-string. The following lines illustrate command-line invocations for various combinations of keys and algorithms.

spc ???-rc4 ???-ascii-key apple4sale pap2.txt pap2.cfg spc ???-aes ???-ascii-key lucky777 pap2.txt pap2.cfg

spc ???-aes ???-ascii-key ???my secret phrase??? pap2.txt pap2.cfg spc ???-aes ???-hex-key 8d23fe7...a5c29 pap2.txt pap2.cfg

A CFG file can be both targeted and key encrypted, as suggested by the following example:

spc ???-target 000e08aaa010 ???-aes ???-hex-key 9a20...eb47 a.txt a.cfg

The status messages printed by spc can be suppressed with the ???--quiet??? command line option. Or they can be redirected to a file, with the ???--log file_name??? command line option. In the latter case, the spc command line invocation itself is also printed in the log file, preceded by a timestamp.

spc ???-quiet . . .

spc ???-log prov.log . . .

3.1.2.Encrypting and Compressing XML configuration files

The Linksys PHONE ADAPTER supports encrypted XML configuration profiles. This can be used for subsequent configuration files stored on or generated by either TFTP or HTTP servers. When used in concert with HTTPS for initial config, this provides complete security, but only uses the HTTPS server for initial enrollment. For example, an example configuration file in XML setup to download an encrypted XML file via HTTP looks like this:

<flat-profile>

<Profile_Rule>[--key $B] http://config.provider.net/linksys/established/$MA.xml </Profile_Rule>

<Resync_Periodic>86400</Resync_Periodic> <GPP_B >9b4cef5677a129</GPP_B> <Admin_Passwd>9b4cef5677a129</Admin_Passwd>

<Proxy_1_>sip.provider.net</Proxy_1_> <User_ID_1_>1234567890</User_ID_1_> <Password_1_>YhJ89_Luk4E</Password_1_> <Display_Name_1_>1234567890</Display_Name_1_> <Line_Enable_2_>0</Line_Enable_2_>

</flat-profile>

An XML configuration file can be encrypted using the openssl command line utility as shown below. (Note that aes encryption is available beginning with OpenSSL versions 0.9.7. OpenSSL is freely available from http://www.openssl.org )

openssl aes-256-cbc -e -in cleartextconfig -out encryptedconfig -k 9b4cef5677a129

This utility generates 8-bytes of salt (which is prepended to the encrypted configuration file), and then calculates an Initialization Vector (IV) and an 256-bit encryption key using the key phrase provided on the command line. The TA recognizes the leading characters "Salted__" as a hint to find the salt and decrypt the configuration file.

Linksys XML configuration files can be compressed using the gzip compression algorithm. Gzip is available from http://www.gzip.org .

gzip cleartextconfig.xml

If both compression and encryption are used, the clear text version must be compressed before it is encrypted. The PHONE ADAPTER does not recognize files which are encrypted and then compressed since encrypted files are uncompressible. The Linksys PHONE ADAPTER automatically detects if a file is compressed or encrypted.

3.2.Secure Initial Configuration

Linksys recommends a secure configuration system to providers to protect them from theft of service, account forgery, and denial of service. To that end, Linksys Terminal Adapters are provisioned at the factory with a public key certificate signed by the Linksys certificate authority.

The first step in this process is for the Linksys terminal adapters to use HTTPS to initially contact the configuration server specified in the Profile_Rule. The initial URL can be configured into the TA at manufacturing time for order over a certain size, it can be added during a staging process, or it can be provided via the web interface as described in the next section. The PHONE ADAPTER opens a TCP connection to the initial configuration server, and sends an SSLv2 ClientHello message. The configuration server then presents a server certificate signed by Linksys in a ServerHello message, and requests the certificate of the client. The Terminal Adapter validates the server certificate and provides its client certificate. From the client certificate, the provider is assured of the authenticity of the MAC address, serial number, and model number of the Linksys device which has connected. The terminal adapter will then use an HTTP GET over this TLS secure channel to fetch its initial configuration.

An Apache web server can be setup to perform all the certificate verification automatically as configuration directives. An example configuration is listed below:

<Directory /linksys/secure-setup/> SSLVerifyClient require SSLVerifyDepth 1 SSLRequireSSL

SSLCertificateFile provider-cert-signed-by-linksys.pem SSLCertificateKeyFile provider-private-key.pem SSLCertificateChainFile linksys-cert.pem SSLCACertificateFile linksys-cert.pem

SSLRequire ( %{SSL_CLIENT_VERIFY} eq "SUCCESS" \ and %{SSL_CLIENT_I_DN_O} eq "Linksys" \ and %{SSL_CLIENT_S_DN_O} eq "Linksys" \

and %{SSL_CLIENT_S_DN_CN} eq %{REQUEST_FILENAME}

</Directory>

Within this directory, the Apache module mod_ssl verifies the client certificate, and verifies that the MAC address in the certificate corresponds the configuration file it is requesting. Either this directory must contain a configuration file, or a CGI application needs to generate the appropriate config file if that MAC address is configured in your system. (The Apache web server is freely available at http://www.apache.org ).

Once an initial XML configuration file is downloaded from the provider web server, subsequent configuration can be downloaded from the same server. Alternatively, the individual configuration files can be encrypted using AES 256-bit encryption as described previously, using a key that was conveyed in the initial configuration file. These encrypted configuration files then can be downloaded safely using HTTP or TFTP.

Linksys recommends using an encrypted configuration file. In the unlikely event that the private key of a terminal adapter or the Linksys certificate authority is compromised, terminal adapters which have already enrolled with a provider and use an encrypted configuration file would be unaffected by such a compromise.

3.3.Web Interface

The PHONE ADAPTER provides a built-in web server. Configuration and administration can be performed through this convenient web interface.

3.3.1.Web Interface Conventions

The PHONE ADAPTER line uses the following conventions with the web administration capabilities:

oThe PHONE ADAPTER web administration supports two privilege levels: Administrator and User. To use the User privilege, simply point a web browser at the IP address of the PHONE ADAPTER; to use the administrator privilege, use this URL for the PAP2 http://IP_Address_Of_PHONE ADAPTER/admin/, and this URL for the RT31P2: http://IP_Address_Of_PHONE ADAPTER/Voice_adminPage.htm . The default IP address for the LAN interface of the RT31P2 is 192.168.15.1. See the next section for more information about administration privileges.

oThe PHONE ADAPTER supports Internet Explorer 5.5 and above and Netscape 7.0 and above.

oThe web configuration pages can be password protected. See 3.3.2 for more information about password protect.

o The user name of web Administrator is : admin

o The user name of web User is : user

o Note: The user names for both administrator and User are fixed and cannot be changed.

o After making changes to PHONE ADAPTER configuration parameters, pressing ???Submit All Changes??? button will apply all the changes and if necessary, automatically reboot the device. Multiple changes may be made on multiple page tabs of the web interface at the same time. Pressing ???Submit All Changes??? will apply all the modifications.

Important Note: switching between page tabs won???t apply the changes to PHONE ADAPTER, The only way to apply the changes is to press the ???Submit All Changes??? button.

oIf the ???Undo All Changes??? button is clicked, any modifications to profile parameters on any and all pages will be reset back to their original values before modification.

NOTE: Pressing the ???Undo All Changes??? has no effect on the PHONE ADAPTER; it will only reset the values on the web page.

3.3.2.Administration Privileges

The PHONE ADAPTER supports two levels of administration privileges: Administrator and User, both

privileges can be password protected. Important note: by factory default, there are no passwords assigned for both Administrator and User.

The Administrator has the privilege to modify all the web profile parameters and can also modify the passwords of both Administrator and User. A User only has the privilege to access part of the web profile parameters; the parameter group that User can access is specified by the Administrator, which can only be done through provisioning.

To access the Administrator level privilege, use the URL for your model number as described in the previous section. If the password has been set for Administrator, the browser will prompt for authentication. The username for Administrator is ???admin??? and cannot be changed.

To access the User level privilege, use URL: http://IP_Address_Of_PHONE ADAPTER/. If the password has been set for User, the browser will prompt for User authentication. The username for User is ???user??? and cannot be changed.

When browsing Administrator pages, one can switch to User privileges by click the link ???User Login???. (Note: if User password was set, the browser will prompt for User authentication when you click ???User Login??? link). On the other side, from the User pages you can switch to Administrator privilege by clicking the link ???Admin Login.??? Authentication is needed if Administrator password has been set.

Warning: Switching between the User and Administrator will discard the uncommitted changes that have already been made on the web pages.

3.3.3.Basic and Advanced Views

The PAP2 web configuration interface provides a Basic and an advanced view from which the various configuration parameters can be accessed. The PHONE ADAPTER Provisioning tab is only visible from the Advanced Administrator view of the web interface.

Warning: Switching between the basic and advanced view will discard the uncommitted changes that have already been made on the web pages.

3.4.Functional Configuration URLs

The web interface of the PHONE ADAPTER supports several functions through special URLs: Upgrade, Reboot, Profile Resync, and Factory Reset. Administrator privilege is needed for these functions.

Note that on the RT31P2, these URLs are only accessible from the LAN interface, unless the Admin_Passwd has been set and the Enable_Web_Admin_Access parameter is set.

3.4.1.Upgrade URL

Through upgrade URL you can upgrade the PHONE ADAPTER to a firmware specified by the URL. Note: If the value of ???upgrade enable??? parameter in Provisioning tab is no, you cannot upgrade the PHONE ADAPTER even if the web page tells you that the upgrade will be done when it is not in use. See 4.2.1 to get more information on firmware upgrade.

The syntax of Upgrade URL is:

http://<PAP2-ip-addr>/upgrade?[protocol://][server-name[:port]][/firmware-pathname] or

http://<PAP2-ip-addr>/admin/upgrade?[protocol://][server-name[:port]][/firmware-pathname]

If no protocol is specified, TFTP is assumed. Note: Only TFTP is supported in the current release. If no server-name is specified, the host that requests the URL is used as server-name.

If no port specified, default port of the protocol is used. (69 for TFTP, 80 for http, 443 for HTTPS)

The ???firmware-pathname??? is typically the file name of the PHONE ADAPTER binary located in the root directory of the TFTP server. If no firmware-pathname is specified, ???/Phone Adapter.bin??? is assumed.

For example: http://192.168.2.217/upgrade?tftp://192.168.2.251/PAP2.bin

3.4.2.Resync URL

Through Resync URL you can force the PHONE ADAPTER to do a resync to a profile specified in the URL.

Note: The PHONE ADAPTER will resync only when it is idle. The syntax of Resync URL is:

http://<Phone Adapter-ip-addr>/resync?[[protocol://][server-name[:port]]/profile-pathname]

If no parameter follows ???/resync????, the profile rule setting in provisioning is used. See 4.2 for detailed information about profile rule in provisioning

If no protocol is specified, TFTP protocol is assumed. Note: Only TFTP is supported in the current release.

If no server-name is specified, the host that requests the URL is used as server-name.

If no port specified, default port of the protocol is used ??? 69 for TFTP, 80 for http, 443 for HTTPS. The profile-path is the path to the new profile to resync with.

For example: http://192.168.2.217/upgrade?tftp://192.168.2.251/PAP2.scf

3.4.3.Reboot URL

Through the Reboot URL, you can reboot the PHONE ADAPTER.

Note: Upon request, the PHONE ADAPTER will reboot only when it is idle.

The Reboot URL is: http://<Phone Adapter-ip-addr>/admin/reboot

3.4.4.Factory Reset URL

Through the Reset URL, you can perform a factory reset of the PHONE ADAPTER. Note: Upon request, the PHONE ADAPTER will reset and then reboot only when it is idle. The Reset URL is: http://<Phone Adapter-ip-addr>/admin/reset

3.5.Configuration via the IVR (PAP2 only)

Administrators and/or users can check (read) and set (write) basic network configuration settings via a touchtone telephone connected to one of the RJ-11 phone ports of the PAP2 model PHONE

ADAPTER.

Please Note:

Service Providers offering service using the PHONE ADAPTER may restrict, protect or turn off certain aspects of the unit???s IVR and web configuration capabilities.

The Interactive Voice Response (IVR) capabilities of the PHONE ADAPTER are designed to give the administrator and/or user basic read/write capabilities such that the unit can attain basic IP network connectivity and the more advanced browser-based configuration menu may be accessed.

1. The PHONE ADAPTER IVR uses the following conventions: By factory default there is no password and no password authentication is prompted for all the IVR settings. If administrator password is set, password authentication will be prompted for certain IVR settings. See 3.4.2 for detailed information about administrator password.

To input the password using the phone keypad, the following translation convention applies: o To input: A, B, C, a, b, c -- press ???2???

o To input: D, E, F, d, e, f -- press ???3???

o To input: G, H, I, g, h, i -- press ???4???

o To input: J, K, L, j, k, l -- press ???5???

o To input: M, N, O, m, n, o -- press ???6???

o To input: P, Q, R, S, p, q, r, s -- press ???7???

o To input: T, U, V, t, u, v -- press ???8???

o To input: W, X, Y, Z, w, x, y, z -- press ???9???

o To input all other characters in the administrator password, press ???0??? Note: This translation convention only applies to the password input.

For example: to input password ???test#@1234??? by phone keypad, you need to press the following

sequence of digits: 8378001234.

2.After entering a value, press the # (pound) key to indicate end of input. o To Save value, press ???1???

o To Review the value, press ???2??? o To Re-enter the value, press ???3???

o To Cancel the value entry and return to the main configuration menu, press ???*??? (star) Notes:

o The final ???#??? key won???t be counted into value.

oSaved settings will take effect when the telephone is hung-up and if necessary, the PHONE ADAPTER will automatically reboot.

3.After one minute of inactivity, the unit times out. The user will need to re-enter the configuration menu from the beginning by pressing * * * *.

4.If, while entering a value (like an IP address) and you decide to exit without entering any changes, you may do so by pressing the * (star) key twice within a half second window of time. Otherwise, the entry of the * (star) key will be treated as a dot (decimal point).

Example: To enter IP address, use numbers 0 ??? 9 on the telephone key pad and use the * (star) key to enter a decimal point.

To enter the following IP address value: 192.168.2.215

A.Use the touchtone key pad to enter: 192*168*2*215#

B.When prompted, enter 1 to save setting to configuration.

C.Hang-up the phone to cause setting to take effect.

- or -

D. Enter the value of the next setting category to modify . . .

5. Hang-up the phone to cause all settings to take effect.

PHONE ADAPTER Interactive Voice Response (IVR) Menu:

Note: If the Administrator password is not set or the user is allowed to change it, the items marked with ???Requires Password??? will not require a password.

4. Configuration Parameters

4.1.Data Types

The data types for the PHONE ADAPTER configuration parameters are described below.

???Uns<n> ??? Unsigned n-bit value, where n = 8, 16, or 32. It can be specified in decimal or hex format such as 12 or 0x18 as long as the value can fit into n bits.

???Sig<n> ??? Signed n-bit value. It can be specified in decimal or hex format. Negative values must be preceded by a ???-??? sign. A ???+??? sign before positive value is optional

???Str<n> ??? A generic string with up to n non-reserved characters.

???Float<n> ??? A floating point value with up to n decimal places.

???Time<n> ??? Time duration in seconds, with up to n decimal places. Extra decimal places specified are ignored.

???PwrLevel ??? Power level expressed in dBm with 1 decimal place, such as ???13.5 or 1.5 (dBm)

???Bool: Boolean value of either ???yes??? or ???no???

???{a,b,c,???} ??? A choice among a, b, c, ???

???IP ??? IP Address in the form of x.x.x.x, where x between 0 and 255. For example 10.1.2.100

???Port ??? TCP/UDP Port number (0-65535). It can be specified in decimal of hex format.

???UserID ??? User ID as appeared in a URL; up to 63 characters

???FQDN ??? Fully Qualified Domain Name, such as ???sip.Linksys.com:5060???, or ???109.12.14.12:12345???. It can contain up to 63 characters

???Phone ??? A phone number string, such as 14081234567, *69, *72, 345678, or a generic URL such as 1234@10.10.10.100:5068, or jsmith@Linksys.com. It can contain up to 39 characters.

???ActCode ??? Activation code for a supplementary service, such as *69. It can contain up to 7 characters.

???PhTmplt ??? A phone number template. Each template may contain 1 or more patterns separated by a ???,???. White Phone Adapterce at the beginning of each pattern is ignored. ??????? and ???*??? represent

wildcard characters. It can contain up to 39 characters. Examples: ???1408*, 1510*???, ???1408123????, 555?1???.

???RscTmplt ??? A template of SIP Response Status Code, such as ???404, 5*???, ???61????, ???407, 408, 487, 481???. It can contain up to 39 characters.

???CadScript ??? A mini-script that specifies the cadence parameters of a signal. Up to 127

characters. Syntax: S1[;S2], where Si=Di(oni,1/offi,1[,oni,2/offi,2[,oni,3/offi,3[,oni,4/offi,4[,oni,5/offi,5[,oni,6/offi,6]]]]]) and is known as a section, oni,j and offi,j are the on/off duration in seconds of a segment and i = 1 or 2, and j = 1 to 6. Di is the total duration of the section in seconds. All durations can have up to 3 decimal places to provide 1 ms resolution. The wildcard character ???*??? stands for infinite duration. The segments within a section are played in order and repeated until the total duration is played. Examples:

Example 1: Normal Ring

60(2/4)

Number of Cadence Sections = 1

Cadence Section 1: Section Length = 60 s

Number of Segments = 1

Segment 1: On=2s, Off=4s

Total Ring Length = 60s

Example 2: Distinctive Ring (short,short,short,long)

60(.2/.2,.2/.2,.2/.2,1/4)

???FreqScript ??? A mini-script that specifics the frequency and level parameters of a tone. Up to 127

characters. Syntax: F1@L1[,F2@L2[,F3@L3[,F4@L4[,F5@L5[,F6@L6]]]]], where F1???F6 are frequency in Hz (unsigned integers only) and L1???L6 are corresponding levels in dBm (with up to 1 decimal places). White spaces before and after the comma are allowed (but not recommended)

Example 1: Call Waiting Tone

440@-10

Number of Frequencies = 1

Frequency 2 = 440 Hz at ???10 dBm

Example 2: Dial Tone

350@-19,440@-19

???ToneScript ??? A mini-script that specifies the frequency, level and cadence parameters of a call

progress tone. May contain up to 127 characters. Syntax: FreqScript;Z1[;Z2]. The section Zi is similar to the Si section in a CadScript except that each on/off segment is followed by a frequency components parameter: Zi = Di(oni,1/offi,1/fi,1[,oni,2/offi,2/fi,2 [,oni,3/offi,3/fi,3 [,oni,4/offi,4/fi,4 [,oni,5/offi,5/fi,5 [,oni,6/offi,6/fi,6]]]]]), where fi,j = n1[+n2]+n3[+n4[+n5[+n6]]]]] and 1 < nk < 6 indicates which of the frequency components given in the FreqScript shall be used in that segment; if more than one frequency component is used in a segment, the components are summed together.

Example 1: Dial Tone

350@-19,440@-19;10(*/0/1+2)

Number of Frequencies = 2

Frequency 1 = 350 Hz at ???19 dBm

Frequency 2 = 440 Hz at ???19 dBm

Number of Cadence Sections = 1

Cadence Section 1: Section Length = 10 s

Number of Segments = 1

Segment 1: On=forever, with Frequencies 1 and 2

Total Tone Length = 10s

Example 2: Stutter Tone

350@-19,440@-19;2(.1/.1/1+2);10(*/0/1+2)

Number of Frequencies = 2

Frequency 1 = 350 Hz at ???19 dBm

Frequency 2 = 440 Hz at ???19 dBm

Number of Cadence Sections = 2

Cadence Section 1: Section Length = 2s

Number of Segments = 1

Segment 1: On=0.1s, Off=0.1s with Frequencies 1 and 2

Cadence Section 2: Section Length = 10s

Number of Segments = 1

Segment 1: On=forever, with Frequencies 1 and 2

Total Tone Length = 12s

Example 3: SIT Tone

985@-16,1428@-16,1777@-16;20(.380/0/1,.380/0/2,.380/0/3,0/4/0)

Number of Frequencies = 3

Frequency 1 = 985 Hz at ???16 dBm

Frequency 2 = 1428 Hz at ???16 dBm

Frequency 3 = 1777 Hz at ???16 dBm

Number of Cadence Sections = 1

Cadence Section 1: Section Length = 20s

Number of Segments = 4

Segment 1: On=0.38s, Off=0s, with Frequency 1

Segment 2: On=0.38s, Off=0s, with Frequency 2

Segment 3: On=0.38s, Off=0s, with Frequency 3

Segment 4: On=0s, Off=4s, with no frequency components

Total Tone Length = 20s

???ProvisioningRuleSyntax ??? Scripting syntax used to define configuration resync and firmware upgrade rules. Refer to the provisioning discussion in the next section for a detailed explanation of the syntax.

???DialPlanScript ??? Scripting syntax used to specify line 1 and line 2 dial plans. Refer to the dial plan section of this document for a detailed explanation of the syntax.

4.1.1.Conventions

???<Par Name> represents a configuration parameter name. In a profile, the corresponding tag is formed by replacing the space with an underscore ???_???, such as Par_Name.

???An empty default value field implies an empty string < ?????? >.

???The PHONE ADAPTER shall continue to use the last configured values for tags that are not present in a given profile.

???Templates are compared in the order given. The first, not the closest, match is selected. The parameter name must match exactly.

???If more than one definition for a parameter is given in a configuration file, the last such definition in the file is the one that will take effect in the PHONE ADAPTER.

???A parameter specification with an empty parameter value forces the parameter back to its default value. To specify an empty string instead, use the empty string ?????? as the parameter value.

4.2.Provisioning Related Parameters

Provisioning is controlled by the following parameters (firmware upgrades are discussed later in this section).

???Provision_Enable

???Resync_On_Reset

???Resync_Random_Delay

???Resync_Periodic

???Resync_Error_Retry_Delay

???Forced_Resync_Delay

???Resync_From_SIP

???Resync_After_Upgrade_Attempt

???Resync_Trigger_1

???Resync_Trigger_2

???Resync_Fails_On_FNF

???Profile_Rule

???Profile_Rule_B

???Profile_Rule_C

???Profile_Rule_D

???Log_Resync_Request_Msg

???Log_Resync_Success_Msg

???Log_Resync_Failure_Msg

???GPP_A through GPP_P

???GPP_SA through GPP_SD

Provision Enable:

ParName: Provision_Enable

Default: Enable

The CFG profile must be requested by the PHONE ADAPTER, and cannot be pushed from a provisioning server (although a service provider can effectively push a profile by triggering the request operation remotely via a SIP NOTIFY). The functionality is controlled by the Provision_Enable parameter. The parameter enables the functionality encompassed by the remaining provisioning parameters.

In addition, Provision_Enable also gates the ability to issue an explicit resync command from the web interface (discussed earlier in the "Function URLs" section of this document).

Resync on Reset:

ParName: Resync_On_Reset

Default: Enable

Resync_On_Reset determines whether the PHONE ADAPTER will attempt to resync with the provisioning server on power-up and following explicit reboot requests.

Resync Random Delay:

ParName: Resync_Random_Delay

Default: 2

Resync_Random_Delay helps to scatter resync requests from multiple devices uniformly over a period of time, whose duration (in seconds) is indicated by this parameter. Hence, if a number of PHONE ADAPTER devices were to power-up at the same time, their resync requests would be distributed over time, lessening the impact on the provisioning servers.

Resync Periodic:

ParName: Resync_Periodic

Default: 3600

The PHONE ADAPTER attempts to resync with the provisioning server periodically, provided the Resync_Periodic parameter is configured with a non-zero value. The value (in seconds) indicates the interval between resync attempts. Normally, the PHONE ADAPTER will not start the resync while an

active call is in progress. The PHONE ADAPTER will wait up to Forced_Update_Delay seconds for both lines to become idle. If the adapter still is not idle, the adapter will perform a resync anyway.

Resync Error Retry Delay:

ParName: Resync_Error_Retry_Delay

Default: 3600

If a resync attempt fails, the PHONE ADAPTER will retry with a delay indicated by the Resync_Error_Retry_Delay parameter, specified in seconds. If the value is zero, the PHONE ADAPTER treats resync failures as though they were successful, and simply waits for the next periodic event to resync.

Resync From SIP:

ParName: Resync_From_SIP

Default: Enable

Resync_From_SIP gates the ability of a service provider to trigger a profile resync via a SIP NOTIFY message to the PHONE ADAPTER.

If the PHONE ADAPTER receives a SIP NOTIFY request with an Event header field value of "resync", "reboot", or "restart"; the PHONE ADAPTER will attempt to Digest authenticate the notifier using the authentication password used for registrations on that line if the Auth_Resync-Reboot parameter is set. If this parameter is not set or if the NOTIFY request is authenticated, the PHONE ADAPTER triggers a resync, cold-boot, or warm-boot respectively. The actual resync, reboot, or restart will not take place until the PHONE ADAPTER is idle (i.e. no calls are in progress).

Profile Rule:

ParName: Profile_Rule

Default: /spa$PSN.cfg

ParName: Profile_Rule_B through Profile_Rule_D

Default: Empty

The Profile_Rule parameter is a script that identifies the provisioning server to contact when performing a profile resync. The Profile_Rule_B, Profile_Rule_C, and Profile_Rule_D parameters are also scripts used to contact other provisioning URLs. Each profile rule is executed only if the previous profile rule was executed successfully(*).

These strings each supports one level of macro expansion, using a small set of variables. Following macro substitution, the rule is evaluated to obtain the URL of the CFG file to be requested from the provisioning server.

The URL can be partially specified, in which case default values are assumed for the unspecified terms. The filepath portion of the URL must always be specified.

The Profile_Rule supports additional syntax that allows the URL to include conditions, for example based on a function of the firmware release currently running in the PHONE ADAPTER. This mechanism can aid the service provider???s firmware upgrade sequence, by allowing them to define different configuration profiles for different stages of an upgrade sequence.

The conditional syntax consists of a sequence of condition-url pairs, separated by the ???|??? character. The condition component tests the current firmware version number against a specified value. If the last url in the sequence does not have an associated condition, it will be attempted unconditionally.

The sequence of conditions is evaluated until one is satisfied. The URL associated with that condition is then used to resync the PHONE ADAPTER. No additional URLs in the rule are considered.

(*) A profile rule which attempts to fetch a URL succeeds if the profile is received and parsed correctly. If the Resync_Fails_On_FNF parameter is set to No, a profile rule will also succeed if an attempted fetch for a URL returns a File Not Found error message. A profile rule with only assignments always succeeds.

Optional qualifiers can be specified in brackets, preceding each URL.

To ease testing and development, the script syntax also supports using ???#??? as a comment delimiter (until end-of-parameter). This allows a potentially long script to be temporarily ???commented out???.

The syntax for the rule is as follows (with standard conventions for URLs):

rule = term *( "|" term )

term = [condition] [assignments] [options] url

condition = "(" conditionseq ")" "?" conditionseq = condelem *( conjunction condelem ) condelem = numcond / vercond / strcond

numcond = number relop number vercond = [ version ] relop version

relop = "<" / "<=" / ">" / ">=" / "==" / "!="

/ "!" / "gt" / "ge" / "lt" / "le" / "eq" / "ne" version = major "." minor "." build [ "(" features ")" ] strcond = cond *( conjunction cond )

strcond = qstr eqop qstr conjunction = "and" qstr = DQUOT val DQUOT

eqop = "==" / "!=" / "!" / "eq" / "ne"

assignments = "(" *assignment ")" "!" assignment(*) = attribute "=" expr ";"

expr = DQUOT val DQUOT

options = "[" *option "]"

option = key-opt / alias-opt / post-opt key-opt = "--key" key-string

key-string = password / quoted-pass-phrase / hex-string alias-opt = "--alias" val

post-opt = "--post" val

url = [ method "://" [ server [":" port]]] "/" *(dir "/") file method = "tftp" / "http" / "https"

server(**) = ip4quad / fqdn

( * ) Attribute can contain the name of any configuration parameter

( ** ) If the server and scheme are unspecified, the TFTP server name provided by the LAN???s DHCP server is used instead. Also, an FQDN with multiple DNS entries is multiply resolved by the PHONE

ADAPTER.

The variables available for macro substitution (with example values) are as follows:

( * ) Note that the UPGCOND term is particularly useful in the Upgrade_Rule (discussed later in this document), but applies equally as a resync condition. It shows which term of the rule triggered the operation.

( ** ) See section 6.5 for the values of these macro variables.

( *** ) Upon successful firmware upgrade, the ERR variable carries the version of the newly installed load.

In addition, the contents of the general purpose parameters, GPP_A, through GPP_P, are available as macro variables A through P, respectively.

A secondary set of general purpose parameters is also available for macro substitution, GPP_SA, GPP_SB, GPP_SC, GPP_SD, using the respective expressions SA, SB, SC, and SD. These parameters are not accessible through the web interface, and can only be set via a configuration profile.

Strings identified above as "val" values are strings which can include variable substitution. The macro variables are invoked by prefixing the name with a ???$??? character (e.g. $MAC). The substitution works even within a quoted string, without requiring additional escapes. If the variable name is immediately followed by an alphanumeric character, enclose the variable name in parentheses (e.g.

"$(MAC)config.xml" ).

To include a dollar sign in the rule, escape it with another dollar sign. That is $$ maps to $.

Profile_Rule syntax examples (each line is a separate example):

/pap2.cfg pserv.myvoice.com:42000/sip/$MA/pap2.cfg

[--key 6e4f2a8733ba7c90aa13250bde4f6927]ur.well.com/Gj2fLx3Nqbg/a.cfg (<1.0)?/pre-rel.cfg | /curr.cfg

Profile Example Scenarios:

Enterprise LAN with DHCP Supplied TFTP Server Name:

The DHCP server automatically advertises a TFTP server name to service the local network. Each PHONE ADAPTER in the network is supplied a unique CFG file based on its MAC address. The TFTP server would also contain a generic Phone Adapter2000.cfg in its tftp-root directory that contains the Profile_Rule indicated below. It would additionally carry individualized CFG files, one per device, within a tree below the tftp-root node. Each of these files would then individualize the devices.

/profiles/$MA/pap2.cfg

When first powered-on, unprovisioned devices would download the /pap2.cfg file from the TFTP server indicated by DHCP, (following their manufacturing default setting for the Profile_Rule parameter). The downloaded file would then direct the PHONE ADAPTER to resync to the server and fetch the individualized CFG file, as per the rule above, which completes the provisioning sequence.

VoIP Service Provider:

Conceptually, a service provider solution would follow the steps as in the above example. In addition, it would then proceed to enable stronger encryption by implementing one more provisioning step, with one more level of redirection, involving a random CFG file path and encryption key. Hence, each of the ???first-stage??? CFG files above would point to a ???second-stage??? CFG file, with entries such as the following:

Profile_Rule ???[--key $B] ps.global.com/profiles/active/$A/pap2.cfg???; GPP_A ???Dz3P2q9sVgx7LmWbvu???;

GPP_B ???83c1e792bc6a824c0d18f429bea52d8483f2a24b32d75bc965d05e38c163d5ef???;

In practice, the first provisioning stage (which individualizes each PHONE ADAPTER into fetching a unique CFG file) could be preconfigured during manufacturing.

For added security, the second stage, which introduces strong encryption, may be performed in- house, prior to shipping an PHONE ADAPTER to each end-user.

Release 2.0 supports SSL-based key exchanges, alleviating the need for this in-house step, while preserving strong security for the provisioning process.

A provisioning flow chart, from the point of view of the PHONE ADAPTER endpoint is presented in a later section.

Log Resync Request Message:

ParName: Log_Resync_Request_Msg

Default: $PN $MAC ???- Requesting resync $SCHEME://$SERVIP:$PORT$PATH

The Log_Resync_Request_Msg is a script that defines the message sent to the configured Syslog server whenever the PHONE ADAPTER attempts to resync with the provisioning server. The string supports one level of macro substitution, with the same variables as for the Profile_Rule above. An empty string does not generate a syslog message.

Log Resync Success Message:

ParName: Log_Resync_Success_Msg

Default: $PN $MAC ???- Successful resync $SCHEME://$SERVIP:$PORT$PATH

The Log_Resync_Success_Msg is a script that defines the message sent to the configured Syslog server whenever the PHONE ADAPTER successfully completes a resync with the provisioning server. The string supports one level of macro substitution, with the same variables as for the Profile_Rule above. An empty string does not generate a syslog message.

Log Resync Failure Message:

ParName: Log_Resync_Failure_Msg

Default: $PN $MAC ???- Resync failed: $ERR

The Log_Resync_Failure_Msg is a script that defines the message sent to the configured Syslog server whenever the PHONE ADAPTER fails to complete a resync with the provisioning server. The

string supports one level of macro substitution, with the same variables as for the Profile_Rule above. An empty string does not generate a syslog message.

General Purpose Parameters:

ParName: GPP_A through GPP_P

Default: empty

GPP_A through GPP_P are the 16 General Purpose Parameters, usable by both the provisioning and the upgrade logic. Each general purpose parameter can be configured to hold any string value. Such a value can then be incorporated in other scripted parameters.

General Purpose Secure Parameters:

ParName: GPP_SA through GPP_SD

Default: empty

GPP_SA through GPP_SD are the 4 Secure General Purpose Parameters, usable by both the provisioning and the upgrade logic. Each secure parameter can be configured to hold any string value. Such a value can then be incorporated in other scripted parameters. The secure parameters are not accessible through the PHONE ADAPTER web interface, and can only be set via a configuration profile. Also, the parameters cannot be incorporated as part of a syslog message.

Note: In a customized PHONE ADAPTER, the profile rule would point to a service provider???s server.

4.2.1.Firmware Upgrade

The PHONE ADAPTER is firmware upgradeable via TFTP and HTTP. Firmware loads are released as single binary files, which contain all the modules pertaining to any one release version. By convention, the firmware loads are named with the extension ???.bin??? (e.g. pap2.bin)

The PHONE ADAPTER can be configured to upgrade to a specific version, possibly staging through intermediate releases, if necessary. This process can be automated for a pool of devices through configuration profile parameters.

Alternatively, an individual PHONE ADAPTER can be directed to perform an upgrade to a specific firmware load via its built-in web server interface (this mechanism is discussed in section 3.4.1 of this document).

Firmware upgrades are attempted only when the PHONE ADAPTER is idle, since they trigger a software reboot.

Firmware upgrades are controlled by the following parameters (which operate in a manner similar to but independent of the provisioning parameters).

???Upgrade_Enable

???Upgrade_Error_Retry_Delay

???Upgrade_Rule

???Downgrade_Rev_Limit

???Log_Upgrade_Request_Msg

???Log_Upgrade_Success_Msg

???Log_Upgrade_Failure_Msg

Upgrade Enable:

ParName: Upgrade_Enable

Default: Enable

The firmware file must be requested by the PHONE ADAPTER and cannot be pushed from an upgrade server (although a service provider can effectively push a new firmware load by triggering the request operation remotely via the CFG file). The functionality is controlled by the Upgrade_Enable parameter. The parameter enables the functionality encompassed by the remaining upgrade parameters.

In addition, Upgrade_Enable also gates the ability to issue an explicit upgrade command from the web interface (discussed in section 3.4.1 of this document).

Upgrade Error Retry Delay:

ParName: Upgrade_Error_Retry_Delay

Default: 3600

If an upgrade attempt fails, the PHONE ADAPTER will retry with a delay indicated by the Upgrade_Error_Retry_Delay parameter, specified in seconds. If the value is zero, the PHONE ADAPTER treats upgrade failures as though they were successful, and will not retry to upgrade unless some event triggers a reboot.

Upgrade Rule:

ParName: Upgrade_Rule and Upgrade_Rule_B

Default: Empty

The Upgrade_Rule and Upgrade_Rule_B parameters are scripts that identifies the upgrade server to contact during a firmware upgrade. Upgrade_Rule_B is only executed if Upgrade_Rule executed successfully. These strings support one level of macro expansion, using a small set of variables. Following macro substitution, the rule is evaluated to obtain a URL of the firmware file to request from an upgrade server.

The URL can be partially specified, in which case default values are assumed for the unspecified terms. The filepath portion of the URL must be specified.

The Upgrade_Rule supports additional syntax that allows the URL to be a function of the firmware release currently running in the PHONE ADAPTER. This mechanism can aid service providers sequence through a firmware upgrade, by allowing them to automatically stage the upgrade sequence, if so required by the firmware. Also, the Downgrade_Rev_Limit parameter can contain a version string below which the PHONE ADAPTER will not downgrade.

The conditional syntax consists of a sequence of condition-url pairs, separated by the ???|??? character. The condition component tests the current firmware version number against a specified value.

The sequence of conditions is evaluated until one is satisfied. The URL associated with that condition is then used to upgrade the PHONE ADAPTER. No additional URLs in the rule are considered.

The upgrade will fail if the new firmware load does not satisfy the upgrade rule condition that suggested the URL. This alleviates the possibility of infinite upgrade loops, in case the device has been misconfigured.

The rule syntax is the same as for the Profile_Rule described in a previous section, except that there are no supported optional qualifiers for upgrades at this time. (That is, the bracketed options preceding the URL are not supported in the Upgrade_Rule).

Upgrade Rule Syntax Examples (each line is a separate example):

(! 1.0.2)? /Phone Adapter2000/1-00-02/Phone Adapter.bin (<1.0)? tftp://pserv.myvoice.com:42001/upg/Phone Adapter2000/1.0.2/Phone Adapter.bin

(<0.99.52)?/Phone Adapter09952.bin | (<1.0.2)?/Phone Adapter10002.bin

Log Upgrade Request Message:

ParName: Log_Upgrade_Request_Msg

Default: $PN $MAC ???- Requesting upgrade $SCHEME://$SERVIP:$PORT$PATH

The Log_Upgrade_Request_Msg is a script that defines the message sent to the configured Syslog server whenever the PHONE ADAPTER attempts an upgrade from the upgrade server. The string supports one level of macro substitution, with the same variables as for the Upgrade_Rule above. An empty string does not generate a syslog message.

Log Upgrade Success Message:

ParName: Log_Upgrade_Success_Msg

Default: $PN $MAC ???- Successful upgrade $SCHEME://$SERVIP:$PORT$PATH -- $ERR

The Log_Upgrade_Success_Msg is a script that defines the message sent to the configured Syslog server whenever the PHONE ADAPTER successfully completes an upgrade from the upgrade server. The string supports one level of macro substitution, with the same variables as for the Upgrade_Rule above. An empty string does not generate a syslog message.

Log Upgrade Failure Message:

ParName: Log_Upgrade_Failure_Msg

Default: $PN $MAC ???- Upgrade failed: $ERR

The Log_Upgrade_Failure_Msg is a script that defines the message sent to the configured Syslog server whenever the PHONE ADAPTER fails to complete an upgrade from the upgrade server. The

string supports one level of macro substitution, with the same variables as for the Upgrade_Rule above. An empty string does not generate a syslog message.

Note: In a customized PHONE ADAPTER, the upgrade rule would point to a service provider???s server.

4.2.2.Provisioning Server Redundancy

The Provisioning Server (PS) may be specified as an IP address or a FQDN. PS redundancy is not available in the former case. For the latter, PHONE ADAPTER shall attempt to resolve the IP address of the PS via DNS SRV, then DNS A Record. In either case, the DNS server may return a number of IP addresses with priority (priority can be indicated in the case of SRV record; for A records, all IP addresses have the same priority). The PHONE ADAPTER then contacts the IP address with the highest priority. If that fails, the PHONE ADAPTER shall contact the next available IP address. The PHONE ADAPTER shall continue the process until one of the PS responds. If all PS fail to respond, the PHONE ADAPTER shall log an error to the Syslog server.

4.2.3.Configuring the Web Server and IVR

System Configuration

4.3.Basic Networking Configuration

Configuration parameters in this list are used for setting up basic network connectivity. In general, many of these parameters are set automatically (for example, using DHCP) or are configured by the end user of the device.

Note that the RT31P2 ignores the following parameters: DHCP, Static_IP, NetMask, and Gateway. Other than the DNS_Server_Order and DNS_Query_Mode, the rest these parameters also can be configured from the RT31P2 User GUI.

Network Configuration

-Parallel DNS query mode: PHONE ADAPTER will send the same request to all the DNS servers at the same time when doing a DNS lookup, the first incoming reply will be accepted by PHONE

ADAPTER.

-To log SIP messages, Debug Level must be set to at least 2.

-If both Debug Server and Syslog Server are specified, _Syslog messages are also logged to the Debug Server.

4.4.Basic Account Configuration

Basic SIP Account Configuration is typically straightforward, involving only a handful of key parameters. All of these parameters are configured on a per-line basis.

The Line_Enable parameters control whether a line is enabled or not. The Proxy setting is the address of the SIP Registrar (usually collocated with a SIP Proxy) for the account. The User_ID is the username or phone number of the SIP account. The Proxy and User_ID together form the SIP URI. For example: User_ID = alice ; Proxy = sip.provider.net:5060 ; the SIP URI used for registration would be sip:alice@sip.provider.net:5060.

The Password is the password used for Digest authentication. With some providers, the username used for authentication is different from the User_ID used in the SIP From header. For example, Alice Smith could have a User_ID of 1234, and a Digest username of alice.smith. In this situation, set the Auth_ID to alice.smith and set Use_Auth_ID to yes. The Display_Name is the string that will appear in quotes in the From header. It can be an arbitrary string such as a name (for example "Alice Smith") or a local phone number (for example "5551212").

parameter is useful only if the primary and backup proxy server list is provided to the PHONE ADAPTER via DNS SRV record lookup on the server name. (Using multiple DNS A record per server name does not allow the notion of priority and so all hosts will be considered at the same priority and the PHONE ADAPTER will not attempt to fall back after a fail over)

Subscriber Information

4.5.Configuration for NAT Traversal

In general, there are 3 general approaches to enable NAT traversal available on the PHONE ADAPTER: STUN (Simple Traversal of UDP through NAT), Using an outbound rewriting "proxy", and manual configuration. If the PHONE ADAPTER is not "behind" a NAT, the default settings should be used.

Note: The Linksys model RT31P2 includes NAT (Network Address Translator) functionality. As long as the IP address of the "WAN Port" is a public IP address, the RT31P2 can be configured with all NAT Traversal features (NAT Traversal off), since the PHONE ADAPTER portion shares the same IP address as the WAN Port. If the address obtained on the WAN Port is already a private address, then the RT31P2 still needs to be configured for NAT traversal.

The Outbound Proxy approach works through more than 99% of NATs, but it requires the service provider to relay RTP media packets for every call. To use this approach, set the following parameters: Outbound_Proxy, Use_Outbound_Proxy, NAT_Keep_Alive_Dest, NAT_Keep_Alive_Msg, NAT_Keep_Alive_Intvl, and NAT_Keep_Alive_Enable. If the NAT_Keep_Alive_Msg parameter is set to blank, the PHONE ADAPTER will send a Carriage- Return/Line-Feed as the Keep-Alive Message.

The STUN approach works through more than 95% of home NATs when there is only a single PHONE ADAPTER in use behind the same NAT. The STUN approach requires a STUN server setup by the provider, but uses very few resources. The actual media flows directly between the PHONE ADAPTER and its peer. To configure STUN set the following parameters: STUN_Enable, STUN_Test_Enable, STUN_Server, NAT_Mapping_Enable, Substitute_VIA_Addr, NAT_Keep_Alive_Dest, NAT_Keep_Alive_Msg, NAT_Keep_Alive_Intvl, and NAT_Keep_Alive_Enable.

The Manual Configuration approach requires coordinated administration of the NAT and the PHONE ADAPTER. It is not practical for general retail use, but can be used behind symmetric NATs occasionally found in larger businesses, for troubleshooting, and in circumstances where other mechanisms have been exhausted. The configure the PHONE ADAPTER for manual NAT traversal, set the EXT_IP parameter to the public/translated/outside/external IP address, the EXT_SIP_Port parameters (per line) to the translated port number for this line and PHONE ADAPTER, and the EXT_RTP_Port_Min parameter to the first translated port number reserved for this PHONE

ADAPTER. Also, set the Substitute_VIA_Addr and NAT_Mapping_Enable parameters. Follow the instructions of the NAT software to configure static NAT mappings between the external address and ports (EXT_SIP_Port, EXT_RTP_Port_Min) and the internal address and ports (SIP_Port, RTP_Port_Min). Set the RTP_Port_Max parameter to a smaller number (for example, RTP_Port_Min plus 8). There must be mappings for the every port number between RTP_Port_Min and RTP_Port_Max when using the Manual Configuration approach. Reserving 8 ports is safe, since it allows both lines to have two simultaneous calls with a port for RTP and RTCP.

4.6.Media and SDP (Session Description Protocol) Configuration

4.6.1.DTMF and Hookflash

By default, the PHONE ADAPTER sends DTMF to the far end using RFC2833-style "AVT tones". This method of conveying DTMF tones sends a representation of a tone (someone pressed the "7" key) to the RTP peer as a separate RTP audio codec, but with timing information synchronized with the speech audio codec. This method of DTMF conveyance works in most topologies, however in some environments, the service provider may have an application server which is not in the media path, or may be responsible for protocol conversion to a protocol or device which does not support AVT tones.

Likewise, hookflash events by default are handled internally by the PHONE ADAPTER and used to trigger supplementary services which are implemented on the PHONE ADAPTER. If a provider needs to convey a hookflash event to an application server to initiate a network-oriented feature, the PHONE ADAPTER is configurable to send these events.

The administrator can select a method for conveying DTMF and hookflash on a per-line basis. In addition, the administrator can also configure the MIME type (Content-Type header) used when conveying DTMF or hookflash in SIP INFO messages. The MIME type is set once for both lines.

4.6.2.Codec and Audio Settings

The following parameters are used to enable or disable access to specific codecs, echo cancellation, and FAX support.

Notes:

1. A codec resource is considered as allocated if it has been included in the SDP codec list of an active call, even though it eventually may not be the one chosen for the connection. So, if the G.729a codec is enabled and included in the codec list, that resource is tied up until the end of the call whether or not the call actually uses G.729a. If the G729a resource is already allocated and since only one G.729a resource is allowed per PHONE ADAPTER, no other low-bit-rate codec may be allocated for subsequent calls; the only choices are G711a and G711u. On the other hand, two G.723.1/G.726 resources are available per PHONE ADAPTER. Therefore it is important to disable the use of G.729a in order to guarantee the support of 2 simultaneous G.723/G.726 codec.

4.6.3.Dynamic Payload Types and SDP Codec Names

Note: You should only need to change the payload type mappings if you are interworking with a non- standard implementation.

Notes:

1.Valid range is 96 ??? 127

2.The configured dynamic payloads are used for outbound calls only where the PHONE ADAPTER presents the SDP offer. For inbound calls with a SDP offer, PHONE ADAPTER will follow the caller???s dynamic payload type assignments

Notes:

1.PHONE ADAPTER uses the configured codec names in its outbound SDP

2.PHONE ADAPTER ignores the codec names in incoming SDP for standard payload types (0 ??? 95).

3.For dynamic payload types, PHONE ADAPTER identifies the codec by the configured codec names. Comparison is case-insensitive.

4.6.4.Secure Media Implementation:

A secure call is established in two stages. The first stage is no different form a normal call setup. Right after the call is established in the normal way with both sides ready to stream RTP packets, the second stage starts where the two parties exchange information to determine if the current call can switch over to the secure mode. The information is transported by base64 encoding and embedding in the message body of SIP INFO requests and responses with a proprietary format. If the second stage is successful, the PHONE ADAPTER will play a special ???Secure Call Indication Tone??? for short while to indicate to both parties that the call is secured and that RTP traffic in both directions are encrypted. If the user has a CIDCW capable phone and CIDCW service is enabled, then the CID will be updated with the information extracted from the Mini-Certificate received from the other end. The Name field of this CID will be prepended with a ???$??? symbol.

The second stage in setting up a secure all can be further divided into two steps. Step 1 the caller sends a ???Caller Hello??? message (base64 encoded and embedded in the message body of a SIP INFO request) to the called party with the following information:

-Message ID (4B)

-Version and flags (4B)

-SSRC of the encrypted stream (4B)

-Mini-Certificate (252B)

Upon receiving the Caller Hello, the callee responds with a Callee Hello message (base64 encoded and embedded in the message body of a SIP response to the caller???s INFO request) with similar information, if the Caller Hello message is valid. The caller then examines the Callee Hello and proceeds to step 2 if the message is valid. In step 2 the caller sends the ???Caller Final??? message to the callee with the following information:

-Message ID (4B)

-Encrypted Master Key (16B or 128b)

-Encrypted Master Salt (16B or 128b)

With the master key and master salt encrypted with the public key from the callee???s mini-certificate. The master key and master salt are used by both ends for the derivation of session keys for encrypting subsequent RTP packets. The callee then responds with a Callee Final message (which is an empty message).

A Mini-Certificate contains the following information:

-User Name (32B)

-User ID or Phone Number (16B)

-Expiration Date (12B)

-Public Key (512b or 64B)

-Signature (1024b or 512B)

The signing agent is implicit and must be the same for all PHONE ADAPTER???s that intended to communicate securely with each other. The public key of the signing agent is pre-configured into the PHONE ADAPTER???s by the administrator and will be used by the PHONE ADAPTER to verify the Mini-Certificate of its peer. The Mini-Certificate is valid if a) it has not expired, and b) its signature checks out.

User Interface

The PHONE ADAPTER can be set up such that all outbound calls are secure calls by default, or not secure by default. If outbound calls are secure by default, user has the option to disable security when making the next call by dialing *19 before dialing the target number. If outbound calls are not secure by default, user has the option to make the next outbound call secure by dialing *18 before dialing the target number. On the other hand, user cannot force inbound calls to be secure or not secure; it is at the mercy of the caller whether he/she enables security or not for that call.

If the call successfully switches to the secure mode, both parties will hear the ???Secure Call Indication Tone??? for a short while and the CID will be updated with the Name and Number extracted from the Mini-Certificate sent by the other party, provided CIDCW service and equipment are available: the CID Name in this case will have a ???$??? sign inserted at the beginning. The callee should check the name and number again to ensure the identity of the caller. The caller should also double check the name and number of the callee to make sure this is what he/she expects. Note that the PHONE ADAPTER will not switch to secure mode if the callee???s CID Number from its Mini-Certificate does not agree with the user-id used in making the outbound call: the caller???s PHONE ADAPTER will perform this check after receiving the callee???s Mini-Certificate.

Service Provider Requirements

The PHONE ADAPTER Mini-Certificate (MC) has a 512-bit public key used for establishing secure calls. The administrator must provision each subscriber of the secure call service with an MC and the corresponding 512-bit private key. The MC is signed with a 1024-bit private key of the service provider who acts as the CA of the MC. The 1024-bit public key of the CA signing the MC must also be provisioned to each subscriber. The CA public key is used by the PHONE ADAPTER to verify the MC received from the other end. If the MC is invalid, the PHONE ADAPTER will not switch to secure mode. The MC and the 1024-bit CA public key are concatenated and base64 encoded into the single parameter <Mini Certificate>. The 512-bit private key is base64 encoded into the <SRTP Private Key> parameter, which should be hidden from the PHONE ADAPTER???s web interface like a password.

Since the secure call establishment relies on exchange of information embedded in message bodies of SIP INFO requests/responses, the service provider must maker sure that their infrastructure will allow the SIP INFO messages to pass through with the message body unmodified.

Linksys provides a configuration tool called gen_mc for the generation of MC and private keys with the following syntax:

gen_mc <ca-key> <user-name> <user-id> <expire-date>

Where:

- ca-key is a text file with the base64 encoded 1024-bit CA private/public key pairs for signing/verifying the MC, such as 9CC9aYU1X5lJuU+EBZmi3AmcqE9U1LxEOGwopaGyGOh3VyhKgi6JaVtQZt87PiJINKW8XQj3B9Qq

e3VgYxWCQNa335YCnDsenASeBxuMIEaBCYd1l1fVEodJZOGwXwfAde0MhcbD0kj7LVlzcsTyk2TZ

YTccnZ75TuTjj13qvYs=

5nEtOrkCa84/mEwl3D9tSvVLyliwQ+u/Hd+C8u5SNk7hsAUZaA9TqH8Iw0J/IqSrsf6scsmundY5j7Z5m

K5J9uBxSB8t8vamFGD0pF4zhNtbrVvIXKI9kmp4vph1C5jzO9gDfs3MF+zjyYrVUFdM+pXtDBxmM+f

GUfrpAuXb7/k=

-user-name is the name of the subscriber, such as ???Joe Smith???. Maximum length is 32 characters

-user-id is the user-id of the subscriber and must be exactly the same as the user-id used in the INVITE when making the call, such as ???14083331234???. Maximum length is 16 characters.

-expire-date is the expiration date of the MC, such as ???00:00:00 1/1/34??? (34=2034). Internally the date is encoded as a fixed 12B string: 000000010134

The tool generates the <Mini Certificate> and <SRTP Private Key> parameters that can be provisioned to the PHONE ADAPTER.

For Example:

gen_mc ca_key ???Joe Smith??? 14085551234 ???00:00:00 1/1/34???

Produces:

<Mini Certificate> Sm9lIFNtaXRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxNDA4NTU1MTIzNAAAAAAAMDAwM DAwMDEwMTM00OvJakde2vVMF3Rw4pPXL7lAgIagMpbLSAG2+++YlSqt198Cp9rP/xMGFfoPmDK Gx6JFtkQ5sxLcuwgxpxpxkeXvpZKlYlpsb28L4Rhg5qZA+Gqj1hDFCmG6dffZ9SJhxES767G0JIS+N8l QBLr0AuemotknSjjjOy8c+1lTCd2t44Mh0vmwNg4fDck2YdmTMBR516xJt4/uQ/LJQlni2kwqlm7scDvll5 k232EvvvVtCK0AYa4eWd6fQOpiESCO9CC9aYU1X5lJuU+EBZmi3AmcqE9U1LxEOGwopaGyGOh3 VyhKgi6JaVtQZt87PiJINKW8XQj3B9Qqe3VgYxWCQNa335YCnDsenASeBxuMIEaBCYd1l1fVEodJZ OGwXwfAde0MhcbD0kj7LVlzcsTyk2TZYTccnZ75TuTjj13qvYs=

<SRTP Private Key> b/DWc96X4YQraCnYzl5en1CIUhVQQqrvcr6Qd/8R52IEvJjOw/e+Klm4XiiFEPaKmU8UbooxKG36SEd Kusp0AQ==

4.6.5.Outbound Call Codec Selection Codes:

The User can use additional feature codes on the PHONE ADAPTER to force or prefer specific codecs. These codes are automatically appended to the dial-plan. There is no need to include them explicitly in dial-plan

4.7.Supplementary Services

Each line of the PHONE ADAPTER has settings which enable or disable each of the supplementary services implemented directly in the PHONE ADAPTER. The expected behavior when a specific service is enabled is described in Section 5.

The PHONE ADAPTER provides native support of a large set of enhanced or supplementary services. All of these services are optional. The parameters listed in the following table are used to enable or disable a specific supplementary service. A supplementary service should be disabled if a) the user has not subscribed for it, or b) the Service Provider intends to support similar service using other means than relying on the PHONE ADAPTER.

1.Three Way Calling is required for Three Way Conference and Attended Transfer.

2.Three Way Conference is required for Attended Transfer.

3.MWI is available only if a Voice Mail Service is set-up in the deployment.

4.7.1.Supplementary Services activated internally

Once Supplementary Services on the PHONE ADAPTER are Enabled, the services can be activated or deactivated dynamically by dialing specific (configurable) dial strings. For example, the default dial string to activate or deactivate most features is a "*" character followed by a two digit code. The following table lists the parameters which set these dial strings used internally by the PHONE ADAPTER. If a provider wishes to offer a service which is activated or deactivated in an application server in their network instead of internally in the PHONE ADAPTER, the dial pattern for that service should NOT be present in these configuration parameters.

In addition to the dynamic activation and deactivation codes, the following parameters control the default activation or deactivation of internal parameters.

4.7.2.Call Forwarding Implemented internally

The PHONE ADAPTER supports local call forwarding services (Call Forward All, Call Forward Busy, Call Forward No Answer, and Selective Call Forwarding for up to 8 numbers).

4.7.3.Supplementary Services implemented in the service provider network

For services which are activated or deactivated in the service provider network (for example in an application server), instead of internally in the PHONE ADAPTER, The Feature_Dial_Services_Codes and Referral_Services_Codes parameters contain a list of dial strings that correspond to feature codes in the network after which the PHONE ADAPTER needs to collect a target number. These codes are automatically appended to the dial plan, so there is no need to explicitly include them in the dial plan. For example, if call forwarding is implemented in the network, the code to activate call forwarding and collect the target number should be included in the Feature_Dial_Services_Codes parameter, but the code to deactivate call forwarding should not (since it does not require collection of a target phone number).

Feature Dial Services Codes

One or more *code can be configured into this parameter, such as *72, or *72|*74|*67|*82, etc. Max total length is 79 chars. This parameter applies when the user has a dial tone (1st or 2nd dial tone). Enter *code (and the following target number according to current dial plan) entered at the dial tone triggers the PHONE ADAPTER to call the target number prepended by the *code. For example, after user dials *72, the PHONE ADAPTER plays a prompt tone awaiting the user to enter a valid target number. When a complete number is entered, the PHONE ADAPTER sends a INVITE to *72<target_number> as in a normal call. This feature allows the proxy to process features like call forward (*72) or BLock Caller ID (*67).

Notes:

-The *codes should not conflict with any of the other vertical service codes internally processed by the PHONE ADAPTER. You can empty the corresponding *code that you do not want to PHONE ADAPTER to process.

-You can add a parameter to each *code in "Features Dial Services Codes" to indicate what tone to play after the *code is entered, such as *72`c`|*67`p`. Below are a list of allowed tone parameters (note the use of back quotes surrounding the parmeter w/o spaces)

`c` = <Cfwd Dial Tone> `d` = <Dial Tone>

`m` = <MWI Dial Tone> `o` = <Outside Dial Tone> `p` = <Prompt Dial Tone> `s` = <Second Dial Tone>

`x` = No tones are place, x is any digit not used above

If no tone parameter is specified, the PHONE ADAPTER plays Prompt tone by default.

-If the *code is not to be followed by a phone number, such as *73 to cancel call forwarding, do not include it in this parameter. In that case, simply add that *code in the dial plan and the PHONE ADAPTER will send INVITE *73@..... as usual when user dials *73.

Referral Services Codes

One or more *code can be configured into this parameter, such as *98, or *97|*98|*123, etc. Max total length is 79 chars. This parameter applies when the user places the current call on hold (by Hook Flash) and is listening to 2nd dial tone. Each *code (and the following valid target number according to current dial plan) entered on the 2nd dial-tone triggers the PHONE ADAPTER to perform a blind transfer to a target number that is prepended by the service *code. For example, after the user dials *98, the PHONE ADAPTER plays a special dial tone called the "Prompt Tone" while waiting for the user the enter a target number (which is checked according to dial plan as in normal dialing). When a complete number is entered, the PHONE ADAPTER sends a blind REFER to the holding party with the Refer-To target equals to *98<target_number>. This feature allows the PHONE ADAPTER to "hand off" a call to an application server to perform further processing, such as call park.

Notes:

- The *codes should not conflict with any of the other vertical service codes internally processed by the PHONE ADAPTER. You can empty the corresponding *code that you do not want to PHONE ADAPTER to process.

4.8.Dial Plan Configuration

The PHONE ADAPTER allows each line to be configured with a distinct dial plan. The dial plan specifies how to interpret digit sequences dialed by the user, and how to convert those sequences into an outbound dial string.

The PHONE ADAPTER syntax for the dial plan closely resembles the corresponding syntax specified by MGCP and MEGACO. Some extensions are added that are useful in an end-point.

The dial plan functionality is regulated by the following configurable parameters:

???Interdigit_Long_Timer

???Interdigit_Short_Timer

???Dial_Plan ([1] and [2])

???Enable_IP_Dialing

Other timers are configurable via parameters, but do not directly pertain to the dial plan itself. They are discussed elsewhere in this document.

Interdigit Long Timer:

ParName: Interdigit_Long_Timer

Default: 10

The Interdigit_Long_Timer specifies the default maximum time (in seconds) allowed between dialed digits, when no candidate digit sequence is as yet complete (see discussion of Dial_Plan parameter for an explanation of candidate digit sequences).

Interdigit Short Timer:

ParName: Interdigit_Short_Timer

Default: 3

The Interdigit_Short_Timer specifies the default maximum time (in seconds) allowed between dialed digits, when at least one candidate digit sequence is complete as dialed (see discussion of Dial_Plan parameter for an explanation of candidate digit sequences).

Dial Plan[1] and Dial Plan[2]:

The Dial_Plan parameters contain the actual dial plan scripts for each of lines 1 and 2.

Dial Plan Digit Sequences:

The plans contain a series of digit sequences, separated by the ???|??? character. The collection of sequences is enclosed in parentheses, ???(??? and ???)???.

When a user dials a series of digits, each sequence in the dial plan is tested as a possible match. The matching sequences form a set of candidate digit sequences. As more digits are entered by the user, the set of candidates diminishes until only one or none are valid.

Any one of a set of terminating events triggers the PHONE ADAPTER to either accept the user-dialed sequence, and transmit it to initiate a call, or else reject it as invalid. The terminating events are:

???No candidate sequences remain: the number is rejected.

???Only one candidate sequence remains, and it has been matched completely: the number is accepted and transmitted after any transformations indicated by the dial plan, unless the sequence is barred by the dial plan (barring is discussed later), in which case the number is rejected.

???A timeout occurs: the digit sequence is accepted and transmitted as dialed if incomplete, or transformed as per the dial plan if complete.

???An explicit ???send??? (user presses the ???#??? key): the digit sequence is accepted and transmitted as dialed if incomplete, or transformed as per the dial plan if complete.

The timeout duration depends on the matching state. If no candidate sequences are as yet complete (as dialed), the Interdigit_Long_Timeout applies. If a candidate sequence is complete, but there exists one or more incomplete candidates, then the Interdigit_Short_Timeout applies.

White space is ignored, and may be used for readability.

Digit Sequence Syntax:

Each digit sequence within the dial plan consists of a series of elements, which are individually matched to the keys pressed by the user. Elements can be one of the following:

???Individual keys ???0???, ???1???, ???2??? . . . ???9???, ???*???, ???#???.

???The letter ???x??? matches any one numeric digit (???0??? .. ???9???)

???A subset of keys within brackets (allows ranges): ???[??? set ???]??? (e.g. [389] means ???3??? or ???8??? or ???9???)

oNumeric ranges are allowed within the brackets: digit ???-??? digit (e.g. [2-9] means ???2??? or ???3??? or ??? or ???9???)

oRanges can be combined with other keys: e.g. [235-8*] means ???2??? or ???3??? or ???5??? or ???6??? or ???7??? or ???8??? or ???*???.

Element repetition:

Any element can be repeated zero or more times by appending a period (???.??? character) to the element. Hence, ???01.??? matches ???0???, ???01???, ???011???, ???0111???, ??? etc.

Subsequence Substitution:

A subsequence of keys (possibly empty) can be automatically replaced with a different subsequence using an angle bracket notation: ???<??? dialed-subsequence ???:??? transmitted-subsequence ???>???. So, for example, ???<8:1650>xxxxxxx??? would match ???85551212??? and transmit ???16505551212???.

Intersequence Tones:

An ???outside line??? dial tone can be generated within a sequence by appending a ???,??? character between digits. Thus, the sequence ???9, 1xxxxxxxxxx??? sounds an ???outside line??? dial tone after the user presses ???9???, until the ???1??? is pressed.

Number Barring:

A sequence can be barred (rejected) by placing a ???!??? character at the end of the sequence. Thus, ???1900xxxxxxx!??? automatically rejects all 900 area code numbers from being dialed.

Interdigit Timer Master Override:

The long and short interdigit timers can be changed in the dial plan (affecting a specific line) by preceding the entire plan with the following syntax:

???Long interdigit timer: ???L??? ???:??? delay-value ???,???

???Short interdigit timer: ???S??? ???:??? delay-value ???,???

Thus, ???L=8,( . . . )??? would set the interdigit long timeout to 8 seconds for the line associated with this dial plan. And, ???L:8,S:4,( . . . )??? would override both the long and the short timeout values.

Local Timer Overrides:

The long and short timeout values can be changed for a particular sequence starting at a particular point in the sequence. The syntax for long timer override is: ???L??? delay-value ??? ???. Note the terminating space character. The specified delay-value is measured in seconds. Similarly, to change the short timer override, use: ???S??? delay-value <space>.

These overrides are especially useful to terminate dialing in countries with predictable but variable length numbering plans, or to provide an exception when a rule with fewer digits is known to override a rule waiting for more digits. For example, assuming a generic international calling sequence of 011xxxxxxxxx. in North America, the PHONE ADAPTER can be configured to complete dialing to France after the country code and exactly 10 digits using 01133xxxxxxxxxxS:0 as a dial plan digit sequence. When this sequence matches, it overrides the short interdigit timer, causing an immediate call. If the S:0 had been absent, the PHONE ADAPTER would wait for the short interdigit timer to expire before placing the call.

Pause:

A sequence may require an explicit pause of some duration before continuing to dial digits, in order for the sequence to match. The syntax for this is similar to the timer override syntax: ???P??? delay-value <space>. The delay-value is measured in seconds.

This syntax allows for the implementation of Hot-Line and Warm-Line services. To achieve this, one sequence in the plan must start with a pause, with a 0 delay for a Hot Line, and a non-zero delay for a Warm Line.

Implicit sequences:

The PHONE ADAPTER implicitly appends the vertical code sequences entered in the Regional parameter settings to the end of the dial plan for both line 1 and line 2. Likewise, if Enable_IP_Dialing is enabled, then ip dialing is also accepted on the associated line.

Maximum Length

Each dial plan cannot exceed 2047 bytes, after all configured vertical codes have been added to the Dial_Plan parameter.

Examples:

The following dial plan accepts only US-style 1 + area-code + local-number, with no restrictions on the area code and number.

( 1 xxx xxxxxxx )

The following also allows 7-digit US-style dialing, and automatically inserts a 1 + 212 (local area code) in the transmitted number.

( 1 xxx xxxxxxx | <:1212> xxxxxxx )

For an office environment, the following plan requires a user to dial 8 as a prefix for local calls and 9 as a prefix for long distance. In either case, an ???outside line??? tone is played after the initial 8 or 9, and neither prefix is transmitted when initiating the call.

( <9,:> 1 xxx xxxxxxx | <8,:1212> xxxxxxx )

The following allows only placing international calls (011 call), with an arbitrary number of digits past a required 5 digit minimum, and also allows calling an international call operator (00). In addition, it lengthens the default short interdigit timeout to 4 seconds.

S:4, ( 00 | 011 xxxxx x. )

The following allows only US-style 1 + area-code + local-number, but disallows area codes and local numbers starting with 0 or 1. It also allows 411, 911, and operator calls (0).

( 0 | [49]11 | 1 [2-9]xx [2-9]xxxxxx )

The following allows US-style long distance, but blocks 9xx area codes.

( 1 [2-8]xx [2-9]xxxxxx )

The following allows arbitrary long distance dialing, but explicitly blocks the 947 area code.

( 1 947 xxxxxxx ! | 1 xxx xxxxxxx )

The following implements a Hot Line phone, which automatically calls 1 212 5551234.

( S0 <:12125551234> )

The following provides a Warm Line to a local office operator (1000) after 5 seconds, unless a 4 digit extension is dialed by the user.

( P5 <:1000> | xxxx )

Explanation of Default Dial Plan

The Default Dial Plan script for each line is: ???(*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxx|xxxxxxxxxxxx.)???

IP Dialing

If IP dialing is enabled, one can dial [user-id@]a.b.c.d[:port], where ???@???, ???.???, and ???:??? are dialed by entering ???*???, user-id must be numeric (like a phone number) and a, b, c, d must be between 0 and 255, and port must be larger than 255. If port is not given, 5060 is used. Port and User-Id are optional. If the user-id portion matches a pattern in the dial plan, then it is interpreted as a regular phone number according to the dial plan. The INVITE message, however, is still sent to the outbound proxy if it is enabled.

4.8.1.Speed Dialing Settings

If assigned, Speed Dials enable a user to dial a single digit from 2 through 9 and then the "#" character, to dial the number configured in the PHONE ADAPTER. Speed dials are specified per line.

4.9.Progress Tone and Ring Configuration

The progress tones and ring tones on the PHONE ADAPTER are extremely configurable. There are 18 configurable call progress tones, 8 configurable ringing cadences, and 8 configurable call waiting cadences. Progress tones and Ring cadences are configured using FreqScipts and CadScripts respectively (described in Section 4.1).

4.9.1.Distinctive Ring and Other Ring Settings

Distinctive Ringing and Distinctive Call Waiting Tones can be associated with specific callers configured directly into the PHONE ADPATER, by setting the appropriate callers in the Ring_n_Caller parameters. The Ring_1_Caller parameter specifies which callers will trigger ring cadence 1, and so forth. If a provider wishes to offer a distinctive ringing service by providing hints from the network, the provider can insert an Alert-Info SIP header into incoming calls. If the value in the Alert-Info header matches one of the strings in the Ring_n_Name set of parameters, the corresponding ring cadence will be used.

In addition to ordinary and distinctive rings, there are number of other situations where the PHONE ADAPTER can provide a short burst of ringing. These ring settings are described below.

Notes:

1.Caller number patterns are matched from Ring 1 to Ring 8. The first match (not the closest match) will be used for alerting the subscriber.

4.9.2.Progress Tones

Most of the 18 progress tones in the PHONE ADAPTER are played automatically in response to fixed stimuli. However, the administrator can select which SIP response codes correspond to the 4 SIT tones.

The Frequencies of the actual progress tones are configurable to accommodate local and regional conventions.

Notes:

1.Reorder Tone is played automatically when <Dial Tone> or any of its alternatives times out

2.Off Hook Warning Tone (also called Howler Tone) is played when Reorder Tone times out

4.10. Less Frequently Used Paramters

4.10.1.Advanced Protocol Parameters

Notes:

1.Reorder or Busy Tone will be played by default for all unsuccessful response status code

2.<RTP Port Min> and <RTP Port Max> should define a range that contains at least 4 even number ports, such as 100 ??? 106

3.If inbound SIP requests contain compact headers, PHONE ADAPTER will reuse the same compact headers when generating the response regardless the settings of the <Use Compact Header> parameter. If inbound SIP requests contain normal headers, PHONE ADAPTER will substitute those headers with compact headers (if defined by RFC 261) if <Use Compact Header> parameter is set to ???yes.???

4.During an active connection, the PHONE ADAPTER can be programmed to send out compound RTCP packet on the connection. Each compound RTP packet except the last one contains a SR (Sender Report) and a SDES.(Source Description). The last RTCP packet contains an additional BYE packet. Each SR except the last one contains exactly 1 RR (Receiver Report); the last SR

carries no RR. The SDES contains CNAME, NAME, and TOOL identifiers. The CNAME is set to <User ID>@<Proxy>, NAME is set to <Display Name> (or ???Anonymous??? if user blocks caller ID), and TOOL is set to the Verdor/Hardware-platform-software-version (such as Linksys/PHONE ADAPTER2000-1.0.31(b)). The NTP timestamp used in the SR is a snapshot of the PHONE ADAPTER???s local time, not the time reported by an NTP server. If the PHONE ADAPTER receives a RR from the peer, it will attempt to compute the round trip delay and show it as the <Call Round Trip Delay> value (ms) in the Info section of PHONE ADAPTER web page.

4.10.2.Additional User Account Information

1.If proxy responded to REGISTER with a smaller Expires value, the PHONE ADAPTER will renew registration based on this smaller value instead of the configured value. If registration failed with an ???Expires too brief??? error response, the PHONE ADAPTER will retry with the value given in the Min- Expires header in the error response.

2.MOH Notes:

??? The remote party must indicate that it can receive audio while holding MOH to work. That is the SIP 2xx response from the remote party in reply to the re-INVITE from the PHONE ADAPTER to put the call on hold must have the SDP indicate a sendrecv or recvonly attribute and the remote destination address and port must not be 0

3. SAS Notes:

???Either or both of lines 1 and 2 can be configured as an SAS server.

???Each server can maintain up to 5 simultaneous calls. If the second line on the PHONE ADAPTER is disabled, then the SAS line can maintain up to 10 simultaneous calls. Further incoming calls will receive a busy signal (SIP 486 Response).

???The streaming audio source must be off-hook for the streaming to occur. Otherwise incoming calls will get a error response (SIP 503 Response). The SAS line will not ring for incoming calls even if the attached equipment is on-hook

???If no calls are in session, battery is removed from tip-and-ring of the FXS port. Some audio source devices have an LED to indicate the battery status. This can be used as a visual indication whether any audio streaming is in progress.

???IVR can still be used on an SAS line, but the user needs to follow some simple steps: a) Connect a phone to the port and make sure the phone is on-hook, b) power on the PHONE ADAPTER and c) pick up handset and press * * * * to invoke IVR in the usual way. The idea behind this is that if the PHONE ADAPTER boots up and finds that the SAS line is on-hook, it will not remove battery from the line so that IVR may be used. But if the PHONE ADAPTER boots up and finds that the SAS line is off-hook, it will remove battery from the line since no audio session is in progress.

???Set up the Proxy and Subscriber Information for the SAS Line as you normally would with a regular user account.

???Call Forwarding, Call Screening, Call Blocking, DND, and Caller-ID Delivery features are not available on an SAS line.

4.10.3.Per-Line Polarity Settings

4.10.4.Additional Timer Values (sec)

Notes:

1.The Call Progress Tones and DTMF playback level are not affected by the <FXS Port Output Gain>.

2.The interdigit timer values are used as defaults when dialing. The Interdigit_Long_Timer is used after any one digit, if all valid matching sequences in the dial plan are incomplete as dialed. The Interdigit_Short_Timer is used after any one digit, if at least one matching sequence is complete as dialed, but more dialed digits would match other as yet incomplete sequences.

3.PHONE ADAPTER has had polarity reversal feature since release 1.0 which can be applied to both the caller and the callee end. This feature is generally used for answer supervision on the caller side to signal to the attached equipment when the call has been connected (remote end has answered) or disconnected (remote end has hung up). This feature should be disabled for the called party (ie by using the same polarity for connected and idle state) and the CPC feature should be used instead.

4.Without CPC enabled, reorder tone will is played after a configurable delay. If CPC is enabled, dial tone will be played when tip-to-ring voltage is restored.

4.10.5.Miscellaneous Parameters

Notes:

1. It should be noted that the choice of CID method will affect the following features:

???On Hook Caller ID Associated with Ringing ??? This type of Caller ID is used for incoming calls when the attached phone is on hook. See figure below (a) ??? (c). All CID methods can be applied for this type of caller-id

???On Hook Caller ID Not Associated with Ringing ??? This feature is used for send VMWI signal to the phone to turn the message waiting light on and off (see Figure 1 (d) and (e)). This is available only for FSK-based caller-id methods: ???Bellcore???, ???ETSI FSK???, and ???ETSI FSK With PR???

???Off Hook Caller ID ??? This is used to delivery caller-id on incoming calls when the attached phone is off hook. See figure below (f). This can be call waiting caller ID (CIDCW) or to notify the user that the far end party identity has changed or updated (such as due to a call transfer). This is only available if the caller-id method is one of ???Bellcore???, ???ETSI FSK???, or ???ETSI FSK With PR???.

a) Bellcore/ETSI Onhook Post-Ring FSK

Figure: PHONE ADAPTER Caller ID Delivery Architecture

5. Expected Feature Behavior

The PHONE ADAPTER can be configured to the custom requirements of the service provider, so that from the subscriber???s point of view, the service behaves exactly as the service provider wishes ??? with varying degrees of control left with the end user. This means that a service provider can leverage the programmability of the PHONE ADAPTER to offer sometimes subtle yet continually valuable and differentiated services optimized for the network environment or target market(s).

This section of the Administration Guide, describes how some of the supported basic and enhanced, or supplementary services could be implemented. The implementations described below by no means are the only way to achieve the desired service behavior.

To understand the specific implementation options of the below features, including parameters, requirements and contingencies please refer the section Configuration Parameters, section Error! Reference source not found..

5.2. Receiving a Phone Call

5.3. Caller ID

5.4.Calling Line Identification Presentation (CLIP)

effect for the duration of the current call.

5.5.Calling Line Identification Restriction (CLIR) ??? Caller ID Blocking

5.6. Call Waiting

5.7.Disable or Cancel Call Waiting

5.10. Attendant Call Transfer

5.11. Unattended or ???Blind??? Call Transfer

5.12. Call Hold

5.13. Three-Way Calling

5.14. Three-Way Ad-Hoc Conference Calling

5.16. Automatic Call Back

5.17. Call FWD ??? Unconditional

5.18. Call FWD ??? Busy

5.19. Call FWD - No Answer

5.20. Anonymous Call Blocking

5.21. Distinctive / Priority Ringing and Call Waiting Tone

5.22. Speed Calling ??? Up to Eight (8) Numbers or IP Addresses

6. Troubleshooting

6.1.Call Statistics Reporting

The following lists the statistics collected by the PHONE ADAPTER during normal operation. These statistics are presented in the PHONE ADAPTER web-page (under the ???Info??? tab). Line status is reported for each line (1 and 2). Each line maintains up to 2 calls: Call 1 and 2.

6.2.Enabling Logging and Debugging

The PHONE ADAPTER uses the following parameters to enable logging and debugging (both using the syslog protocol over UDP.)

???Syslog_Server

???Debug_Server

???Debug_Level

6.3.Error and Log Reporting

The PHONE ADAPTER Error Status Code (ESC) is used to indicate the current operation status of the PHONE ADAPTER unit. An error state can be a relatively long transient state or a steady state. The state is also represented by a special blinking pattern of the Status LED (next to the RJ-11 ports). The Error Status Code is a 4 digit number. The first digit indicates the error class: 1xxx represents normal operation states while 2xxx ??? 9xxx represent error states that must be fixed for the unit to function properly. The status code values can be read from the IVR option XXX or from the PHONE ADAPTER web-page.

6.4.Internal Error Codes

The PHONE ADAPTER defines a number of internal error codes (X00???X99) to facilitate configuration in providing finer control over the behavior of the unit under certain error conditions. They can be viewed as extensions to the SIP response codes 100???699. The definitions are shown below

6.5.Provisioning and Upgrade result codes

The $PRVST and $UPGST macro variables expand to integer codes which report the state of a resync or upgrade attempt. They are typically used within triggers and resync/upgrade conditions. The values of these variables is as follows:

-1 = explicit request (resync/upgrade url or sip) 0 = just rebooted (resync only)

1 = triggered from configured trigger or rule

2 = error retry

6.6.Table of SIP Response Codes (Error Codes)

For convenience, below is a list of SIP error codes at the time of this printing which incorporates response codes from the IANA (Internet Assigned Numbers Authority) SIP parameter registry (http://www.iana.org/assignments/sip-parameters), and additional response codes defined in Internet- drafts which are implemented by the PHONE ADAPTER.

Provisional 1xx 100 Trying

180Ringing

181Call Is Being Forwarded

182Queued

183Session Progress

Successful 2xx 200 OK

202 Accepted

Redirection 3xx

300 Multiple Choices

301 Moved Permanently

302 Moved Temporarily

305 Use Proxy

380 Alternative Service

Request Failure 4xx 400 Bad Request

401Unauthorized

402Payment Required

403Forbidden

404Not Found

405Method Not Allowed

406Not Acceptable

407Proxy Authentication Required

408Request Timeout

410 Gone

412 Conditional Request Failed

413 Request Entity Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Unsupported URI Scheme

420 Bad Extension

421 Extension Required

423 Interval Too Brief

429 Provide Referrer Identity

480 Temporarily Unavailable

481 Call/Transaction Does Not Exist

482 Loop Detected

483 Too Many Hops

484 Address Incomplete

485Ambiguous

486Busy Here

487Request Terminated

488Not Acceptable Here

489Bad Event

491 Request Pending

493Undecipherable

494Security Agreement Required

Server Failure 5xx

500 Server Internal Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Server Time-out

505 Version Not Supported

513 Message Too Large

580 Precondition Failure

Global Failures 6xx 600 Busy Everywhere

603Decline

604Does Not Exist Anywhere

606Not Acceptable

7.Summary of Implemented Features and Specifications

The PHONE ADAPTER is a full featured, fully programmable phone adapter that can be custom provisioned within a wide range of configuration parameters. The below feature descriptions are written as a high-level overview to provide a basic understanding of the feature breadth and capabilities of the PHONE ADAPTER. To understand the specific implementation of the below features, including parameters, requirements and contingencies please refer the section PHONE ADAPTER Feature Configuration Parameters, section Error! Reference source not found..

7.1.Data Networking Features

7.1.1.MAC Address (IEEE 802.3)

7.1.2.IPv4 ??? Internet Protocol Version 4 (RFC 791) upgradeable to v6 (RFC 1883)

7.1.3.ARP ??? Address Resolution Protocol

7.1.4.DNS ??? A Record (RFC 1706), SRV Record (RFC 2782)

7.1.5.DiffServ (RFC 2475) and ToS ??? Type of Service (RFC 791/1349)

7.1.6.DHCP Client ??? Dynamic Host Configuration Protocol (RFC 2131)

7.1.7.ICMP ??? Internet Control Message Protocol (RFC792)

7.1.8.TCP ??? Transmission Control Protocol (RFC793)

7.1.9.UDP ??? User Datagram Protocol (RFC768)

7.1.10.RTP ??? Real Time Protocol (RFC 1889) (RFC 1890)

7.1.11.RTCP ??? Real Time Control Protocol (RFC 1889)

7.2.Voice Features

7.2.1.SIPv2 ??? Session Initiation Protocol Version 2 (RFC 3261-3265)

7.2.1.1.SIP Proxy Redundancy ??? Static or Dynamic via DNS SRV

In typical commercial IP Telephony deployments, all calls are established through a SIP proxy server. An average SIP proxy server may handle tens of thousands subscribers. It is important that a backup server is available so that an active server can be temporarily switched out for maintenance. The PHONE ADAPTER supports the use of backup SIP proxy servers so that service disruption should be next to non-existent.

Static Redundancy:

A relatively simple way to support proxy redundancy is to configure a static list of SIP proxy servers to the PHONE ADAPTER in its configuration profile where the list is arranged in some order of priority. The PHONE ADAPTER will attempt to contact the highest priority proxy server whenever possible. When the currently selected proxy server is not responding, the PHONE ADAPTER automatically retries the next proxy server in the list.

Dynamic Redundancy:

The dynamic nature of SIP message routing makes the use of a static list of proxy servers inadequate in some scenarios. In deployments where user agents are served by different domains, for instance, it would not be feasible to configure one static list of proxy servers per covered domain into an PHONE ADAPTER. One solution to this situation is through the use DNS SRV records. The PHONE ADAPTER can be instructed to contact a SIP proxy server in a domain named in SIP messages. The PHONE ADAPTER shall consult the DNS server to get a list of hosts in the given domain that provides SIP services. If an entry exists, the DNS server will return a SRV record which contains a list of SIP proxy servers for the domain, with their host names, priority, listening ports, etc. The PHONE ADAPTER shall try to contact the list of hosts in the order of their stated priority.

7.2.1.2.Re-registration with Primary SIP Proxy Server

If the PHONE ADAPTER is currently using a lower priority proxy server, it should periodically probe the higher priority proxy to see if it is back on line and attempt to switch back to the higher priority proxy whenever possible. It is very important that switching proxy server should not affect calls that are already in progress.

7.2.1.3.SIP Support in Network Address Translation Networks ??? NAT

7.2.2.Codec Name Assignment

Negotiation of the optimal voice codec is sometimes dependent on the PHONE ADAPTER device???s ability to ???match??? a codec name with the far-end device/gateway codec name. The PHONE ADAPTER allows the network administrator to individually name the various codecs that are supported such that the correct codec successfully negotiates with the far end the equipment.

7.2.3.Secure Calls

A user (if enabled by service provider or administrator) has the option to make an outbound call secure in the sense that the audio packets in both directions are encrypted.

7.2.4.Voice Algorithms:

7.2.4.1.G.711 (A-law and m??-law)

This very low complexity codec supports uncompressed 64 kbps digitized voice transmission at one through ten 5 ms voice frames per packet. This codec provides the highest voice quality and uses the most bandwidth of any of the available codecs.

7.2.4.2.G.726

This low complexity codec supports compressed 16, 24, 32 and 40 kbps digitized voice transmission at one through ten 10 ms voice frames per packet. This codec provides the high voice quality.

7.2.4.3.G.729A

The ITU G.729 voice coding algorithm is used to compress digitized speech. Linksys supports G.729. G.729A is a reduced complexity version of G.729. It requires about half the processing power to code G.729. The G.729 and G.729A bit streams are compatible and interoperable, but not identical.

7.2.4.4.G.723.1

The PHONE ADAPTER supports the use of ITU G.723.1 audio codec at 6.4 kbps. Up to 2 channels of G.723.1 can be used simultaneously. For example, Line 1 and Line 2 can be using G.723.1 simultaneously, or Line 1 or Line 2 can initiate a 3-way conference with both call legs using G.723.1.

7.2.5.Codec Selection

The administrator can select which low-bit-rate codec to be used for each line. G711a and G711u are always enabled.

7.2.6.Dynamic Payload

When no static payload value is assigned per RFC 1890, the PHONE ADAPTER can support dynamic payloads for G.726.

7.2.7.Adjustable Audio Frames Per Packet

This feature allows the user to set the number of audio frames contained in one RTP packet. Packets can be adjusted to contain from 1 ??? 10 audio frames. Increasing the number of packets decreases the bandwidth utilized ??? but it also increases delay and may affect voice quality.

7.2.8.Fax Tone Detection Pass-Through

Users can connect a fax terminal to the PHONE ADAPTER telephone port(s). Fax terminals transmit a single tone when they answer a call. The PHONE ADAPTER detects the type of equipment in use on the basis of its answer tone. When it detects the equipment answering the call, the PHONE ADAPTER performs a switchover from the current audio codec to G.711 codec.

7.2.9.DTMF: In-band & Out-of-Band (RFC 2833) (SIP INFO *)

The PHONE ADAPTER may relay DTMF digits as out-of-band events to preserve the fidelity of the digits. This can enhance the reliability of DTMF transmission required by many IVR applications such as dial-up banking and airline information.

7.2.10.Call Progress Tone Generation

The PHONE ADAPTER has configurable call progress tones. Parameters for each type of tone may include number of frequency components, frequency and amplitude of each component, and cadence information.

7.2.11.Call Progress Tone Pass Through

This feature allows the user to hear the call progress tones (such as ringing) that are generated from the far-end network.

7.2.12.Jitter Buffer ??? Dynamic (Adaptive)

The PHONE ADAPTER can buffer incoming voice packets to minimize out-of-order packet arrival. This process is known as jitter buffering. The Jitter Buffer size will proactively adjust or adapt in size depending on changing network conditions.

The PHONE ADAPTER has a Network Jitter Level control setting for each line of service. The jitter level decides how aggressively the PHONE ADAPTER will try to shrink the jitter buffer over time to achieve a lower overall delay. If the jitter level is higher, it shrinks more gradually. If jitter level is lower, it shrinks more quickly.

7.2.13.Full Duplex Audio

Full-duplex is the ability to communicate in two directions simultaneously so that more than one person can speak at a time. Half-duplex means that only one person can talk at a time ??? like a CB radio or walkie-talkie, which is unnatural in normal free-flowing two-way communications. The PHONE ADAPTER supports full-duplex audio.

7.2.14.Echo Cancellation ??? Up to 8 ms Echo Tail

The PHONE ADAPTER supports hybrid line echo cancellation. This feature uses the G.165 echo canceller to eliminate up to 8 ms of line echo. This feature does not provide acoustic echo cancellation on endpoint devices ??? that is, an end user???s speakerphone.

7.2.15.Voice Activity Detection with Silence Suppression & Comfort Noise Generation

Voice Activity Detection (VAD) and Silence Suppression is a means of increasing the number of calls supported by the network by reducing the required bi-directional bandwidth for a single call. VAD uses a very sophisticated algorithm to distinguish between speech and non-speech signals. Based upon the current and past statistics, the VAD algorithm decides whether or not speech is present. If the VAD algorithm decides speech is not present, the silence suppression and comfort noise generation is activated. This is accomplished by removing and not transmitting the natural silence that occurs in normal 2-way connection ??? the IP bandwidth is used only when someone is speaking. During the silent periods of a telephone call additional bandwidth is available for other voice calls or data traffic since the silence packets are not being transmitted across the network. Comfort Noise Generation provides artificially generated background white noise (sounds), designed to reassure callers that their calls are still connected during silent periods. If Comfort Noise Generation is not used, the caller may think the call has been disconnected because of the ???dead silence??? periods created by the VAD and Silence Suppression feature.

7.2.16.Attenuation / Gain Adjustment

7.2.17.Signaling Hook Flash Event

The PHONE ADAPTER can signal hook flash events to the remote party on a connected call. This feature can be used to provide advanced mid-call services with third-party-call-control. Depending on the features that the service provider will offer using third-party-call-control, the following three PHONE ADAPTER features may be disabled to correctly signal a hook-flash event to the softswitch:

1.Call Waiting Service

2.Three Way Call Service

3.Three Way Conf Service

7.2.18.Configurable Flash / Switch Hook Timer

7.2.19.Configurable Dial Plan with Interdigit Timers

The PHONE ADAPTER has three configurable interdigit timers:

???Initial timeout (T) = handset off hook, no digit pressed yet.

???Long timeout (L) = one or more digits pressed, more digits needed to reach a valid number (as per the dial plan).

???Short timeout (S) = current dialed number is valid, but more digits would also lead to a valid number.

7.2.20.Message Waiting Indicator Tones ??? MWI

7.2.21.Polarity Control

The PHONE ADAPTER allows the polarity to be set when a call is connected and when a call is disconnected. This feature is required to support some pay phone system and answering machines.

7.2.22.Calling Party Control ??? CPC

CPC signals to the called party equipment that the calling party has hung up during a connected call by removing the voltage between the tip and ring momentarily. This feature is useful for auto-answer equipment which then knows when to disengage.

7.2.23.International Caller ID Delivery

In addition to support of the Bellcore (FSK) and Swedish/Danish (DTMF) methods of Caller ID (CID) delivery, release 2.0 adds a large subset of ETSI compliant methods to support international CID equipment. The figure below shows the CID/CIDCW architecture used in the PHONE ADAPTER. Different flavors of CID delivery method can be obtained by mixing-and-matching some of the steps as shown.

It should be noted that the choice of CID method will affect the following features:

???On Hook Caller ID Associated with Ringing ??? This type of Caller ID is used for incoming calls when the attached phone is on hook (see Figure 1 (a) ??? (c). All PHONE ADAPTER CID methods can be applied for this type of caller-id

???On Hook Caller ID Not Associated with Ringing ??? In the PHONE ADAPTER this feature is used for send VMWI signal to the phone to turn the message waiting light on and off (see Figure 1 (d) and (e)). This is available only for FSK-based caller-id methods: ???Bellcore???, ???ETSI FSK???, and ???ETSI FSK With PR???

???Off Hook Caller ID ??? This is used to delivery caller-id on incoming calls when the attached phone is off hook (see Figure 1 (f)). This can be call waiting caller ID (CIDCW) or to notify the user that the far end party identity has changed or updated (such as due to a call transfer). This is only available if the caller-id method is one of ???Bellcore???, ???ETSI FSK???, or ???ETSI FSK With PR???.

a) Bellcore/ETSI Onhook Post-Ring FSK

PHONE ADAPTER Caller ID Delivery Architecture

7.2.24.Streaming Audio Server ??? SAS

This feature allows one to attach an audio source to one of the PHONE ADAPTER FXS ports and use it as a streaming audio source device. The corresponding Line (1 or 2) can be configured as a streaming audio server (SAS) such that when the Line is called, the PHONE ADAPTER answers the call automatically and starts streaming audio to the calling party provided the FXS port is off-hook. If the FXS port is on-hook when the incoming call arrives, the PHONE ADAPTER replies with a SIP 503 response code to indicate ???Service Not Available.??? If an incoming call is auto-answered, but later the FXS port becomes on-hook, the PHONE ADAPTER does not terminate the call but continues to stream silence packets to the caller. If an incoming call arrives when the SAS line has reached full capacity, the PHONE ADAPTER replies with a SIP 486 response code to indicate ???Busy Here???.

The SAS line can be setup to refresh each streaming audio session periodically (via SIP re-INVITE) to detect if the connection to the caller is down. If the caller does not respond to the refresh message, the SAS line will terminate the call so that the streaming resource can be used for other callers.

7.2.25.Music On Hold ??? MOH

On a connected call, the PHONE ADAPTER may place the remote party on call (the only way to do this on te PHONE ADAPTER is to perform a hook-flash to initiate a 3-way call or to swap 2 calls during call-waiting). If the remote party indicates that they can still receive audio while the call is holding, the PHONE ADAPTER can be setup to contact an auto-answering SAS as described in Section 4 and have it stream audio to the holding party. When used this way, the SAS is referred to as a MOH Server.

PA1:

IP=192.168.2.100

User ID[1]=1001, SIP Port[1]=5060

User ID[2]=1002, SIP Port[2]=5061

IP

Network

PA2:

IP=192.168.2.200

User ID[1]=2001, SIP Port[1]=5060

User ID[2]=2002, SIP Port[2]=5061

Phone 1

Phone 2

Example configuration for MOH application with a PHONE ADAPTER line configured as a SAS SAS Configuration Examples:

The following configuration examples are based on the setup as depicted in Figure. Example 1: SAS Line not registered with the Proxy Server for the other subscribers On PHONE ADAPTER 1:

SAS Enable[1] = no

MOH Server [1] = 1002@192.168.2.100:5061 or 1002@127.0.0.1:5061 SAS Enable[2] = yes

On PHONE ADAPTER 2:

SAS Enable[1] = no

MOH Server [1] = 1002@192.168.2.100:5061

SAS Enable[2] = no

MOH Server [2] = 1002@192.168.2.100:5061

Example 2: SAS Line registered with the Proxy Server as the other subscribers On PHONE ADAPTER 1:

SAS Enable[1] = no MOH Server [1] = 1002

SAS Enable[2] = yes

On PHONE ADAPTER 2:

SAS Enable[1] = no

MOH Server [1] = 1002

SAS Enable[2] = no

MOH Server [2] = 1002

7.4.1.Web Browser Administration and Configuration via Integral Web Server

7.4.2.Telephone Key Pad Configuration with Interactive Voice Prompts

7.4.3.Automated Provisioning & Upgrade via TFTP, HTTP and HTTPS

7.4.4.Periodic Notification of Upgrade Availability via NOTIFY or HTTP

7.4.5.Non-Intrusive, In-Service Upgrades

7.4.6.Report Generation and Event Logging

The PHONE ADAPTER reports a variety of status and error reports to assist service providers to diagnose problems and evaluate the performance of their services. The information can be queried by an authorized agent (using HTTP with digested authentication, for instance). The information may be organized as an XML page or HTML page.

7.4.7.Syslog and Debug Server Records

The PHONE ADAPTER supports detailed logging of all activities for further debugging. The debug information may be sent to a configured Syslog server. Via the configuration parameters, the PHONE ADAPTER allows some settings to select which type of activity/events should be logged ??? for instance, a debug level setting.

8. List of all configuration parameters

Below is a list of all the configuration parameters for this software version (2.0.9). To obtain this list for another version of software, run the profile compiler utility (spc).

#***

#*** Linksys PHONE ADAPTER Series Configuration Parameters

#***

#*** System Configuration

OPT/1-line excl. NTFY/1-line excl. REG/1-line excl. OPT|NTFY|REG/full/full excl. OPT/full excl. NTFY/full excl. REG/full excl. OPT|NTFY|REG

# *** Call Feature Settings

Blind_Attn-Xfer_Enable[1] "No" ;

MOH_Server[1]"" ;

Xfer_When_Hangup_Conf[1] "Yes" ;

# *** Proxy and Registration

OPT/1-line excl. NTFY/1-line excl. REG/1-line excl. OPT|NTFY|REG/full/full excl. OPT/full excl. NTFY/full excl. REG/full excl. OPT|NTFY|REG

900+2.16uF/270+750||150nF/220+820||120nF/220+820||115nF/370+620||310nF

9. Acronyms

10.Glossary

ACD (Automatic Call Distribution): A switching system designed to allocate incoming calls to certain positions or agents in the order received and to hold calls not ready to be handled (often with a recorded announcement).

Area Code: A 3-digit code used in North America to identify a specific geographic telephone location. The first digit can be any number between 2 and 9. The second and third digits can be any number.

Billing Increment: The division by which the call is rounded. In the field it is common to see full-minute billing on the local invoice while 6-second rounding is the choice of most long-distance providers that bill their customers directly.

Blocked Calls: Caused by an insufficient network facility that does not have enough lines to allow calls to reach a given destination. May also pertain to a call from an originating number that is blocked by the receiving telephone number.

Bundled Service: Offering various services as a complete package.

Call Completion: The point at which a dialed number is answered.

Call Termination: The point at which a call is disconnected.

CDR (Call Detail Records): A software program attached to a VoIP/telephone system that records information about the telephone number???s activity.

Carrier???s Carrier: Companies that build fiber optic and microwave networks primarily selling to resellers and carriers. Their main focus is on the wholesale and not the retail market.

Casual Access: Casual Access is when customers choose not to use their primary carriers to process the long-distance call being made. The customer dials the carrier???s 101XXXX number.

CO (Central Office): Switching center for the local exchange carrier.

Centrex: This service is offered by the LEC to the end user. The feature-rich Centrex line offers the same features and benefits as a PBX to a customer without the capital investment or maintenance charges. The LEC charges a monthly fee to the customer, who must agree to sign a term agreement.

Circuits: The communication path(s) that carry calls between two points on a network.

Customer Premise Equipment: The only part of the telecommunications system that the customer

comes into direct contact with. Example of such pieces of equipment are: telephones, key systems, PBXs, voicemail systems and call accounting systems as well as wiring telephone jacks. The standard for this equipment is set by the FCC, and the equipment is supplied by an interconnect company.

Dedicated Access: Customers have direct access to the long-distance provider via a special circuit (T1 or private lines). The circuit is hardwired from the customer site to the POP and does not pass through the LEC switch. The dial tone is provided from the long-distance carrier.

Dedicated Access Line (DAL): Provided by the local exchange carrier. An access line from the customer???s telephone equipment directly to the long-distance company???s switch or POP.

Demarcation Point: This is where the LEC???s ownership and responsibility (wiring, equipment) ends and the customer???s responsibilities begin.

Direct Inward Dialing (DID): Allows an incoming call to bypass the attendant and ring directly to an extension. Available on most PBX systems and a feature of Centrex service.

Dual Tone Multifrequency (DTMF): Better known as the push button keypad. DTMF replaces dial pulses with electronically produced tones for network signaling.

Enhanced Service: Services that are provided in addition to basic long distance and accessed by way of a touchtone phone through a series of menus.

Exchange Code (NXX): The first three digits of a phone number.

Flat-rate Pricing: The customer is charged one rate (sometimes two rates, one for peak and one for off-peak) rather than a mileage-sensitive program rate.

IXC (Interexchange Carrier): A long-distance provider that maintains its own switching equipment.

IVR (Interactive Voice Response): Provides mechanism for information to be stored and retrieved using voice and a touchtone telephone.

Local Loop: The local telephone company provides the transmission facility from the customer to the telephone company???s office, which is engineered to carry voice and/or data.

North American Numbering Plan (NANP): How we identify telephone numbers in North America. We can identify the telephone number based on their three separate components (NPA) (NXX) (XXXX).

PIN (Personal Identification Code): A customer calling/billing code for prepaid and pay-as-you-go calling cards.

Private Branch Exchange: Advanced phone system commonly used by the medium to larger customer. It allows the customer to perform a variety of in-house routing (inside calling). The dial tone that is heard when the customer picks up the phone is an internal dial tone.

SS7 (System Signaling Number 7): Technology used by large carriers to increase the reliability and speed of transmission between switches.

Switch (Switching): Equipment that connects and routes calls and provides other interim functions such as least cost routing, IVR, and voicemail. It performs the ???traffic cop??? function of telecommunications via automated management decisions.

Touchtone (DTMF): The tone recognized by a push button (touchtone) telephone.

Unified Messaging: Platform that lets users send, receive, and manage all email, voice, and fax messages from any telephone, PC, or information device.

Voice Mail: A system that allows storage and retrieval of voice messages through voicemail boxes.