Media Services in CINEMA Presented by Kundan Singh Joint work with Henning Schulzrinne, Jonathan Lennox, Xiaotao Wu, Wenyu Jiang, Sankaran Narayanan, Ajay.

Slides:



Advertisements
Similar presentations
Building Applications Using SIP Scott Hoffpauir Vice President, Engineering Fall 1999 VON, Atlanta.
Advertisements

July 20, 2000H.323/SIP1 Interworking Between SIP/SDP and H.323 Agenda Compare SIP/H.323 Problems in interworking Possible solutions Conclusion Q/A Kundan.
IP Communications Services Redefining Communications Teresa Hastings Director WorldCom SIP Services Conference – April 18-20, 2001.
Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.
29.1 Chapter 29 Multimedia Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Agenda Introduction Requirements Architecture Issues Implementation Q/A Kundan Singh and Henning Schulzrinne, Columbia University.
Session Initiation Protocol (SIP) By: Zhixin Chen.
1.Alice (caller) calls Bob 2.The SIP server forks the call to Bob’s phone and the mail server 3.After 10 seconds, the mail server sets up RTSP sessions.
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University
VoiceXML and Internet Telephony Kundan Singh and Henning Schulzrinne Columbia University Joint work (in progress) with Daniel,
IRT Lab IP Telephony Columbia 1 Henning Schulzrinne Wenyu Jiang Sankaran Narayanan Xiaotao Wu Columbia University Department of Computer Science.
TCP/IP Protocol Suite 1 Chapter 25 Upon completion you will be able to: Multimedia Know the characteristics of the 3 types of services Understand the methods.
E*phone sipc Software SIP user agents Hardware Internet (SIP) phones SIP proxy, redirect server SQL database sipd SIPH.323 converter NetMeeting siph323.
Scott Hoffpauir BroadSoft, Inc. Vice President, Engineering OPENSIG October 15, 1999 The Enhanced Services Layer in a Distributed Packet Network.
Using SIP for Ubiquitous and Location-Based Communications Henning Schulzrinne (with Stefan Berger, Jonathan Lennox, Maria Papadopouli, Stelios Sidiroglou,
Session Initialization Protocol (SIP)
CIS679: RTP and RTCP r Review of Last Lecture r Streaming from Web Server r RTP and RTCP.
Architecture SIP proxy, redirect server SQL database sipd Proxy, Redirect, Registration server. Authentication Programmable (SIP- CGI) OpenSource SQL database:
Architecture Proxy, Redirect, Registration server. Authentication Programmable (SIP- CGI) OpenSource SQL database: MySQL User information:
October 4, 2000 © 2000, Columbia University Kundan Singh Internet Real-Time Lab. Columbia University What it means ? What can we do ? How can we do ? What.
Agenda Introduction Architecture Issues Implementation features Future plan Demo.
Introduction to Internet telephony (VoIP)
CINEMA Columbia InterNet Extensible Multimedia Architecture
IP telephony overview and demonstration
CINEMA – The Columbia Internet Multimedia Architecture Henning Schulzrinne IRT Lab, Dept. of Computer Science November 2001.
Computer Networks: Multimedia Applications Ivan Marsic Rutgers University Chapter 3 – Multimedia & Real-time Applications.
Sipdsip323sipconfsipumsipvxmlrtspd CINEMA Libraries libNT Win32 stub libcine Utilities parsing IPv6 libsip Basic SIP library libsip++ SIP UA library libmixer.
Integrating VoiceXML with SIP services
1 © NOKIA 1999 FILENAMs.PPT/ DATE / NN SIP Service Architecture Markus Isomäki Nokia Research Center.
Call Control with SIP Brian Elliott, Director of Engineering, NMS.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
TCP/IP Protocol Suite 1 Chapter 25 Upon completion you will be able to: Multimedia Know the characteristics of the 3 types of services Understand the methods.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
IP Multicast A convention to identify a multicast address Each node must translate between an IP multicast address and a list of networks that contain.
E Multimedia Communications Anandi Giridharan Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Multimedia.
©2000, Columbia University “A flexible architecture to support wide range of multimedia communication applications, both clients and servers” Presented.
Internet Real-Time Laboratory demonstration Internet telephony, ubiquitous computing and ad-hoc networking Prof. Henning Schulzrinne (Presented by Ajay.
©2000, Columbia University “A flexible architecture to support wide range of multimedia communication applications, both clients and servers”
Demonstration of Columbia IP telephony test bed Presented by Wenyu Jiang, Kundan Singh and Xiaotao Wu Remote participant: Yi Qin.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
E Multimedia Communications Anandi Giridharan Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Multimedia.
IP Columbia Prof. Henning Schulzrinne Internet Real-Time Laboratory Department of Computer Science Columbia University.
Project Objectives A multi-function programmable SIP user agent for multimedia communications, such as audio, video, white board, desktop sharing, shared.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
E Multimedia Communications Anandi Giridharan Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Multimedia.
TCP/IP Protocol Suite 1 Chapter 25 Upon completion you will be able to: Multimedia Know the characteristics of the 3 types of services Understand the methods.
1 Internet Telephony: Architecture and Protocols an IETF Perspective Authors:Henning Schulzrinne, Jonathan Rosenberg. Presenter: Sambhrama Mundkur.
IP Columbia Internet Real-Time Laboratory Department of Computer Science Columbia University.
7: Multimedia Networking7-1 protocols for real-time interactive applications RTP, RTCP, SIP.
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
Introduction to Session Initiation Protocol (SIP) Xiaotao Wu and Kundan Singh Columbia University October 24, 2002.
SIPc, a Multi-function SIP User Agent Xiaotao Wu and Henning Schulzrinne.
SIP-based VoiceXML browser (sipvxml)
VoIP ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
IP Telephony (VoIP).
Towards Junking the PBX: Deploying IP Telephony
SIP based VoiceXML browser
Deploying IP Telephony
Architecture OpenSource SQL database: MySQL
Where should services reside in Internet Telephony Systems?
Internet Real-Time Laboratory demonstration
Prof. Henning Schulzrinne Internet Real-Time Laboratory
Integrating VoiceXML with SIP services
Internet Real-Time Laboratory demonstration
Internet Real-Time Laboratory demonstration
Architecture rtspd SIP/RTSP Unified messaging RTSP media server sipum
CINEMA clouds sipc e*phone Netmeeting H.323 sipd SIP RTSP MGCP PSTN
sipc e*phone sipd Netmeeting e*phone e*phone Clouds H.323 SIP RTSP
Internet telephony products
Henning Schulzrinne Dept. of Computer Science Columbia University
Presentation transcript:

Media Services in CINEMA Presented by Kundan Singh Joint work with Henning Schulzrinne, Jonathan Lennox, Xiaotao Wu, Wenyu Jiang, Sankaran Narayanan, Ajay Nambi and Ali Khwaja Computer Science Department, Columbia University April 25, 2003

2 Purpose What are media services? What is CINEMA? What services are provided by CINEMA? Conferencing Streaming media Unified messaging Interactive voice response How can we use CINEMA? The discussion on services and specific CINEMA implementation components are intermixed. N N Not relevant or not implemented On-going work Yes, Implemented O Y

3 IP telephony services (PSTN) Call routing services: pre-call, one party speed dial call forwarding “follow me” call filtering/blocking (in/out) do not disturb distinctive ringing Call handling features autoanswer Multi-party features call waiting call transfer (blind, consultative) conference call call park call pickup music on hold call monitoring O IP-telephony can’t win by just providing what PSTN has

4 IP telephony services (Internet) Presence-enabled calls place call only if callee is available Presence-enabled conferencing call conference participants when all are online and not busy IM conference alerts receive IM when someone joins a conference Unified messaging receive , IM alert for new voic s O

5 Where the services reside? Common gateway interface (CGI) Call processing language (CPL) SIP servlet Make call when boss is online … Enter your authentication PIN for billing… B2BUA Double ringing sound when boss calls… Endpoint Forward to office phone during day, and home phone during evening… Proxy/registrar Endpoint Language for End System Services (LESS) Use finger for locating user… O

6 Program Call routing “Bricks” in media applications SIPSAP RSVPRTCP RTP Media G.711 MPEG RTSP Signaling Quality of service Media transport Internet Telephony Internet Radio/TV Messaging and Presence Interactive voice response Unified messaging Video conferencing Physical layer Link layer Network (IPv4, IPv6) Transport (TCP, UDP) Application layer Voice XML DTMFMixing Speech/ text N SDP

7 … Audio 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 N

8 Unreliable UDP a)Packet loss b)Out-of-order (very rarely) c)Jitter (delay variation) timeline Sender Receiver (a) (b) Problems with UDP N

