Speaker : Hsuan-Ling Weng Advisor : Dr. Kai-Wei Ke Date: 2015/11/05 1 VoIP SIP Features Network elements Operation Messages Message flow of calling procedure Typical H.323 Stack Network Elements Zone RAS H.225 Call Signaling H.245 Message flow of calling procedure H.323 References 2 Voice over IP (VoIP) is a methodology and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. Other terms commonly associated with VoIP are IP telephony, Internet telephony, broadband telephony, and broadband phone service. 3 Session Initiation Protocol (SIP) is the core protocol for initiating, managing and terminating sessions in the Internet. These sessions may be text, voice, video or a combination of these. SIP sessions involve one or more participants and can use unicast or multicast communication. 4 Find out IP Address(Location) of users Session Initiation Session Management 5 User agent: A SIP user agent (UA) is a logical network end-point used to create or receive SIP messages and thereby manage a SIP session. A SIP UA can perform the role of a user agent client (UAC), which sends SIP requests, and the user agent server (UAS), which receives the requests and returns a SIP response. 6 Proxy server The proxy server is an intermediary entity that acts as both a server and a client for the purpose of making requests on behalf of other clients. A proxy server primarily plays the role of routing, meaning that its job is to ensure that a request is sent to another entity closer to the targeted user. 7 Registrar A registrar is a SIP endpoint that accepts REGISTER requests and places the information it receives in those requests into a location service for the domain it handles. 8 Redirect server A user agent server that generates 3xx (Redirection) responses to requests it receives, directing the client to contact an alternate set of URIs. The redirect server allows proxy servers to direct SIP session invitations to external domains. 9 Redirect Server 2 3 Registrar 4 5 6 SIP Proxy Server 1 9 10 SIP Proxy Server 7 8 11 User Agent Client RTP Stream User Agent Server 10 There are two different types of SIP messages: requests and responses. SIP request REGISTER: Used by a UA to register to the registrar. INVITE: Used to establish a media session between user agents. ACK: Confirms reliable message exchanges. CANCEL: Terminates a pending request. BYE: Terminates an existing session. OPTIONS: Requests information about the capabilities of a caller without the need to set up a session. Often used as keepalive messages. REFER: indicates that the recipient (identified by the Request-URI) should contact a third party using the contact information provided in the request. (call transfer) 11 SIP response Provisional (1xx): Request received and being processed. Success (2xx): The action was successfully received, understood, and accepted. Redirection (3xx): Further action needs to be taken (typically by sender) to complete the request. Client Error (4xx): The request contains bad syntax or cannot be fulfilled at the server. Server Error (5xx): The server failed to fulfill an apparently valid request. Global Failure (6xx): The request cannot be fulfilled at any server 12 UAC UAS Proxy Server INVITE INVITE 100 Trying 180 Ringing 180 Ringing 200 OK 200 OK ACK ACK Conversation BYE 200 OK 13 H.323 was first approved in February 1996, the same month that the first SIP draft was published. Designed to operate over complex networks, such as the Internet. First standards-based “Voice over IP”. H.323 is a multimedia conferencing protocol, which includes voice, video, and data conferencing, for use over packet-switched networks. 14 H.323 – “Umbrella” document that describes the usage of H.225.0, H.245, and other related documents for delivery of packet-based multimedia conferencing services. H.225.0 – Describes three signaling protocols (RAS, Call Signaling, and “Annex G”). H.245 – Multimedia control protocol (common to H.310, H.323, and H.324). 15 16 Terminal T Terminals are the client endpoints on the LAN that provide real-time, two- way communications. All terminals must support voice communications; video and data are optional. All H.323 terminals must also support H.245, which is used to negotiate channel usage and capabilities. Three other components are required: Q.931 for call signaling and call setup, a component called Registration/Admission/Status (RAS), which is a protocol used to communicate with a Gatekeeper; and support for RTP/RTCP for sequencing audio and video packets. 17 Gateway GW The Gateway is composed of a “Media Gateway Controller” (MGC) and a “Media Gateway” (MG), which may co-exist or exist separately The MGC handles call signaling and other non-media-related functions The MG handles the media Gateways interface H.323 to other networks, including the PSTN, H.320 systems, other H.323 networks (proxy), etc. 18 MCU MCU Responsible for managing multipoint conferences (two or more endpoints engaged in a conference) The MCU contains a Multipoint Controller (MC) that manages the call signaling and may optionally have Multipoint Processors (MPs) to handle media mixing, switching, or other media processing 19 Gatekeeper GK The Gatekeeper is an optional component in the H.323 system which is used for admission control and address resolution The gatekeeper may allow calls to be placed directly between endpoints or it may route the call signaling through itself to perform functions such as follow-me/find-me, forward on busy, etc. 20 A single Gatekeeper and all of the devices connected to it There may be more than one physical Gatekeeper device that provides the logical Gatekeeper functionality for a zone GW MCU GK T There is no imposed limit on the number or types of devices in a zone 21 Registration, Admission, and Status Used between the endpoint and its Gatekeeper in order to Allow the Gatekeeper to manage the endpoint Allow the endpoint to request admission for a call Allow the Gatekeeper to provide address resolution functionality for the endpoint RAS signaling is required when a Gatekeeper is present in the network (i.e., the use of a Gatekeeper is conditionally mandatory) 22 RAS messages generally have three types Request (xRQ) Reject (xRJ) Confirm (xCF) Exceptions are Information Request / Response / Ack / Nak The “nonStandardMessage” The “unknownMessage” response Request in Progress (RIP) Resource Available Indicate / Confirm (RAI/RAC) Service Control Indication / Response 23 Typically, RAS communications is carried out via UDP through port 1719 (unicast) and 1718 (multicast) For backward compatibility sake, an endpoint should be prepared to receive a unicast message on port 1718 or 1719 Only UDP is defined for RAS communications GRQ and LRQ may be send multicast, but are generally sent unicast All other RAS messages are sent unicast 24 Gatekeeper Request - GRQ When an endpoint comes to life, it should try to “discover” a gatekeeper by sending a GRQ message to a Gatekeeper Address of a Gatekeeper may be provisioned The endpoint may send a multicast GRQ Address of a Gatekeeper may be found through DNS queries (Annex O/H.323) There may be multiple Gatekeepers that could service an endpoint, thus an endpoint should look through potentially several GCF/GRJ messages for a reply 25 Gatekeeper Registration – RRQ Once a Gatekeeper has been “discovered”, the endpoint will then register with the Gatekeeper in order to receive services Communication is exclusively via port 1719 (unicast) Endpoint will send an RRQ and expect to receive either an RCF or RRJ 26 Admission Request - ARQ Once registered with a Gatekeeper, the endpoint may only initiate or accept a call after first requesting “admission” to the Gatekeeper via the ARQ message The Gatekeeper may accept (ACF) or reject (ARJ) the request to place or accept a call 27 Location Request - LRQ The LRQ message is sent by either an endpoint or a Gatekeeper to a Gatekeeper in order to resolve the address of an alias address (e.g., to turn a telephone number into an IP address) While LRQs may be sent by endpoints, they are almost exclusively sent by Gatekeepers 28 Bandwidth Request - BRQ Subsequent to initial call setup, the endpoint may wish to use more or less bandwidth than previously indicated via the BRQ Note that, while it is syntactically legal for the GK to send a BRJ to a request asking for less bandwidth, this makes no sense and should not be done An endpoint must send a BRQ subsequent to initial call establishment if the actual bandwidth utilized is less than initially requested 29 Disengage Request - DRQ Once a call completes, the endpoint sends a DRQ message to the Gatekeeper The Gatekeeper may send a DRJ, but this is strongly discouraged… if an endpoint is sending a DRQ, it means the call is over and cannot be “rejected”! The Gatekeeper may also send a DRQ to force the endpoint to disconnect the call 30 Information Request - IRQ The IRQ is sent by the Gatekeeper to the endpoint to request information about one or all calls There are many details about each call that are reported to the Gatekeeper in the Information Response (IRR) message 31 H.225.0 Call Signaling is used to establish calls between two H.323 entities It was derived from Q.931 (ISDN call signaling), but was modified to be suitable for use on a packet based network H.225.0 also borrows messages from Q.932 32 H.225.0 Call Signaling Messages Setup Progress Call Proceeding Status Alerting Status Inquiry Information Setup Acknowledge Release Complete Notify Facility Connect 33 34 H.245 provides “control” to the multimedia session that has been established Terminal capability exchange Master/Slave determinations Logical channel signaling Closing the H.245 Control Channel 35 Four H.245 Message Types(and examples of each) Request masterSlaveDetermination terminalCapabilitySet Response masterSlaveDeterminationAck terminalCapabilitySetAck Command sendTerminalCapabilitySet Indication userInput 36 Capabilities Exchange The capability exchange (or “caps exchange”) allows two endpoints to exchange information about what media capabilities they possess, such as G.711, G.723, H.261, and H.263 Along with the type of media, specific details about the maximum number of audio frames or samples per packet is exchanged, information about support for silence suppression, etc. are exchanged Using this capability information, endpoints can select preferred codes that are suitable to both parties 37 Master Slave Determination Once capabilities are exchanged, the endpoints negotiate master and slave roles The master in a point to point conference really only has the power to indicate when channels are in conflict (e.g., when one the other terminal tries to open a channel that is not compatible) The slave device must yield to the requests of the master device and reconfigure channels appropriately 38 Logical Channel Signaling Channels are opened by exchanging “openLogicalChannel” (OLC) messages The OLC will contain one of the capabilities that was previously advertised by the other endpoint Within the OLC, a “session ID” is assigned Session 1 is the default audio session, 2 is the default video session, and 3 is the default data session 39 Closing the H.245 Control Channel H.323 specifies that, in order to close the H.245 Control Channel, the endpoint must: Close all open logical channels Wait for all acknowledgement messages Send an “endSession” command Wait for an “endSession” from the other side In reality, most endpoint vendors don’t bother– they just use the H.225.0 Release Complete command to terminate the call and close the H.245 Control Channel, as that is much more efficient 40 Caller PC Callee PC Gatekeeper Gatekeepr Request Gatekeeper Confirm Registration Request Registration Confirm Gatekeep Request Gatekeeper Confirm RAS Registration Request Registration Confirm Admission Request Admission Confirm Setup H.225 Call Proceeding Admission Request RAS Admission Confirm Alerting H.225 Connect Master Slave Determination H.245 Terminal Capability Set Open Logical Channel RTP or RTCP Voice communication . . . RTP or RTCP 41 [1] Voice over IP, URL: https://en.wikipedia.org/wiki/Voice_over_IP [2] Session Initiation Protocol, URL: https://en.wikipedia.org/wiki/Session_Initiation_Protocol#SIP_messages [3] H.323 Papers and Presentations, URL: https://www.packetizer.com/ipmc/h323/papers/ [4] 黃威穎著,「H.323網路電話音訊監控與錄製系統之研製」,碩士論文,國 立台北科技大學資訊工程系碩士班,台北,2008。 [5] 蔡家瑞著,「客製化H.323協定之至慧型網路電話監控語錄音系統」,碩士 論文,國立台北科技大學資訊工程系碩士班,台北,2009。 [6] 張以磊著,「分散式網路事件分析紀錄系統之研製」,碩士論文,國立台北 科技大學資訊工程系碩士班,台北,2013。 42 43