Managing SIP Traffic With Zeus Traffic Manager

1y ago
10 Views
1 Downloads
998.28 KB
14 Pages
Last View : 8d ago
Last Download : 3m ago
Upload by : Bria Koontz
Transcription

White PaperManaging SIP trafficwith Zeus TrafficManagerZeus. Why wait

ContentsHigh-Availability and Scalable Voice-over-IP Services . 3What is SIP? . 3Architecture of a SIP-based Service . 4High Availability SIP Services . 5Load Balancing . 5Session Persistence . 5Health Monitoring . 5Gatewaying between SIP networks . 6Internal SIP networks . 6SIP Service - Capacity Scaling . 7Removing SIP proxies . 7Differentiated Services and SIP Solutions . 7Request Inspection . 7Request Routing . 7Issuing Redirects . 8Rectifying Application Errors . 8Adding Information to SIP Calls . 8‘REGISTER’ Storms . 9Rewriting SIP Data .10Conclusion . 10Appendix: SIP processing functions in TrafficScriptTM . 11Copyright . Error! Bookmark not defined.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 2 OF 14Zeus. Why wait.

High-Availability and Scalable Voice-over-IP ServicesVoice-over-IP (VoIP) services are converging on SIP and RTP for signaling and real-timemedia delivery respectively. This paper will introduce the key elements of a SIP network,and describe the scalability and high-availability services provided by Zeus’ ApplicationDelivery Controller, Zeus Traffic Manager.Although SIP is an IETF standard, many implementations and extensions exist and mutualcompatibility between different user agents cannot always be assured.Furthermore,organizations who wish to deploy advanced, differentiated SIP services need deep visibilityand management of SIP traffic.driven by the TrafficScriptTMZeus Traffic Manager’s full application-level inspection,programming language, makes it possible to compensate forany differences in behavior between applications and to rapidly prototype and deploydifferentiated SIP services.What is SIP?SIP (Session Initiation Protocol) is a signaling protocol used to support VoIP and other richmedia services. It provides several capabilities:User Registration: When a user device such as a smart phone is activated or moves,it communicates with a SIP proxy to register its location and capabilities.User Availability: When a remote device wishes to communicate with a local user, itlocates and communicates with the local SIP proxy to check the availability of the user.User Capabilities: A remote device may use SIP to query the capabilities of the localuser, for example, to determine if the user is able to take video calls, or use a sharedwhiteboard resource.Session Setup: The SIP protocol is used to set up a rich media session between twoendpoints (a remote and local user).Session Management: Once a session is established, media data is exchanged usinga protocol such as RTP, but the SIP connection is maintained and used to control thevarious media sessions. SIP allows for session transfer from one device to another,creation of new media sessions on-the-fly and the ultimate termination of mediasessions.SIP is an HTTP-like protocol, but it runs over either UDP or TCP. SIP sessions are typicallymuch more long-lived than HTTP.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 3 OF 14Zeus. Why wait.

Architecture of a SIP-based ServiceA SIP-based service will contain several components that work together to ensuresuccessful delivery of the service:SIP User Agents: A SIP User Agent is the connection endpoint that initiates orreceives a SIP connection.User agents include SIP-enabled VoIP telephones, clientsoftware (a ‘softphone’) and other end user devices.SIP Proxy Servers: SIP Proxy Servers route SIP messages from endpoint to endpointand manage core services such as user registration.For example, the widely usedOpenSER SIP Proxy Server (www.openser.org) provides registration services (acceptingSIPREGISTER requests), location services(managingandforwardingINVITErequests), request proxying (to forward SIP messages or tunnel through local firewalls)and redirect services (directing a user agent to an alternate location).SIP proxy servers may also route and proxy the RTP media data, or a separate RTPproxy application may be used.PBX Gateways: A gateway may be used to interface a VoIP network with othertelephony systems such as PSTN (Public Switched Telephone Network). For example, aVoIP deployment may use the Asterix (www.asterix.org) server for this purpose.Telephony ProviderCustomerSIP Proxy serverSIP trafficLocation ServerSIP User AgentRTP trafficSIP User AgentRTP ProxySIP User yPSTNSample SIP deployment: Telephony Provider and CustomerSIP services – registration, location, SIP traffic management - are commonly provided byan external telephony provider. End user organizations manage the user agent devices,minimizing their capital investment and cost of management.Successful provision of a SIP service requires very high availability, scalability as the clientbase and call volumes grow, and the ability to create differentiated services for clientgroups.Organizations typically use a SIP-aware Application Delivery Controller such as Zeus TrafficManager to achieve this.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 4 OF 14Zeus. Why wait.

