710 likes | 823 Vues
This document provides an overview of the Session Initiation Protocol (SIP), a key protocol used in establishing sessions over the Internet. It covers SIP's architecture, typical components, addressing, and its role in initiating voice over IP calls, multimedia conferences, and event notifications. Key topics include SIP processes, operations, state management, user location mechanisms, and routing. It elaborates on how SIP uses email-style addressing for users, its stateless and stateful operations, and its interaction with DNS for user location. This comprehensive guide targets developers and network engineers involved in VoIP systems.
E N D
Session Initiation Protocol (SIP) Onno W. Purbo Onno@indo.net.id
Referensi • Henning Schulzrinne, Columbia University, New York, May 2001 • Dr. Andreas Steffen, Komunikationsysteme
SIP in short .. • Dr. Andreas Steffen, Komunikationsysteme
Overview • Protocol architecture • Typical component architecture • Addressing and locating SIP entities. • Protocol operation and extensions.
Introduction .. • SIP = core protocol for establishing sessions in the internet. • Transports session description information from initiator (caller) to callees. • Allows to exchange parameters in mid-session. • Terminate session.
SIP Applications .. • Setting up voice-over-IP calls. • Setting up multimedia conferences. • Event notification (subscribe / notify) IM and presence. • Text and general messaging. • Signaling transport.
SIP addressing • SIP uses e-mail style addressing to identify users.
SIP addressing .. • Typically, same as user’s e-mail address: • djancuk@surabaya.com • 02114204701@gateway-r-us.com • Written as URL, e.g, • Sip:djancuk@surabaya.com • Can add parameters, such as, type (user=“phone”) or transport protocol.
Tel URLs (RFC 2806) • Also can use tel URL for telephone numbers, e.g., • Tel:+0811797677 • Fax:+022.253.4677 • Either global (tel:+001..) or local (tel:0w00222534677; phone-context=+0222534677) number. • Allow post-dialing digits; postd=pp32. • Also modem:+52990000; type=v32b?7e1; type=v110.
Back-to-Back UA (B2BUA) • Two (or more) user agents, where incoming calls trigger outgoing calls to somebody else. • Also, “third-party call control” (later) • Useful for services and anonymity
Maintaining state in SIP enitities. • Stateless: • Each request and response handled independently. • (Transaction) Stateful: • Remember a whole request/response transaction. • Call stateful: • Remember a call from beginning to end.
SIP archirecture • Peer-to-peer • Outbound proxy • VoIP to PSTN • PSTN to VoIP
SIP operation in redirect mode • 302: redirection for a single call • 301: permanently
Basic user location mechanism • Host (SIP URL) hostname of proxy • DNS: hostname of proxy SIP server(s) • If SIP UAS: alter user; done. • If SIP proxy/redirect server: map URLn URLn+1, using any information in the request • Go to step 1 One minor exception ..
Basic SIP “routing” mechanism • Will fill in details later • Route using request URIs. • All but first request in call typically bypass proxies and go direct UAC-UAS. • However, can use “record-routing” to force certain proxies to be visited all the time. • Responses always traverse the same route as requests
Outbound proxies • Normally, proxy servers one or more domains. • Outbound proxies are used for all outbound requests from within a domain. • Typically, for managing corporate firewalls and policy enforcement. • May also provide dial plans or route tel/fax URLs. • Other uses: lawyer client billing, ..
Locating users: DNS SRV .. • e-mail: DNS MX record mapping domain to mail server(s). • SIP: use newer record for general purpose mapping, SRV (RFC 2782) • Mapping from service and transport protocol to one or more servers, including protocols.
Locating users: DNS SRV .. • Allow priority (for back-up) and weight (for load balancing).
Aside: SIP scaling .. • HTTP request director SIP client-based • HTTP randomized DNS (short TTL!) SRV weight and priorities. • Can’t just distribute request randomly, since backend (registration) synchronization is needed.
Aside: SIP scaling .. • Registration scaling: request/second * 3600; e.g. 100 request/second 360.000 user/server. • Major bottleneck are logging and database updates. • Generally, higher registration than INVITE rates.
SIP requests and responses • Text, not binary, format. • Look very similar to HTTP/1.1 • Requests and responses are similar except for first line. • Requests and responses can contain message bodies; typically session descriptions, but also ASCII or HTML.
SIP syntax • Field names and some tokens, e.g. media type, are case-insensitive. • Everything else is case-sensitive. • White space doesn’t matter except in the first line. • Lines can be folded. • Multi-valued header fields can be combined as a comma-lists.