Title: Happy Diwali A Festival of Light
1Happy DiwaliA 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.
2An 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
3OverviewMultimedia Communication Protocols
4OverviewCINEMA - 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.
5OverviewSIP and sipd
- Address based on email (alice_at_home.com)
- DNS home.com?pc1.home.com
- pc1.home.com ?129.59.19.140
- INVITE alice_at_home.com
- INVITE alice_at_m2.home.com (proxy mode)
office.com
Bob
Alice
(2)
(3)
m2.home.com
Columbia.edu
Cisco.com
home.com
sipd
6Overviewsipd Example scenario
(1)
7An Overview of CINEMA Implementation
- Overview
- Modules
- Applications
- Performance
- Misc
- Compilation
- Installation
- Portability
- Current and Future work
Various CINEMA libraries and their functionality
8ModulesFunctionality
- 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 gt hgs
- Authentication basic, digest
9ModulesMessage Parsing (libcine)
GET /sip HTTP/1.0 Host www.cs.columbia.edu
DESCRIBE rtsp// RTSP/1.0 Accept
application/sdp
INVITE sip SIP/2.0 From kns10_at_cs
- Utilities for URL, headers, constructing and
parsing messages
10ModulesTransaction state (libsip)
- A request and all its responses
- RTSP vs SIP requests
- Request can be
- Proxied
- Redirected
- Generated
- Terminated
11ModulesCall state (libsip)
12Modulescanonicalization libcanon
canonicalize
bob_at_cs
13ModulesLibraries
Parsing, SIP, SDP, RTP, mySQL interface, SNMP
interface, Portability stubs, etc.
14ModulesLayered structure
Other Applications
RTSP server
SIPUA API
SIP proxy
RTSP API
RTP Interface
RTSP transaction
HTTP Message Parsing
SIP transaction
Client Branch
Transport layer (TCP/UDP)
15An Overview of CINEMA Implementation
- Overview
- Modules
- Applications
- Performance
- Misc
- Compilation
- Installation
- Portability
- Current and Future work
Our test-bed architecture and its components
16Test-bed Architecture
- OpenSource SQL database MySQL
- http//www.mysql.com
- User information
- Contact location
- Profile (e.g., password)
- Aliases
- Address book
- System information
- Configuration
- Proxy, Redirect, Registration server.
- Authentication
- Programmable (SIP- CGI)
17Test-bed Architecture
- User profile can be modified using web browser.
- Creating new user (admin/normal)
- Changing profile and contact information
(follow me service). - Web CGI scripts
- Both sipd and web scripts use the database
18Test-bed Architecture
IP phones connected to the departmental LAN.
Users are identified by id, e.g.,
hgs_at_cs.columbia.edu
Software (sipc) for desktop. Allows audio,
video, chat, white board, device control, instant
message, presence and desktop sharing.
19Test-bed Architecture
Registration can also be altered from the web
interface
Phones register themselves with sipd when
powered up.
Sipd stores the contact information in the
database table hgs_at_cs.columbia.edu gt
hgs_at_128.59.19.233 There can be multiple
contacts. All registered phones ring, and the
first to pick up is connected.
20Test-bed Architecture
Another IP phone
(1) When somebody calls hgs_at_cs.columbia.edu, sipd
gets the INVITE message and proxies the call to
the current location.
(2) Phone rings, the user picks up the call and
can talk to the caller.
Based on user profile, sipd may ask for caller
authentication.
21Test-bed Architecture
Telephone
Telephone switch
Departmental PBX (Nortel Meridian) connects both
internal and external lines to the gateway.
External T1
Dial 8 to reach outside line
Department PBX
Internal T1
(Extension713x)
SIP/PSTN Gateway
Cisco 2600 router with SIP/PSTN gateway connects
the departmental LAN with the PBX.
22Test-bed Architecture
Dials 9397132
Telephone
(1) When PBX receives a call for 9397132, it
forwards the call to extension 7132. 7130-7139 is
assigned to the gateway.
Telephone switch
Department PBX
Internal T1
(Extension713x)
(2) The gateway forwards all PSTN calls to sipd
sip7132_at_128.59.19.141
128.59.19.141
SIP/PSTN Gateway
(3) Sipd looks into the dialplan, finds a mapping
7132gthgs_at_cs.columbia.edu and forwards the call
to the current location of hgs.
23Test-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
(2) Sipd authenticates the caller and checks
permissions. Sipd maps the number 5551212 to
85551212_at_128.59.19.28, adding the prefix 8 and
the gateway address.
128.59.19.141
SIP/PSTN Gateway 128.59.19.28
(1) The IP user dials sip5551212_at_cs.columbia.edu
.
24Test-bed Architecture
Telephone
Telephone switch
Telephone number mappings and privileges
modifiable from the web
External T1
Department PBX
Internal T1
SIP/PSTN Gateway
Can use no-DID (direct inward dialing) mode for
more numbers.
25Additional 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)
26Test-bed Architecture
Telephone
Telephone switch
Programmable server SIP-CGI and Call Processing
Language (CPL)
Department PBX
SIP/PSTN Gateway
Scripts can be uploaded by clients also.
27Test-bed Architecture
Telephone
Telephone switch
SNMP agent for SIP MIB. Allows remote monitoring
and control of the SIP server. (e.g., prompt when
an unauthorized registration is attempted)
Department PBX
SIP/PSTN Gateway
28Test-bed Architecture
Telephone
Telephone switch
Allows an H323 client (Netmeeting) to use the
services of our SIP infrastructure.
Department PBX
SIP/PSTN Gateway
29Test-bed Architecture
Telephone
Telephone switch
Generic media server for playback and recording
of messages. Can work with existing RTSP client,
Apples QuickTime.
Department PBX
SIP/PSTN Gateway
Provides a voice mail and answering machine
service to all the registered users. Has web
interface for accessing voice mails.
30Test-bed Architecture
Telephone
Telephone switch
Centralized conferencing server for audio and
video. Users can join from IP as well as PSTN.
Department PBX
SIP/PSTN Gateway
31Test-bed Architecture
Sipd maps 7139gt meeting_at_128.59.19.196
Telephone
Telephone switch
PSTN user dials 1-212-9397139
128.59.19.196
Department PBX
Netmeeting user dials sipmeeting_at_cs.columbia.edu
SIP/PSTN Gateway
SIP user dials sipmeeting_at_cs.columbia.edu
32Our IP telephony test-bed
Telephone
Telephone switch
Department PBX
SIP/PSTN Gateway
W. Jiang, J. Lennox, H. Schulzrinne and K. Singh,
Towards Junking the PBX Deploying IP
Telephony". NOSSDAV 2001,
33PSTN to IP Call
- Direct Inward Dial (DID) - direct and simple
- No-DID - dial extension, supports more users
34IP to PSTN Call
Note In this direction there is no distinction
between DID and non-DID calls.
35An Overview of CINEMA Implementation
- Overview
- Modules
- Applications
- Performance
- Misc
- Compilation
- Installation
- Portability
- Current and Future work
Discussion of some performance issues and
solutions
36PerformanceWhy is it important ?
- Reduce server cost per user gt more users per
server - Registration 100 requests/s gt 180000 registered
users (1 hr refresh time, digest authentication) - Call 100 requests/s gt 120000 calls per hour
(record route) - Bandwidth 1 Gb/s gt (approx) 6250 bi-directional
G.711 simultaneous participants in a conference.
37PerformanceFor 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)
38PerformanceThreads
- One thread per request
- 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
39PerformanceThread 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
40PerformanceIn-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
41PerformanceDatabase
- 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?
42PerformanceBandwidth
- 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
43PerformanceGeneral Comments
- Measure performance on various platforms (Linux,
Solaris Netra, Dec Alpha) - Compare stateless vs stateful proxy
- Compare in-memory (fastsql) vs database (sql)
-
-
-
44An Overview of CINEMA Implementation
- Overview
- Modules
- Applications
- Performance
- Misc
- Compilation
- Installation
- Portability
- Current and Future work
45Compilation
- 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)
46InstallationAnd software distribution
- GUI based configuration
- Package manager (Sun, Linux, FreeBSD,),
Installation scripts, windows install shield - Monitor scripts, RC
47PortabilityCross 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 (?)
48Documentation
- software documentation
- http//www.cs.columbia.edu/IRT/cinema
- Overview
- Paper http//www.cs.columbia.edu/hgs/papers/Jian
0106_Junking.pdf - Tech report (incomplete) http//www.cs.columbia.e
du/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)
49Current 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
50Current and Future Work
- From a multimedia communication test bed to a
multimedia collaboration portal environment - Scaling to large call volumes and users
51PublicationsFor 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.