Transcript Document
Happy Diwali
A Festival of Light
Diwali or Deepaawali means an Array of Lamps i.e .Rows of diyas (Deep =
Lamp, Vali =Array). Of all the festivals celebrated in India, Diwali is by far the
most glamorous and important. Enthusiastically enjoyed by people of every
religion, its magical and radiant touch creates an atmosphere of joy and festivity.
As a family festival, it is celebrated 20 days after Dussehra, on the 13th day of the
dark fortnight of the month of Ashwin (October / November). This year it falls on
14th Nov. It is a festival of lights symbolizing the victory of righteousness and the
lifting of spiritual darkness. It celebrates the victory of good over evil - and the
glory of light. This festival commemorates Lord Rama's return to his kingdom
Ayodhya after completing his 14-year exile. Homes are decorated, sweets are
distributed by everyone and thousands of lamps lit to create a world of fantasy.
Diwali is a time for fun and revelry. Diwali is also a time for pooja and tradition.
An Overview of CINEMA
Implementation
Overview
•
Modules
•
Applications
•
Performance
•
Misc
–
–
–
•
Compilation
Installation
Portability
Current and
Future work
Presented by: Kundan Singh
Joint work with Wenyu Jiang,
Jonathan Lennox, Sankaran
Narayanan, Henning Schulzrinne
and Min Yan
Nov 14, 2001
IRT Group Meeting
Overview
Multimedia Communication Protocols
Internet
Telephony
Interactive
voice response
Internet
Radio/TV
Messaging
and Presence
Video
conferencing
Unified
messaging
Media
Application layer
Transport (TCP, UDP)
Network (IPv4, IPv6)
Link layer
Physical layer
H.323
SIP
RTSP RSVP RTCP
G.711
MPEG
RTP
Signaling
Quality of
service
Media
transport
3
Overview
CINEMA - Columbia InterNet Extensible Multimedia Architecture
A flexible architecture to support wide range of multimedia
communication applications, both clients and servers
CINEMA Applications
Proxy server, media server, voice mail, conferencing, etc.
CINEMA Libraries
Parsing, SIP, SDP, RTP, mySQL interface, SNMP interface, Portability stubs, etc.
4
Overview
SIP and sipd
•
Address based on email ([email protected])
1. DNS
home.compc1.home.com
pc1.home.com 129.59.19.140
office.com
2. INVITE [email protected]
3. INVITE [email protected]
(proxy mode)
Bob
(2)
Alice
(3)
m2.home.com
Columbia.edu
Cisco.com
sipd home.com
5
Overview
sipd – Example scenario
Alice
(9)
(8)
(10)
(13)
(7) (6)
(6)
(5)
(4)
(3)
Bob
(12)
(2)
(6)
(11)
(1)
6
An Overview of CINEMA
Implementation
Overview
•
Modules
•
Applications
•
Performance
•
Misc
–
–
–
•
Compilation
Installation
Portability
Current and
Future work
Various CINEMA
libraries and their
functionality
7
Modules
Functionality
•
•
•
•
•
•
•
Message parsing: SIP, RTSP
Transaction state and client branch
User agent call state
Interface to external modules: database, SNMP
Higher level policy: sip-cgi
Canonicalize: e.g., Henning.Schulzrinne => hgs
Authentication: basic, digest
8
Modules
Message Parsing (libcine)
GET /sip HTTP/1.0
Host: www.cs.columbia.edu
…
HTTP
DESCRIBE rtsp://… RTSP/1.0
Accept: application/sdp
…
RTSP
•
SIP
INVITE sip:… SIP/2.0
From: kns10@cs
…
Utilities for URL, headers, constructing and parsing messages
9
Modules
Transaction state (libsip)
•
•
•
A request and all its
responses
RTSP vs SIP requests
Request can be
• Proxied
• Redirected
• Generated
• Terminated
10
Modules
Call state (libsip++)
11
Modules
canonicalization [libcanon]
Bob.Wilson
canonicalize
bob@cs
12
Modules
Libraries
CINEMA Applications
RTSP media
server
rtspd
SIP proxy
server
sipd
SIP/H.323
gateway
sip323
LDAP
Xerces-C
SIP/RTP
conferencing
sipconf
SIP/RTSP
unified messaging
sipum
SIP/VoiceXML
browser
sipvxml
ViaVoice
Xerces-C
OpenH323
CINEMA Libraries
libNT
libcine
libsip
Win32
stub
Utilities
parsing
IPv6
Basic
SIP
library
MySQL
PWLib
Resparse
librtsp
RTSP
client
libsip++
SIP UA
library
librtp
RTP
library
libmixer
RTP
audio
mixer
libdict
libdb++
libsnmp
Hash
table
mySQL
intf
SIP
MIB
Parsing, SIP, SDP, RTP, mySQL interface, SNMP interface, Portability stubs, etc.
13
Modules
Layered structure
Other Applications
RTSP server
SIPUA
API
RTSP transaction
SIP transaction
RTSP API
RTP
Interface
SIP
proxy
Client Branch
HTTP Message Parsing
Transport layer (TCP/UDP)
14
An Overview of CINEMA
Implementation
Overview
•
Modules
•
Applications
•
Performance
•
Misc
–
–
–
•
Compilation
Installation
Portability
Current and
Future work
Our test-bed
architecture and its
components
15
Test-bed Architecture
Proxy, Redirect,
Registration server.
• Authentication
• Programmable (SIP- CGI)
sipd
SIP proxy,
redirect
server
SQL
database
OpenSource SQL database:
MySQL
http://www.mysql.com
User information:
• Contact location
• Profile (e.g., password)
• Aliases
• Address book
System information
• Configuration
16
Test-bed Architecture
Web based
configuration
sipd
SIP proxy,
redirect
server
Web server
SQL
database
User profile can be modified using web
browser.
• Creating new user (admin/normal)
• Changing profile and contact information
(“follow me” service).
• Web CGI scripts
17
• Both sipd and web scripts use the database
Test-bed Architecture
IP phones connected to the
departmental LAN. Users
are identified by id, e.g.,
“[email protected]”
Web based
configuration
sipd
SIP proxy,
redirect
server
Web server
SQL
database
e*phone
Hardware
Internet (SIP)
phones
Software (sipc) for desktop.
Allows audio, video, chat,
white board, device control,
instant message, presence and
desktop sharing.
sipc
Software SIP
user agents
18
Test-bed Architecture
Registration can also be
altered from the web
interface
Web based
configuration
Phones register themselves
with sipd when powered up.
sipd
SIP proxy,
redirect
server
Web server
SQL
database
e*phone
Sipd stores the contact information in the
database table:
[email protected] => [email protected]
Hardware
Internet (SIP)
Phones
128.59.19.233
sipc
Software SIP
user agents
There can be multiple contacts. All registered
phones ring, and the first to pick up is
connected.
19
Test-bed Architecture
Another IP phone
(1) When somebody calls
[email protected], sipd gets the
INVITE message and “proxies” the
call to the current location.
Web based
configuration
(2) Phone rings, the user
picks up the call and can
talk to the caller.
sipd
SIP proxy,
redirect
server
Web server
SQL
database
e*phone
Hardware
Internet (SIP)
Phones
128.59.19.233
Based on user profile, sipd may ask
for caller authentication.
sipc
Software SIP
user agents
20
Test-bed Architecture
Telephone
Telephone
switch
External T1
Dial “8” to reach outside line
Department
PBX
Departmental PBX (Nortel
Meridian) connects both
internal and external lines
to the gateway.
Internal T1
(Extension:713x)
T1/E1
RTP/SIP
sipd
SIP proxy,
redirect
server
Web based
configuration
Web server
SQL
database
SIP/PSTN Gateway
e*phone
Hardware
Internet (SIP)
phones
Cisco 2600 router with SIP/PSTN
gateway connects the
departmental LAN with the PBX.
sipc
Software SIP
user agents
21
Dials 9397132
Test-bed Architecture
Telephone
Telephone
switch
(1) When PBX receives a
call for 9397132, it
forwards the call to
extension 7132. 7130-7139
is assigned to the gateway.
Department
PBX
Web based
configuration
Internal T1
(Extension:713x)
T1/E1
RTP/SIP
SIP/PSTN Gateway
sipd
SIP proxy,
redirect
server
Web server
SQL
database (2) The
128.59.19.141
gateway forwards all
PSTN calls to sipd;
sip:[email protected]
e*phone
Hardware
Internet (SIP)
phones
(3) Sipd looks into the dialplan, finds a
mapping 7132=>[email protected] and
forwards the call to the current location of
“hgs”.
sipc
Software SIP
user agents
22
Test-bed Architecture
Telephone
Telephone
switch
(4) PSTN user
receives the call.
External T1
Dial “8” to reach outside line
(3) PBX forwards the call
to external line.
Department
PBX
T1/E1
RTP/SIP
SIP/PSTN Gateway
128.59.19.28
e*phone
sipd
SIP proxy,
redirect
server
Web based
configuration
Web server
SQL
database
128.59.19.141
(2) Sipd authenticates the caller
and checks permissions.
Sipd maps the number 5551212
to [email protected],
adding the prefix “8” and the
gateway address.
Hardware
Internet (SIP)
phones
(1) The IP user dials
“sip:[email protected]”.
sipc
Software SIP
user agents
23
Test-bed Architecture
Telephone
Telephone
switch
Telephone number
mappings and privileges
modifiable from the web
External T1
Department
PBX
Web based
configuration
Internal T1
T1/E1
RTP/SIP
sipd
SIP proxy,
redirect
server
Web server
SQL
database
SIP/PSTN Gateway
e*phone
Hardware
Internet (SIP)
phones
Can use no-DID (direct inward
dialing) mode for more numbers.
sipc
Software SIP
user agents
24
Additional Services
•
•
•
•
Advantage: cost savings + new services
“Think of receiving your voicemail messages in an email
that you can later play out in a conference to show it to
others”
Easy integration of email, web, instant messaging, etc.
Open architecture vs Close architecture (traditional
telephones)
25
Test-bed Architecture
Telephone
Telephone
switch
Programmable server:
SIP-CGI and Call Processing
Language (CPL)
Department
PBX
Web based
configuration
T1/E1
RTP/SIP
sipd
SIP proxy,
redirect
server
Web server
SQL
database
SIP/PSTN Gateway
e*phone
Hardware
Internet (SIP)
phones
Scripts can be uploaded by
clients also.
sipc
Software SIP
user agents
26
Test-bed Architecture
Telephone
Telephone
switch
Department
PBX
T1/E1
RTP/SIP
SNMP agent for SIP MIB.
Allows remote monitoring
and control of the SIP
server. (e.g., prompt when
an unauthorized
registration is attempted)
sipd
SIP proxy,
redirect
server
Web based
configuration
Web server
SQL
database
SIP/PSTN Gateway
e*phone
Hardware
Internet (SIP)
phones
SNMP
(Network
Management)
sipc
Software SIP
user agents
27
Test-bed Architecture
Telephone
Telephone
switch
Allows an H323 client
(Netmeeting) to use the
services of our SIP
infrastructure.
Web based
Department
PBX
configuration
T1/E1
RTP/SIP
sipd
SIP proxy,
redirect
server
Web server
SQL
database
SIP/PSTN Gateway
SNMP
(Network
Management)
e*phone
Hardware
Internet (SIP)
phones
NetMeeting
siph323
SIPH.323
convertor
sipc
Software SIP
user agents
H.323
28
Test-bed Architecture
Telephone
Telephone
switch
RTSP media
server
Generic media server for
playback and recording of
messages. Can work with
Department
existing
RTSP client,
PBX
Apple’s QuickTime.
T1/E1
RTP/SIP
rtspd
Quicktime
RTSP
RTSP clients
sipum
SIP/RTSP
Unified
messaging
sipd
SIP proxy,
redirect
server
Web based
configuration
Web server
SQL
database
SIP/PSTN Gateway
e*phone
Hardware
Internet (SIP)
phones
sipc
Software SIP
user agents
SNMP
(Network
Management)
Provides a voice mailNetMeeting
and
siph323
answering machine service
SIPH.323
H.323
to all
the registered
users.
convertor
Has web interface for
accessing voice mails.
29
Test-bed Architecture
Telephone
Telephone
switch
Centralized conferencing
server for audio and video.
Users can
join from IP as
Department
well asPBX
PSTN.
T1/E1
RTP/SIP
rtspd
RTSP media
server
sipconf
SIP
conference
server
sipd
SIP proxy,
redirect
server
Quicktime
RTSP
RTSP clients
sipum
SIP/RTSP
Unified
messaging
Web based
configuration
Web server
SQL
database
SIP/PSTN Gateway
SNMP
(Network
Management)
e*phone
Hardware
Internet (SIP)
phones
NetMeeting
siph323
SIPH.323
convertor
sipc
Software SIP
user agents
H.323
30
maps 7139=>
Test-bed ArchitectureSipd
[email protected]
Telephone
Telephone
PSTN
switch user
rtspd
dials 1-212-9397139
128.59.19.196
sipconf
SIP
conference
server
Department
PBX
T1/E1
RTP/SIP
sipd
SIP proxy,
redirect
server
RTSP media
server
RTSP
RTSP clients
sipum
SIP/RTSP
Unified
messaging
Web based
configuration
Web server
SQL
database
SIP/PSTN Gateway
Netmeeting user dials
“sip:[email protected]”
SNMP
(Network
Management)
SIP user dials
e*phone
“sip:[email protected]”
Hardware
Internet (SIP)
phones
Quicktime
NetMeeting
siph323
SIPH.323
convertor
sipc
Software SIP
user agents
H.323
31
Our IP telephony test-bed
Telephone
Telephone
switch
rtspd
RTSP media
server
sipconf
SIP
conference
server
Department
PBX
T1/E1
RTP/SIP
sipd
SIP proxy,
redirect
server
Quicktime
RTSP
RTSP clients
sipum
SIP/RTSP
Unified
messaging
Web based
configuration
Web server
SQL
database
SIP/PSTN Gateway
SNMP
(Network
Management)
e*phone
Device GW
Hardware
Internet (SIP)
phones
X 10
NetMeeting
siph323
SIPH.323
convertor
sipc
Software SIP
user agents
H.323
32
W. Jiang, J. Lennox, H. Schulzrinne and K. Singh, “Towards
Junking the PBX: Deploying IP Telephony". NOSSDAV 2001,
PSTN to IP Call
PBX
PSTN
External T1/CAS
1 Call 9397134
713x is called a part of
Coordinated Dial Plan
(CDP) in a Nortel PBX
Gateway
Internal T1/CAS
(Ext:7130-7139)
2
Call 7134
Ethernet
Regular phone
(internal)
5
3
SIP server
• Direct Inward Dial (DID) direct and simple
• No-DID - dial extension,
supports more users
sipc
Bob’s phone
SQL
database
sipd
4
7134 => bob
33
IP to PSTN Call
PBX
PSTN
External T1/CAS
5 Call 5551212
Gateway
(10.0.2.3)
Internal T1/CAS
4 Call 85551212
3
Ethernet
5551212
Regular phone
(internal, 7054)
Note: In this direction
there is no distinction
between DID and nonDID calls.
1
Bob calls
5551212
SIP server
sipc
2
SQL
database
sipd
Use sip:[email protected]
34
An Overview of CINEMA
Implementation
Overview
•
Modules
•
Applications
•
Performance
•
Misc
–
–
–
•
Compilation
Installation
Portability
Current and
Future work
Discussion of some
performance issues and
solutions
35
Performance
Why is it important ?
•
•
•
•
Reduce server cost per user => more users per server
Registration: 100 requests/s => 180000 registered users
(1 hr refresh time, digest authentication)
Call: 100 requests/s => 120000 calls per hour (record
route)
Bandwidth: 1 Gb/s => (approx) 6250 bi-directional
G.711 simultaneous participants in a conference.
36
Performance
For which components ?
•
Signaling: proxy, registrar (sipd)
–
–
–
–
•
Receive message
Act on it (canonicalize, database lookup)
Proxy the message
Send/proxy response back
Media: sipconf, rtspd
–
–
–
–
Some processing for each media stream
File I/O
Encode/decode (audio mixing)
Forward packets (video)
37
Performance
Threads
•
One thread per request
–
–
–
1.
2.
For 1MB virtual memory per thread on 32 bit machine: max
limit of 4000 threads. OS limits (for regular user 1024 pthreads
on solaris)
30 second wait per stateful INVITE request; limits to 130 R/s
Thread creation overhead
Customize stack size
Use thread pool or event model
38
Performance
Thread pool
•
•
•
•
•
•
•
Request are put in an event queue
Worker threads pick up the event and execute
Fix the number of worker threads
G/G/T/N queue
Use thread pool for all requests
Need to rewrite sleep/wakeup so that 30 sec wait does
not waste a thread
Will multiple process help? may be for stateless proxies
39
Performance
In-memory DB
•
•
•
•
•
Every query to database affects turn-around time
Duplicate the DB in main memory; hash-table
Less than 4k per user (?)
Replacement algorithm? Not needed
Synchronization: separate threads
– Primary user table, aliases: relatively static, readonly by sipd,
refresh every 30 min
– Contacts table: read-write, refreshed every 2 min
– Read only modified records since last read, write back only
modified records
40
Performance
Database
• NFS issues (log, scripts, database files?)
• SQL logging: currently serialized; use lazy write back;
logging at the end of request processing, so it does not
affect response time but consumes resources (worker
thread) for longer time per request
• DB on same machine or on remote machine?
41
Performance
Bandwidth
• Assuming avg message length 130 bytes; on 100 Mb/s
with effective 40%, 3000 requests/s
• Affects more to media components
– Number of simultaneous media streams served by rtspd
– Number of participants in a conference by sipconf
– Number of simultaneous three party conferences by sipconf
42
Performance
General Comments
• Measure performance on various platforms (Linux, Solaris
Netra, Dec Alpha)
• Compare stateless vs stateful proxy
• Compare in-memory (fastsql) vs database (sql)
•
•
•
43
An Overview of CINEMA
Implementation
Overview
•
Modules
•
Applications
•
Performance
•
Misc
–
–
–
•
Compilation
Installation
Portability
Current and
Future work
44
Compilation
• Autoconf, configure and make for Unix platforms
– Solaris, Linux, FreeBSD, Tru64
$ ./configure –with-mysql=… --with-…
$ make sipconf
• Microsoft VC++ 6.0 for Windows NT/2000
• Makefile.in (global), module.mk (per module)
45
Installation
And software distribution
• GUI based configuration
• Package manager (Sun, Linux, FreeBSD,…), Installation
scripts, windows install shield
• Monitor scripts, RC
46
Portability
Cross platform support
•
•
•
•
•
•
Endian-ness: Big endian (Sparc, DEC), little endian (Intel)
32 bit vs 64 bit
Unix vs Windows standard libraries (threads)
Re-entrant APIs (gethostbyname_r, strtok_r)
NTutils for win32
Shared libraries compilation (?)
47
Documentation
• software documentation:
– http://www.cs.columbia.edu/IRT/cinema
• Overview:
– Paper: http://www.cs.columbia.edu/~hgs/papers/Jian0106_Junking.pdf
– Tech report (incomplete):
http://www.cs.columbia.edu/~kns10/publication/cinematr.pdf
• Compilation instructions:
– README, README.build, NT/README.win32 files
• This presentation:
– http://www.cs.columbia.edu/~kns10/talks (will be put up shortly)
48
Current and Future Work
•
•
•
•
•
•
•
•
Improved installation
Address book
Calendar and event notification
Conference recording (local file, media server)
File sharing in a conference from web
Voice dialogs for conferencing and voicemail
Load balancing on multiple conference servers
Conference (floor) control from web
49
Current and Future Work
• From a multimedia communication test bed to a multimedia
collaboration portal environment
• Scaling to large call volumes and users
50
Publications
For more information
•
•
•
•
•
W. Jiang, J. Lennox, H. Schulzrinne and K. Singh, “Towards Junking the PBX:
Deploying IP Telephony". NOSSDAV 2001,
H. Schulzrinne, S. Narayanan, J. Lennox and M. Doyle, “SIPstone –
Benchmarking SIP Server Performance”. Aug 2001. http://www.sipstone.org
Kundan Singh, Gautam Nair and Henning Schulzrinne, "Centralized
Conferencing using SIP". Proceedings of the 2nd IP-Telephony Workshop
(IPTel'2001), April 2001.
K. Singh, H.Schulzrinne, "Interworking Between SIP/SDP and H.323".
Proceedings of the 1st IP-Telephony Workshop (IPTel'2000), April 2000.
Kundan Singh and Henning Schulzrinne, "Unified Messaging using SIP and
RTSP". IP Telecom Services Workshop 2000, Sept 2000. Atlanta, Georgia,
U.S.A.
51