E N D
Happy 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.
An Overview of CINEMA Implementation 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 Modules Applications Performance Misc Compilation Installation Portability Current and Future work
Interactive voice response Internet Telephony Internet Radio/TV Messaging and Presence Unified messaging Video conferencing H.323 RTSP RSVP RTCP Media G.711 MPEG Application layer RTP Transport (TCP, UDP) SIP Network (IPv4, IPv6) Link layer Quality of service Media transport Signaling Physical layer OverviewMultimedia Communication Protocols
OverviewCINEMA - 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.
OverviewSIP and sipd • Address based on email (alice@home.com) • DNS home.compc1.home.com • pc1.home.com 129.59.19.140 • INVITE alice@home.com • INVITE alice@m2.home.com (proxy mode) office.com Bob Alice (2) (3) m2.home.com Columbia.edu Cisco.com home.com sipd
Alice (9) (8) (10) (13) (7) (6) (6) (5) (4) (3) (12) (6) (11) (2) Bob Overviewsipd – Example scenario (1)
An Overview of CINEMA Implementation Overview Modules Applications Performance Misc Compilation Installation Portability Current and Future work Various CINEMA libraries and their functionality
ModulesFunctionality • 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
HTTP RTSP SIP ModulesMessage 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@cs … • Utilities for URL, headers, constructing and parsing messages
ModulesTransaction state (libsip) • A request and all its responses • RTSP vs SIP requests • Request can be • Proxied • Redirected • Generated • Terminated
Modulescanonicalization [libcanon] Bob.Wilson canonicalize bob@cs
CINEMA Applications RTSP media server SIP proxy server SIP/H.323 gateway SIP/RTP conferencing SIP/RTSP unified messaging SIP/VoiceXML browser rtspd sipd sip323 sipconf sipum sipvxml LDAP Xerces-C ViaVoice Xerces-C OpenH323 CINEMA Libraries libNT libcine libsip librtsp libsip++ librtp libmixer libdict libdb++ libsnmp RTSP client RTP library SIP MIB Win32 stub Utilities parsing IPv6 Basic SIP library SIP UA library RTP audio mixer Hash table mySQL intf MySQL PWLib Resparse ModulesLibraries Parsing, SIP, SDP, RTP, mySQL interface, SNMP interface, Portability stubs, etc.
ModulesLayered 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)
An Overview of CINEMA Implementation Overview Modules Applications Performance Misc Compilation Installation Portability Current and Future work Our test-bed architecture and its components
sipd SIP proxy, redirect server SQL database Test-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)
Web based configuration sipd SIP proxy, redirect server SQL database Web server Test-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
Web based configuration sipd SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents Test-bed Architecture IP phones connected to the departmental LAN. Users are identified by id, e.g., “hgs@cs.columbia.edu” Software (sipc) for desktop. Allows audio, video, chat, white board, device control, instant message, presence and desktop sharing.
Web based configuration sipd SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) Phones 128.59.19.233 Web server sipc Software SIP user agents Test-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@cs.columbia.edu => hgs@128.59.19.233 There can be multiple contacts. All registered phones ring, and the first to pick up is connected.
Web based configuration sipd SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) Phones 128.59.19.233 Web server sipc Software SIP user agents Test-bed Architecture Another IP phone (1) When somebody calls hgs@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.
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents Test-bed Architecture Telephone Telephone switch External T1 Departmental PBX (Nortel Meridian) connects both internal and external lines to the gateway. Dial “8” to reach outside line Department PBX Internal T1 (Extension:713x) SIP/PSTN Gateway Cisco 2600 router with SIP/PSTN gateway connects the departmental LAN with the PBX.
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents 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 Internal T1 (Extension:713x) (2) The gateway forwards all PSTN calls to sipd; sip:7132@128.59.19.141 128.59.19.141 SIP/PSTN Gateway (3) Sipd looks into the dialplan, finds a mapping 7132=>hgs@cs.columbia.edu and forwards the call to the current location of “hgs”.
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents 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 (2) Sipd authenticates the caller and checks permissions. Sipd maps the number 5551212 to 85551212@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 “sip:5551212@cs.columbia.edu”.
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents Test-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.
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)
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents Test-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.
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database SNMP (Network Management) e*phone Hardware Internet (SIP) phones Web server sipc Software SIP user agents Test-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
Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database SNMP (Network Management) e*phone Hardware Internet (SIP) phones SIPH.323 convertor Web server NetMeeting siph323 H.323 sipc Software SIP user agents Test-bed Architecture Telephone Telephone switch Allows an H323 client (Netmeeting) to use the services of our SIP infrastructure. Department PBX SIP/PSTN Gateway
rtspd Quicktime RTSP media server RTSP RTSP clients sipum SIP/RTSP Unified messaging Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database SNMP (Network Management) e*phone Hardware Internet (SIP) phones SIPH.323 convertor Web server NetMeeting siph323 H.323 sipc Software SIP user agents Test-bed Architecture Telephone Telephone switch Generic media server for playback and recording of messages. Can work with existing RTSP client, Apple’s 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.
rtspd Quicktime RTSP media server RTSP sipconf RTSP clients SIP conference server sipum SIP/RTSP Unified messaging Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database SNMP (Network Management) e*phone Hardware Internet (SIP) phones SIPH.323 convertor Web server NetMeeting siph323 H.323 sipc Software SIP user agents Test-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
rtspd Quicktime RTSP media server RTSP sipconf RTSP clients SIP conference server sipum SIP/RTSP Unified messaging Web based configuration sipd T1/E1 RTP/SIP SIP proxy, redirect server SQL database SNMP (Network Management) e*phone Hardware Internet (SIP) phones SIPH.323 convertor Web server NetMeeting siph323 H.323 sipc Software SIP user agents Sipd maps 7139=> meeting@128.59.19.196 Test-bed Architecture Telephone Telephone switch PSTN user dials 1-212-9397139 128.59.19.196 Department PBX Netmeeting user dials “sip:meeting@cs.columbia.edu” SIP/PSTN Gateway SIP user dials “sip:meeting@cs.columbia.edu”
rtspd Quicktime RTSP media server RTSP sipconf RTSP clients SIP conference server sipum SIP/RTSP Unified messaging Web based configuration sipd T1/E1 RTP/SIP Device GW X 10 SIP proxy, redirect server SQL database SNMP (Network Management) e*phone Hardware Internet (SIP) phones Web server SIPH.323 convertor NetMeeting siph323 H.323 sipc Software SIP user agents Our 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,
PBX Gateway PSTN Internal T1/CAS (Ext:7130-7139) External T1/CAS Call 9397134 Call 7134 Ethernet 713x is called a part of Coordinated Dial Plan (CDP) in a Nortel PBX 5 4 2 3 1 Regular phone (internal) SIP server SQL database sipd sipc Bob’s phone 7134 => bob PSTN to IP Call • Direct Inward Dial (DID) - direct and simple • No-DID - dial extension, supports more users
PBX Gateway (10.0.2.3) PSTN External T1/CAS Internal T1/CAS Call 5551212 Call 85551212 Ethernet 3 4 2 1 5 5551212 Bob calls 5551212 Regular phone (internal, 7054) SIP server SQL database sipd sipc Use sip:85551212@10.0.2.3 IP to PSTN Call Note: In this direction there is no distinction between DID and non-DID calls.
An Overview of CINEMA Implementation Overview Modules Applications Performance Misc Compilation Installation Portability Current and Future work Discussion of some performance issues and solutions
PerformanceWhy 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.
PerformanceFor 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)
PerformanceThreads • 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
PerformanceThread 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
PerformanceIn-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
PerformanceDatabase • 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?
PerformanceBandwidth • 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
PerformanceGeneral Comments • Measure performance on various platforms (Linux, Solaris Netra, Dec Alpha) • Compare stateless vs stateful proxy • Compare in-memory (fastsql) vs database (sql)
An Overview of CINEMA Implementation Overview Modules Applications Performance Misc Compilation Installation Portability Current and Future work
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)
InstallationAnd software distribution • GUI based configuration • Package manager (Sun, Linux, FreeBSD,…), Installation scripts, windows install shield • Monitor scripts, RC
PortabilityCross 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 (?)
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)
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
Current and Future Work • From a multimedia communication test bed to a multimedia collaboration portal environment • Scaling to large call volumes and users