Internet DRAFT - draft-dobrowolski-call-model

draft-dobrowolski-call-model



Internet Engineering Task Force                       Janusz Dobrowolski    
Internet Draft                                              Michel Grech
draft-dobrowolski-call-model-00.txt                       Shehryar Qutub
June 20, 1999                                              Musa Unmehopa
Expires: December 20, 2000                                  Kumar Vemuri      
IPTel Working Group                                  Lucent Technologies

                       Call Model For IP Telephony
                    <draft-dobrowolski-call-model-00.txt>

STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with 
all provisions of Section 10 of RFC2026.

Internet-Drafts are working documents of the Internet Engineering 
Task Force (IETF), its areas, and its working groups.  Note that 
other groups may also distribute working documents as Internet-
Drafts.

Internet-Drafts are draft documents valid for a maximum of six months 
and may be updated, replaced, or obsoleted by other documents at any 
time.  It is inappropriate to use Internet-Drafts as reference 
material or to cite them other than as "work in progress".

The list of current Internet-Drafts can be accessed at
      http://www.ietf.org/ietf/1id-abstracts.txt

The list of Internet-Draft Shadow Directories can be accessed at
      http://www.ietf.org/shadow.html.

Abstract
Several different call models are in common use today in conventional 
Telephony. IP Telephony is gaining wider acceptance. There is, as yet,
no well-defined, widely accepted call model for this domain. In this 
draft, we study some of the issues associated with call models for IP 
Telephony, and suggest how a single call model representation may be
selected to effectively represent call processing in this domain.

 
1.0 Introduction:
Call Model selection is a subject of substantial interest when issues 
involved in implementing VoIP network components are studied, as well as 
when interoperability with existing networks is considered.

