Internet Draft I.Faynberg
draft-ietf-spirits-lucentocc-00.txt H. Lu
February 2000 J. Voelker
Expires August 2000 M. Weissman
W. Zhang
Lucent Technologies
On a pre-SPIRITS Implementation in
the Lucent Technologies Online Communications Center
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
This document describes the pre-SPIRITS Implementation of the
SPIRITS-like services in the Lucent Technologies Online
Communications Center (OCC). To this end, this document is a
contribution to the future Informational RFC, which is to be
published by the SPIRITS WG as indicated in its charter.
On the PSTN side, the OCC platform systematically uses the
Intelligent Network (IN) solutions, which were industry-proven to be
reliable, scalable, and compatible with the existing PSTN
infrastructure and services, yet easily adaptable to the Internet
requirements. Other essential elements of the platform include the
use of
1) Session Initiation Protocol (SIP) messaging services
2) Point-to-Point (PPP) Protocol
3) Interactions with the Voice-over-IP (VoIP) Gateway and Gatekeeper
for establishing the combined voice path through PSTN and Internet
Lucent Online Communications Center February 2000
SPIRITS [Page 2]
4) Microsoft NetMeeting (tm) software at the end-users' PCs (or
Internet appliances)
5) Java (tm) Run-Time Environment (JRE), and
6) 1.2 Java Native Interface (JNI) for certain security capabilities
1. Introduction
This document describes the pre-SPIRITS Implementation of the
SPIRITS-like services in the Lucent Technologies Online
Communications Center (OCC). To this end, this document is a
contribution to the future Informational RFC, which is to be
published by the SPIRITS WG as indicated in its charter.
The rest of this document contains the platform and service
description, architecture description, protocol and operations
considerations, and the conclusion, in respective sections numbered 2
through 5. Section 7 contains references, and Section 8 is the
appendix.
The authors wish to acknowledge an earlier draft [1], which started
the discussion of this topic and provided the information partly used
in this document. OCC includes the next generation of Lucent's
Internet Call Waiting solution described in [1].
2. The OCC Platform and Its Services
The strength of the OCC platform is in its foundation on the
Intelligent Network (IN) solutions, which were industry-proven to be
reliable, scaleable, and compatible with the existing PSTN
infrastructure and services, yet easily adaptable to the Internet
requirements.
Other essential elements of the platform include the use of
1) Session Initiation Protocol (SIP) [2] messaging services
2) Point-to-Point Protocol [3]
3) Interactions with the Voice-over-IP (VoIP) Gateway and Gatekeeper
(and, consequently, the H.323 family of protocols) for establishing
the combined voice path through the PSTN and the Internet
4) Microsoft NetMeeting (tm) (version 2.1) software at the end-users'
PCs (or Internet appliances)
5) Java (tm) Run-Time Environment (JRE) and
6) 1.2 Java Native Interface (JNI) for certain security capabilities.
For the purposes of the service description, the basic components of
Lucent Online Communications Center February 2000
SPIRITS [Page 3]
the OCC platform are the OCC Server and OCC Client, which are
described in detail in the Architecture section. The OCC Server
interacts with the PSTN entities over the secure intranet via plain-
text SIP messages. With the PC Client, the OCC Server interacts via
encrypted SIP messages.
The OCC Server run-time environment effectively consists of two
multi-threaded processes responsible for Call Registration and Call
Notification services, respectively.
OCC Call registration services are initiated from an end-user's PC
(or Internet appliance). With those, a subscriber registers for the
Notification services from his or her end-point. (Thus, these types
of services are not, strictly speaking, SPIRITS services but rather
have a flavor of PINT services.)
All OCC call notification services are PSTN-initiated. One common
feature of these services is that of informing the user of the
incoming telephone call via the Internet, without having any effect
on the line already used by the modem. (A typical call waiting tone
would interrupt the Internet connection, and it is a standard
practice to disable the "old" PSTN call waiting service for the
duration of the call in support of the Internet connection between
the end-user and the ISP.)
When a call comes in, the user is presented with a pop-up dialog box,
which displays the caller's number (if available), name (again, if
available), as well as the time of the call. If the called party does
not initiate an action within a specified period of time the call is
rejected.
Once informed of the incoming call, the end-user has the following
options (indicated in the pop-up window) as far as the disposition of
the call is concerned:
- Accept the call via the PSTN line (thus terminating the Internet
session)
- Reject the call
- Forwarding the call to voice mail
- Forwarding the call to another number (Incidentally, this feature
is implemented using a mechanism similar to that developed for the
PINT click-to-call [4].)
- Playing a pre-recorded message to the calling party and
disconnecting the call (In the future this particular treatment can
be modified so as to give the caller a choice of options)
- Answering the PSTN call via the Internet using Voice-over-IP.
(Microsoft's NetMeeting software is required for this feature and the
subscriber's PC must be equipped with a microphone and speaker
system.)
Lucent Online Communications Center February 2000
SPIRITS [Page 4]
In addition, certain actions expected of the called party can be
pre-defined by the subscriber. To this end, the following features
have been implemented:
- Automatic Incoming Call Treatment: when activated, provides the
subscriber with the capability to pre-define a disposition that will
be used automatically for all incoming calls during a particular OCC
session. In the 'PREFERENCES' file, the subscriber can select any
available call treatment for this feature. If the subscriber selects
Mail,' all subsequent incoming calls will be subjected to the
selected disposition without any subscriber intervention.
- Intelligent Profiles: provides the subscriber with the capability
to determine dispositions automatically, based on the calling party
numbers. The subscriber selects a particular disposition for each
such number and stores this information in a profile. The OCC Client
checks the profile and sends the appropriate response to the server
without presenting the call to the called party. The subscriber can
determine the outcome of these calls from the caller log (described
below).
- Unpublished/Private Call Treatment: provides the subscriber with
the ability to pre-define a disposition for all incoming calls where
the calling party name (or number) is private or unpublished.
- Caller Log: provides the OCC Subscriber with a detailed log of
incoming calls. The caller log contains the following fields:
1) incoming call date and time
2) incoming calling party number
3) incoming calling party name (whenever available) and
4) call disposition.
The caller log is accessible from the OCC pull-up menu.
3. Architecture
Figure 1 of the Appendix depicts the joint PSTN/Internet physical
architecture relevant to OCC operation. The CSN and SCP are Lucent
implementations of the ITU-T IN Recommendations (in particular, the
Recommendation Q.1205 where these entities are defined) augmented by
the requirements of Bellcore's Advanced Intelligent Network (AIN)
Release 1.0) and equipped with other features. The Central Office may
be any switch supporting the Integrated Services Digital Network
(ISDN) Primary Rate Interface (PRI) and the call forwarding feature
that would allow it to interwork with the CSN. Alternatively, in
order to interwork with the SCP, it needs to be an IN Service
Switching Point (SSP) (defined in the ITU-T IN Recommendation
Q.1205). In the latter case, the central office is connected to the
SCP via signaling system No. 7 and Intelligent Network Application
Lucent Online Communications Center February 2000
SPIRITS [Page 5]
Part Protocol (INAP) at the application layer.
The Service Management System (SMS) is responsible for provisioning
of the SCPs, CSNs, and central offices. In particular, for IN support
of the Internet Call Waiting, it must provision the Central Office to
direct a terminating attempt query to the subsystem number
corresponding to the OCC SCP SPA based on the Termination Attemp
Trigger (TAT). In addition the Subscriber Directory Number (DN),
Personal Identification Number(PIN) and Language ID are provisioned
for each subscriber into the OCC Subscriber entry of the SCP Real
Time Data Base (RTDB). The structure of an RTDB entry is presented in
Figure 2 of the Appendix.
The Central Office, SMS, CSN, and SCP are the only PSTN elements of
the architecture.
The other elements are VoIP Gateway and Gatekeeper defined in the
ITU-T Recommendation H.323, whose roles are to establish and provide
the part of the voice path over IP. The Central Office is explicitly
connected to the VoIP Gateway via the ISDN PRI connection. In this
architecture, CSN, VoIP Gateway, and VoIP Gatekeeper are the only
entities connected to the Internet, with each respective connection
protected by a firewall. The CSN and SCP are interconnected via a
secure IP Intranet. There may be more than one CSN or SCP (or both)
(and the SCPs come in mated pairs interconnected by X.25, anyway) in
a network, but these details are not essential to the level of
description chosen for this document. However, we note that load
balancing and adaptation to failures by the use of alternative nodes
is incorporated into the architecture.
When someone attempts to call the subscriber, the central office
serving that subscriber interrupts normal termination processing and
notifies the SCP which, in turn, can check whether that subscriber
has registered that he/she is logged onto the internet. Exploiting
the standardized layering of service logic that characterizes the
intelligent network, the central office will do this without
requiring the installation or development of any central office
software specific to OCC. The central office is simply provisioned to
query the SCP when there is a termination attempt (the so-called
Termination Attempt trigger -TAT) directed to the subscriber's
directory number. (Note that the Central Office has no bearer
circuit connection to the SCP, only a signaling one [over Signaling
System No.7]).
TCP/IP communication between the SCP and CSN utilizes a secure
intranet. The subscriber, of course, is assumed to have access only
to the Internet.
The intelligent network entities, the SCP and CSN, do have OCC
related software. The OCC server is implemented on the CSN. One
service package application (SPA) is installed on the Service
Control Point (SCP). The other SPA is located in the CSN and is
needed only when the subscriber elects to accept an incoming call via
VOIP.
Lucent Online Communications Center February 2000
SPIRITS [Page 6]
The OCC Server is a collection of Java servers on the CSN whose
responsibilities include:
- listening for incoming Call Notification (TCP/IP) messages from the
SCP SPA.
- de-multiplexing/multiplexing incoming Call Notification messages
sent from the SCP SPA.
- relaying messages between the OCC Client and the SCP SPA.
- listening for and authentication of OCC Client requests for service
registration.
- handling encryption/decryption of messages exchanged with the OCC
Client, and generating session-specific encryption/decryption keys.
The OCC Client is a collection of software components that run on the
Subscriber's PC. Its components include the SIP User Agent Server
(which handles the exchange of SIP messages with the OCC Server and
invokes the Call Notification pop-up window) and a daemon process
that monitors the Point-to-Point Protocol (PPP) actions and is
responsible for starting and stopping the SIP User Agent Server.
4. Protocol and Operations Considerations
The OCC Server uses distinct TCP/IP ports configured on the CSN to
1) Listen for incoming SIP REGISTER messages (in support of
registration service) sent from the OCC Client
2) Listen for incoming SIP INVITE (in support of call notification
service) sent from the SCP.
During call notification, the SCP SPA is the client and thus is
started after the OCC Server has been started. The SCP SPA and OCC
Server exchange SIP messages over TCP/IP (via the Secure Intranet)
using a "nailed-up" connection which is initiated by the SCP SPA.
This connection is initiated at the time the SCP SPA receives the
very first SIP REGISTER request from the OCC Server, and must prevail
for as long as the SPA is in the in-service state. The SCP SPA also
supports restarting the connection after any failure condition.
The OCC Server supports multithreading. For each Call
Notification/Call Disposition event, a separate thread is used to
handle the call. This model supports multi-threading on a "per
message" basis where every start message (SIP INVITE) received from
the SCP SPA uses a separate thread of control to handle the call.
Subsequent messages containing the same session Call-ID (which
includes the SPA's instance known as "call_index" and the SCP
hostname) as the original start message is routed to the same thread
that previously handled the respective initiating message.
Lucent Online Communications Center February 2000
SPIRITS [Page 7]
The OCC Server dynamically opens a new TCP/IP socket with the OCC
Client for each Call Notification/Call Disposition session. This
socket connection uses the IP address and a pre-configured port on
the PC running the OCC Client software.
For session registration, the OCC Server dynamically opens TCP/IP
sessions with the SCP SPA. The SCP SPA listens at a pre-configured
port to incoming SIP REGISTER messages sent by OCC Clients via the
OCC Server. To exchange SIP messages with the OCC Server, the OCC
Client dynamically opens a TCP/IP socket connection with the OCC
Server using a pre-configured port number on the CSN and the CSN's IP
address.
For the VoIP Scenario, the CSN SPA, acting as a client, dynamically
opens TCP/IP sessions with the SCP that handled the initial TAT
query. As soon as the CSN SPA has successfully made the correlation
and connected the two incoming call legs pertaining to a VoIP call
back, the SIP 180 RINGING message will be sent back to the SCP SPA
running on the actual SCP that instructed the SSP to forward the
Caller to the CSN. This SIP message, which contains the VoIP Call
Back DN dialed by one of the bridged call legs, is an indication to
the SCP SPA that the VoIP Call Back DN is freed up.
A typical subscription scenario works like this:
1) Each VoIP Gateway is provisioned with a list of authorized VoIP
Call Back DNs, each terminating on a particular CSN. These special
DNs are used when an on-line subscriber elects to receive an incoming
call via VOIP. In particular, they assist in routing an outgoing
call from the subscriber's NetMeeting to the particular CSN to which
to SCP is (roughly concurrently) forwarding the incoming call.
(These two calls are joined in the CSN to connect the incoming call
to the subscriber's Netmeeting client.) Furthermore, these special
DNs permits that CSN to associate, and hence bridge, the correct
pair of call legs to join the party calling the subscriber to the
call from the subscriber's NetMeeting client.
2) The subscriber calls a PSTN service provider and signs up for the
service
3) An active Terminating Attemp Trigger (TAT) is assigned to the
subscriber's DN at his central office.
4) The PSTN service provider uses the SMS to create a record for the
subscriber and provision the Subscriber DN and PIN in the OCC RTDB
table in the SCP
5) The subscriber is provided with the OCC Client software, a PIN and
a file containing the OCC Server IP Addresses.
At that point the subscriber can install the OCC Client software on
his or her PC.
This draft concentrates in detail on the particular scenario of the
Lucent Online Communications Center February 2000
SPIRITS [Page 8]
OCC Call Disposition-namely the acceptance of the call via voice over
IP, which proceeds as follows:
1. The OCC subscriber clicks on "Accept VoIP".
2. The OCC Client sends a "SIP 380 Alternative Service" message to
the OCC Server. This message includes a reference to the Call Back
DN which will ultimately be used by the CSN to associate the call leg
(soon to be initiated by the subscriber's NetMeeting) connecting to
the subscriber (via the VOIP gateway) to the corresponding the PSTN
call leg connecting to the calling party.
3. The OCC Server closes the TCP/IP session with the OCC Client and
sends to the SCP SPA the "SIP 380 Alternative Service" message which
includes the Call Back DN.
4. The SCP SPA instructs the Central Office to forward the call
incoming to the subscriber to the CSN. This instruction includes the
Call Back DN.
5. The SSP forwards the Caller to the CSN referencing the Call Back
DN. Note the Call Back DN, originally assigned the OCC client by the
SCP when the subscriber was alerted to the presence of an incoming
call attempt, flowed next to the OCC server when the client elected
to receive the call via VOIP, then to the SCP, then to the central
office in association with a SCP command to forward the incoming
call to the CSN, then to the OCC server on the CSN in association
with that forwarded call.
6. Meanwhile, the OCC Client extracts 1) the VoIP Call Back DN from
the SIP INVITE message received during Call Notification and 2) the
H323UID and H323PIN values from its properties file and updates the
'netmtg.cnf' file.
7. The NetMeeting application is launched and sets up a connection
with the VoIP Gateway.
8. Once a connection is established between NetMeetingTM and the VoIP
Gateway, NetMeetingTM initiates a phone call - passing to the VoIP
Gateway the Call Back DN as the destination DN.
9. The VoIP Gateway consults the VoIP Gatekeeper and authenticates
the NetMeetingTM call by verifying the H323UID and H323PIN values,
and by ensuring the called DN (= Call Back DN) is authorized for use.
10. After passing the authentication step, the VoIP Gateway dials
(via PSTN) the Call Back DN and gets connected to the CSN. The CSN
notes that it was reached by the particular Call Back DN.
11. The CSN bridges the Calling and Called parties together by
matching on the basis of the Call Back DN.
12. The CSN notifies the SCP (SIP 180 Ringing) of status and
references the Call Back DN so that the SCP can reuse it for other
Lucent Online Communications Center February 2000
SPIRITS [Page 9]
calls.
13. If the central office supports that two B channel transfer
(Lucent, Nortel, and perhaps other central office vender's do), an
optimization is possible. The CSN can have the central office
rearrange the topology of the newly connected call in such a way
that it flows only through the central office and no longer through
the CSN.
5. Conclusion
This document has described the pre-SPIRITS Implementation of the
SPIRITS-like services in the Lucent Technologies Online
Communications Center (OCC). To this end, this document is a
contribution to the future Informational RFC, which is to be
published by the SPIRITS WG as indicated in its charter.
6. Acknowledgements
We would like to thank Buddy Bright and Kumar Vemuri for providing
incisive comments on the draft.
7. References
[1] <draft-brusilovsky-icw-00.txt> Brusilovsky, A., E. Gausmann, V.
Gurbani, A.Jain, "A Proposal for Internet Call Waiting Service using
SIP ," January 1999. Work in Progress.
[2] Handley, H., H., Schulzrinne, E. Schooler, and J. Rosenberg.
SIP: Session Initiation Protocol. RFC 2543. March, 1999
[3] Simpson, W. The Point-to-Point Protocol (PPP). RFC 1661. July,
1994.
[4] <draft-ietf-pint-protocol-02.txt>. Petrack, S. and L. Conroy, The
PINT Service Protocol: Extensions to SIP and SDP for IP Access to
Telephone Call Services. Work in Progress. October, 1999
Lucent Online Communications Center February 2000
SPIRITS [Page 10]
8. Appendix
-------------------------
|PC or Network Appliance| (OCC Client)
-------------------------
| --------------
+---| Internet |
--------------
|
----------------
| Compact | --------------
| Service | | Service |
| Node (CSN) |------------| Management |
| OCC Server | | System(SMS)|
| OCC CSN SPA | --------------
| | :
|______________|-------[ IP INTRANET ]----------------------+
| | | : |
| | | .................. |
--------- | | --------
|Central|--|-------|------------------------|Service|
|Office | | | |Control|
---|----- | | |Point |
| | | | (SCP) |
---|----- | -----|-------- | |
| VoIP |--+ | VoIP | |OCC SCP|
|Gateway| | Gatekeeper | | SPA |
--------- -------------- ---------
Figure 1: OCC Physical Architecture
--------------------------------------------------------
DN | PIN | IP Address | Session Key | CNF | Language ID |
--------------------------------------------------------
Field Descriptions:
(DN) Directory Number - The subscriber's telephone number
(PIN) Personal Identification Number - The subscriber's password
IP Address - Internet Protocol Address of the subscriber
(CNF) Call Notification In Progress Flag(boolean) - Indicates if an
attempt to notify the subscriber of a call is currently in progress
Session Key - Unique Identifier for the current registration session
of the subscriber
Language ID - Language Identifier for the subscriber
Figure 2: Structure of the RTDB Subscriber Record
Lucent Online Communications Center February 2000
SPIRITS [Page 11]
9. Authors' Addresses
Igor Faynberg
Lucent Technologies
Room 4L-334
101 Crawfords Corner Road
Holmdel, NJ 07733-3030 US
E-mail: faynberg@lucent.com
Telephone: +1 732 949 0137
Hui-Lan Lu
Lucent Technologies
Room 4L-317
101 Crawfords Corner Road
Holmdel, NJ 07733-3030 US
E-mail: huilanlu@lucent.com
Telephone: +1 732 949 0321
John Voelker
Lucent Technologies
Room 1A-417
263 Shuman Blvd PO Box 3050
Naperville, IL 60566-7050
E-mail: jvoelker@lucent.com
Telephone: +1 630 713 5538
Mark Weissman
Lucent Technologies
SUITE 500
2000 Regency Pky
Cary, NC 27511-8506 US
E-mail: maw1@lucent.com
Telephone: +1 919 380 6813
Weizhong Zhang
Lucent Technologies
Room 01-A5-17
2000 Regency Parkway
Cary, NC 27511-8506
E-Mail: wzz@lucent.com
Telephone: +1 919 380-6638
Lucent Online Communications Center February 2000