IMS Application Developer's Handbook Creating and Deploying Innovative IMS Applications Rogier Noldus Ulf Olsson Catherine Mulligan loannis Fikouras Anders Ryde Mats Stifle AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Academic Press is an imprint of Elsevier
Contents Foreword Preface Acknowledgements About the Authors X1 xiii xyi xvii CHAPTER 1 Introduction 1 1.1 Why Was IMS Developed? 1 1.2 Observations 2 1.3 Network Vision: Enable and Simplify 2 1.3.1 Billions of Mobile Handsets 4 1.3.2 The MultiTalented Mobile Handset 5 1.3.3 Extending Existing Behavior 6 1.3.4 VoiceOver IP Over Broadband 6 1.3.5 The Mobile Phone, Boosted 8 1.4 IMS Architecture for Those That Don't Need to Know 9 1.4.1 Services 12 1.4.2 The Home Network Concept 12 1.4.3 The Residential Opportunity 13 1.4.4 The Enterprise Opportunity 13 1.5 Setting the Scene: The Story So Far 14 1.5.1 IMS VoIP on Existing IP Networks 14 1.5.2 Rich Communication Suite (RCS) 14 1.5.3 PushtoTalk 15 1.6 Doing Useful Work: The Service Story 15 1.6.1 The Communication Service Layer 17 1.6.2 IMS and Web 2.0 20 1.7 The Concept Applied 21 1.8 Multimedia Telephony 21 1.8.1 Multimedia Telephony. What Is It? 22 1.8.2 Why MMTel What are the Driving Requirements? 23 1.8.3 Multimedia Telephony: The Origins 25 1.9 Summary 26 CHAPTER 2 Business Modeling for a Digital Planet 27 2.1 Introduction 27 2.2 Basic Economic Concepts for Developers 27 2.2.1 Economies of Scale 27 2.2.2 Transaction Costs 28 2.2.3 Open APIs and Transaction Costs 28 2.2.4 Factors of Production 32 iii
a iv Contents 2.2.5 Capital Goods Software 32 2.2.6 Consumer Goods Software 33 2.3 Value Creation and Capture in Modem Communications Industries 33 2.3.1 The Role of the Individual in a Digital World 35 2.3.2 The Mobile Broadband Platform 37 2.4 The Business Case for IMS 38 2.4.1 Global Interoperable Standards Developer's View 39 2.4.2 Regulation and the Right to Private Communications 41 2.5 Business Models for a Digital Planet 42 2.6 Toward a Diagramming Technique 44 2.7 Practical Examples Application to IMS 47 2.8 Conclusions 48 CHAPTER 3 Service Deployment Patterns 49 3.1 Introduction 49 3.2 Back to Basics 50 3.3 ClientSide Application 51 3.4 ServerSide EndPoint Application 51 3.5 Web ServerSide EndPoint Application 52 3.6 Web ClientSide EndPoint Application 53 3.7 MidPoint Application 55 3.8 ClientSide Application, Building on a Standardized Service 56 3.9 ToDoList 57 3.10 Summary 58 CHAPTER 4 Applications in the IP Multimedia Subsystem 59 4.1 Introduction 59 4.2 IMS Service Creation 60 4.2.1 Service Composition 60 4.2.2 Composition Through Chaining 61 4.2.3 IMS Service Chaining Architecture 62 4.3 IMS Service Composition 64 4.3.1 Initial Filter Criteria 64 4.3.2 TwoTier Composition and the Service Capability Interaction Manager 65 4.3.3 Unified Web Services and IMS Composition 67 4.3.4 NextGeneration Intelligent Networks and Migration to IMS 68 4.4 IMS Application Servers 69 4.4.1 The Converged SIP Servlet Container 69 4.4.2 SIP Application Types 75 4.4.3 SIP Application Composition in JSR116 77 4.5 Conclusions 80
Contents v CHAPTER 5 Service Development 81 5.1 Virtual Call Center UseCase 82 5.1.1 UseCase Architecture 83 5.1.2 UseCase Business Logic 83 5.1.3 Constituent SIP Applications 87 5.2 WebBased DoNotDisturb UseCase 93 5.2.1 UseCase Architecture 93 5.2.2 Constituent Components 95 5.2.3 UseCase Business Logic 98 5.2.4 AJAX/S1P Interaction 102 5.3 Conclusions 104 CHAPTER 6 Introduction to IPBased RealTime Communications 105 6.1 Introduction 105 6.2 Basics of Voice Over IP 105 6.2.1 Digital Speech Transmission 105 6.2.2 OSI Reference Model 109 6.2.3 Data Transmission Using the Realtime Transport Protocol Ill 6.2.4 Realtime Transport Control Protocol 118 6.2.5 Control Plane Versus User Plane 118 6.2.6 MultiParty Communication Session 129 6.3 Registration 130 6.3.1 Initial Registration and Call Establishment 133 6.3.2 Deregistration 136 6.3.3 Reregistration 136 6.3.4 Mobility Versus Nomadicity 137 6.4 Locating the Registrar 137 6.5 Regi stration Relationships 141 6.5.1 Subscriber Administered in VoIP Network, but Currently not Registered 141 6.5.2 Subscriber Administered in VoIP Network and Currently Registered 142 6.6 Network Domains 142 CHAPTER 7 Introduction to Session Initiation Protocol 145 7.1 Introduction 145 7.2 The SIP Standard 145 7.3 SIP Session Versus Media Session 145 7.4 SIP Transaction Model 147 7.4.1 Command Sequence 152 7.5 SIP Transaction State Models 154 7.6 Proxy Roles 157 7.6.1 Stateless Proxy 158
vi Contents 7.6.2 Stateful Proxy 158 7.6.3 BacktoBack User Agent 160 7.7 SIP Session Establishment 161 7.7.1 Request Message 162 7.7.2 Response Message 163 7.7.3 Initial Request Message Routing 163 7.7.4 Response Message Routing 168 7.7.5 Building an SIP Routing Path for Subsequent SIP Requests 173 7.7.6 Exchanging Contact Addresses for Subsequent SIP Requests 179 7.7.7 Subsequent Request Message Routing 181 7.8 SIP Transport Considerations 183 7.8.1 Internal DNS Versus External DNS 185 7.8.2 Reliability of SIP Requests and SIP Responses 185 7.9 Canceling a SIP Transaction Request 194 7.10 SIP Dialogs 197 7.10.1 Multiple Early Dialogs 201 7.10.2 Target Set 205 7.10.3 Early Media 206 7.11 Media Transmission: OfferAnswer Model 209 7.1 L.1 A Closer Look at the SDP Structure 215 7.11.2 Some SDP Examples 219 CHAPTER 8 Introduction to the IMS Network 223 8.1 Introduction 223 8.2 Overview of IMS Standards and Releases 223 8.3 IMS Network Architecture A Global View 224 8.3.1 IMS Core Network 227 8.3.2 IMS Access Network 229 8.4 IMS Network Architecture A Closer Look 232 8.4.1 Core Network Entities 232 8.4.2 Network Border Gateway Nodes 242 8.5 Registration 249 8.5.1 Registration Relationships 259 8.5.2 Periodic ReRegistration and DeRegistration 260 8.5.3 Implicit Registration Set 262 8.5.4 Thirdparty Registration 266 8.5.5 Applicationinitiated Registration 268 8.6 Session Establishment 270 8.6.1 Media Gating 284 8.7 Using Phone Numbers 285 8.7.1 Number Normalization 286 8.7.2 ENUM Query 288
Contents vii 8.7.3 Public ENUM versus Carrier ENUM 290 8.7.4 Phone Number Representation Through SIP URI 291 8.8 Application Servers in IMS 292 8.8.1 Introduction and Concept 292 8.8.2 The ISC Reference Point 294 8.8.3 Service Chaining 298 8.8.4 SIPAS as Proxy, B2BUA, UAC, or UAS 300 8.8.5 Public Services 304 8.8.6 Serviceinitiated Session Establishment 312 8.8.7 User Interaction 316 8.8.8 Unregistered Service Invocation 320 8.9 Messaging in IMS 324 8.9.1 Instant Message 325 8.9.2 Messaging Session 328 CHAPTER 9 MMTel and Other IMS Enablers 329 9.1 Introduction 329 9.2 A More InDepth Look into MMTel 329 9.3 Basic MMTel Architecture 330 9.4 Going Deeper and Wider 331 9.5 Adding to MMTel 334 9.5.1 ISC Chaining 334 9.5.2 Northbound Interface 335 9.5.3 Forwarding to Extension Logic 335 9.5.4 Web Interfaces on the Client Side 336 9.6 UseCase: CalendarBased Routing 336 9.7 IMS Presence 337 9.7.1 Presence as Defined by OMA 338 9.7.2 Interacting with the Presence System 340 9.7.3 The Presentity Data Model 343 9.7.4 XDM Data Management 345 9.8 Finding the right devices 346 9.9 Conclusion 349 CHAPTER 10 Charging 351 10.1 Introduction 351 10.2 Obvious and Not So Obvious Ways of Getting Paid 352 10.3 Money Makes the App Go Around 352 10.3.1 Selling to the Enduser Through a Store 352 10.3.2 Selling Over and Over Again 353 10.3.3 Payperuse 354 10.3.4 Advertising 354
Connecting viii Contents 10.3.5 Letting Someone Else do the Heavy Lifting 355 10.3.6 Sell Something Else 356 10.3.7 Count on your Fellow Man 356 10.3.8 Benefit in an Entirely Different Dimension 356 10.4 The Mechanics of Charging 357 10.4.1 Offline Charging 358 10.4.2 Online Charging 359 10.5 Summary 362 CHAPTER 11 Interworking with Legacy Networks 363 11.1 Introduction 363 11.2 The Bigger Picture IMS to the Outside World 363 11.3 Interworking Through MGCF and IMMGW 365 11.3.1 General 365 11.3.2 Protocol Mapping 367 11.3.3 MGCF SIP Signaling Capability 371 11.3.4 Userplane Interworking 376 11.4 Video Interworking 378 11.5 Supplementary Service Interworking 380 11.5.1 Calling Line Presentation and Calling Line Presentation Restriction 382 11.5.2 Connected Line Presentation and Connected Line Presentation Restriction 383 11.5.3 Call Hold and Resume 386 11.5.4 Call Forwarding 388 11.6 Applying Legacy VAS in the IMS Network 389 11.6.1 The Starting Point: VAS in the CS Network and VAS in the IMS Network 389 11.6.2 The Challenge: Safeguarding Legacy VAS Investment 393 11.6.3 Service Capability Interaction Manager 399 CHAPTER 12 Rich Communication Suite 401 12.1 Introduction 401 12.2 The Basics of RCS 402 12.2.1 What is RCS? 402 12.2.2 Why RCS? 402 12.3 Overview of RCS Release Functionality 404 12.4 RCS Release 1 405 12.4.1 Enriched Call 406 12.4.2 Enhanced Messaging 414 12.4.3 Enriched Phone Book 417 12.5 RCS Release 2 418 12.5.1 Broadband Access 418 12.5.2 MultiDevice Environment 419
MultiDevice Contents ix 12.5.3 Enriched Call 419 12.5.4 Network Address Book 420 12.5.5 RCS Provisioning 12.6 RCS Release 3 421 12.7 RCS Release 4 422 12.8 RCSe 423 12.8.1 Capability Discovery in RCSe 424 12.9 Using RCS Applications to Capture Value 425 12.10 Conclusions 4?0 CHAPTER 13 Evolved IP Multimedia Architecture and Services 431 13.1 Introduction 43' 13.2 Overview of the Evolved IMS Architecture 431 13.3 GSMA VoLTE 420 IMS Profile for Voice and SMS 432 13.4 VoLTE Considerations for Service Designers 436 13.5 Single Radio Voice Call Continuity (SRVCC) 436 13.5.1 SRVCC Architecture in 3GPP Release 9 437 13.5.2 SRVCC HighLevel Usecase Explained 438 13.5.3 SRVCC Architecture in 3GPP Release 10 440 13.6 IMS Centralized Services (ICS) 441 13.6.1 ICS Solution with Evolved MSC 443 13.6.2 ICS Solution Using Existing ISUP/Mg and CAMEL 444 13.6.3 Terminating Access Domain Selection (TADS) 445 13.7 SRVCC and ICS Considerations for Service Designers 445 CHAPTER 14 Future Outlook: Market and Technology 449 14.1 What is Next in Store for IMS? 449 14.2 TV 449 14.3 Smart Pipes 449 14.4 Home Networks 450 14.5 Web Clients 450 14.6 Machine to Machine (M2M) 450 14.7 Vehicle Automation 450 14.8 WAC and Other App Stores 450 14.9 Secure, NonAnonymous Coinms: The Alternative Network 451 14.10 Conclusion 451 References 453 Abbreviations 455 Index 463