1 / 51 Henning Schulzrinne, Supreeth Subramanya, Xiaotao Wu Department of Computer Science Columbia University Date: Feb 21, 2008 Advanced 2 – Developer’s.

Slides:



Advertisements
Similar presentations
SIP, Presence and Instant Messaging
Advertisements

An Application Component Architecture for SIP Jonathan Rosenberg Chief Scientist.
Fall VoN 2000 SIP Servers SIP Servers: A Buyers Guide Jonathan Rosenberg Chief Scientist.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
1 IP Telephony (VoIP) CSI4118 Fall Introduction (1) A recent application of Internet technology – Voice over IP (VoIP): Transmission of voice.
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.
Tom Behrens Adam Muniz. Overview What is VoIP SIP Sessions H.323 Examples Problems.
Voice over IP Fundamentals
Security in VoIP Networks Juan C Pelaez Florida Atlantic University Security in VoIP Networks Juan C Pelaez Florida Atlantic University.
SIP and IMS Enabled Residential Gateway Sergio Romero Telefónica I+D Jan Önnegren Ericsson AB Alex De Smedt Thomson Telecom.
29.1 Chapter 29 Multimedia Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Session Initiation Protocol (SIP) By: Zhixin Chen.
Cmpe 491 Special Project In Computer Engineering SIP User Agent In JAVA Alp Eren YILMAZ & Serdar YALÇINKAYA.
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University
Electrical Engineering Department Software Systems Lab TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY Meeting recorder Application based on Software Agents.
1 / 14 VoIP SYSTEMS for FAA Henning Schulzrinne, Supreeth Subramanya, Xiaotao Wu Department of Computer Science Columbia University Date: Feb 25, 2008.
 3G is the third generation of tele standards and technology for mobile networking, superseding 2.5G. It is based on the International Telecommunication.