High Availability SIP ServicesThe Zeus Traffic Manager Application Delivery Controller fully understands SIP traffic,including the requirement to maintain and update the Via field in the SIP traffic beforeload-balancing the message to a proxy.Zeus Traffic Manager is used in SIP traffic management mode to load-balance SIP requestsacross a cluster of redundant SIP proxy servers for high availability:Telephony ProviderCustomerSIP Proxy serversSIP trafficSIP User AgentLocation ServerSIP User AgentInternetgatewayPSTNgatewayPSTNSIP deployment with Application Delivery ControllerLoad BalancingLoad balancing, based on ‘least connections’ effectively distributes new SIP connections tothe least utilized SIP proxy servers and ensures even distribution of connections across thecluster.Session PersistenceAlthough SIP is a stateful, connection-based protocol, it is based on UDP which does notprovide connection semantics.Zeus Traffic Manager automatically applies sessionpersistence, honoring the Call-ID field and routing SIP messages in the same session tothe same proxy server to ensure that SIP sessions are handled as efficiently as possibleand to facilitate logging and diagnostics.Session persistence is necessary for sessioncontinuity when handling SIP message retransmits.Nevertheless, the SIP protocol is robust, and if an individual SIP server were to fail, ZeusTraffic Manager’s health checking and routing would ensure that the failover would occurwithout interruption.Health MonitoringBuilt-in health monitors regularly probe each SIP Proxy Server to verify correct operationand apply failover when required.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 5 OF 14Zeus. Why wait.

Gatewaying between SIP networksAs organizations roll out IPv6 infrastructures, communications between disparate IPv4 andIPv6 networks require special management.IPv4 clients will be unable to contact IPv6proxies and clients directly, so an intermediate gateway that can translate addresses andlocations is required.INVITE mary@example.comfred@somewhere.elseSIP Proxy servers@example.comINVITE joe@example.comREGISTER joe@example.comIPv4 / IPv6gatewaymary@example.comjoe@example.comPublic IPv4 networkexample.com IPv6 networkUsing Zeus Traffic Manager to gateway between internal IPv6 network and external IPv4networkWithout a SIP-aware IPv4/IPv6 gateway like Zeus Traffic Manager, IPv4 SIP clients wouldbe unable to communicate with IPv6 SIP proxies.Internal SIP networksZeus Traffic Manager’s built-in RTP proxy can be used to manage and make fault-tolerantboth the SIP and RTP traffic in an environment where all clients are local:VPNgatewaySIP Proxy serversPSTNgatewayPSTNSIP User AgentSIP User AgentUsing Zeus Traffic Manager’s built-in RTP proxy when all clients are localIn more complex environments, a specialized RTP proxy is required.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 6 OF 14Zeus. Why wait.

SIP Service - Capacity ScalingSIP Proxies can be added to a SIP cluster as required, without incurring any downtime orsignificant reconfiguration. This way, service capacity can be easily scaled.Removing SIP proxiesWhen a SIP proxy needs to be removed, for maintenance purposes for example, ZeusTraffic Manager can be instructed to ‘drain’ the proxy, ensuring that no new connections orsessions are routed to that proxy.Once existing sessions time out and inactivity is verified with the visualization tools in ZeusTraffic Manager itself, it is safe to remove the SIP proxy server without interrupting anyuser sessions.Differentiated Services and SIP SolutionsZeus Traffic Manager’s powerful TrafficScriptTM-based inspection engine can be used toinspect, modify and route SIP traffic. This allows the telephony provider to rapidly createdifferentiated services for their customers.Request InspectionA TrafficScript rule can discriminate between different types of SIP requests, and caninspect data within each request:if( sip.getMethod() "REGISTER" ) {log.info( "Client " . request.getRemoteIP()." calling from " . sip.getRequestHeader( "From" )." to " . sip.getRequestHeader( "To" )." using " . sip.getRequestHeader( "User‐Agent" ) );}Request RoutingA telephony provider may wish to operate a single shared SIP proxy service for customerswith smaller call volumes, and one or more dedicated proxy services for larger customerswith many SIP clients who would otherwise dominate a shared service.TrafficScript can be used to distinguish between users based on the domain part of SIPaddresses, and route traffic accordingly to different clusters of SIP proxy servers: user sip.getRequestURI();if( string.EndsWith( user, "@example.com" ) ) {pool.use( "Example.com SIP Servers" );}M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 7 OF 14Zeus. Why wait.

