Where Should Services Reside in Internet Telephony Systems?



Similar documents
SIP: Ringing Timer Support for INVITE Client Transaction

EXPLOITING SIMILARITIES BETWEEN SIP AND RAS: THE ROLE OF THE RAS PROVIDER IN INTERNET TELEPHONY. Nick Marly, Dominique Chantrain, Jurgen Hofkens

Integrate VoIP with your existing network

(Refer Slide Time: 6:17)

Unified Messaging using SIP and RTSP

SIP : Session Initiation Protocol

Chapter 2 PSTN and VoIP Services Context

Overview ENUM ENUM. VoIP Introduction (2/2) VoIP Introduction (1/2)

OPNET Implementation of the Megaco/H.248 Protocol: Multi-Call and Multi-Connection. Scenarios

A Comparative Study of Signalling Protocols Used In VoIP

An Introduction to VoIP Protocols

Voice over IP Basics for IT Technicians

Introduction to VoIP Technology

Session Initiation Protocol (SIP) The Emerging System in IP Telephony

Application Notes for Configuring Cablevision Optimum Voice SIP Trunking with Avaya IP Office - Issue 1.1

Security issues in Voice over IP: A Review

Simulation of SIP-Based VoIP for Mosul University Communication Network

A Telephone Domain Name System (T-DNS) for Internet Telephony Service at All IP Network

An investigation into multimedia service creation using SIP

Programming SIP Services University Infoline Service

Voice over IP (VoIP) Basics for IT Technicians

ETM System SIP Trunk Support Technical Discussion

Technical Configuration Notes

Unified Messaging using SIP and RTSP

Unified Messaging using SIP and RTSP

2.2 SIP-based Load Balancing. 3 SIP Load Balancing. 3.1 Proposed Load Balancing Solution. 2 Background Research. 2.1 HTTP-based Load Balancing

MODELLING OF INTELLIGENCE IN INTERNET TELEPHONE SYSTEM

VoIP Trunking with Session Border Controllers

Written Testimony of John L. Barnes Director of Product Development Verizon Business. Hearing on VoIP: Who Has Jurisdiction to Tax It?

Application Notes for Configuring Intelepeer SIP Trunking with Avaya IP Office Issue 1.0

hgs/sip2001 Mobility 1 SIP for Mobility

Network Connection Considerations for Microsoft Response Point 1.0 Service Pack 2

5. DEPLOYMENT ISSUES Having described the fundamentals of VoIP and underlying IP infrastructure, let s address deployment issues.

IP PBX. SD Card Slot. FXO Ports. PBX WAN port. FXO Ports LED, RED means online

Chapter 10 Session Initiation Protocol. Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University

Implementing Cisco Unified Communications Manager Part 1, Volume 1

Creating your own service profile for SJphone

Integration of GSM Module with PC Mother Board (GSM Trunking) WHITE/Technical PAPER. Author: Srinivasa Rao Bommana

MITEL SIP CoE. Technical. Configuration Notes. Configure MCD 6.X for use with babytel SIP trunks. SIP CoE

Contents. Specialty Answering Service. All rights reserved.

Improving Quality in Voice Over Internet Protocol (VOIP) on Mobile Devices in Pervasive Environment

Overview of Voice Over Internet Protocol

Voice over IP & Other Multimedia Protocols. SIP: Session Initiation Protocol. IETF service vision. Advanced Networking

A Brief Overview of VoIP Security. By John McCarron. Voice of Internet Protocol is the next generation telecommunications method.

Configuration Notes 283

Project Code: SPBX. Project Advisor : Aftab Alam. Project Team: Umair Ashraf (Team Lead) Imran Bashir Khadija Akram

R2. The word protocol is often used to describe diplomatic relations. How does Wikipedia describe diplomatic protocol?

Application Notes for Configuring Avaya IP Office 9.0 with HIPCOM SIP Trunk Issue 1.0

IP Telephony Deployment Models

Application Notes for Avaya IP Office 7.0 Integration with Skype Connect R2.0 Issue 1.0

SIP: Ringing Timer Support for INVITE Client Transaction

IP PBX using SIP. Voice over Internet Protocol

The Design and Implementation of Multimedia Conference Terminal System on 3G Mobile Phone

