Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Title Page
Copyright
Contents
Preface to the Fourth Edition
Acknowledgment
1 SIP and the Internet
1.1 Signaling Protocols
1.2 Internet Multimedia Protocol Stack
1.2.1 Physical Layer
1.2.2 Data/Link Layer
1.2.3 Network Layer
1.2.4 Transport Layer
1.2.5 Application Layer
1.2.6 Utility Applications
1.2.7 Multicast
1.3 Internet Names
1.4 URLs, URIs, and URNs
1.5 Domain Name Service
1.5.1 DNS Resource Records
1.5.2 Address Resource Records (A or AAAA)
1.5.3 Service Resource Records (SRV)
1.5.4 Naming Authority Pointer Resource Records (NAPTR)
1.5.5 DNS Resolvers
1.6 Global Open Standards
1.7 Internet Standards Process
1.8 A Brief History of SIP
1.9 Conclusion
References
2 Introduction to SIP
2.1 A Simple Session Establishment Example
2.2 SIP Call with a Proxy Server
2.3 SIP Registration Example
2.4 SIP Presence and Instant Message Example
2.5 Message Transport
2.5.1 UDP Transport
2.5.2 TCP Transport
2.5.3 TLS Transport
2.5.4 SCTP Transport
2.6 Transport Protocol Selection
2.7 Conclusion
2.8 Questions
References
3 SIP Clients and Servers
3.1 SIP User Agents
3.2 Presence Agents
3.3 Back-to-Back User Agents
3.4 SIP Gateways
3.5 SIP Servers
3.5.1 Proxy Servers
3.5.2 Redirect Servers
3.5.3 Registrar Servers
3.6 Uniform Resource Indicators
3.7 Acknowledgment of Messages
3.8 Reliability
3.9 Multicast Support
3.10 Conclusion
3.11 Questions
References
4 SIP Request Messages
4.1 Methods
4.1.1 INVITE
4.1.2 REGISTER
4.1.3 BYE
4.1.4 ACK
4.1.5 CANCEL
4.1.6 OPTIONS
4.1.7 SUBSCRIBE
4.1.8 NOTIFY
4.1.9 PUBLISH
4.1.10 REFER
4.1.11 MESSAGE
4.1.12 INFO
4.1.13 PRACK
4.1.14 UPDATE
4.2 URI and URL Schemes Used by SIP
4.2.1 SIP and SIPS URIs
4.2.2 Telephone URLs
4.2.3 Presence and Instant Messaging URLs
4.3 Tags
4.4 Message Bodies
4.5 Conclusion
4.6 Questions
References
5 SIP Response Messages
5.1 Informational
5.1.1 100 Trying
5.1.2 180 Ringing
5.1.3 181 Call is Being Forwarded
5.1.4 182 Call Queued
5.1.5 183 Session Progress
5.1.6 199 Early Dialog Terminated
5.2 Success
5.2.1 200 OK
5.2.2 202 Accepted
5.2.3 204 No Notification
5.3 Redirection
5.3.1 300 Multiple Choices
5.3.2 301 Moved Permanently
5.3.3 302 Moved Temporarily
5.3.4 305 Use Proxy
5.3.5 380 Alternative Service
5.4 Client Error
5.4.1 400 Bad Request
5.4.2 401 Unauthorized
5.4.3 402 Payment Required
5.4.4 403 Forbidden
5.4.5 404 Not Found
5.4.6 405 Method Not Allowed
5.4.7 406 Not Acceptable
5.4.8 407 Proxy Authentication Required
5.4.9 408 Request Timeout
5.4.10 409 Conflict
5.4.11 410 Gone
5.4.12 411 Length Required
5.4.13 412 Conditional Request Failed
5.4.14 413 Request Entity Too Large
5.4.15 414 Request-URI Too Long
5.4.16 415 Unsupported Media Type
5.4.17 416 Unsupported URI Scheme
5.4.18 417 Unknown Resource Priority
5.4.19 420 Bad Extension
5.4.20 421 Extension Required
5.4.21 422 Session Timer Interval Too Small
5.4.22 423 Interval Too Brief
5.4.23 424 Bad Location Information
5.4.24 428 Use Identity Header
5.4.25 429 Provide Referror Identity
5.4.26 430 Flow Failed
5.4.27 433 Anonymity Disallowed
5.4.28 436 Bad Identity-Info Header
5.4.29 437 Unsupported Certificate
5.4.30 438 Invalid Identity Header
5.4.31 439 First Hop Lacks Outbound Support
5.4.32 440 Max Breadth Exceeded
5.4.33 469 Bad Info Package
5.4.34 494 Security Agreement Required
5.4.35 470 Consent Needed
5.4.36 480 Temporarily Unavailable
5.4.37 481 Dialog/Transaction Does Not Exist
5.4.38 482 Loop Detected
5.4.39 483 Too Many Hops
5.4.40 484 Address Incomplete
5.4.41 485 Ambiguous
5.4.42 486 Busy Here
5.4.43 487 Request Terminated
5.4.44 488 Not Acceptable Here
5.4.45 489 Bad Event
5.4.46 491 Request Pending
5.4.47 493 Request Undecipherable
5.4.48 494 Security Agreement Required
5.5 Server Error
5.5.1 500 Server Internal Error
5.5.2 501 Not Implemented
5.5.3 502 Bad Gateway
5.5.4 503 Service Unavailable
5.5.5 504 Gateway Timeout
5.5.6 505 Version Not Supported
5.5.7 513 Message Too Large
5.5.8 580 Preconditions Failure
5.6 Global Error
5.6.1 600 Busy Everywhere
5.6.2 603 Decline
5.6.3 604 Does Not Exist Anywhere
5.6.4 606 Not Acceptable
5.7 Questions
References
6 SIP Header Fields
6.1 Request and Response Header Fields
6.1.1 Accept
6.1.2 Accept-Encoding
6.1.3 Accept-Language
6.1.4 Alert-Info
6.1.5 Allow
6.1.6 Allow-Events
6.1.7 Answer-Mode
6.1.8 Call-ID
6.1.9 Contact
6.1.10 CSeq
6.1.11 Date
6.1.12 Encryption
6.1.13 Expires
6.1.14 From
6.1.15 Feature-Caps
6.1.16 Geolocation
6.1.17 Geolocation-Routing
6.1.18 History Info
6.1.19 Policy-Contact
6.1.20 Organization
6.1.21 Path
6.1.22 Priv-Answer-Mode
6.1.23 Record-Route
6.1.24 Recv-Info
6.1.25 Refer-Sub
6.1.26 Retry-After
6.1.27 Session-ID
6.1.28 Subject
6.1.29 Supported
6.1.30 Timestamp
6.1.31 To
6.1.32 User-Agent
6.1.33 User-to-User
6.1.34 Via
6.2 Request Header Fields
6.2.1 Accept-Contact
6.2.2 Authorization
6.2.3 Call-Info
6.2.4 Event
6.2.5 Hide
6.2.6 Identity
6.2.7 Identity-Info
6.2.8 In-Reply-To
6.2.9 Info-Package
6.2.10 Join
6.2.11 Priority
6.2.12 Privacy
6.2.13 Policy-ID
6.2.14 Proxy-Authorization
6.2.15 Proxy-Require
6.2.16 P-OSP-Auth-Token
6.2.17 P-Asserted-Identity
6.2.18 P-Preferred-Identity
6.2.19 Max-Breadth
6.2.20 Max-Forwards
6.2.21 Reason
6.2.22 Refer-To
6.2.23 Referred-By
6.2.24 Reply-To
6.2.25 Replaces
6.2.26 Reject-Contact
6.2.27 Request-Disposition
6.2.28 Require
6.2.29 Resource-Priority
6.2.30 Response-Key
6.2.31 Route
6.2.32 RAck
6.2.33 Security-Client
6.2.34 Security-Verify
6.2.35 Session-Expires
6.2.36 SIP-If-Match
6.2.37 Subscription-State
6.2.38 Suppress-If-Match
6.2.39 Target-Dialog
6.2.40 Trigger-Consent
6.3 Response Header Fields
6.3.1 Accept-Resource-Priority
6.3.2 Authentication-Info
6.3.3 Error-Info
6.3.4 Flow-Timer
6.3.5 Geolocation-Error
6.3.7 Min-SE
6.3.8 Permission-Missing
6.3.9 Proxy-Authenticate
6.3.10 Refer-Events-At
6.3.11 Security-Server
6.3.12 Server
6.3.13 Service-Route
6.3.14 SIP-ETag
6.3.15 Unsupported
6.3.16 Warning
6.3.17 WWW-Authenticate
6.3.18 RSeq
6.4 Message Body Header Fields
6.4.1 Content-Encoding
6.4.2 Content-Disposition
6.4.3 Content-Language
6.4.4 Content-Length
6.4.5 Content-Type
6.4.6 MIME-Version
6.5 Questions
References
7 Wireless, Mobility, and IMS
7.1 IP Mobility
7.2 SIP Mobility
7.3 IMS and SIP
7.4 IMS Header Fields
7.5 Conclusion
7.6 Questions
References
8 Presence and Instant Messaging
8.1 Introduction
8.2 History of IM and Presence
8.3 SIMPLE
8.4 Presence with SIMPLE
8.4.1 SIP Events Framework
8.4.2 Presence Bodies
8.4.3 Resource Lists
8.4.4 Filtering
8.4.5 Conditional Event Notifications and ETags
8.4.6 Partial Publication
8.4.7 Presence Documents Summary
8.5 Instant Messaging with SIMPLE
8.5.1 Page Mode Instant Messaging
8.5.2 Common Profile for Instant Messaging
8.5.3 Instant Messaging Delivery Notification
8.5.4 Message Composition Indication
8.5.5 Multiple Recipient Messages
8.5.6 Session Mode Instant Messaging
8.6 Jabber
8.6.1 Standardization as Extensible Messaging and Presence Protocol
8.6.2 Jingle
8.6.3 Interworking with SIMPLE
8.7 Conclusion
8.8 Questions
References
9 Services in SIP
9.1 Gateway Services
9.2 Emergency Services
9.3 SIP Trunking
9.4 SIP Service Examples
9.5 Voicemail
9.6 SIP Video
9.6.1 Video Relay Service (VRS)
9.7 Facsimile
9.8 Conferencing
9.8.1 Focus
9.8.2 Mixer
9.8.3 Non-SIP Conference Control
9.9 Application Sequencing
9.10 Other SIP Service Architectures
9.10.1 Service-Oriented Architecture
9.10.2 Servlets
9.10.3 Service Delivery Platform
9.11 Conclusion
9.12 Questions
References
10 Network Address Translation
10.1 Introduction to NAT
10.2 Advantages of NAT
10.3 Disadvantages of NAT
10.4 How NAT Works
10.5 Types of NAT
10.5.1 End Point-Independent Mapping NAT
10.5.2 Address-Dependent Mapping NAT
10.5.3 Address and Port-Dependent Mapping NAT
10.5.4 Hairpinning Support
10.5.5 IP Address Pooling Options
10.5.6 Port Assignment Options
10.5.7 Mapping Refresh
10.5.8 Filtering Modes
10.6 NAT Mapping Examples
10.7 NATs and SIP
10.8 Properties of a Friendly NAT or How a NAT Should BEHAVE
10.9 STUN Protocol
10.10 UNSAF Requirements
10.11 SIP Problems with NAT
10.11.1 Symmetric SIP
10.11.2 Connection Reuse
10.11.3 SIP Outbound
10.12 Media NAT Traversal Solutions
10.12.1 Symmetric RTP
10.12.2 RTCP Attribute
10.12.3 Self-Fixing Approach
10.13 Hole Punching
10.14 TURN: Traversal Using Relays Around NAT
10.15 ICE: Interactive Connectivity Establishment
10.16 Conclusion
10.17 Questions
References
11 Related Protocols
11.1 PSTN Protocols
11.1.1 Circuit-Associated Signaling
11.1.2 ISDN Signaling
11.1.3 ISUP Signaling
11.2 SIP for Telephones
11.3 Media Gateway Control Protocols
11.4 H.323
11.4.1 Introduction to H.323
11.4.2 Example of H.323
References
12 Media Transport
12.1 Real-Time Transport Protocol (RTP)
12.2 RTP Control Protocol (RTCP)
12.2.1 RTCP Reports
12.2.2 RTCP Extended Reports
12.3 Compression
12.4 RTP Audio Video Profiles
12.4.1 Audio Codecs
12.4.2 Video Codecs
12.4.3 Audio and Video Multiplexing over Same Ports
12.5 Conferencing
12.6 ToIP—Conversational Text
12.7 DTMF Transport
12.8 Questions
References
13 Negotiating Media Sessions
13.1 Session Description Protocol (SDP)
13.1.1 Protocol Version
13.1.2 Origin
13.1.3 Session Name and Information
13.1.4 URI
13.1.5 E-Mail Address and Phone Number
13.1.6 Connection Data
13.1.7 Bandwidth
13.1.8 Time, Repeat Times, and Time Zones
13.1.9 Encryption Keys
13.1.10 Media Descriptions
13.1.11 Attributes
13.2 SDP Extensions
13.3 The Offer Answer Model
13.3.1 Rules for Generating an Offer
13.3.2 Rules for Generating an Answer
13.3.3 Rules for Modifying a Session
13.3.4 Special Case—Call Hold
13.4 Static and Dynamic Payloads
13.5 SIP Offer/Answer Exchanges
13.6 Conclusion
13.7 Questions
References
14 Internet Threats and Attacks
14.1 Introduction
14.2 Attack Types
14.2.1 Denial of Service (DoS)
14.2.2 Man-in-the-Middle
14.2.3 Replay and Cut-and-Paste Attacks
14.2.4 Theft of Service
14.2.5 Eavesdropping
14.2.6 Impersonation
14.2.7 Poisoning Attacks (DNS and ARP)
14.2.8 Credential and Identity Theft
14.2.9 Redirection/Hijacking
14.2.10 Session Disruption
14.3 Attack Methods
14.3.1 Port Scans
14.3.2 Malicious Code
14.3.3 Buffer Overflow
14.3.5 Password Theft/Guessing
14.3.6 Tunneling
14.3.7 Bid Down
14.4 Summary
14.5 Questions
References
15 SIP Security and Identity
15.1 Basic Security Concepts
15.1.1 Encryption
15.1.2 Public Key Cryptography
15.1.3 Diffie-Hellman Cryptography
15.1.4 Message Authentication
15.1.5 Digital Certificates
15.2 Security Protocols
15.2.1 IPSec
15.2.2 TLS
15.2.3 DTLS
15.2.4 DNSSEC
15.2.5 Secure MIME
15.3 SIP Security Model
15.3.1 Basic Authentication
15.3.2 Digest Authentication
15.3.3 Pretty Good Privacy
15.3.4 S/MIME
15.3.5 SIP Use of TLS
15.3.6 Secure SIP
15.4 Identity
15.4.1 Telephone Number Identity
15.4.2 SIP URI Identity
15.4.3 Trust Domains for Asserted Identity
15.4.4 Interdomain SIP Identity
15.4.5 SIP and Certificates
15.4.6 Other Asserted Identity Methods
15.4.7 Privacy
15.5 Conclusion
15.6 Questions
References
16 Media Security
16.1 Introduction
16.2 Secure RTP
16.3 Generation of Media Encryption Keys
16.3.1 Preshared Keys
16.3.2 Public Key Encryption
16.3.3 Authenticated Key Management and Exchange
16.4 SDP Security Descriptions
16.5 Multimedia Internet Keying (MIKEY)
16.6 DTLS-SRTP Key Agreement
16.7 ZRTP Media Path Key Agreement for VoIP
16.8 Questions
References
17 SIP PSTN Gateway Security
17.1 Introduction
17.2 PSTN Security Model
17.3 Gateway Security
17.3.1 Gateway Security Architecture
17.3.2 Gateway Types
17.3.3 Gateways and Caller ID
17.3.4 Caller ID and Privacy
17.3.5 SIP/ISUP Interworking
17.4 Telephone Number Mapping in the DNS
References
18 Peer-to-Peer SIP
18.1 P2P Properties
18.2 P2P Properties of SIP
18.3 P2P Overlays
18.4 RELOAD
18.5 Host Identity Protocol
18.6 Conclusion
18.7 Questions
References
19 Web Real-Time Communications
19.1 Introduction to WebRTC
19.2 WebRTC Basics
19.3 WebRTC Architecture
19.4 WebRTC Protocols
19.5 SIP Signaling for WebRTC
19.6 Conclusion
References
20 Call Flow Examples
20.1 SIP Call with Authentication, Proxies, and Record-Route
20.2 SIP Call with Stateless and Stateful Proxies with Called Party Busy
20.3 SIP to PSTN Call Through Gateway
20.4 PSTN to SIP Call Through Gateway
20.5 Parallel Search
20.6 Call Setup with Proxy Server
20.7 SIP Presence and Instant Message Example
References
21 Future Directions
21.1 Bug Fixes and Clarifications
21.2 More Extensions
21.3 Better Identity
21.4 SIP and WebRTC
21.5 Making Features Work Better
21.6 IPv6 Transition
21.7 More SIP Trunking
21.8 Security Deployment
21.9 Better Interoperability
References
Appendix
A.1 ABNF Rules
A.2 Introduction to XML
References
About the Author
Index
← Prev
Back
Next →
← Prev
Back
Next →