Internet Telephony Helen J. Wang Network Reading Group, Jan 27, 99 Acknowledgement: Jimmy, Bhaskar.
IRT Lab IP Telephony Columbia 1 Henning Schulzrinne Wenyu Jiang Sankaran Narayanan Xiaotao Wu Columbia University Department of Computer Science.
VoIP beyond calling grandma: 3 projects Henning Schulzrinne Dept. of Computer Science, Columbia University, New York (with Jong Yul.
Agenda Introduction to 3GPP Introduction to SIP IP Multimedia Subsystem Service Routing in IMS Implementation Conclusions.
Presence Vishal Kumar Singh and Henning Schulzrinne Feb 10, 2006.
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
Session Initialization Protocol (SIP)
By Stephen Tomko H.323 vs. SIP. Internal PBX Call Extension number is dialed PBX receives extension Routes extension Routes call to the phone Call begins.
Session Initiation Protocol Tutorial Ronen Ben-Yossef VP of Products - RADCOM
Architecture SIP proxy, redirect server SQL database sipd Proxy, Redirect, Registration server. Authentication Programmable (SIP- CGI) OpenSource SQL database:
Event-based Radio Communication Signaling using the Session Initiation Protocol Klaus Darilion.
SIP/RTSP convergence draft-whitehead-mmusic-sip-for-streaming-media-05
Appendix A Implementing Unified Messaging. Appendix Overview Overview of Telephony Introducing Unified Messaging Configuring Unified Messaging.
CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 4 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
Application-Layer Mobility Using SIP Henning Schulzrinne, Elin Wedlund Mobile Computing and Communications Review, Volume 4, Number 3 Presenter: 許啟裕 Date:
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.
B2BUA – A New Type of SIP Server Name: Stephen Cipolli Title: System Architect Date: Feb. 12, 2004.
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.
Introduction to SIP Based ENUM IP Telephony Infrastructure 資策會 網路及通訊實驗室 Conference over IP Team 楊政遠 博士
A Conference Gateway Supporting Interoperability Between SIP and H.323 Jiann-Min Ho (Presenter) Jia-Cheng Hu Information Networking Institute Peter Steenkiste.
Presented By Team Netgeeks SIP Session Initiation Protocol.
Voice over IP by Rahul varikuti course instructor: Vicky Hsu.
Streaming Media Control n The protocol components of the streaming n RTP/RTCP n RVSP n Real-Time Streaming Protocol (RTSP)
OS Services And Networking Support Juan Wang Qi Pan Department of Computer Science Southeastern University August 1999.
Lab Assignment 15/ INF5060: Multimedia data communication using network processors.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
VoIP Signaling Protocols A signaling protocol is a common language spoken by telephones and call-management servers, the PSTN, and legacy PBX systems as.
Multimedia and Networks. Protocols (rules) Rules governing the exchange of data over networks Conceptually organized into stacked layers – Application-oriented.
Session Initiation Protocol (SIP) Chapter 5 speaker : Wenping Zhang data :
Project Objectives A multi-function programmable SIP user agent for multimedia communications, such as audio, video, white board, desktop sharing, shared.
Lecture 10. P2P VoIP D. Moltchanov, TUT, Fall 2014
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
CSE5803 Advanced Internet Protocols and Applications (14) Introduction Developed in recent years, for low cost phone calls (long distance in particular).
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.
Multimedia Streaming I. Fatimah Alzahrani. Introduction We can divide audio and video services into three broad categories: streaming stored audio/video,
1 Internet Telephony: Architecture and Protocols an IETF Perspective Authors:Henning Schulzrinne, Jonathan Rosenberg. Presenter: Sambhrama Mundkur.
The Session Initiation Protocol - SIP
3/10/2016 Subject Name: Computer Networks - II Subject Code: 10CS64 Prepared By: Madhuleena Das Department: Computer Science & Engineering Date :
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
سمینار تخصصی What is PSTN ? (public switched telephone network) تیرماه 1395.
VoIP ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
IP Telephony (VoIP).
Towards Junking the PBX: Deploying IP Telephony
Session Initiation Protocol (SIP)
Net 431: ADVANCED COMPUTER NETWORKS
Where should services reside in Internet Telephony Systems?
Simulation of Session Initiation Protocol
SIP Basics Workshop Dennis Baron July 20, 2005.
Presentation transcript:

1 / 51 Henning Schulzrinne, Supreeth Subramanya, Xiaotao Wu Department of Computer Science Columbia University Date: Feb 21, 2008 Advanced 2 – Developer’s Guide to FAA VoIP

2 / 51 Discussion Flow The Bigger Picture A VoIP Review Classroom VoIP system Lab VoIP system Conclusion

3 / 51 Discussion Flow The Bigger Picture VoIP review Classroom VoIP system Lab VoIP system Conclusion FAA… what’s that? What is IRT doing there? How are the ATCs Trained?

4 / 51 The Bigger Picture (1/4) Federal Aviation Administration (FAA) An agency of the U.S. Department of Transportation with authority to regulate and oversee all aspects of civil aviation in the U.S. FAA Academy The education and training division of FAA Provides training to all personnel of aviation community We’re working with a group responsible for training the Air Traffic Controllers (ATC)

5 / 51 The Bigger Picture (2/4) ATC Training levels Low fidelity – instructional games, individual training Medium fidelity – real time interactive training Full fidelity – complex interactions, real hardware Photos - &

6 / 51 The Bigger Picture (3/4) FAA Academy Communication System Three parallel networks in every classroom and lab Data Network (Fast or Gigabit Ethernet) Voice Network (Analog, hardwired point-to-point connections) Video Network (Graphical simulations) Disadvantages Difficult to add new training scenarios Uses obsolete equipments, no longer available without custom manufacture Solution – convergence of Data and Voice networks Digital vs. analog Better utilization of bandwidth Reconfigurability in connections I’m in Hardware-based Software-based

7 / 51 The Bigger Picture (4/4) What are the ATCs trained on? Learning to use air traffic control devices & displays Communicating and coordinating with Pilots / ATCs Many more aspects Learning the air traffic rules Developing a mental picture of air-space and air-timing Why should we care? We are designing the communication system We’ll have to use air traffic control devices and displays for input/output Photo -

8 / 51 Discussion Flow The Bigger Picture VoIP review Classroom VoIP System Lab VoIP System Conclusion VoIP – Protocol Perspective The World of SIP

9 / 51 VoIP Review What protocols are needed? Signaling – protocols to establish presence, locate users, set up, modify and tear down sessions Media Transport – protocols for transmission of packetized audio/video Support – protocols for Gateway Location, QoS, inter-domain AAA*, address translation, NAT traversal, resolution of phone numbers etc. What protocols are there? Signaling: SIP, RTSP (IETF), H.323 (ITU-T) Media transport: RTP Transport: UDP, TCP Supporting protocols: DNS, RSVP, ICE, ENUM * AAA = Authentication, Authorization, Accounting

10 / 51 PROTOCOL ZOO VoIP Review

11 / 51 Find me then call me VoIP Review (SIP) Registrar Proxy Hey, this is Tony, I am in cs.columbia.edu domain I am at I want to talk to Tony Where is Tony? He is at Invite Tony for a conversation

12 / 51 SIP REQUESTS Request purposeCode Establish a session with offer/answer INVITE Acknowledge a response to an INVITE ACK Query the capabilities of a server/UA OPTIONS Cancel a pending requestCANCEL Terminate an existing SIP session BYE Temporarily bind a device URIREGISTER Request purposeCode Establish a session to receive future information updates SUBSCRIBE Deliver information after SUBSCRIBE NOTIFY Upload status information to serverPUBLISH Request another UA to act upon a URI REFER Transport an instant messageMESSAGE Update session state informationUPDATE Basic:Extended: VoIP Review (SIP)

13 / 51 ClassCodeExamples Informational1xx100 Trying 180 Ringing Success2xx200 OK Redirection3xx301 Moved Permanently 305 Use Proxy Client Error4xx401 Unauthorized 404 Not Found Server Error5xx503 Service Unavailable Global Failure6xx600 Busy Everywhere 606 Not Acceptable Borrowed from HTTP xyz explanatory text Uses x80 and higher codes to avoid conflicts with future HTTP response codes SIP RESPONSES VoIP Review (SIP)

14 / 51 SIP CALL FLOW INVITE 180 RINGING 200 OK 100 TRYING 180 RINGING 200 OK ACK BYE MEDIA SESSION proxy.domain1.comserver.domain2.com VoIP Review

15 / 51 Services/Features/Functions VoIP Review SIP CGI, CPL, SIP Servlet

16 / 51 SIP CGI VoIP Review Similar to HTTP CGI, an interface for service programming on SIP servers Invoke a service application as another process Expose SIP messages (method, headers, and content) through environment variables and stdin to the service application The application then generate user wanted responses to stdout, pipe to SIP server server process env(REQUEST_METHOD) = INVITE env(REQUEST_URI) = …… application invoke puts … INVITE output from the application

Media transmission VoIP Review Please send audio to port using RTP with G.711 codec 20 ms packetization period Ok, got it, Please send audio to port using RTP with G.711 codec 20 ms packetization period Ok, acknowledged INVITE with SDP 200 Ok with SDP ACK RTP with packetized audio data

18 / 51 Discussion Flow The Bigger Picture A VoIP Primer Classroom VoIP system Lab VoIP system Conclusion Communication Requirements Translation to SIP domain Bundling things together

19 / 51 The Classroom VoIP System (1/12) Overview Consists of up to 26 Students (ATC, Pilot) and 1 instructor Students and instructor use computer and push-to-talk (PTT) device Instructor loads a flight scenario and teaches/tests the students Single Sector Scenario

20 / 51 The Classroom VoIP System (1/12) Overview Consists of up to 26 Students (ATC, Pilot) and 1 instructor Students and instructor use computer and push-to-talk (PTT) device Instructor loads a flight scenario and teaches/tests the students Dual Sector Scenario

21 / 51 The Classroom VoIP System (2/12) Four Communication scenarios ATC communicates with the pilots in his sector (radio broadcast) ATC communicates with neighboring ATCs during pilot handoff (point-to-point) Instructor may monitor students (i.e. listen to what they hear/talk) Instructor may record the training sessions SIP perspective Signaling – Student UA, Instructor UA and SIP proxy Voice communication – RTP stack, Audio/speech codec library System information – Database (MySQL) One ATC may talk to many entities simultaneously A conference call a conference server, full-mesh conference multicast cascaded conference application layer multicast

We use multicast Inside firewall and behind a NAT Server performance and scalability Easy implementation 22 / 51

23 / 51 The Classroom VoIP System (3/12) 1. Radio (or Frequency) Communication, similar to multicast Communication amongst ATC and all the pilots in his sector  Multicast The flight scenario loaded by the instructor defines the communication rules SIP perspective Every radio channel is given a permanent SIP address There’s no destination for a radio call – the caller needs to join a multicast session Generation and management of multicast address Problem: each exercise uses the same SIP URI for a radio channel, they should not talk to each other Multicast Address Provider UA (MAP UA) – providing multicast addresses for different exercises Define the rules for allowing a student to participate in a radio channel communication Configurations and roles defined in database (by the Instructor) Call routing logic: routed to MAP UA, or the other party in the exercise? SIP-CGI

24 / 51 The Classroom VoIP System (4/12) Radio Communication Design

25 / 51 The Classroom VoIP System (5/12) 2. Landline (or Facility) Communication Directed communication between ATC-ATC or Pilot-ATC  Unicast Not really unicast (if the instructor wants to monitor this conversation) SIP perspective Every landline channel is given a permanent SIP address Call destination dependents on the caller and the called landline If (caller == Pilot) then (destination = ATC) If (caller == ATC & channel 1) then (destination = the first pilot who picks the call) If (caller == ATC & channel 2) then (destination = neighboring ATC) Generation and management of multicast address Communication rules  Configurations/roles defined in the Database Logic for processing the communication request  SIP-CGI

26 / 51 The Classroom VoIP System (6/12) Landline Communication Design

27 / 51 The Classroom VoIP System (7/12) 3. Instructor Monitoring Instructor monitoring – to hear an ATC communicate during practice/test Instructor interjection – to give directions to the monitored student SIP perspective The basic insight We’ve setup every communication in the multicast mode So, make the instructor join all those sessions that has the selected student Keep the instructor updated about the status of the student Ideal case for SIP Subscribe/Notify mechanism The SIP flow Instructor UA sends a SUBSCRIBE request to Student UA Student UA sends NOTIFY with multicast addresses of all the sessions that it is part of Student UA sends NOTIFY to Instructor UA, whenever a session is added/removed Instructor accordingly joins/unjoins the corresponding multicast group

28 / 51 The Classroom VoIP System (8/12) 4. Classroom Recording Record all the voice communications pertaining to an exercise (i.e. flight scenario) Ability to record more than one exercise simultaneously Options to start, stop and pause the recording anytime during the training Ability to select and replay the recorded streams later SIP perspective Real time control of record and playback  RTSP Setup and updation of student communication status  SIP Subscribe/Notify Storage and retrieval of recorded files  Fileserver Playback of recorded streams  Archive Player

29 / 51 The Classroom VoIP System (9/12) Classroom Recording - SIP/RTSP Design Instructor / RTSP Client 5) SETUP (multicast address) 7) RECORD (multicast address) 6) 200 OK 8) 200 OK 9) TEARDOWN (multicast address) 10) 200 OK File System RTSP Server Mix streams and store ATC 2 ATC 1 ATC n 1) SUBSCRIBE 3) NOTIFY with multicast addresses 2) 200 OK 4) 200 OK