The SIP RFC [1] defines state machines that depict the operation of the 
client and the server when INVITE messages are received (e.g. "Figure 
12: State transition diagram of client for INVITE method" and "Figure 
13: State transition diagram of server for INVITE method"). However, 
there is no definition of an entity called the "SIP Call Model".

There appears to be a notion among some members of software development 
community that "if SIP does not have a Call Model then perhaps IP 
telephony could be built without a Call Model as well".


[Page 1]        Call Model for IP Telephony   J. Dobrowolski et al.
Expires Dec 2000.


The "The Session Initiation Protocol SIP" tutorial [2] by Henning 
Schulzrinne of Columbia University dated January 18, 2000 contains two 
drawings one titled "SIP state transition - server" and the second 
titled "SIP state transition - client". Both of the state transition 
diagrams found in the tutorial somewhat differ from the RFC 2543, and 
the difference in the titles of the above-mentioned drawings is most 
significant. Since neither of the Figures 12 and 13 is either exclusive 
or complete with the respect to the INVITE method the titles for the 
drawings chosen in the tutorial appear to be better.

It is not a subject of this communication to attempt to explain the 
differences found between RFC 2543 and the tutorial. We believe that the 
authors of those respective documents are best qualified to resolve 
potential discrepancies of the presented graphical representations. We 
do however study the issue of call model selection for the Internet 
domain.

SIP does explicitly define the notion of "transaction statefulness", 
while support for "call statefulness" appears to be implied. This draft 
explores the latter concept in some detail.


2.0 Call Model Issues:
Call Model: A Call Model is an abstract representation of user and/or 
terminal and/or network expectation built during the process of 
establishing, progressing and terminating a call. A call model is most 
conveniently represented using the notation of a graphical Finite State 
Machine (Moore and Mealy state machines are commonly used). 

Following the above definition one can realize that a Call Model can 
always be built for two or more logical entities involved in a call and 
communicating via a protocol with a well-defined set of messages. 

Let us now explore the definition in some detail:
An example of the user expectation is a situation where a callee 
expecting a call around 20:00H does not pick the handset at 19:55H 
expecting to hear the caller. This expectation is met here through the 
process of waiting for some sort of alerting first like: ring, screen 
flash, icon, announcement etc.

An example of a terminal expectation is: once a stable call has been 
established with no intent to add another party or to change the call 
parameters of the existing call, then another INVITE message is not 
issued during the call.

An example of a network expectation is that a server does not start 
processing the call before the first INVITE message arrives.

As one can observe in the above examples states of a call are of an 
intrinsic nature to the communication process and are not associated 
with a particular implementation technology.

A more abstract way of looking at the same issue is the realization that 
for any two or more entities communicating via a predetermined set of 
message sequences (protocol) a Communication Model (Call Model) can be 
built.

[Page 2]        Call Model for IP Telephony   J. Dobrowolski et al.
Expires Dec 2000.


It is important to realize that a Call Model can be implemented on one 
or more network physical entities. It is also important to realize that 
if a process implementing a portion of a Call Model suspends, storing 
state associated with the call, processing may continue on another 
network element with the last Call State information available.

An example may be that after a server establishes a stable call leg it 
may no longer store the Stable_Call_Leg  Call State information. However 
if for instance the network uses the RSVP scheme the Stable_Call_Leg 
(Active) state might be stored on every selected routing element.  It is 
also worth noting that the storage of the Stable_Call_Leg state on the 
router may require no more that a single bit.  


3.0 Discussion: 
3.1 The Need for a Call Model: 
A Call Model is the agreed-upon least common denominator supported by 
different call processing entities within the confines of a distributed 
processing network. It consists of abstract events, states and actions. 
States are the distinctive "points in processing" where the processing 
may be stopped on one server and continued on another server. 

Some argue that an alternative approach is possible where the processing 
may be stopped at any instruction or even processing cycle.  This 
"stateless" distributed processing has a number of disadvantages - 
primarily a need to keep the identical software and even the identical 
software releases on every network server. 

The "stateless" approach leads to a coupling between network elements, 
that is undesirable in many situations. Such a coupling may cause 
interoperability problems while building a network using equipment 
provided by different vendors. From the Network Security viewpoint a 
stateless model may not be so good if the processing involves entities 
belonging to different administrative domains.

It is also very important to realize that the issue of hiding the 
network complexity from a Third Party Service Developer is quite 
different from the issue of building a new network in the first place.

3.2 The Complexity of a Call Model:
The number of states and transitions is a measure of a complexity of a 
Call State Model. 

A Call State Model with a higher number of states allows the building of 
a richer set of Network Value Added Services (including 3rd party 
services) than a low granularity Call State Model with just a few 
states. This is a direct consequence of the fact that one has finer 
grained control of call-processing in the former case, and more "points 
in call" where feature invocation or service access may be supported.

Some software development professionals claim that the Call Model with a 
higher number of states is more difficult to implement. This is a small 
side effect that arises only when the state machine code is generated 
manually. This side effect is by far outweighed by the benefits of the 
rich set of services supportable, and can be easily compensated for by 
usage of automatic code generation techniques. 

[Page 3]        Call Model for IP Telephony   J. Dobrowolski et al.
Expires Dec 2000.


Even if one generates a State Machine manually, almost every State 
Machine implementation consists of double Switch statement, where unused 
states are filled with some kind of "No Operation Statements". It is 
considered bad practice in telephony implementations to inter-mix Call 
State Model code with that for switch-side "features", since this leads 
to complicated implementations that are very difficult to test and 
expand.

If a given development environment uses automatic code generation 
techniques for the Finite State Machine implementation then the number 
of states in the model (up to a practical limit of about 60 [3]) does 
not really matter from a development stand-point.

3.3 Selecting an IP Telephony Call State Model:
The Internet paradigm derives its strength from a fairly simple and 
standardized state model of the basic protocol, namely TCP/IP, with 
simultaneous support for non-standardized applications from simple to 
very complex. One could argue that the almost ubiquitous nature of the 
Internet today is thus a direct consequence of the fact that the base 
protocol was built on a standardized state model.  

In a similar vein, the accelerated acceptance of IP Telephony would be 
greatly facilitated if a single agree-upon call model were supported by 
all network call processing elements. It is widely felt that this IP 
Telephony Call Model should be fundamentally a superset of existing 
telephony Call Models (including the State Machine considerations 
presented in the RFC 2543). This is so that one is not constrained by 
the limitations imposed by one particular Call Model, while beneficial 
features from several of these could be leveraged advantageously during 
the process of service access.

If, on the other hand, one were to allow for different/multiple distinct 
State Models for use in the IP Telephony domain, every call processing 
entity involved in a particular call would be required to support a 
"call state model validation phase". Such a validation might also 
require a "Call Model negotiation" process during a call establishment, 
for every leg of the call in question. This situation is further 
complicated when one considers the various services that may be invoked 
at any state by any of the call processing entities involved in the 
call.  A service structure negotiation process could be needed in some 
cases as well. (To ensure that when call processing is handed off from 
one call-processing element to another, users still get all the features 
they subscribed to). 

Some service developers present a view that a simple Call Model with a 
small set of states is sufficient since they are only interested in 
developing a small subset of services, all of which are invoked at 
selected supported states only. Such a consideration could be 
accommodated by the Service Creation Environment (SCE) that delivers a 
subset "view" of the real Call Model that is needed to build a limited 
number of services.  


[Page 4]        Call Model for IP Telephony   J. Dobrowolski et al.
Expires Dec 2000.


A simplistic Call Model appears to have clear long-term disadvantages 
from the service flexibility and extensibility point of view. Also 
inter-working with the existing PSTN services would present problems for 
the service developers on the IP as well as the PSTN side, if there is a 
significant mismatch in terms of supportable capabilities of the call 
models in these two domains.

A Call Model allowing for the creation of a very rich set of network 
services is known as an Intelligent Network Call Model. This has been 
standardized by ITU-T, and is commonly deployed in telephony networks 
today, where it supports access to legacy IN [4] services. We recommend 
that this call model be used as a basis for call processing in the IP 
domain as well. Interoperation with SIP, H.323 and other protocols could 
be easily achieved if appropriate message interfaces were supported for 
communications with end-points in the IP domain. 

If this process is carried out correctly, one can support simultaneous 
access to not only new services possible only in the IP domain, but also 
to legacy services from existing telephony networks as well, in a 
completely transparent manner. Techniques such as Call Model Integration 
[5], and Call Model Emulation [6] may be gainfully employed to achieve 
these objectives. [7], for instance shows how these ideas may be used to 
support call processing in the SIP domain, with simultaneous access to 
services from other domains (such as IN).


4.0 Conclusion: 
Support for a multiplicity of Call Models for the IP Telephony domain 
would result in difficulties for service development and inter-working, 
with the need for pair-wise negotiation and validation of call model 
details between call processing entities.  

To address these issues, we believe that IP Telephony should have a 
single well-defined Call Model that is fundamentally a superset of 
existing call models from the telephony domain (including a specially 
careful consideration for the State Machine presented in the RFC 2543). 


5.0 Security Considerations: This draft addresses general call model 
requirements in the IP Telephony domain. Specific security requirements 
would have to be addressed by subsequent related drafts that address 
related issues.


6.0 References: 
1. M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg,  "SIP: 
   Session Initiation Protocol", IETF Standards RFC 2543, March 1999.
2. H. Schulzrinne Columbia U.,  "The Session Initiation Protocol SIP"
   tutorial,  January 18, 2000
3. Ferdinand  Wagner, "The Virtual Finite State Machine: Executable 
   Control Flow Specification."  Rosa Fisher-Low Verlag, 1994
4. The Intelligent Network Standards. Their Applications to Services 
   (McGraw Hill Series on Telecommunications), Igor Faynberg et al, 
   November 1996.


[Page 5]        Call Model for IP Telephony   J. Dobrowolski et al.
Expires Dec 2000.

5. Kumar V. Vemuri, Lucent Technologies, "The Call Model Integration 
   Framework", INTERNET-DRAFT, Work in Progress.
   http://search.ietf.org/internet-drafts/draft-vemuri-cmi-framework-00.txt
6. J. Douglas, K. Vemuri, Lucent Technologies, "INSeCT (IN Services for 
   Converged Telephony)", ICIN2000.
