Happy Diwali A Festival of Light Diwali or

  • Slides: 51
Download presentation
Happy Diwali A Festival of Light Diwali or Deepaawali means an Array of Lamps

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 13 th day of the dark fortnight of the month of Ashwin (October / November). This year it falls on 14 th 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

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

Overview Multimedia Communication Protocols Internet Telephony Interactive voice response Internet Radio/TV Messaging and Presence Video conferencing Application layer Transport (TCP, UDP) Network (IPv 4, IPv 6) Link layer Physical layer Unified messaging Media H. 323 SIP RTSP RSVP RTCP G. 711 MPEG RTP Signaling Quality of service Media transport 3

Overview CINEMA - Columbia Inter. Net Extensible Multimedia Architecture A flexible architecture to support

Overview CINEMA - Columbia Inter. Net 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, my. SQL interface, SNMP interface, Portability stubs, etc. 4

Overview SIP and sipd • Address based on email (alice@home. com) 1. DNS home.

Overview SIP and sipd • Address based on email (alice@home. com) 1. DNS home. com pc 1. home. com 129. 59. 140 office. com 2. INVITE alice@home. com 3. INVITE alice@m 2. home. com (proxy mode) Bob Alice (2) (3) m 2. home. com Columbia. edu Cisco. com sipd home. com 5

Overview sipd – Example scenario Alice (9) (8) (10) (13) (7) (6) (5) (4)

Overview sipd – Example scenario Alice (9) (8) (10) (13) (7) (6) (5) (4) (3) Bob (12) (6) (11) (1) 6

An Overview of CINEMA Implementation Overview • Modules • Applications • Performance • Misc

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

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 …

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: kns 10@cs … Utilities for URL, headers, constructing and parsing messages 9

Modules Transaction state (libsip) • • • A request and all its responses RTSP

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 Call state (libsip++) 11

Modules canonicalization [libcanon] Bob. Wilson canonicalize bob@cs 12

Modules canonicalization [libcanon] Bob. Wilson canonicalize bob@cs 12

Modules Libraries CINEMA Applications RTSP media server rtspd SIP proxy server sipd SIP/H. 323

Modules Libraries CINEMA Applications RTSP media server rtspd SIP proxy server sipd SIP/H. 323 gateway sip 323 LDAP Xerces-C SIP/RTP conferencing sipconf SIP/RTSP SIP/Voice. XML browser sipum sipvxml unified messaging Via. Voice Xerces-C Open. H 323 CINEMA Libraries lib. NT libcine Win 32 stub Utilities parsing IPv 6 My. SQL PWLib Resparse libsip Basic SIP library librtsp RTSP client libsip++ librtp SIP UA library RTP library libmixer RTP audio mixer libdict libdb++ libsnmp Hash table my. SQL intf SIP MIB Parsing, SIP, SDP, RTP, my. SQL interface, SNMP interface, Portability stubs, etc. 13

Modules Layered structure Other Applications RTSP server SIPUA SIP API proxy RTSP transaction RTP

Modules Layered structure Other Applications RTSP server SIPUA SIP API proxy RTSP transaction RTP Interface SIP transaction Client Branch HTTP Message Parsing Transport layer (TCP/UDP) RTSP API 14

An Overview of CINEMA Implementation Overview • Modules • Applications • Performance • Misc

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

Test-bed Architecture Proxy, Redirect, Registration server. • Authentication • Programmable (SIP- CGI) sipd SIP proxy, redirect server SQL database Open. Source SQL database: My. SQL 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

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,

Test-bed Architecture IP phones connected to the departmental LAN. Users are identified by id, e. g. , “hgs@cs. columbia. edu” 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 Phones register themselves

Test-bed Architecture Registration can also be altered from the web interface Phones register themselves with sipd when powered up. e*phone Hardware Internet (SIP) Phones 128. 59. 19. 233 sipc Software SIP user agents Web based configuration sipd SIP proxy, redirect server Web server SQL database 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. 19

Test-bed Architecture Another IP phone (1) When somebody calls hgs@cs. columbia. edu, sipd gets

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. Web based configuration 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 switch External T 1 Dial “ 8” to reach outside line

Test-bed Architecture Telephone switch External T 1 Dial “ 8” to reach outside line Department PBX Internal T 1 (Extension: 713 x) T 1/E 1 RTP/SIP Departmental PBX (Nortel Meridian) connects both internal and external lines to the gateway. 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 switch (1) When PBX receives a call for 9397132,

Dials 9397132 Test-bed Architecture 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 T 1 (Extension: 713 x) T 1/E 1 RTP/SIP SIP/PSTN Gateway sipd SIP proxy, redirect server Web server SQL database (2) The gateway forwards all 128. 59. 141 PSTN calls to sipd; sip: 7132@128. 59. 141 e*phone Hardware Internet (SIP) phones (3) Sipd looks into the dialplan, finds a mapping 7132=>hgs@cs. columbia. edu and forwards the call to the current location of “hgs”. sipc Software SIP user agents 22

Test-bed Architecture Telephone switch (4) PSTN user receives the call. External T 1 Dial