Sender Receiver Receive Buffer Receive buffer: to absorb jitter Tradeoff in buffer size Adaptive delay adjustment Sequence number: to detect packet loss; Just ignore the loss! Y

10 Encoded Audio RTP Header UDP header IP header msg sendto(…, msg, …) recvfrom(…, msg, …) Sequence number Optional contributors’ list (CSrc) Source identifier (SSrc) Timestamp (proportional to sampling time) Payload typeCCMV PX Real-time Transport Protocol Y RTP: media transport RTCP: QoS feedback

11 Streaming media Messages RTSP vs HTTP UDP, Stateful, Control, Timed Applications Recording, Playback, Live media, Conference Web browser Media player file Web server HTTP Web browser Media player meta file HTTP RTSP RTP Media server Y

12 Columbia rtspd Existing Playback/recording of  - law (Sun.au files) and raw Unicast address Multi-threaded; Portable (Unix/win32) Works with Apple QuickTime client UDP + TCP IPv4 + IPv6 Planned Multicast MPEG video Mp3, wav audio Media over TCP Live media Y

13   Mixer Transcoder  -law G.729  -law RTP-based Conference N

14 What is the IP address of Alice’s host? What audio/video encoding can it support? bob’s host Alice’s host REGISTER as alice=> Call alice Why do we need signaling? Session Initiation Protocol -like address: DNS Proxy, redirect Y home.com

