slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
אז מה למדנו קודם??? PowerPoint Presentation
Download Presentation
אז מה למדנו קודם???

play fullscreen
1 / 155

אז מה למדנו קודם???

161 Views Download Presentation
Download Presentation

אז מה למדנו קודם???

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. אז מה למדנו קודם??? All right reserved to Netbryce

  2. Software is like sex You can pay for it but it's better when it's free. (Linus Torvalds) All right reserved to Netbryce

  3. VoIP overview • 1995 – VoIP invention in Israel (Vocaltec)- first Internet phone application • VoIP has been available for PC users since 1995. • Most of the usage was based upon the concept of Point-to-Point calling, centralized routing logic (Skype). • VoIP networks appearing since 1988 • Modern VoIP networks are intertwined with other VoIP networks, finding your way around can be a hassle. • Interconnection to legacy networks • Number lookup performed in VoIP methodologies? All right reserved to Netbryce

  4. In the begining... “Any sufficiently advanced technology is indistinguishable from magic.” — Arthur C Clarke All right reserved to Netbryce

  5. In to the future... All right reserved to Netbryce

  6. Overview • The protocols combining any IP Telephony architecture are divided into the following roles: Signaling Protocols Media Transport Protocols Supporting Protocols All right reserved to Netbryce

  7. Overview – Signaling Protocols • The VoIP Signaling Protocols perform the following services: • Locate a User – The ability to locate another user which whom a user wish to communicate with • Session Establishment – The ability of the called party to accept a call, reject a call, or redirect the call to another location or service • Session Setup Negotiation – The ability of the communicating parties to negotiate the set of parameters to use during the session, this includes, but not limited to, Audio encoding • Modify a Session – The ability to change a session’s parameters such as using a different Audio encoding, adding/removing a session participant, etc. • Teardown a Sessions – The ability to end a session All right reserved to Netbryce

  8. Overview – Media Transport Protocols • The Media Transport Protocols are used to carry voice samples (such as RTP) • The media transport protocols are able to use a codec to digitize voice and to compress it into small samples that will be encapsulated within an IP transport protocol and transported using an IP network All right reserved to Netbryce

  9. SIP Components • User Agents • Clients – Make requests • Servers – Accept requests • Server types • Redirect Server • Proxy Server • Registrar Server • Location Server • Gateways All right reserved to Netbryce

  10. Protocols (apologies to standards bodies!) • SIP • Session Initiation Protocol: RFC-2543 • Session control (voice call, video conference, web chat, etc.) • RTP is used for streaming media, SIP used for set-up, monitoring, take-down • Similar grouping as H.323 • SIP is rooted in Internet culture (URLs) with extensions to handle telephony • H.323 rooted in POTS (H.324) with extensions to handle IP addressing • Client to client • SIP / TCP or UDP / IP • MGCP • Media Gateway Control Protocol: RFC-2705 • Gateway control • Digit collection, make, delete connection, etc. • Text based • H.248 is the ITU variant, minor but important differences! • Controller to gateway (controller of endpoints) • MGCP / UDP / IP All right reserved to Netbryce

  11. Protocols (apologies to standards bodies!) • RTP • Real Time Protocol: RFC-1887 • Transport of streaming data (voice, video, etc) • Endpoint to endpoint • RTCP: used for passing control & statistical information • RTP / UDP / IP All right reserved to Netbryce

  12. Network Components • Client • Soft: PC or web applet • Hard: SIP phone (ethernet), POTS phone into: small gateway, USB port or IAD?? • Protocol: SIP, H.323, Skinny, Kazza • Gateway • Real world meets VoIP world! • “DSP farms” • Analog Terminal Adaptor • 3rd party or proprietary cards • routers/edge switch or PBX add-ons or dedicated • Controlled by another box (Softswitch), or call controller incorporated in gateway • Control protocols: MGCP/H.248, SIP (small gateway), H.323? (i/f to H.323 networks) All right reserved to Netbryce

  13. Call control • Still need a way to locate the other phone • Static configuration is possible — but doesn’t scale • In H.323 a directory server is commonly used • In SIP a proxy server can provide directory services viaredirection All right reserved to Netbryce

  14. So finding your destination looks like this… • Another common SIP proxy approach (B2BUA) • Proxy in the middle of all control communication • Note how media channels still flow directly All right reserved to Netbryce

  15. Network Components • SoftSwitch • Call / session controller • Enterprise IP PBX • Typically s/w product on commercial compute platform (Sun 4500 / Netra 1800) • Scalable (for carrier or Centrex) or not! (for enterprise) • May include other servers: proxy, re-direction, OAM, and applications • Protocol: control + session • SIP, H.323 (Gatekeeper) + MGCP, H.248 International SoftSwitch Consortium ( All right reserved to Netbryce

  16. Codec's • G.711: • 64kbps PCM, A-law(Europe) & U-law (USA) • Most DSP will allow different quantization for input & output • Packet sizes of 10, 20 ms rare 30 ms • Highest bandwidth, low delay, least distortion of signal (good for tones, fax & modem) • Lowest compute, therefore highest channel density on DSP • G.723.1: • 5.3 or 6.3 kbps • Packet size 30 ms • Subset of G.723, which was developed as part of H.324 / H.323 family of standards operate over 9.6 kbps modem (i.e. Long-time support) • Annex for silent suppression • Low(est) bandwidth, 37.5 ms algorithmic delay, signal can get distorted • High compute (8- 10x G.711) All right reserved to Netbryce

  17. Codec's (Cont’d) • G.729A • 8 kbps • Packet size 10, 20, 30 ms typical 30 ms • Annex A of G.729 (wireless) as a reduced complexity algorithm • Annex for silent suppression • Low bandwidth, 15 ms algorithmic delay (10 ms frame), less signal distortion • Medium compute (3- 5x G.711) • 8 Annexes! (G.729E MIPS @ ~2x G.729A, bw 11 kbps, but handles background noise better!) All right reserved to Netbryce

  18. Codec's (Cont’d) • G.726: • Adaptive: 40, 32, 24, 16 kbps • Origins in digital as half-rate PCM • G.728: • 16 kbps • Packet size: 2.5 ms • Almost real-time (0.625 ms algorithmic delay) • Highest compute All right reserved to Netbryce

  19. Putting it together SoftSwitch SIP / SIP-T MGCP MGCP SoftSwitch Gateway or Phone Adapter or Client Gateway or Phone Adapter or Client SIP RTP / RTCP All right reserved to Netbryce

  20. SIP protocol All right reserved to Netbryce

  21. What is the Session Initiation Protocol? • “SIP is an application-layer control protocol that can establish, modify, and terminate multimedia sessions (conferences) such as Internet telephony calls. SIP can also invite participants to already existing sessions, such as multicast conferences. Media can be added to (and removed from) an existing session. SIP transparently supports name mapping and redirection services, which supports personal mobility – users can maintain a single externally visible identifier regardless of their network location”. Text in this section was taken from draft-ietf-sip-rfc2543bis-09 All right reserved to Netbryce

  22. What is the Session Initiation Protocol? • SIP supports five facets of establishing and terminating multimedia communications: • User location: determination of the end system to be used for communication; • User availability: determination of the willingness of the called party to engage in communications; • User capabilities: determination of the media and media parameters to be used; • Session setup: “ringing”, establishment of session parameters at both called and calling party; • Session management: including transfer and termination of sessions, modifying session parameters, and invoking services. All right reserved to Netbryce

  23. Protocol Components • User Agent Client (UAC) • End Systems • Send SIP Requests • User Agent Server (UAS) • Listening for Incoming Requests • Execute an “internal logic”/program to determine the appropriate response • User Agent • UAC + UAS All right reserved to Netbryce

  24. User Agent Servers (UAS) • Application which contacts user when a SIP request is received • UAS then returns a response on behalf of user • Response either accepts, rejects, or redirects the request SIP Call Request “Call for you?” User Agent Server Call Accepted “I’ll accept.” All right reserved to Netbryce

  25. Registrar • Allows users to register their presence • A server that accepts REGISTER requests • Typically co-locatedwith a proxy or redirect server • May offer location services Proxy Server Register Server Redirect Server All right reserved to Netbryce

  26. Proxy Server • Intermediary program that acts as both a server and a client to make requests on behalf of other clients • A proxy interprets a request, and if necessary, rewrites request message before forwarding it User Agent 1 Originates SIP Requests Proxy Server User Agent X Responds for 1 and X • Answers on behalf of user. All right reserved to Netbryce

  27. Redirect Server User Agent • Redirects calls to new location • Provides router functionality • A server that accepts a SIP request, maps address into 0 or more new addresses and returns those addresses to client • Unlike a proxy server, a redirect server does not initiate its own SIP request • Unlike a user agent server, a redirect server does not accept calls Redirect Server User Agent Proxy Agent PSTN All right reserved to Netbryce

  28. Server Name • There are no rules for naming SIP servers • RFC 2543 encourages the naming convention of sip.domainname (i.e., • Clients may (and probably should) cache successful DNS queries Hey, what’s your name? All right reserved to Netbryce

  29. SIP Methods (Core Methods) • INVITE • Initiate Sessions • Change a Session state via re-INVITEs • ACK • Confirms Session Establishment • BYE • Terminates Sessions • CANCEL • Cancels an INVITE request sent by a client not already sent a final response for • OPTIONS • Query another UA or a proxy server as to its capabilities • REGISTER • Binds permanent address to the current location All right reserved to Netbryce

  30. Overview of Operation – Registration Registration is one way that the server can learn the current location of Bob. Upon initialization, and at periodic intervals, Bob’s SIP phone sends REGISTER messages to a server in the domain known as a SIP Registrar. The REGISTER messages associate Bob’s SIP or SIPS URI ( with the machine into which he is currently logged. The registrar writes this association, also called a binding, to a database, called the location service, where it can be used by the proxy in the domain. Bob is not limited to registering from a single device. For example, both his SIP phone at home and the one in the office could send registrations. This information is stored together in the location service and allows a proxy to perform various types of searches to locate Bob. Similarly, more than one user can be registered on a single device at the same time. The location service is just an abstract concept. It generally contains information that allows a proxy to input a URI and receive a set of zero or more URIs that tell the proxy where to send the request. All right reserved to Netbryce

  31. Overview of Operation – Registration F1 REGISTER Bob -> Registrar REGISTER SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKnashds7 Max-Forwards: 70 To: Bob <> From: Bob <>;tag=456248 Call-ID: 843817637684230@998sdasdh09 CSeq: 1826 REGISTER Contact: <sip:bob@> Expires: 7200 Content-Length: 0 Associating Bob’s URI <> with the machine he is currently logged (the Contact information) <sip:bob@> The information expires after 2 hours All right reserved to Netbryce

  32. Overview of Operation – Registration F2 200 OK Registrar -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP;branch=z9hG4bKnashds7 ;received= To: Bob <> From: Bob <>;tag=456248 Call-ID: 843817637684230@998sdasdh09 CSeq: 1826 REGISTER Contact: <sip:bob@> Expires: 7200 Content-Length: 0 All Current Binding of <> All right reserved to Netbryce

  33. Overview of Operation • The example shows the basic functions of SIP: location of an end point, signal of a desire to communicate, negotiation of session parameters to establish the session, and teardown of the session once established. • This is a typical example of a SIP message exchange between two users, Alice and Bob. In this example, Alice uses a SIP application on her PC (referred to as a softphone) to call Bob on his SIP phone over the Internet. Also shown are two SIP proxy servers that act on behalf of Alice and Bob to facilitate the session establishment. This typical arrangement is often referred to as the “SIP trapezoid” as shown by the geometric shape of the dashed lines All right reserved to Netbryce

  34. Overview of Operation • Alice “calls” Bob using his SIP identity, a type of Uniform Resource Identifier (URI) called a SIP URI. It has a similar form to an email address, typically containing a username and a host name. In this case, it is, where is the domain of Bob’s SIP service provider (which can be an enterprise, retail provider, etc). Alice also has a SIP URI of Alice might have typed in Bob’s URI or perhaps clicked on a hyperlink or an entry in an address book • SIP is based on an HTTP-like request/response transaction model. Each transaction consists of a request that invokes a particular method, or function, on the server and at least one response All right reserved to Netbryce

  35. Overview of Operation • In this example, the transaction begins with Alice’s softphone sending an INVITE request addressed to Bob’s SIP URI. INVITE is an example of a SIP method that specifies the action that the requestor (Alice) wants the server (Bob) to take. • The INVITE request contains a number of header fields. Header fields are named attributes that provide additional information about a message. The ones present in an INVITE include a unique identifier for the call, the destination address, Alice’s address, and information about the type of session that Alice wishes to establish with Bob. All right reserved to Netbryce

  36. Overview of Operation – INVITE The address which Alice is expecting to receive responses. This parameter indicates the path the return message needs to take The Method name A display name and a SIP or SIPS URI towards which the request was originally directed Contains a globally unique identifier for this call Contains an integer (traditional sequence number) and a method name Contains a SIP or SIPS URI that represents a direct route to Alice INVITE SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bK776asdhds Max-Forwards: 70 To: Bob <> From: Alice <>;tag=1928301774 Call-ID: CSeq: 314159 INVITE Contact: <> Content-Type: application/sdp Content-Length: 142 (Alice’s SDP not shown) All right reserved to Netbryce

  37. Overview of Operation • The details of the session, type of media, codec, sampling rate, etc. are not described using SIP. Rather, the body of a SIP message contains a description of the session, encoded in some other protocol format. One such format is the Session Description Protocol (SDP) (RFC 2327). This SDP message (not shown in the example) is carried by the SIP message in a way that is analogous to a document attachment being carried by an email message, or a web page being carried in an HTTP message All right reserved to Netbryce

  38. Overview of Operation F2: The proxy server locates the proxy server at, possibly by performing a particular type of DNS (Domain Name Service) lookup to find the SIP server that serves the domain. As a result, it obtains the IP address of the proxy server and forwards, or proxies, the INVITE request there. Before forwarding the request, the proxy server adds an additional Via header field value that contains its own address (the INVITE already contains Alice’s address in the first Via). F1: Since the softphone does not know the location of Bob or the SIP server in the domain, the softphone sends the INVITE to the SIP server that serves Alice’s domain, F3: the proxy server receives the INVITE request and sends a 100 (Trying) response back to Alice’s softphone. The 100 (Trying) response indicates that the INVITE has been received and that the proxy is working on her behalf to route the INVITE to the destination. This response contains the same To, From, Call-ID,CSeq and branch parameter in the Via as the INVITE, which allows Alice’s softphone to correlate this response to the sent INVITE. F5: The proxy server receives the INVITE and responds with a 100 (Trying) response back to the proxy server to indicate that it has received the INVITE and processing the request. All right reserved to Netbryce

  39. Overview of Operation F4: The proxy server consults a database, generically called a location service, that contains the current IP address of Bob. The proxy server adds another Via header field value with its own address to the INVITE and proxies it to Bob’s SIP phone. Each proxy uses the Via header field to determine where to send the response and removes its own address from the top. As a result, although DNS and location service lookups were required to route the initial INVITE, the 180 (Ringing) response can be returned to thecaller without lookups or without state being maintained in the proxies. This also has the desirable property that each proxy that sees the INVITE will also see all responses to the INVITE. F6: Bob’s SIP phone receives the INVITE and alerts Bob to the incoming call from Alice so that Bob can decide whether to answer the call, that is, Bob’s phone rings. Bob’s SIP phone indicates this in a 180 (Ringing) response, which is routed back through the two proxies in the reverse direction. All right reserved to Netbryce

  40. Overview of Operation F9: Bob decides to answer the call. When he picks up the handset, his SIP phone sends a 200 (OK) response to indicate that the call has been answered. The 200 (OK) contains a message body with the SDP media description of the type of session that Bob is willing to establish with Alice. As a result, there is a two-phase exchange of SDP messages: Alice sent one to Bob, and Bob sent one back to Alice. This two-phase exchange provides basic negotiation capabilities and is based on a simple offer/answer model of SDP exchange. If Bob did not wish to answer the call or was busy on another call, an error response would have been sent instead of the 200 (OK), which would have resulted in no media session being established. All right reserved to Netbryce

  41. Overview of Operation The first line of the response contains the response code (200) and the reason phrase (OK) Added by SIP Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP;branch=z9hG4bKnashds8 ;received= Via: SIP/2.0/UDP;branch=z9hG4bK77ef4c2312983.1 ;received= Via: SIP/2.0/UDP;branch=z9hG4bK776asdhds ;received= To: Bob <>;tag=a6c85cf 465 From: Alice <>;tag=1928301774 466 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@> Content-Type: application/sdp Content-Length: 131 471 (Bob’s SDP not shown) Added by SIP Proxy Added by Alice’s softphone What method this 200 OK is sent for? Contains a URI at which Bob can be directly reached at his SIP phone. All right reserved to Netbryce

  42. Overview of Operation Finally, Alice’s softphone sends an acknowledgement message, ACK to Bob’s SIP phone to confirm the reception of the final response (200 (OK)). In this example, the ACK is sent directly from Alice’s softphone to Bob’s SIP phone, bypassing the two proxies. This occurs because the endpoints have learned each other’s address from the Contact header fields through the INVITE/200 (OK) exchange, which was not known when the initial INVITE was sent. The lookups performed by the two proxies are no longer needed, so the proxies drop out of the call flow. This completes the INVITE/200/ACK three-way handshake used to establish SIP sessions. In addition to DNS and location service lookups shown in this example, proxy servers can make flexible“routing decisions” to decide where to send a request. For example, if Bob’s SIP phone returned a 486 (Busy Here) response, the proxy server could proxy the INVITE to Bob’s voicemail server. A proxy server can also send an INVITE to a number of locations at the same time. This type of parallel search is known as forking. In this case, the 200 (OK) is routed back through the two proxies and is received by Alice’s softphone, which then stops the ringback tone and indicates that the call has been answered. All right reserved to Netbryce

  43. Overview of Operation • Alice and Bob’s media session has now begun, and they send media packets using the format to which they agreed in the exchange of SDP. In general, the end-to-end media packets take a different path from the SIP signaling messages • During the session, either Alice or Bob may decide to change the characteristics of the media session. This is accomplished by sending a re-INVITE containing a new media description. This re-INVITE references the existing dialog so that the other party knows that it is to modify an existing session instead of establishing a new session. The other party sends a 200 (OK) to accept the change. The requestor responds to the 200 (OK) with an ACK. If the other party does not accept the change, he sends an error response such as 406 (Not Acceptable), which also receives an ACK. However, the failure of the re-INVITE does not cause the existing call to fail – the session continues using the previously negotiated characteristics All right reserved to Netbryce

  44. Overview of Operation F13/F14: At the end of the call, Bob disconnects (hangs up) first and generates a BYE message. This BYE is routed directly to Alice’s softphone, again bypassing the proxies. Alice confirms receipt of the BYE with a 200 (OK) response, which terminates the session and the BYE transaction. No ACK is sent – an ACK is only sent in response to a response to an INVITE request. All right reserved to Netbryce

  45. Overview of Operation – “Forced Routing” In some cases, it may be useful for proxies in the SIP signaling path to see all the messaging between the endpoints for the duration of the session. For example, if the proxy server wished to remain in the SIP messaging path beyond the initial INVITE, it would add to the INVITE a required routing header field known as Record-Route that contained a URI resolving to the hostname or IP address of the proxy. This information would be received by both Bob’s SIP phone and (due to the Record-Route header field being passed back in the 200 (OK)) Alice’s softphone and stored for the duration of the dialog. The proxy server would then receive and proxy the ACK, BYE, and 200 (OK) to the BYE. Each proxy can independently decide to receive subsequent messaging, and that messaging will go through all proxies that elect to receive it. This capability is frequently used for proxies that are providing mid-call features. All right reserved to Netbryce

  46. Overview of Operation – CANCEL The CANCEL request, as the name implies, is used to cancel a previous request sent by a client (only INVITEs). Specifically, it asks the UAS to cease processing the request and to generate an error response to that request. CANCEL has no effect on a request to which a UAS has already given a final response (200 OK). A UAS that receives a CANCEL request for an INVITE, but has not yet sent a final response, would “stop ringing”, and then respond to the INVITE with a specific error response (a 487). All right reserved to Netbryce

  47. Overview of Operation – CANCEL If the UAS has already sent a final response for the original request, the CANCEL request has no effect on the processing of the original request, no effect on any session state, and no effect on the responses generated for the original request. If the UAS did not find a matching transaction for the CANCEL according to the procedure above, it SHOULD respond to the CANCEL with a 481 (Call Leg/Transaction Does Not Exist). All right reserved to Netbryce

  48. Overview of Operation – OPTIONS • The SIP method OPTIONS allows a UA to query another UA or a proxy server as to its capabilities. This allows a client to discover information about the supported methods, content types, extensions, codecs, etc. without ”ringing” the other party. All right reserved to Netbryce

  49. Overview of Operation – OPTIONS SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKhjhs8ass877 Max-Forwards: 70 To: <> From: Alice <>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 63104 OPTIONS Contact: <> Accept: application/sdp Content-Length: 0 All right reserved to Netbryce

  50. Overview of Operation – OPTIONS SIP/2.0 200 OK Via: SIP/2.0/UDP;branch=z9hG4bKhjhs8ass877 ;received= To: <>;tag=93810874 From: Alice <>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 63104 OPTIONS Contact: <> Contact: <> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE Accept: application/sdp Accept-Encoding: gzip Accept-Language: en Supported: foo Content-Type: application/sdp Content-Length: 274 (SDP not shown) All right reserved to Netbryce