Happy Diwali A Festival of Light Diwali or Deepaawali means an Array of Lamps i.e.Rows of diyas...

Post on 21-Dec-2015

213 views 1 download

transcript

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

OverviewOverview

• 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, 2001IRT Group Meeting

3

OverviewMultimedia Communication Protocols

Physical layer

Link layer

Network (IPv4, IPv6)

Transport (TCP, UDP)

Application layer

H.323 RTSP RSVP RTCP

RTP

MediaG.711MPEG

SIP

SignalingQuality of service

Media transport

InternetTelephony

InternetRadio/TV Messaging

and Presence

Interactivevoice response

Unified messagingVideo

conferencing

4

OverviewCINEMA - Columbia InterNet Extensible Multimedia

Architecture

CINEMA Libraries

CINEMA Applications

A flexible architecture to support wide range of multimedia A flexible architecture to support wide range of multimedia communication applications, both clients and serverscommunication applications, both clients and servers

Proxy server, media server, voice mail, conferencing, etc.

Parsing, SIP, SDP, RTP, mySQL interface, SNMP interface, Portability stubs, etc.

5

OverviewSIP and sipd

            

• Address based on email (alice@home.com)

Columbia.edu

Cisco.com home.com

office.com

Alice

Bob

1. DNS home.compc1.home.compc1.home.com 129.59.19.140

2. INVITE alice@home.com3. INVITE alice@m2.home.com

(proxy mode)

(2)(3) m2.home.com

sipd

6

Overviewsipd – Example scenario

Bob(1)

(2)

(3)(4)

(5)

(6) (6)

(6)

(7)

Alice

(8)(9)

(10)

(11)

(12)

(13)

7

An Overview of CINEMA Implementation

OverviewOverview

• ModulesModules

• Applications

• Performance

• Misc – Compilation

– Installation

– Portability

• Current and Future work

Various CINEMA libraries and their functionality

8

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

9

ModulesMessage Parsing (libcine)

HTTP

RTSP SIP

GET /sip HTTP/1.0Host: www.cs.columbia.edu…

DESCRIBE rtsp://… RTSP/1.0Accept: application/sdp… INVITE sip:… SIP/2.0

From: kns10@cs…

• Utilities for URL, headers, constructing and parsing messages

10

ModulesTransaction state (libsip)

• A request and all its responses

• RTSP vs SIP requests• Request can be

• Proxied• Redirected• Generated• Terminated

11

ModulesCall state (libsip++)

12

Modulescanonicalization [libcanon]

Bob.Wilson

canonicalize

bob@cs

13

ModulesLibraries

sipd sip323 sipconf sipum sipvxmlrtspd

CINEMA Libraries

libNT

Win32 stub

libcine

Utilities parsingIPv6

libsip

Basic SIP library

libsip++

SIP UA library

libmixer

RTP audio mixer

libdict

Hash table

libdb++

mySQL intf

RTSP mediaserver

SIP proxy server

SIP/H.323gateway

SIP/RTP conferencing

SIP/RTSP unified messaging

SIP/VoiceXMLbrowser

LDAPXerces-C

OpenH323

MySQLPWLibResparse

librtsp

RTSPclient

librtp

RTP library

libsnmp

SIP MIB

ViaVoiceXerces-C

CINEMA Applications

Parsing, SIP, SDP, RTP, mySQL interface, SNMP interface, Portability stubs, etc.

14

ModulesLayered structure

Transport layer (TCP/UDP)

RTPInterface

HTTP Message Parsing

RTSP transaction

SIP transactionClient Branch

RTSP API

RTSP server

SIPUA API

SIP proxy

Other Applications

15

An Overview of CINEMA Implementation

OverviewOverview

• Modules

• ApplicationsApplications

• Performance

• Misc – Compilation

– Installation

– Portability

• Current and Future work

Our test-bed architecture and its components

16

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipd

Proxy, Redirect, Registration server.• Authentication• Programmable (SIP- CGI)

OpenSource SQL database: MySQL

http://www.mysql.com

User information:• Contact location• Profile (e.g., password)• Aliases• Address book

System information• Configuration

17

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipd

Web based configuration

Web server

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

18

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipd

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Web based configuration

Web server

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.

19

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipd

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

Phones128.59.19.233

Web based configuration

Web server

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.

Registration can also be altered from the web interface

20

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipd

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

Phones128.59.19.233

Web based configuration

Web server

(2) Phone rings, the user picks up the call and can talk to the caller.

(1) When somebody calls hgs@cs.columbia.edu, sipd gets the INVITE message and “proxies” the call to the current location.

Another IP phone

Based on user profile, sipd may ask for caller authentication.

21

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Cisco 2600 router with SIP/PSTN gateway connects the departmental LAN with the PBX.

Departmental PBX (Nortel Meridian) connects both internal and external lines to the gateway.

Telephoneswitch

Internal T1

External T1

(Extension:713x)

Dial “8” to reach outside line

22

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

(2) The gateway forwards all PSTN calls to sipd; sip:7132@128.59.19.141

(1) When PBX receives a call for 9397132, it forwards the call to extension 7132. 7130-7139 is assigned to the gateway.

Telephoneswitch

Internal T1

(Extension:713x)

Dials 9397132

128.59.19.141

(3) Sipd looks into the dialplan, finds a mapping 7132=>hgs@cs.columbia.edu and forwards the call to the current location of “hgs”.