30 / 51 The Classroom VoIP System (10/12) User Interfaces and I/O Devices Student UI Buttons for each radio and landline channels Audio visual cues to describe the state – Unselected, Selected, Active or Ringing Dynamic creation of the UI based on a configuration file Push-To-Talk (PTT) A USB device with a headphone, a microphone and a binary switch Used as a selector for the voice transmission channel Reception on radio and landline can be simultaneous, but transmission is mutually exclusive SIGNAL System UI VoIP System UI

31 / 51 The Classroom VoIP System (11/12) User Interfaces and I/O Devices Instructor UI Create configurations/rules and load/unload exercises Monitor students and record/replay voice communications Visual representation of the classroom VoIP System UI SIGNAL System UI

32 / 51 The Classroom VoIP System (12/12) Implementation and Packaging Client applications, MAP UA, and SIP CGI implementation are in Tcl/Tk server implementation and RTP and audio/speech library is in C++ Student, instructor machines are Windows and VoIP server is Linux Freewrap - to package all the Tcl/Tk files into a single windows executable Installshield - to put the executables, configuration files Linux RPM - sipd, rtspd, sip-cgi, mapua, MySQL Demonstration Use-cases Instructor loads configuration and students start radio communication Student simultaneously starts a landline communication Instructor monitors a student, also does a status query