Authentication and Authorisation for Integrated SIP Services in Heterogeneous Environments 1

Silent Monitoring and Recording Using Unified Communications Manager

SIP Trunking and Voice over IP

Voice over IP. Presentation Outline. Objectives

Application Notes for BT Wholesale/HIPCOM SIP Trunk Service and Avaya IP Office 8.0 Issue 1.0

Vulnerability Analysis on Mobile VoIP Supplementary Services and MITM Attack

Configuring SIP Trunking and Networking for the NetVanta 7000 Series

Contents. Specialty Answering Service. All rights reserved.

Packet8 DTA-310 Firmware Upgrade, version

Adaptation of TURN protocol to SIP protocol

Application Notes Rev. 1.0 Last Updated: February 3, 2015

Jive Core: Platform, Infrastructure, and Installation

SIP A Technology Deep Dive

White paper. SIP An introduction

ALCATEL CRC Antwerpen Fr. Wellesplein 1 B-2018 Antwerpen +32/3/ ; Suresh.Leroy@alcatel.be +32/3/ ; Guy.Reyniers@alcatel.

A Scalable Multi-Server Cluster VoIP System

P160S SIP Phone Quick User Guide

Datagram-based network layer: forwarding; routing. Additional function of VCbased network layer: call setup.

Quality Estimation for Streamed VoIP Services

Crystal Gears. Crystal Gears. Overview:

04/09/2007 EP520 IP PBX. 1.1 Overview

Computer Networks. Voice over IP (VoIP) Professor Richard Harris School of Engineering and Advanced Technology (SEAT)

AN IPTEL ARCHITECTURE BASED ON THE SIP PROTOCOL

Table of Contents. Confidential and Proprietary

Application Notes for Configuring Broadvox SIP Trunking with Avaya IP Office - Issue 1.0

NAT TCP SIP ALG Support

Frequently Asked Questions about Integrated Access

3 The Network Architecture

nexvortex SIP Trunking Implementation & Planning Guide V1.5

ANALYSIS OF LONG DISTANCE 3-WAY CONFERENCE CALLING WITH VOIP

Application Notes Rev. 1.0 Last Updated: January 9, 2015

Avaya IP Office 8.1 Configuration Guide

Analysis of Call scenario in NGN network

Configuration Guide for connecting the Eircom Advantage 4800/1500/1200 PBXs to the Eircom SIP Voice platform.

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Service Identifier Comparison module Service Rule Comparison module Favourite Application Server Reinvocation Management module

IP-Telephony SIP & MEGACO

With 360 Cloud VoIP, your company will benefit from more advanced features:

A Novel Distributed Wireless VoIP Server Based on SIP

ZyXEL V100 Support Notes. ZyXEL V100. (V100 Softphone 1 Runtime License) Support Notes

VOICE OVER IP AND NETWORK CONVERGENCE

ESI SIP Trunking Installation Guide

Towards Junking the PBX: Deploying IP Telephony. What is a PBX?

General Guidelines for SIP Trunking Installations

Implementing Conditional Conference Call Use Case over IMS and Non IMS Testbed an experimental results through comparison approach

Internet Communications Using SIP

Transcription:

