Title: CINEMA%20Columbia%20InterNet%20Extensible%20Multimedia%20Architecture
1CINEMAColumbia InterNet Extensible Multimedia
Architecture
- Agenda
- Basic IP telephony
- Infrastructure and components
- Additional services
- Current and future work
- Kundan Singh
- kns10_at_cs.columbia.edu
Joint work with Wenyu Jiang, Jonathan Lennox,
Sankaran Narayanan, Henning Schulzrinne, Xiaotao
Wu and Min Yan Internet Real Time Lab
2Basic IP TelephonyAudio Packet Transfer
- Digitization (e.g., sampling at 8kHz, 16 bits per
sample, i.e, 128 kb/s or 320 bytes per 20 ms) - Real-time compression/encoding (e.g., G.729A at 8
kb/s) - Transport to remote IP address and port number
over UDP (Why not TCP?) - Processing on receiver side is the reverse
3Basic IP TelephonySampling, Quantization,
Encoding
127
1010111101101101
Encode each quantized sample into 8 bit code
word PCM 8000 x 8 bits 64 kb/s Other
techniques (differential coding, linear
prediction) 2.4 kb/s to 64 kb/s
0
-127
Sample at twice the highest voice frequency 2 x
40008000
Round off samples to one of 256 levels
(introduces noise)
4Basic IP TelephonyProblems with UDP
Sender
1
2
3
4
5
6
7
(a)
(b)
1
2
3
5
7
6
timeline
Receiver
- Unreliable UDP
- Packet loss
- Out-of-order (very rarely)
- Jitter (delay variation)
5Basic IP Telephony Receive buffer
- Sequence number to detect packet loss Just
ignore the loss! - Receive buffer to absorb jitter
Sender
1
2
3
4
5
6
7
8
9
0
1
2
3
4
1
2
3
5
7
6
8
9
0
2
3
4
Receiver
1
2
7
1
2
5
7
8
9
0
2
3
1
2
3
5
6
7
8
9
0
2
6Basic IP Telephony Timestamp Vs sequence number
- Silence suppression
- Variable length packets
Sender
t1
t2
t3
t4
t5
t6
t7
t8
t9
Silence
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Receiver
Playout time vs packet loss detection
7Basic IP Telephony Real-time Transport Protocol
- RTP
IP header
Sequence number
Payload type
CC
M
V
P
X
UDP header
Timestamp (proportional to sampling time)
RTP Header
Source identifier (SSrc)
Encoded Audio
Optional contributors list (CSrc)
msg
sendto(, msg, ) recvfrom(, msg, )
8Basic IP Telephony RTP based conference
Mixer
PCMU
Transcoder
?
PCMU
?
G.729
G.729
PCMU
PCMU
An example RTP conference (without multicast)
9Basic IP Telephony Why do we need signaling?
Register as Alicegt128.59.19.194
Query for Alice
128.59.19.194
Alices host 128.59.19.194
Bobs host
- What is the IP address of Alices host?
- What audio encoding can it support?
10Basic IP Telephony Session Initiation Protocol -
SIP
- Address based on email (alice_at_home.com)
- DNS SRV for SIP 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
11Basic IP Telephony SIP Message Format
Request
INVITE sipalice_at_home.com SIP/2.0 From Bob
ltbob_at_office.comgt To Alice ltalice_at_home.comgt Subj
ect do you know SIP? ...
Response
SIP/2.0 200 OK From Bob ltbob_at_office.comgt To
Alice ltalice_at_home.comgt Subject do you know
SIP? ...
12Basic IP Telephony Session Description Protocol
- SDP
INVITE Alice I can support PCMU and G.729 Send
me audio at 202.16.49.276780
Alice
Bob
128.59.19.194
202.16.49.27
OK I can support PCMU Send me audio at
128.59.19.1948000
RTP
To port 8000
RTP
To port 6780
13Basic IP Telephony SDP Message Format
Request
INVITE sipalice_at_home.com SIP/2.0 ... v0 obob
26172 27162 IN IP4 202.16.49.27 sSIP call cIN
IP4 202.16.49.27 t0 0 maudio 6780 RTP/AVP 0 8
5 mvideo 6790 RTP/AVP 31
Response
SIP/2.0 200 OK ... cIN IP4 128.59.19.194 t0
0 maudio 8000 RTP/AVP 0 8 mvideo 0 RTP/AVP 31
14Basic IP Telephony Example scenario
Alice
pc5
(4)
Cisco.com
(3)
Office.com
Bob
(2)
(1)
- Invite alice_at_home.com
- Moved to alice-john_at_cisco.com
- Invite alice-john_at_cisco.com
- Invite alice-john_at_pc5.cisco.com
Home.com
15Basic IP TelephonyVoIP Gateways
Another campus
Corporate/Campus
7040
8151
External line
8152
(Plain Old) Telephone Network
PBX
PBX
8153
7042
8154
7043
Gateway
Internet
LAN
LAN
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)
26ServicesProgrammable servers
- Forward my call to office phone during day time
and to my mobile in the evening or do not allow
foo_at_bar to call me - Server side scripts similar to HTTP
- SIP-CGI vs HTTP-CGI
- SIP Java Servlet
- Call Processing Language (CPL)
27Test-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.
28ServicesManagement - SNMP
- Constantly monitor the SIP server from remote
- Report any problem (e.g., unauthorized
registration request) - Use Simple Network Management Protocol (SNMP)
client server - SIP Management Information Base (MIB) describe
variables and and parameters for monitoring and
control - SIP server implements MIB, can be controlled
remotely by an SNMP client.
29Test-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
30ServicesInteroperability with H.323
- H.323 Proposed by ITU-T
- Based on previous H.324/H.320 architecture for
video conferencing - Collection of other specifications (for
signaling, control, transport, etc.) - Defines everything, from supported codecs to
controlling remote camera. (vs SIP, define only
what is needed) - NetMeeting most commonly known client
- http//www.packetizer.com - good introduction on
H.323 (biased comparison with SIP!!)
31Test-bed Architecture
Telephone
Telephone switch
Allows an H323 client (Netmeeting) to use the
services of our SIP infrastructure.
Department PBX
SIP/PSTN Gateway
32ServicesUnified messaging
- Single messaging system email, voicemail,
fax/video, etc. - Voice mail and answering machine first step
- Streaming media for storage and retrieval
Real-Time Streaming Protocol - RTSP similar to HTTP, request-response, uses
RTP - RealPlayer, QuickTime popular clients
- SIP for signaling of IP telephony calls
- Access from telephone using a gateway
33Test-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.
34ServicesConferencing
- Multiparty conferencing using SIP and RTP
- Models centralized, decentralized, multicast
- Audio mixing, you dont get back your own audio
- Decode-add-encode
- Video replication
- Centralized SIP control
- Centralized RTP mixer
35Test-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
36Test-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
37Services(What more?)
Okay, SIP can do so many thing but can it turn
on my lamp?
Answer is yes!!
38ServicesSIP Extensions
- SIP is just a session signaling protocol.
- Can send message to a logical address (URI) and
initiate any session - Extensions to do new things
- Instant messaging presence event notification
- Call Transfer
- Device control (identify device as URI)
39Test-bed Architecture
Telephone
Telephone switch
Department PBX
SIP/PSTN Gateway
Device gateway allows control of X10 devices. We
can control a lamp using SIP DO message.
40Complete Architecture
Telephone
Telephone switch
Department PBX
SIP/PSTN Gateway
41(In)Complete Architecture
Telephone
Telephone switch
Communication portal Address book, calendar,
message board, file sharing, conferencing, etc.
Accounting and billing services
Department PBX
Performance measurement and scalability for very
large call/session volumes (for sipd, sipconf and
rtspd).
SIP/PSTN Gateway
SIP based Voice XML browser to allow access to
voice mail and other services from touch tone
phones
42SummaryInternet Telephony is not only telephony
on Internet !
- Basic IP telephony (PC-to-PC)
- VoIP gateway (PC-to-phone and phone-to-PC)
- Additional services
- Multimedia
- Web and email integration
- Instant messaging
- Presence and event notification
- Conferencing
- Collaborative work environment
- Media streaming
- Unified messaging
43SummaryWorld of Protocols
- Session Initiation Protocol (SIP) signaling of
Internet sessions - Real-time Transport Protocol (RTP) transport of
real-time multimedia - Real Time Streaming Protocol (RTSP) signaling
for multimedia streaming, both playing and
recording - Session Announcement Protocol (SAP) announcing
Internet radio session information - Multimedia encoding, G.711, GSM, ADPCM, G.729,
H.261, H.263, MPEG.
44SummaryOur IP telephony test-bed
- For implementing new services
- For test and performance measurement
- For replacing the plain old PBX
45SummaryMore Information
- More information on the system design
- http//www.cs.columbia.edu/kns10/publication/cine
matr.pdf - More information on the software components
- http//www.cs.columbia.edu/hgs/software
46Questions asked during the talks
- Some of the questions that (I think) were raised
and answered by the speaker during the talk. - Why not use IP address instead of SSRC in RTP?
- What are the authentication mechanisms used in
SIP? - Why is it not LGPL licensed? Are there other
LGPLed SIP implementations? Does Columbia want
to make money out of this? - What is the capacity of the system? How many
users, calls can it handle? - Actual quality of audio, if we have tested
between two IP phones on the real Internet? - Do you support any kind of encryption?
47Additional slides
48ComponentsVoIP Call from POTS to IP
- Convert telephone number to a SIP address
(user_at_domain) - ENUM Use DNS lookup
- If you dialed 9397042
- Convert to 12129397042
- Do DNS lookup for 2.4.0.7.9.3.9.2.1.2.1.arpa.in
- Result will be a SIP URL, e.g.,
siphgs_at_cs.columbia.edu - Private mapping within a domain by SIP server
- 7030 - sipkns10_at_cs.columbia.edu
- 7032 - siphgs_at_cs.columbia.edu
49ComponentsVoIP Call from IP to POTS
- If you know gateways IP address, dial
sipnumber_at_gatewayip - TRIP Telephone routing over IP to discover a
gateway that can route your number correctly - Gateway1 12129397??? free
- Gateway2 1408??????? 2/min
- Gateway2 1718??????? 2/min
- Gateway3 1?????????? 4/min
50ComponentsInteractive Voice Response - IVR
- Receives incoming PSTN5 call
- Responds back with prompts
- Accepts user input (DTMF or speech)
- Takes action based on user input
- (Usually the service logic is programmed for the
specific application, say weather report)
End user
1-212-8545224
IVR1 platform
- Voice and telephony functions
- (ASR2, TTS3, DTMF4)
- Service logic (application specific)
1 Interactive voice response 2 Automated
speech recognition 3 Text to speech 4 Dual
tone multi-frequency (touch tone) 5 Public
switched telephone network
51ComponentsIVR on internet
52ComponentsIVR on Internet
53ComponentsVoiceXML Example
ltformgt ltfield namedrinkgt ltpromptgtWould you
like Coffee, Tea, Milk or Nothing.lt/promptgt
ltoption valuecoffeegtcoffeelt/optiongt ltoption
valueteagttealt/optiongt ltoption
valuemilkgtmilklt/optiongt ltoption
valuenothinggtnothinglt/optiongt lt/fieldgt ltblockgt
ltsubmit nexthttp///bartender.cgi
namelistdrink/gt lt/blockgt lt/formgt
54ComponentsMiscellaneous
- Media Streaming
- Multiparty conferencing
- Voice mail and answering machine
- Unified messaging
- Event notification and presence
- Collaborative work environment