Protocols Suite By: Aleksandr Gidenko What is H.323? H.323 is a multimedia conferencing protocol for voice, video and data over IP-based networks that do not provide a guaranteed Quality of Service (QoS). It was designed to operate over complex networks, such as the Internet. H.323 was first approved in February 1996 and was published by the ITU in November 1996. VoIP Usage “By mid-2007, there were 11.8 million consumer VoIP subscribers in the U.S. (more than 10 percent of U.S. households), according to a recent report from TeleGeography. By the end of 2007, this number is projected to reach 15.2 million subscribers and to 23.3 million by the end of 2011.” H.323 Usage - Public Switched Telephone Network H.323 Protocol Stack OSI TCP/IP H.323 Protocol Stack (cont.) H.225.0 Registration, Admission and Status (RAS) Used in gatekeeper discovery and endpoint registration. RAS is unreliable. H.255 recommends time-outs and retry counts for some messages. H.225.0 (Q.931) Call Setup and Termination Used to setup connections between endpoints. Creates a reliable control channel using TCP on port 1720. H.245 Control Signaling Handles transmission capabilities and mode preferences. Used to exchange end-to-end messages between endpoints. Resolves call media and established media flow. RTP Real-time Transport Protocol (RTP) is used to transport real-time media such as audio and video over IP networks. Provides timing information and transport-level sequencing. Uses application-level framing and integrated layer processing. RTCP The RTP control protocol (RTCP) handles the transmission of control packets to all participants in the session. RTCP Functions: (Outlined in RFC 1889) 1.Quality of Service (QoS) and congestion control 2.Identification 3.Session size estimation and scaling 4.Session control RTCP Packet Types: 1.Sender Report (SR) 2.Receiver Report (RR) 3.Source Description (SDES) 4.Goodbye (BYE) H.323 Communication H.323 Call ... If time permits... Lets get technical Headers RTP Header RTCP Header V = Version P = Padding X = Extension M = Marker CSRC = Contributing Source SSRC = Synchronization Source Headers (cont.) H.225.0 Header “The structure of H.225 follows the Q.931 standard” H.225.0 Information Elements Messages H.225.0 - RAS RRQ RCF RRJ ARQ ACF ARJ BRQ BCF BRJ DRQ DCF DRJ IRQ IRR RIP – Registration Request – Registration Confirmation – Registration Rejection – Admission Request – Admission Confirmation – Admission Rejection – Bandwidth Request – Bandwidth Confirmation – Bandwidth Rejection – Disengage Request – Disengage Confirmation – Disengage Rejection – Info Request – Info Request Response – Request in Progress (RAS timers) LRQ – Location Request 000 00001 00010 00111 01111 00011 00101 01101 001 00110 01110 00010 00101 01101 00001 00000 010 00101 01101 11010 00110 01110 011 00000 11001 11011 01110 11101 xxxxx xxxxx xxxxx xxxxx H.225.0 - Q.931 Call establishment messages: ALERTING CALL PROCEEDING CONNECT CONNECT KNOWLEDGE PROGRESS SETUP SETUP ACKNOWLEDGE Call information phase messages: RESUME RESUME ACKNOWLEDGE RESUME REJECT SUSPEND SUSPEND ACKNOWLEDGE SUSPEND REJECT USER INFORMATION Call clearing messages: DISCONNECT RELEASE RELEASE COMPLETE RESTART RESTART ACKNOWLEDGE Miscellaneous messages: SEGMENT CONGESTION CONTROL INFORMATION NOTIFY STATUS Messages (cont.) H.245 Message Master-Slave Determination Function Determines which terminal is the master and which is the slave. Possible replies: Acknowledge, Reject, Release (in case of a time out). Terminal Capability Set Contains information about a terminal's capability to transmit and receive multimedia streams. Possible replies: Acknowledge, Reject, Release. Open Logical Channel Opens a logical channel for transport of audiovisual and data information. Possible replies: Acknowledge, Reject, Confirm. Close Logical Channel Closes a logical channel between two endpoints. Possible replies: Acknowledge Request Mode Used by a receive terminal to request particular modes of transmission from a transmit terminal. General mode types include VideoMode, AudioMode, DataMode and Encryption Mode. Possible replies: Acknowledge, Reject, Release. Send Terminal Capability Set End Session Command Commands the far-end terminal to indicate its transmit and receive capabilities by sending one or more Terminal Capability Sets. Indicates the end of the H.245 session. After transmission, the terminal will not send any more H.245 messages. Terms ITU - International Telecommunications Union MCU – Multipoint Control Unit MC – Multipoint Controller MP – Multipoint Processor MGC – Media Gateway Controller MG – Media Gateway RTP/RTCP – Real-time Transport Protocol / Real-time Transport Control Protocol SIP – Session Initiation Protocol (Competitor Protocol for VoIP) IETF - Internet Engineering Task Force) References Online Information Site: http://www.packetizer.com/ipmc/h323/ Protocol Overview: http://www.en.voipforo.com/H323/H323_objetives.php Primer: http://www.packetizer.com/ipmc/h323/papers/primer/ H.323 VS SIP: http://www.tspt.net.et/documentation/VOIP/H_323versusSIP.htm Open Source Project: http://www.h323plus.org/ Open Source Project: http://www.openh323.org/ Javvin: http://www.javvin.com/ VoIP Usage: http://techuntangled.com/us-voip-market-skyrockets-as-cable-companies-lead-the-w Book Stallings, William. Data and Computer Communications Images http://www.h323forum.org/ http://www.provu.co.uk/ipvideo_wvp2100.html http://www.packetizer.com/ipmc/h323/images/h323_logo.gif http://www.networkdictionary.com/howto/VOIPUsingH323ProtocolWork.php http://www.protocols.com/pbook/h323.htm http://www.ncih.net/h323/h323link.html http://www.networkdictionary.com/howto/VOIPUsingH323ProtocolWork.php http://techuntangled.com/us-voip-market-skyrockets-as-cable-companies-lead-the-way http://www.humanproductivitylab.com/archive_blogs/2006/10/22/cisco_joins_videoconference_fo_1.php Side Notes RTP - RFC 1889 RTCP - RFC 1889 “It is a part of the ITU-T H.32x series of protocols, which also address multimedia communications over Integrated Services Digital Network (ISDN), Public Switched Telephone Network (PSTN) or Signaling System 7 (SS7), and 3G mobile networks.” (http://en.wikipedia.org/wiki/H.323) “H.323 is an ITU VOIP protocol. It was created at about the same time as SIP, but was more widely adopted and deployed earlier. Today, most of the world's VoIP traffic is carried over H.323 networks, with billions of minutes of traffic being carried every month.” (http://www.voip-info.org/wiki/view/H.323) SIP is an application-level control protocol. Video codecs: H.261, H.263, H.264 Audio codecs: G.711, G.729, G.729a, G.723.1, G.726