Where Should Services Reside in Internet Telephony Systems? Xiaotao Wu and Henning Schulzrinne xiaotaow,hgs @cs.columbia.edu Department of omputer Science, olumbia University, New York bstract Internet telephony end systems can take on a much larger role in providing services than in the PSTN. However, there are still a large number of services that are better provided by servers residing in the network. We analyze some sample services and discuss how they can be created in both architectures, using the SIP (Session Initiation Protocol) and DF (Distributed Feature reation) architectures as examples. Introduction oth end systems and network servers cooperate in Internet telephony systems to provide services, including and beyond basic call setup. In many cases, services can be provided by either end system or server. In this paper, we investigate this division of labor in more detail, showing how the placement of services affects their implementation and what trade-offs are involved. In our model, end systems are user-operated Internet-connected devices, such as Ps, wireless devices or Ethernet phones. They usually are not permanently network-connected, may only have a temporary ( leased ) IP address and are likely to be powered off every so often. Often, they have limited computational capacity, low access bandwidth if they use wireless or modem access and only very small amounts of non-volatile storage. Within this group of end systems, there are some devices that are capable of being programmed by code downloaded by the user, such as PL [] or cgi-bin [2, 3], while most are likely to have a fixed feature set changeable only by upgrading local software. single user may well own and use several end systems, all identified by the same external name. Network servers are designed to be permanently connected to the network, have ample computational power and storage capacity. They may be operated by carriers or ISPs, by service providers not owning transmission capacity or by corporations and organizations serving their employees. For brevity, we refer to these servers as being in the network, although end systems and servers may well be equal participants from a network protocol perspective. There is a separate model of service provision where call controllers direct the detailed behavior of gateways or Internet telephones [], using protocols such as MGP or Megaco/H.28. We do not consider these architectures in more detail here, although some of the discussion applies to them as well. In that environment, almost all services, with the possible exception of distinctive ringing, reside in network servers. s we will discuss in detail below, there are services that are clearly implementable only in end systems or in the network, but most can be moved to either location, or split between the two. Protocols that enable this movement of services are more flexible, in particular since some Ps can well be considered to be both network and end-user devices. We will also discuss below how such services should be created. The paper is organized as follows. Section 2 discusses where services can be located, providing examples of classical telephony services. Section 3 describes how services can be created in end systems and network servers, using DF [5, 6, 7, 8] and an architecture for programming Internet telephony services [] as basis for the discussion. Feature interaction between end system services and network services is covered in Section. In Internet telephony systems, services are enabled by the signaling protocol. mong the several protocols available, we choose the Session Initiation Protocol (SIP) [9] for our discussion. 2 Services in end systems and in the network Providing services in end systems has the advantage that on-the-spot interaction with users is much easier. Network services can only interact via protocol messages and possibly media content, rather than GUIs. On the other hand,

unless the end system can be programmed easily, upgrading services in end systems is much harder, as their number and diversity is likely to far exceed that of network servers and upgrades have to be typically initiated by users. (This assumes that network providers allow users to install custom call logic in their servers, as otherwise the proliferation of programs on Ps is far greater than the variety of services in telephone systems.) For all but P-based end systems, long-term configuration is generally easier for network services, as they allow web-based interactions. With a few exceptions detailed below, in Internet telephony, end systems are the only entities where signaling and media flows converge. This is probably the single largest architectural difference to the legacy PSTN. Thus, any service that requires interaction with user media is likely to be easier to implement in the end systems. (Our definition above of end systems and network devices could also be recast to make the distinction as to whether an entity has simultaneous access to media and signaling.) Services that are invoked when the user is off-line clearly need the support of network servers. all forwarding on no answer [0] is one such service. (Here, there is a subtle difference between end system rings and nobody answers and no device is registered for the destination address given. n analog phone system cannot distinguish the two; only the latter needs to be implemented in a network server.) 6 3 3 0 5 7 2 0 5 6 2 () WO: Hanging up and being rung back (2) WO: Place the existing call on hold 0. talks with. sends INVITE to 2. sends 80 Ringing to 3. all waiting tone. sends YE to 5. sends 200 OK for YE. 6. Ringing 7. sends 200 OK to for 's INVITE 0. talks with. sends INVITE to 2. sends 80 Ringing to 3. all waiting tone. sends INVITE with SDP's c field as 0. is put on hold and will stop send RTP packets 5. sends 200 OK for INVITE 6. sends 200 OK to for 's INVITE Figure : all waiting in end systems: is in call with, with calling Traditional call waiting services do not make sense in an Internet environment, where the number of lines or pending calls is virtually unlimited. usy handling services can be handled either at the end system or in the network. However, network services will be more limited in their responses, based only on predefined mechanisms or userprovided scripts, rather than human reaction. End systems allow such user-generated responses as will be done in two minutes, please hold, typed as a, say, SIP provisional response rather than as the classical call waiting beep and hook flash interruption. Figure shows how to handle call waiting in the end system. In all examples, user and are in a call when attempts to call. can then switch between the and, after getting a call-waiting indication. Service end network (proxy) network with media (U) Distinctive ringing yes can assist can assist Visual caller id yes can assist can assist all waiting yes no yes (*) F busy yes yes (*) yes (*) F no answer yes yes yes F no device no yes yes Location hiding no yes yes Transfer yes no no onference bridge yes no yes Gateway to PSTN no no yes Firewall control no no yes Voicemail yes no yes Table : Service location; (*) = with information provided by end system It might be possible to incorporate user interaction in scripts running in servers, but it is likely to be far more cumbersome and subject to network delays. 2