15 AliceBob INVITE I can support  -law and G.729 Send me audio at :6780 OK; I can support  -law Send me audio at : To port 6780 To port 8000 RTP Session description Y

16 Columbia sipc Y

17 Emergency service Calling E911, location Assistance Audio/video, remote-help Notification Earthquake, fire O

18 Presence/event notification PA registrar Presence server office.com SUBSCRIBE NOTIFY REGISTER PUA PUA + PA Y

19 Columbia IM and presence Y

20 Endpoint call control Language for End System Services (LESS) for endpoint service creation Direct user interaction, direct media control Handle converged information, e.g., call, presence, Example: when buddy is online, make a call <less name="online_call" require="generic presence ui"> <alert sound=“ring.au" text="Calling …" /> O

21 Network call control SIP-CGI CPL SIP servlets Priority.pl SIP_FROM SIP_TO stdin CGI-PROXY-REQUEST stdout SIP proxy Urgent Low-priority Voic Phone Y if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ { foreach $reg (get_regs()) { print "CGI-PROXY-REQUEST $reg SIP/2.0\n"; print "Priority: urgent\n\n"; }

22 Call transfer REFER Blind/ consultation/ attended active call REFER C Referred-By: B INVITE C Referred-By: B BYE A A B C active call O

23 B2BUA and third-party call control Back-to-back UA Incoming call triggers outgoing call Services Calling card Anonymizer INVITE A B C SIP OK (SDP1) ACK INVITE (SDP1) OK (SDP2) ACK INVITE (SDP2) OK ACK O

24 Voic Problems in PSTN Design alternatives Issues Redirect after 10s vmail.pl SIP_FROM SIP_TO stdin CGI-PROXY-REQUEST stdout If no response accept after 15s Endpoint redirects Voic acts like a phone Proxy controls Y

25 Columbia sipum Goals Universal access Scalability Provider independent Why SIP and RTSP? Reuse existing infrastructure and tools (1) INVITE INVITE OK CANCEL (3) OK (2) SETUP (4) RTP (5) BYE rtspd sipum Y

26 Columbia sipum Retrieval Web interface rtsp://server/alice /inbox/1677.au, sip:alice press 1 to listen… Configuration Folders Options Y

27 VoiceXML Telephone PSTN Voice gateway Web server Service logic (CGI, servlet, JSP) Voice and telephony functions VoiceXML browser Internet user VXML HTML Internet IVR platform Voice and telephony functions (ASR, TTS, DTMF) Service logic (application specific) sipvxml Gateway Y

28 VoiceXML contd. Enter your Id: Your ID, please. Telephony, speech synthesis or audio output, user input and grammar, program flow, variable and properties, error handling, … Y

29 DTMF Telephone SIP/PSTN gateway PSTN Internet Internet user D D Audio SIP INFO RTP/ RFC2833 Y

30 Columbia sipvxml Unified messaging access by phone Event notification and scheduling Audio volume control for conference Advanced conference control Telephone SIP/PSTN gateway PSTN sipvxml SIP phone Web server Internet .tcl Media server rtspd TTS, ASR, DTMF, XML, HTTP, RTSP Y

31 + phone Login formatting Listen, reply, delete, compose, forward Navigation -next, previous, jump formatting SIP based Text-to-speech VoiceXML browser servlet JSP DB procmail to IM Call Interne t TTS important mails SIP Interne t SIP HTTP by phone to phone Y Inbox

32 IM + voice call Who can initiate? authentication, billing, … Feedback to voice user to IM user initial IM greeting Talk-spurt detection Speech recognition IM Call TTS ASR SIP MESSAGE SIP INVITE RTP Y

33 Unified messaging The gaps among different media (audio, video, text), devices (PC, phone) and means of communications ( , SIP, IM) disappear for messaging O

34 Notification Calendar Events Conferences Web server Calendar.cgi “at 6:00pm” Schedule from a browser SIP call IM O

35 Phone announcement server Input Range:93970?? List: A, B, C Example Announcement Emergency Issues Voic Failure detection PAS TTS Destinations SIP Text or audio... Y

36 RTSP + TTS + ASR Media server TTS ASR SETUP rtsp://server/tts.cgi ?text=How+are+you. PLAY RTP SETUP rtsp://server/asr.cgi RECORD RTP SET_PARAMETER Text=I am fine, thank you. O

37 Audio conference models (non-multicast) A B C D  B A+C+D A B C A B+C+D A+B+D C D D A+B+C  A B C D     Topology star full-mesh ad-hoc AdvantagesHeterogeneous simple clients No central point of failure DisadvantagesExternal server with high bandwidth link Complex endpoints Complex signaling Typically only three party conferences N

38 Centralized conferencing Conference as URL On the fly conferences Basic task: join/leave Dial in, Refer dial in Dial out, Refer dial out REFER INVITE REFER INVITE server O

39 Columbia sipconf G.711, GSM, DVI, G.722 mixing (decode-mix-encode) Video replication; IM; text; VNC screen sharing D D D E E E A B C G711 DVI GSM Linear G711 DVI G711 Playout delay Periodic timer M=A+B+C Mixed linear M - A=B+C M - B M - C Receive thread Send thread Y

40 Columbia sipconf Y

41 Conference control Access control Floor control Notification State Participant: active, departed, booted, failed dialog state, floor state Media sending: received-by-all, muted receiving: receiving-all, anchor-only active departed O

42 Conference + VoiceXML sipvxml Caller sipconf 1. INVITE sipvxml 2. Call accepted 3. Enter your four digit PIN 4. Entered Authenticate user, 4683=>Alice 6. Enter the conference identifier 7. Entered 2-3-# 8. Permission to join, 23=>meet 9. REFER 10.Terminate the old call 11.INVITE Call transfer vs bridged mode Y

43 New conference applications sipvxml Caller 1. INVITE sipvxml 2. Menu 1. Vol Check 2. Mic Check 3. User enters 2 4. User speaks out a voice sample 5. Voice sample is analyzed 7. User adjusts the vol level. The ease & flexibility of sipvxml enables us to build custom telephonic applications to suit our needs. e.g., Volume Check Application sipconf 8. User now joins conference. 6. SipVXML: Vol level too high/low/… Y

44 Conferencing Automatic volume adjustments Automatic load balancing Delay adjustments Conference recording Local or RTSP Ysipc SIP323 SIP/PSTN Recording in a media server

45 Ncast MPEG distribution INVITE Y

46 My owner’s SIP address is Help!!! (invoke sipc to call INVITE Y

47 Summary of media services Streaming media Playback, recording, live-media Unified messaging Voic , video/IM integration,... Conferencing Mixing, load-balancing Interactive voice response Tele-banking, VoiceXML Y

48 CINEMA Columbia InterNet Extensible Multimedia Architecture CINEMA Distributed component architecture Libraries and APIs Management and control Application and proxy servers User-agent (client) applications Y

49 Columbia SIP user agent: sipc Media Audio, video, text, white board Screen sharing Shared web browsing Advanced Presence, instant messaging Programmable call handling Conference control (on-going) Emergency notification and handling (on-going) Device control Language for End System Services (on-going) Y

50 Columbia SIP servers (CINEMA) Internal Telephone Extn: 7040 SIP/PSTN Gateway Department PBX Web based configuration Web server Telephone switch SQL database sipd: Proxy, redirect, Registrar server NetMeeting H.323 rtspd: media server sipum: Unified messaging Quicktime RTSP clients RTSP 713x Single machine SNMP (Network Management) sipconf: Conference server siph323: SIP-H.323 translator Local/long distance PSTN Video encoder Y

51 Libraries and APIs sipdsip323sipconfsipumsipvxmlrtspd CINEMA Libraries libNT Win32 stub libcine Utilities parsing IPv6 libsip Basic SIP library libsip++ SIP UA library libmixer RTP audio mixer libdict Hash table libdb++ mySQL intf RTSP media server SIP proxy server SIP/H.323 gateway SIP/RTP conferencing SIP/RTSP unified messaging SIP/VoiceXML browser Xerces-C OpenH323 MySQL PWLib Resparse librtsp RTSP client librtp RTP library libsnmp SIP MIB ViaVoice/Flite Xerces-C Server Applications Parsing, SIP, SDP, RTP, mySQL interface, SNMP interface, Portability stubs, etc. CPL, CGI, Servlet Y

52 Status of CINEMA services Features/servicesStatus SIP proxy, redirect, registration serverProduct SIP Presence agent; programmable call routingBeta Dial-in conference with audio, video, screen sharing, instant messaging, recording, load balancing, volume or delay adjustment, and IVR Beta Dial-out or refer dial-in conferencing, conference controlOn-going Voice mail with retrieval, deletion and IVRBeta Media streaming server for basic audio record and playBeta SIP/VXML browser for VoiceXML 1.0 with basic functionalityAlpha Call transfer, back-to-back user agentOn-going Phone announcement server, IM/call converter, -by-phone and -to-phone, SIP anonymizer Demo Calendar event notification to IM, phone and On-going Web-based configuration and controlAlpha Media server with text-to-speech, speech-recognition, video, live mediaOn-going

53 What’s next? from multimedia communications to collaboration Synchronous communications Conferencing, IM Asynchronous communications Voic s, message board, file sharing Ubiquitous computing i-button, ID-card Service creation User friendly, end-point/network

Media Services in CINEMA BACKUP SLIDES

55 DO SIP/2.0 ….. turn lamp on serial port lamp X10 device SIP beyond telephony SUBSCRIBE NOTIFY DO INVITE

56 PSTN interworking Translating audio (PCMU/PCMA) Translating signaling (PRI/T1,ISUP) Overlap signaling Advanced features in SIP are lost in PSTN Translating identifiers (phone number) Determining transition points Telephone network SIP/PSTN gateway SIP serverIP endpoint Telephone subscriber

57 PSTN to IP Gateway knows the SIP server ENUM DNS => e164.arpa => Suitable for relatively “static” contacts

58 IP to PSTN Static mapping xxxx ITGW information is dynamic: Overlapping networks Multiple providers Load balancing TRIP Route advertisement Can be implemented in outbound proxy Suitable for current hierarchical network at 4¢/min at 1¢/min free

59 SIP-CGI Programming language independent Maintains state via an opaque token For SIP proxies and endpoints: call routing controlling forking call rejection call modification (Priority, Call-Info) RFC 3050 Upload via web or REGISTER

60 SIP CGI contd. Block if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ { print "SIP/ I can't talk right now\n\n"; } Make calls from boss as urgent: if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ { foreach $reg (get_regs()) { print "CGI-PROXY-REQUEST $reg SIP/2.0\n"; print "Priority: urgent\n\n"; }

61 CPL XML-based; interpreted Control Restricted to branching and subroutines no variables, no loops structured tree describing actions performed on call setup event Event incoming and outgoing events Switch address, language, time, priority Action Proxy, redirect, reject (busy) Graphical tools Protocol-independent SIP, H.323 Extensions CPL for presence Logging Call not match match actions

62 CPL contd. <time dtstart=" T140000Z" dtend=" T150000Z">

63 SIP servlet Java-based Runs in SIP server Receives SIP objects and processes them public class RejectServlet extends SipServletAdapter { public boolean doInvite(SipRequest req) { SipResponse res = req.createResponse(); res.setStatus(603); res.send(); return true; }