33 / 51 Discussion Flow The Bigger Picture A VoIP Primer Classroom VoIP system Lab VoIP system Conclusion Classroom vs. Lab Communication/Hardware Requirements Translation to SIP domain

34 / 51 The Lab VoIP System (1/7) How does it translate for us? Lots of I/O processing and UI design Separate user agents for ATC, Pilot, Position Instructor More SIP flows Classroom vs. Lab Simulation of what goes on in the real world (of ATCs) I/O devices and interfaces are many in number, and are quite complex There are two types of instructors Master Instructor, responsible for the whole class Position Instructor, responsible for one student All the students are no longer identical ATCs and Pilots use different devices/interfaces and are seated in different rooms Communication mechanisms exist between every two entities in the lab (well, almost!)

35 / 51 The Lab VoIP System (2/7) Communication scenarios Four communication scenarios of the classroom VoIP system Generate notification, if there’s a transmission on an unselected radio channel Complex landline and Inter-position communication scenarios Few others (made trivial by the extensible design of the classroom system) Separation of Transmission and Reception on radio channels Simultaneous monitoring of more than one student by the instructor User Interfaces and I/O Devices Four rich graphical interfaces Pilots, ATCs, Position Instructors Master Instructor (upgrade over the existing instructor UI) Five I/O devices Push -To -Talk, Touch-screens, Foot-pedals, Headsets, Speakers