Firewall control can be implemented either in user devices or via a server. SOKS is an example of the former, but most development efforts seem to be focused on creating server-controlled environments, for ease of control and management. s Table shows, most services can be implemented in either the end system or the network. Since even an Internet telephony network will continue to contain a large number of intelligence-challenged devices such as traditional black telephones connected via gateways or low-cost Ethernet phones, basic versions of most services will have to be available via servers. elow, we describe some particular services that require network support: Information hiding: For anonymous calls, a trusted third party s server must be introduced. Large-scale conferences: If conferences are implemented by mixing streams in a central location, end systems are usually not well equipped, as they lack the access bandwidth. Even if conferencing is implemented via networklayer multicast, the number of simultaneous speakers (or sources producing background noise) is not easily limited, making centralized servers attractive for larger conferences. (The movement to restrict multicast to single-source trees also encourages such an architecture.) onference participant awareness and conference control, on the other hand, can be easily distributed if multicast is available, at some cost of being up-to-date, as demonstrated by the light-weight conference model []. Logical call distribution: If a number of distinct users are to be reached via a single logical address, as in sales@acme.com, only a server-based solution, similar to today s automatic call distribution (D), is feasible. PSTN gateway: Multiplexing gains make large PSTN gateways far more efficient than having each user connect a phone line to his P. 3 Service creation Services in both end systems and network can be created by either customers or carriers. For example, end systems can automatically download new service software or customers can install scripts, as discussed in Section 3.., on network servers. Services created by end users are more likely to be configurations of existing services rather than fundamentally new call logic. However, it is not clear that there is a need for the peculiarly telecom-centric assumption that there is a small number of named services such as call forwarding busy. This assumption seems to be primarily based on the assumption that end systems will always only have 2 buttons and a hook flash to signal their intent and that there is no external means, such as a web page, of configuring low-end devices. It appears more plausible to have services created based on rules, i.e., certain conditions triggering certain actions, similar to how email user agents, for example, support message filtering, forwarding and filing. For services created by carriers, flexibility is most important. In addition, rather than creating closed modules that can only be turned on or off, it will likely be important to have mechanisms that simplify the creation of means for customers to create such services. Thus, it is not sufficient to have an environment that specifies logic for handling call-related events in a graphical manner, but also one that automatically creates, say, a web page that asks the end user for the customization parameters. In network servers, services from many different users share a single server. Thus, if users are allowed to create new services in that environment, the environment needs to be designed to protect the integrity of the server from mistakes or attacks, including limiting the amount of storage and PU resource consumed in providing a service [2]. 3. Service creation mechanisms and architectures There are many service creation mechanisms and architectures. In this section, we compare the programming language model [] with Distributed Feature omposition. 3.. Programming language model Several models have been proposed on how to program Internet telephony services without having to embed every service into the core server application code. These models include the all Processing Language (PL), SIP servlets We ignore future capabilities such as IGMPv3 here 3