23

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway128.59.19.28

Department PBX Web based

configuration

Web server(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.

(3) PBX forwards the call to external line.

Telephoneswitch

128.59.19.141

(1) The IP user dials “sip:5551212@cs.columbia.edu”.

Dial “8” to reach outside lineExternal T1

(4) PSTN user receives the call.

24

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Can use no-DID (direct inward dialing) mode for more numbers.

Telephone number mappings and privileges modifiable from the web

Telephoneswitch

Internal T1

External T1

25

Additional ServicesAdditional 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)

26

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Programmable server: SIP-CGI and Call Processing Language (CPL)

Telephoneswitch

Scripts can be uploaded by clients also.

27

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

SNMP agent for SIP MIB. Allows remote monitoring and control of the SIP server. (e.g., prompt when an unauthorized registration is attempted)

Telephoneswitch

SNMP(Network Management)

28

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Telephoneswitch

SNMP(Network Management)

SIPH.323convertor

NetMeetingsiph323

H.323

Allows an H323 client (Netmeeting) to use the services of our SIP infrastructure.

29

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Telephoneswitch

SNMP(Network Management)

SIPH.323convertor

NetMeetingsiph323

H.323

Provides a voice mail and answering machine service to all the registered users. Has web interface for accessing voice mails.

rtspd

SIP/RTSPUnified

messaging

RTSP media server

sipum

Quicktime

RTSP clients

RTSPGeneric media server for playback and recording of messages. Can work with existing RTSP client, Apple’s QuickTime.

30

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Telephoneswitch

SNMP(Network Management)

SIPH.323convertor

NetMeetingsiph323

H.323

rtspd

SIP/RTSPUnified

messaging

RTSP media server

sipum

Quicktime

RTSP clients

RTSP

Centralized conferencing server for audio and video. Users can join from IP as well as PSTN.

SIP conference

server

sipconf

31

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Test-bed ArchitectureTest-bed Architecture

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Telephoneswitch

SNMP(Network Management)

SIPH.323convertor

NetMeetingsiph323

H.323

rtspd

SIP/RTSPUnified

messaging

RTSP media server

sipum

Quicktime

RTSP clients

RTSP

Netmeeting user dials “sip:meeting@cs.columbia.edu”

SIP conference

server

sipconf

SIP user dials “sip:meeting@cs.columbia.edu”

PSTN user dials 1-212-9397139

Sipd maps 7139=> meeting@128.59.19.196

128.59.19.196

32

e*phone

sipc

Software SIP user agents

Hardware Internet (SIP)

phones

Our IP telephony test-bedOur IP telephony test-bed

SIP proxy,redirectserver

SQLdatabase

sipdT1/E1 RTP/SIP

Telephone

SIP/PSTN Gateway

Department PBX Web based

configuration

Web server

Telephoneswitch

SNMP(Network Management)

SIPH.323convertor

NetMeetingsiph323

H.323

rtspd

SIP/RTSPUnified

messaging

RTSP media server

sipum

Quicktime

RTSP clients

RTSP

SIP conference

server

sipconf

Device GW

X 10

W. Jiang, J. Lennox, H. Schulzrinne and K. Singh, “Towards Junking the PBX: Deploying IP Telephony". NOSSDAV 2001,

33

PSTN to IP CallPSTN to IP Call

PBXPSTN

External T1/CAS

Regular phone(internal)

Call 93971341

SIP server

sipd

Ethernet

3

SQLdatabase

4 7134 => bob

sipc

5

Bob’s phone

• Direct Inward Dial (DID) - direct and simple• No-DID - dial extension, supports more users

GatewayInternal T1/CAS(Ext:7130-7139)

Call 71342

713x is called a part of Coordinated Dial Plan (CDP) in a Nortel PBX

34

IP to PSTN CallIP to PSTN Call

Gateway(10.0.2.3)

3

SQLdatabase

2Use sip:85551212@10.0.2.3

Ethernet

SIP server

sipdsipc

1Bob calls 5551212

PSTN

External T1/CASCall 55512125

5551212

PBX

Internal T1/CASCall 85551212 4

Regular phone(internal, 7054)

Note: In this direction there is no distinction between DID and non-DID calls.

35

An Overview of CINEMA Implementation

OverviewOverview

• Modules

• Applications

• PerformancePerformance

• Misc – Compilation

– Installation

– Portability

• Current and Future work

Discussion of some performance issues and solutions

36

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.

37

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)

38

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

1. Customize stack size

2. Use thread pool or event model

39

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

40

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

41

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?

42

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

43

PerformanceGeneral Comments

• Measure performance on various platforms (Linux, Solaris Netra, Dec Alpha)

• Compare stateless vs stateful proxy

• Compare in-memory (fastsql) vs database (sql)

44

An Overview of CINEMA Implementation

OverviewOverview

• Modules

• Applications

• Performance

• MiscMisc – Compilation

– Installation

– Portability

• Current and Future work

45

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)

46

InstallationAnd software distribution

• GUI based configuration

• Package manager (Sun, Linux, FreeBSD,…), Installation scripts, windows install shield

• Monitor scripts, RC

47

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 (?)

48

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)

49

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

50

Current and Future Work

• From a multimedia communication test bed to a multimedia collaboration portal environment

• Scaling to large call volumes and users

51

PublicationsFor 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.