7. Vijay K. Gurbani, Lucent Technologies,  "Accessing IN services from 
   SIP networks" INTERNET-DRAFT, Work in Progress.
   http://search.ietf.org/internet-drafts/draft-gurbani-iptel-sip-to-in-01.txt


7.0 Authors' addresses: 

    Janusz Dobrowolski,			Musa Unmehopa,
    Lucent Technologies,		BE 532
    263 Shuman Blvd.			Larenseweg 50
    Naperville, IL 60566		Postbus 1168
    USA.				Hilversum, 1200 BD
    jdobrowolski@lucent.com		Netherlands.
					unmehopa@lucent.com
    Michel Grech,
    Lucent Technologies,		Kumar Vemuri,
    SIGMA				Lucent Technologies,
    Optimus Windmill Hill		263 Shuman Blvd.
    Business Park			Naperville, IL 60566
    Swindon, WI SN5-6PP 		USA.
    UK             			vvkumar@lucent.com
    grech@lucent.com              
  
    Shehryar Qutub,
    Lucent Technologies,
    263 Shuman Blvd.
    Naperville, IL 60566
    USA.
    squtub@lucent.com

8.0 Acknowledgments
The authors would like to thank Jack Kozik for interesting discussions
pertaining to ideas discussed in the draft.

9.0 Full Copyright Statement

Copyright (C) The Internet Society (2000).  All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are included
on all such copies and derivative works.  However, this document itself
may not be modified in any way, such as by removing the copyright notice
or references to the Internet Society or other Internet organizations,
except as needed for the purpose of developing Internet standards in
which case the procedures for copyrights defined in the Internet
Standards process must be followed, or as required to translate it into
languages other than English.  The limited permissions granted above are
perpetual and will not be revoked by the Internet Society or its
successors or assigns.  This document and the information contained
herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."

[Page 6]        Call Model for IP Telephony   J. Dobrowolski et al.
Expires Dec 2000.