[2] and sip-cgi. PL is a restricted decision tree language. SIP servlets extend the idea of Java servlets found in web servers to SIP services, while sip-cgi executes scripts or programs when requests or responses arrive. While primarily designed for proxy servers, they can also be deployed in end systems. ll of them allow external programs to be invoked when SIP signaling messages arrive at a server and can in turn generate messages or responses. (We ignore here other telephony PIs such as JIN and Parlay, as they are mainly concerned about creating calls rather than reacting to signaling events.) ll of these models have in common that services are provided in one or more servers, typically at the edges of the organizations making or receiving a call. There is no explicit coordination between these services. Users and administrators can install these programs in each server, e.g. by uploading them as part of user registration [3] or through a web page. This model is related to the IN model of triggers invoking logic to determine call progress. Features are composed within a server by standard programming techniques, such as procedures (<sub> in PL, for example) and across servers by proxying calls. (PL does not currently allow the invocation of library procedures, but sip-cgi and servlets can easily access standard module libraries.) The next server to handle a signaling message is determined by name resolution in the previous server, not by any centralized mechanism. (For example, if a server wants to forward a request to a specialized call waiting server, it simply directs it there, with or without adjusting the SIP request URI accordingly.) Figure 3 (a) shows how this approach might be used to offer call forwarding on busy services in a SIP server. In the figure, sip-cgi is used, but an implementation with PL or servlets would look similar. If the end system is able to handle multiple calls, the server needs to trace the end system s status and handle the service based on rules. String Switch field: from ------------------------ match: *@example.com ------------------------ otherwise Location: url: sip:john@example.com Location: url:sip:john@voicemail.com merge: clear busy, timeout failure Proxy Redirect... <location url="sip:jone@example.com"> <proxy> <busy> <sub ref="voicemail" /> </busy> <noanswer> <sub ref="voicemail" /> </noanswer> <failure> <sub ref="voicemail" /> </failure> </proxy> </location>... Figure 2: Graphical representation of a PL script Programming Interface 0 Service Logic c.cgi 2 3 7 6 SIP Server 0 9 8 2 5 0 0. talks with,the server records the status. INVITE 2. Run c.cgi in service logic to handle the status 3. new INVITE. Server sends INVITE to 5. 86 usy 6. Run c.cgi in service logic to handle busy 7. 302 Moved Temporarily, ontact: 2 8. INVITE 2 9. 200 OK 2 3 2 0. talks with. INVITE 2. 302 Moved Temporarily, ontact: 2 3. INVITE 2. 200 OK 0 (a) (b) Figure 3: all forwarding on busy in SIP server (a) and in end system (b) 3..2 Distributed feature composition (DF) Distributed Feature omposition (DF) (Fig. (a)) is an architecture for the description of telecommunication services, designed for feature modularity, structured feature composition, analysis of feature interactions and separation of service and transmission layers.

LI(TI) M LR PR D LR PR D LR PR D Router 3 5 2 F F2 LI(TI)2 2 W 3 Router 0 6 6 5 7 9 7 8 M2 F: Feature ox LI: Line Interface ox TI: Trunk Interface ox M: Mbox (Media Processing) LR: Logical Router PR: Positional Router D: Database (a) DF protocol msg Media control msg Media transmission Other msg () setup (2) setup (3) setup () upack (5) connected (6) setup (7) setup (8) upack (9) connected (0) media open () setup (2) setup (3) upack () connected (5) setup (6) status (switch) (7) media open (b) Figure : Distributed Feature omposition (DF) architecture (a) and call waiting implementation (b) DF treats features as independent components, called feature boxes (F). call is routed through these feature boxes. The features are applied during the routing. The DF architecture has four main components: the feature boxes (F), media processing boxes (M) which are responsible for switching, replicating and summing media streams 2, line interface (LI) box and trunk interface (TI) boxes that sit between a DF network and other end systems or networks, and finally routers which direct call signaling messages. alls are routed to feature boxes in two phases, logical and positional, which are carried out by the logical routers (LR) and positional routers (PR), respectively. The logical router decides which feature boxes will be applied to the call and the positional router decides the order of the feature boxes. The routing decision is based on subscription, precedence, dialing predicate and configuration data. In a DF network, the call between feature boxes are featureless signals, i.e., the content of the signaling message does not depend on the feature boxes the signal connects. To install a new feature, the LR and PR boxes have to be appropriately configured by the carrier. The scope of DF is one network. One DF network can be connected to the other network through trunk interface. Two LR/PR can talk to each other through Provisioning Manager. The LR/PR can register its information to Provisioning Manager. Provisioning Manager uses the same hierachical architecture as DNS to provide scalability. Figure (b) shows how call waiting service is handled in DF. ( upack is the acknowledgment message for the setup message, while flash refers to the end system signaling a hook flash.) In this figure, if we replace the W box with another feature box or add some more feature boxes, the call set up will follow the same path. The DF approach decomposes complex behavior into simpler features, instead of handling them in a monolithic program. bstracted, the main difference to the programming model above is that the order of feature execute is based on the interaction between LR/PR and the feature boxes, rather than hop-by-hop as in the programming model described earlier. 3.2 omparison of service creation mechanisms omparing Fig. and (b), 3 (a) and (b), we notice that the approach in the end system requires the smaller number of messages and is less complicated for providing the service. It also offers full call information to the user. Since these services do not require access to persistent memory or other external resources, this model is probably appropriate. Using programmable service logic, Fig. 3 (a), the service logic is contained in a separate script can can thus be implemented by a third party. The server only needs to know which script to invoke when receiving a call. DF, Fig. (b), provides W in a separate feature box, rather than as part of a per-user script. Since feature boxes are independent to each other, each service can be implemented by a third party. The modularityalso makes it 2 Specialized Ms can also play announcements, monitor speech, or convert text to speech. 5