Test-bed Architecture Telephone switch (4) PSTN user receives the call. External T 1 Dial “ 8” to reach outside line (3) PBX forwards the call to external line. Department PBX T 1/E 1 RTP/SIP SIP/PSTN Gateway 128. 59. 19. 28 e*phone Hardware Internet (SIP) phones sipd SIP proxy, redirect server Web based configuration Web server SQL database 128. 59. 141 (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. (1) The IP user dials “sip: 5551212@cs. columbia. edu”. sipc Software SIP user agents 23

Test-bed Architecture Telephone switch Telephone number mappings and privileges modifiable from the web External

Test-bed Architecture Telephone switch Telephone number mappings and privileges modifiable from the web External T 1 Department PBX Web based configuration Internal T 1/E 1 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

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 switch Programmable server: SIP-CGI and Call Processing Language (CPL) Department PBX

Test-bed Architecture Telephone switch Programmable server: SIP-CGI and Call Processing Language (CPL) Department PBX Web based configuration T 1/E 1 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 switch Department PBX T 1/E 1 RTP/SIP SNMP agent for SIP

Test-bed Architecture Telephone switch Department PBX T 1/E 1 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 switch Allows an H 323 client (Netmeeting) to use the services

Test-bed Architecture Telephone switch Allows an H 323 client (Netmeeting) to use the services of our SIP infrastructure. Web based Department PBX configuration T 1/E 1 RTP/SIP sipd SIP proxy, redirect server Web server SQL database SIP/PSTN Gateway SNMP (Network Management) e*phone Hardware Internet (SIP) phones Net. Meeting siph 323 SIPH. 323 convertor sipc Software SIP user agents H. 323 28

Test-bed Architecture Telephone switch Generic media server for playback and recording of messages. Can

Test-bed Architecture Telephone switch Generic media server for playback and recording of messages. Can work with Department existing RTSP client, PBX Apple’s Quick. Time. T 1/E 1 RTP/SIP rtspd RTSP media server RTSP Quicktime 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) Net. Meeting Provides a voice mail and siph 323 answering machine service SIPH. 323 to all the registered users. convertor Has web interface for accessing voice mails. 29

Test-bed Architecture Telephone switch Centralized conferencing server for audio and video. Users can join

Test-bed Architecture Telephone switch Centralized conferencing server for audio and video. Users can join from IP as Department well as PSTN. PBX T 1/E 1 RTP/SIP sipconf SIP conference server sipd SIP proxy, redirect server rtspd RTSP media server RTSP Quicktime 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 Net. Meeting siph 323 SIPH. 323 convertor sipc Software SIP user agents H. 323 30

Test-bed Architecture. Sipd maps 7139=> meeting@128. 59. 196 Telephone rtspd PSTN user dials 1

Test-bed Architecture. Sipd maps 7139=> meeting@128. 59. 196 Telephone rtspd PSTN user dials 1 -212 -9397139 switch RTSP media server 128. 59. 196 sipconf SIP sipum conference SIP/RTSP server Unified messaging Department PBX T 1/E 1 RTP/SIP sipd SIP proxy, redirect server RTSP clients Web based configuration Web server SQL database SIP/PSTN Gateway Netmeeting user dials “sip: meeting@cs. columbia. edu” SNMP (Network Management) SIP user dials e*phone “sip: meeting@cs. columbia. edu” Hardware Internet (SIP) phones RTSP Quicktime Net. Meeting siph 323 SIPH. 323 convertor sipc Software SIP user agents H. 323 31

Our IP telephony test-bed Telephone switch rtspd RTSP media server sipconf SIP conference server

Our IP telephony test-bed Telephone switch rtspd RTSP media server sipconf SIP conference server Department PBX T 1/E 1 RTP/SIP sipd SIP proxy, redirect server RTSP Quicktime RTSP clients sipum SIP/RTSP Unified messaging Web based configuration Web server SQL database SIP/PSTN Gateway e*phone Hardware Internet (SIP) phones SNMP (Network Management) Device GW X 10 Net. Meeting siph 323 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 T 1/CAS 1 Call 9397134 713 x

PSTN to IP Call PBX PSTN External T 1/CAS 1 Call 9397134 713 x is called a part of Coordinated Dial Plan (CDP) in a Nortel PBX Gateway Internal T 1/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 T 1/CAS 5 Call 5551212 Gateway (10.

IP to PSTN Call PBX PSTN External T 1/CAS 5 Call 5551212 Gateway (10. 0. 2. 3) Internal T 1/CAS 4 Call 85551212 3 Ethernet 5551212 Regular phone (internal, 7054) Note: In this direction there is no distinction between DID and non. DID calls. 1 Bob calls 5551212 SIP server sipc 2 SQL database sipd Use sip: 85551212@10. 0. 2. 3 34

An Overview of CINEMA Implementation Overview • Modules • Applications • Performance • Misc

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 =>

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

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 1

Performance Threads • One thread per request – – – 1. 2. For 1 MB 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

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

Performance In-memory DB • • • Every query to database affects turn-around time Duplicate the DB in main memory; hash-table Less than 4 k 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

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

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)

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

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, Free. BSD,

Compilation • Autoconf, configure and make for Unix platforms – Solaris, Linux, Free. BSD, Tru 64 $. /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, Free.

Installation And software distribution • GUI based configuration • Package manager (Sun, Linux, Free. BSD, …), Installation scripts, windows install shield • Monitor scripts, RC 46

Portability Cross platform support • • • Endian-ness: Big endian (Sparc, DEC), little endian

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 win 32 Shared libraries compilation (? ) 47

Documentation • software documentation: – http: //www. cs. columbia. edu/IRT/cinema • Overview: – Paper:

Documentation • 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. edu/~kns 10/publication/cinematr. pdf • Compilation instructions: – README, README. build, NT/README. win 32 files • This presentation: – http: //www. cs. columbia. edu/~kns 10/talks (will be put up shortly) 48

Current and Future Work • • Improved installation Address book Calendar and event notification

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

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

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 2 nd IP-Telephony Workshop (IPTel'2001), April 2001. K. Singh, H. Schulzrinne, "Interworking Between SIP/SDP and H. 323". Proceedings of the 1 st 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