Issuing RedirectsSIP calls can be explicitly redirected based on logic in TrafficScript rules: user sip.getRequestURI();# Customer service team are not available outside 9am to 5pm, or on weekendsif( string.EndsWith( user, "@custservice.example.com" ) ) {if( sys.time.hour() 9 sys.time.hour() 17 sys.time.weekday() 1 sys.time.weekday() 7 ) {sip.redirect( "voicemail@example.com" );}}Rectifying Application ErrorsWhen an intermediate device such as a proxy or firewall processes, forwards or NATs SIPtraffic, the device is required to update the Via field in the SIP message so that returnmessages are correctly routed.During extensive testing, engineers determined that a particular family of firewallapplications did not correctly update SIP traffic; when proxying and NAT-ing traffic, theywould prepend incorrectly formatted ‘Via’ lines to SIP messages. Strict user agents andproxies subsequently rejected the message.Zeus Traffic Manager was configured using TrafficScript to correct the formatting of the Vialine and resolve the problem: via sip.getRequestHeader( "Via" ); via string.replaceAll( via, ";,", "," );sip.setRequestHeader( "Via", via );Adding Information to SIP CallsVarious SIP user agents can recognize and act on additional information in a SIP call. Forexample, icons and caller information can be provided using the ‘Call-Info’ header in a SIPmessage:# Add a reference to an information page about# a known company when a call is received from# them, and an icon to help identify them.if( sip.getRequestHeader( "Organization" ) "Zeus" ) {sip.setRequestHeader( "Call-Info"," http://www.zeus.com/assets/img/logo.gif ;purpose icon,"." http://www.zeus.com/about/ ;purpose info" );}M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 8 OF 14Zeus. Why wait.

‘REGISTER’ StormsSIP user agents send frequent ‘REGISTER’ messages to their local SIP proxy in order tokeep firewall tunnels open and prevent them from timing out.However, proxies do notrequire such frequent updates, and storms of REGISTER messages can overwhelm a proxy.Zeus Traffic Manager can be configured to inspect and filter the REGISTER messages, onlysending a small number through to the proxies and responding directly to the largemajority in order to maintain the firewall tunnels.Request rule:# Process SIP requests interval 600;if( sip.getMethod() "REGISTER" ) { user sip.getRequestHeader( "To" ); contact sip.getRequestHeader( "Contact" ); key user. contact; data data.get( key );if( data && sys.time() data interval ) {# We've seen the user less than interval seconds ago.sip.sendResponse( "200", "OK" );}Respond directly# Otherwise, update our timing and pass the message through to the proxydata.set( key, sys.time() );sip.setRequestHeader( "Expires", "0" );}Response rule:The Response rule needs to cater for the possibility that the registration failed, returned an‘Authorization Required’ response, or any other situation that requires the SIP User Agentto repeat the registration action:# Process SIP responsesif( sip.getMethod() "REGISTER" ) {if( sip.getResponseCode() ! "200" ) { user sip.getRequestHeader( "To" ); contact sip.getRequestHeader ( "Contact" ); key user. contact;data.set( key, 0 );}}M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 9 OF 14Zeus. Why wait.

Rewriting SIP DataZeus Traffic Manager provides full read and write access to all SIP data, throughspecialized helper functions and through functions that return or set the raw messagedata.For example, Zeus Traffic Manager can transparently rewrite usernames to avoid callersreceiving an ‘unknown user’ error in the case that a user’s SIP address has changed:if( sip.getRequestURI() "sip:jane.doe@example.com" ) {# Jane got married last month – congratulations!sip.setRequestURI( "sip:jane.jones@example.com" );}ConclusionZeus Traffic Manager is a sophisticated, proven application delivery controller that providesfor high availability, improved service performance and faster service creation. Zeus TrafficManager’s native understanding of the SIP protocol (as opposed to less intelligent IPsprayer solutions), coupled with full transaction inspection and management usingTrafficScriptTM makes Zeus Traffic Manager a powerful tool for the creation of highlyavailable, standards-compliant and innovative SIP services.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 10 OF 14Zeus. Why wait.

Appendix: SIP processing functions in TrafficScriptTMsip.addRequestHeader( name, value, at top )sip.addRequestHeader() modifies the current SIP request, adding a SIP header with the suppliedvalue. If the header already exists, then this value will be appended to the existing value. Ifat top is set then the value will be prepended to the header. The header name is automaticallytranslated to the correct case before it is added.sip.addResponseHeader( name, value, at top )sip.addResponseHeader() adds a header to the SIP response that will be sent back to the client. Ifthe header already exists in the response, then this value will be appended to the existing value.If at top is set then the value will be prepended to the existing value. The header name isautomatically translated to the correct case before it is added.sip.getMethod()sip.getMethod() returns the SIP method that was used to make the request, such as INVITE orREGISTER.sip.getRequest()sip.getRequest() returns the full SIP request and headers, but does not include any body data.sip.getRequestBody()sip.getRequestBody() returns the data contained in the body of the request.sip.getRequestHeader( name )sip.getRequestHeader() returns the value of a named SIP header in the SIP request, or the emptystring if the header does not exist or has an empty value. The header name is automaticallytranslated into the proper case for the aderNames() returns a list of all the headers that are present in the request.The headers are returned as a single string, separated by spaces.sip.getRequestURI()sip.getRequestURI() returns the target of the SIP request.sip.getResponse()sip.getRequest() returns the full SIP response and headers, but does not include any body data.sip.getResponseBody()sip.getResponseBody() returns the session description of the SIP ) returns the status code from the first line of the SIP response.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 11 OF 14Zeus. Why wait.