easy to reuse the existing service implementations. Feature boxes could use PL internally. ompared with having a single script per user, DF limits feature interaction to a strict sequence. Features cannot be invoked conditionally, depending on the outcome of invoking previous features. DF could also be used inside the service logic part of Fig. 3 (a), rather than be spread across multiple servers. Feature interaction between end systems and the network Since traditional telecommunication networks assume dumb terminals, there are rarely service interactions between end system and network services. However, in an Internet telephony system, especially when interoperating with the legacy telephone system, such kind of service interactions are more likely. One example of this interaction is when features are implemented in one or more servers as well as an end system. alls may never reach the end system, having been rejected or deflected earlier in their path. It may become hard to track which service is installed where, and to keep their behavior or implementation synchronized []. 5 onclusion Powerful end systems offer benefits such as flexibility and personalized services, but introduce new challenges. What kind of services should be implemented in end systems and what kind of services can only be implemented in the network? What mechanisms are good for service creation in end systems and in the network? How can one deal with the interaction between services implemented in various parts of the network? We have investigated these problems and compared three mechanisms for service creation, namely end system implementation, server implementation in a gateway or proxy and the DF architecture. End system implementations are simplest, but not suitable for many services. DF and SIP proxy implementations make it possible to split services across several servers, with differing approaches on how to route the signaling messages between such servers. The interaction between end system services and network services is still an open issue. References [] J. Rosenberg, J. Lennox, and H. Schulzrinne, Programming internet telephony services, IEEE Network, vol. 3, pp. 2 9, May/June 999. [2] J. Lennox and H. Schulzrinne, all processing language framework and requirements, Request for omments 282, Internet Engineering Task Force, May 2000. [3] J. Lennox, J. Rosenberg, and H. Schulzrinne, ommon gateway interface for SIP, Internet Draft, Internet Engineering Task Force, May 999. Work in progress. []. Huitema, J. ameron, P. Mouchtaris, and D. Smyk, n architecture for internet telephony service for residential customers, IEEE Network, vol. 3, pp. 50 57, May/June 999. [5] M. Jackson and P. Zave, Distributed feature composition: virtual architecture for telecommunications services, IEEE Transactions on Software Engineering, ug. 998. [6] P. Zave and M. Jackson, DF modifications II: Protocol extensions, tech. rep., T&T Research Lab, Nov. 999. t http://www.research.att.com/ pamela/x2.ps. [7] P. Zave and M. Jackson, DF modifications III: Signalling/media separation, tech. rep., T&T Research Lab, Dec. 999. t http://www.research.att.com/ pamela/x3.ps. [8] P. Zave and M. Jackson, DF modifications I (version 2): Routing extensions, tech. rep., T&T Research Lab, 2000. t http://www.research.att.com/ pamela/x.ps. [9] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, SIP: session initiation protocol, Request for omments 253, Internet Engineering Task Force, Mar. 999. [0] T&T, 5ESS Switch, The Premier Solution: Feature Handbook. T&T, ed., Sept. 987. [] M. Handley, J. rowcroft,. ormann, and J. Ott, The internet multimedia conferencing architecture, Internet Draft, Internet Engineering Task Force, July 997. Work in progress. [2]. Kristensen and. yttner, The SIP servlet PI, Internet Draft, Internet Engineering Task Force, Sept. 999. Work in progress. [3] J. Lennox and H. Schulzrinne, Transporting user control information in SIP REGISTER payloads, Internet Draft, Internet Engineering Task Force, Mar. 999. Work in progress. [] J. Lennox and H. Schulzrinne, Feature interaction in internet telephony, in Proc. of Feature Interaction in Telecommunications and Software Systems VI, (Glasgow, United Kingdom), May 2000. 6