36 / 51 The Lab VoIP System (3/7) User Interfaces 1. Unified, configurable GUI for ATC and Position Instructors

37 / 51 The Lab VoIP System (4/7) User Interfaces 2. Configurable shared GUI for Pilots

38 / 51 The Lab VoIP System (5/7) Transmission on an Unselected Radio Channel ATC needs a visual cue, if someone is transmitting on an unselected channel SIP perspective Need a mechanism to – Collect information about transmissions on every radio channel Manage a list of students, who need to be informed for every channel Send out notifications to everyone in the list for a given channel Ideal for SIP Subscribe-Publish-Notify mechanism Central management subscribe, publish and notify  Presence server Modifications in all the UA/UIs to coordinate with the presence server

39 / 51 The Lab VoIP System (6/7) Informing Transmissions On Unselected Channels Presence Server ATC 2 ATC 1 ATC 3 1) SUBSCRIBE radio1 2) UNSUBSCRIBE radio1 3) PUBLISH radio1 1) SUBSCRIBE radio1 4) NOTIFY radio1 1) SUBSCRIBE radio1 4) NOTIFY radio1

40 / 51 The Lab VoIP System (7/7) Landline and Inter-position communications Landline communication channels could be Ring lines: caller dials, phone rings, callee picks up  bidirectional media exchange Shout lines: caller dials  transmits the media, callee picks up  bidirectional media exchange Override lines: caller dials  bidirectional media exchange Need for Inter-position communications Not all the trainers and trainees are in the same room; Labs have very limited lighting SIP perspective All these are to be covered during instructor monitoring and recording  Multicast Logic for processing the calls  SIP-CGI, Call handling at UA/UI Generation and management of multicast address  MAP UA Communication rules  Configurations/roles defined in the Database

41 / 51 Discussion Flow The Bigger Picture A VoIP Primer Classroom VoIP system Lab VoIP system Conclusion

42 / 51 Conclusion (1/1) Progress so far Classroom VoIP is operational in 5 training rooms Lab VoIP prototype deployed by June ‘07 Key learning Map real-world communication scenarios to SIP/RTP/RTSP flows Put together SIP components, leading to a VoIP architecture Importance of an extensible design with well-defined interfaces VoIP system migration from classrooms to the labs Need for robust error/warning handling Thank you!

Let’s do it What should I do? Where are the files? Which part of the file? How? Cross your fingers, oops, … k, d ne, … 43 / 51

What should I do Configuration or logic Client side or server side address assignment, call routing – server appearance, user interactions – client GUI, control, or database new buttons, different layout, … perform different functions need to access persistent data 44 / 51

Where are the files Server side sipcgi.tcl – SIP CGI implementation mapua.tcl – providing multicast addresses Client side look into *.wrap file GUI student_ui.tcl instrui_*.tcl archieve_player.tcl Logic sipua.tcl instructorua.tcl rtspc.tcl Database iids_dbconnect.tcl 45 / 51

Which part of the file check the API doc of the file identify the procedure or add a new procedure GUI create widget, bind it to an event-handling function, implement the function Control find the function for request/response handling, modify the logic Database find the db function, and use ‘sql’ command 46 / 51

How? Learn from the existing code e.g., put image create in one place Separate GUI code from control code create, bind, pack, callback little trick: tkwait visibility AppDebug::perror use of array, list, “…”, {…} coding convension 47 / 51

48 / 51 No usable IDE for Tcl Use AppDebug::perror and check *debug*.txt files Use tk_messageBox –type ok – message “…” Tk’s error dialog box separate your new code, use tclsh and wish to run it

Enable lower level debug E.g., in student_ui.tcl sip.dbg file Monitor window 49 / 51 Debug::init. set Debug::enableDebug 1 Gui_Monitor::init Gui_Monitor::main # Load database Tue Feb 19 4:11:39 PM Eastern Standard Time 2008 Local::init: os is Windows Tue Feb 19 4:11:39 PM Eastern Standard Time 2008 a_wintcpip: ,gateway , gateway {} ,domain usae.avaya.com , nameserver ,domain {} ,nameserver {}

k check in your code, put check in notes 50 / 51

51 / 51