sip.getResponseHeader( name )sip.getResponseHeader() returns the value of a named SIP header in the SIP response, or theempty string if the header does not exist or has an empty value. The header name isautomatically translated into the proper case for the HeaderNames() returns a list of all the headers that are present in the response.The headers are returned as a single string, separated by spaces.sip.getVersion()sip.getVersion() returns the version of the SIP protocol being used. It returns the version string inthe SIP/version specifier in the first line of the SIP request, such as 'SIP/2.0'.sip.redirect( contact )sip.redirect( contact ) sends back a 302 Moved Temporarily response. This response instructs theclient to retry the request at the new address(es) given in the 'contact' parameter. This isequivalent to sip.sendResponse( "302", "Moved Temporarily", "Contact: " . uri, "" );sip.removeRequestHeader( name )sip.removeRequestHeader() removes a named header if it exists in the request. The header nameis automatically translated to the correct case.sip.removeResponseHeader( name )sip.removeResponseHeader() removes the named SIP header from the SIP response. The headername is automatically translated to the correct case.sip.requestHeaderExists( name )sip.requestHeaderExists() determines if a named header exists or not. It is similar tosip.getRequestHeader(), but makes it possible to distinguish between a header not being presentand a header having no value.The header name is automatically translated into the proper case for the lookup.It returns 1 if the header exists, and 0 if it does not.sip.responseHeaderExists( name )sip.responseHeaderExists() determines if a named header exists in the SIP response. It is similarto sip.getResponseHeader(), but makes it possible to distinguish between a header not beingpresent and a header having no value.The header name is automatically translated into the proper case for the lookup.It returns 1 if the header exists, and 0 if it does not.sip.sendResponse( code, reason, [headers], [body] )sip.sendresponse() sends back a SIP response to the client instead of balancing the request via apool onto a node. The Statue-Line of the response has the form: SIP/2.0 code reason Via,Record-Route, From, To, CSeq, Call-ID and Content-Length headers are automatically added tothe response. Any headers supplied in the headers parameter will also be added to the response.Multiple headers must be separated by \r\n. Any body data specified is appended to the response.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 12 OF 14Zeus. Why wait.

sip.setMethod( method )sip.setMethod() sets the SIP method to use when forwarding the request via a pool to a node.sip.setRequestBody( body )sip.setRequestBody() sets the request body for this SIP request to the supplied string, replacingany request body already present.This also updates the 'Content-Length' header in the request to the length of the new body data.sip.setRequestHeader( name, value )sip.setRequestHeader() sets the value of the named SIP header, replacing any existing value ifthe header already exists.sip.setRequestURI( uri )sip.setRequestURI() sets the target of the SIP request.sip.setResponseBody( body )sip.setResponseBody() sets the response body for this SIP response to the supplied string,replacing any response body already present.This also updates the 'Content-Length' header in the response to the length of the new body data.If the server is still sending the original response body when this function is called, the connectionto the server will be harmlessly dropped.The optional transfer-encoding parameter indicates the encoding of the body data (for example,'chunked').sip.setResponseCode( code, message )sip.setResponseCode() sets the status code and message in the first line of the SIP response.sip.setResponseHeader( name, value )sip.setResponseHeader() sets a header in the SIP response that will be sent back to the client. Ifthe header already exists in the response, then it will be replaced with this new value.The header name is automatically translated to the correct case before it is added.M a n a g i n g S I P t r a f f i c w i t h Z e u s Tr a f f i c M a n a g e rPAGE 13 OF 14Zeus. Why wait.

For further information, please email: info@zeus.com or visit www.zeus.comStay in touch with Zeus by following: blog.zeus.com or twitter.com/ZeusTechnologyTry before you buy.Simply visit our website: www.zeus.com/downloadsTechnical support is also available during your evaluation.Zeus Technology Limited (UK)Sales: 44 (0)1223 568555Zeus Technology, Inc. (U.S.)Phone: 1-888-ZEUS-INCThe Jeffreys BuildingMain: 44 (0)1223 5250001875 South Grant StreetFax:Cowley RoadFax:Suite 720Email: info@zeus.comCambridge CB4 0WSEmail: info@zeus.comSan Mateo, California 94402Web:United KingdomWeb:United States of America. 44 (0)1223 525100www.zeus.com1-866-628-7884www.zeus.com Zeus Technology Limited 2009. All rights reserved. Zeus, Zeus Technology, the Zeus logo, Zeus Web Server, TrafficScript,Zeus Traffic Manager and Cloud Traffic Manager are trademarks of Zeus Technology. All other brands and product names may betrademarks or registered trademarks of their respective owners.

Zeus Traffic Manager's built-in RTP proxy can be used to manage and make fault-tolerant both the SIP and RTP traffic in an environment where all clients are local: Using Zeus Traffic Manager's built-in RTP proxy when all clients are local In more complex environments, a specialized RTP proxy is required. I NV I T E m a ry @ e xa m p le . c om

Related Documents:

SIP SIP phones Blustar 8000i NA SIP SIP phones 9112i, 9133i, 480i Not Supported SIP SIP phones 673xi ( A673xi), 675xi ( A675xi) NA SIP SIP phones 6735i, 6737i ( A6735i, A6737i) NA SIP SIP phones 6739i NA SIP SIP phones 6863i, 6865i, 6867i NA SIP MiVoice Conference phone (UC360

C O N T E N T S Configuration of SIP Trunking for PSTN Access SIP-to-SIP 1 Finding Feature Information 1 Configuration of SIP Trunking for PSTN Access SIP-to-SIP Features 1 Configuring SIP Registration Proxy on Cisco UBE 3 Finding Feature Information 3 Registration Pass-Through Modes 4 End-to-End Mode 4 Peer-to-Peer Mode 5 Registration in Different Registrar Modes 7

How To Guide: SIP Trunking Configuration Using the SIP Trunk Page 6(19) 2.2 The SIP Trunk Page The SIP Trunk pages are found under SIP Trunks. Several SIP Trunk pages may be defined if you have several PBXs or Trunk Services. You need to purchase Additional Trunk Group licensees to get more than one SIP Trunk page. Details are found below. s d he n

To support SIP trunks through a SIP trunk service provider, the SIP Trunk Groups folder was added to the SIP Peers folder in DB Programming. To create a SIP Trunk Group for Fusion Connect Service Provider, navigate to System- Device and Feature Codes- SIP Peers- SIP Trunk Groups and right click in the right hand pane. Then select "Create SIP .

Call Flow Scenarios for Successful Calls This section describes call flows for the following scenarios, which illustrate successful calls: SIP Gateway-to-SIP Gateway—Call Setup and Disconnect, page 7-3 SIP Gateway-to-SIP Gateway—Call via SIP Redirect Server, page 7-6 SIP Gateway-to-SIP Gateway—Call via SIP Proxy Server, page 7-9

4. SIP, VVoIP and QoS 5. SIP and Media Security 6. STIR/SHAKEN and the 'identity' problem 7. Firewalls, NAT and Session Border Controllers 8. SIP Trunking 9. Testing, Troubleshooting and Interoperability 10. ENUM, Peering and Interconnect 11. SIP in the Cloud 12. SIP in Cellular networks 13. SIP and Fax over IP 14. SIP in UC, UCaaS and .

How to Guide: SIP Trunking Configuration using the SIP Trunks page 4 2.2 The SIP Trunk Page The SIP Trunk pages are found under SIP Trunks. Several SIP Trunk pages may be defined if you have several PBXs or Trunk Services. You need to purchase Additional Trunk Group licensees to get more than one SIP Trunk page. Details are found below. s d he Tru

Prosedur Akuntansi Hutang Jangka Pendek & Panjang BAGIAN PROYEK PENGEMBANGAN KUR IKULUM DIREKTORAT PENDIDIKAN MENENGAH KEJURUAN DIREKTORAT JENDERAL PENDIDIKAN DASAR DAN MENENGAH DEPARTEMEN PENDIDIKAN NASIONAL 2003 Kode Modul: AK.26.E.6,7 . BAGIAN PROYEK PENGEMBANGAN KURIKULUM DIREKTORAT PENDIDIKAN MENENGAH KEJURUAN DIREKTORAT JENDERAL PENDIDIKAN DASAR DAN MENENGAH DEPARTEMEN PENDIDIKAN .