Title:
Programming converged networks : call control in Java, XML, and Parlay/OSA
Personal Author:
Publication Information:
Hoboken, NJ : Wiley-Interscience, 2005
ISBN:
9780471268017
Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010102270 | TK6397 J34 2005 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Examines next generation APIs in detail Provides broad coverage of several different call models and APIs, including JAIN, JTAPI, JCC, and Parlay Discusses technical trade-offs involved in call control modeling and services Sample call flows are shown to aid programmers using UML or Java
Author Notes
Farooq Anjum is a Research Scientist at Telcordia, and an adjunct professor at University of Pennsylvania, Philadelphia, and at Stevens Institute of Technology, Hoboken.
Table of Contents
List of Figures | p. xv |
Preface | p. xix |
Acknowledgments | p. xxiii |
1 Introduction | p. 1 |
1.1 Sessions and Call Control | p. 3 |
1.2 Programmability and APIs | p. 5 |
1.3 How This Book Is Organized | p. 6 |
1.4 Relevant Industry Fora | p. 7 |
1.5 Concluding Remarks | p. 8 |
1.6 To Explore Further | p. 9 |
2 The Telephone Network, Converged Networks, and Programmability | p. 11 |
2.1 Evolution of the PSTN | p. 11 |
2.1.1 Circuit and Packet Switching | p. 11 |
2.1.2 Switches and Signaling | p. 12 |
2.1.3 Switch-Based Services | p. 14 |
2.1.4 The (Advanced) Intelligent Network | p. 15 |
2.1.5 Converged Networks | p. 16 |
2.1.6 A Glance at Signaling Protocols: ISUP and SIP | p. 19 |
2.2 Programmability in AIN and Converged Networks | p. 23 |
2.2.1 Limitations of AIN | p. 23 |
2.2.2 Programmability in Converged Networks | p. 23 |
2.3 APIs Versus Protocols | p. 24 |
2.3.1 The Difference Between APIs and Protocols | p. 24 |
2.3.2 APIs Versus Protocols for Programmability | p. 26 |
2.4 Motivating Services for API Definitions | p. 27 |
2.4.1 Voice Virtual Private Network | p. 28 |
2.4.2 Voice-Activated Dialing | p. 29 |
2.4.3 Click-To-Dial | p. 30 |
2.5 Running Examples Used in This Book | p. 32 |
2.5.1 Toll-Free Calling | p. 32 |
2.5.2 Internet Call Waiting | p. 33 |
2.6 Concluding Remarks | p. 33 |
2.7 To Explore Further | p. 34 |
3 Basic Concepts and Design Issues | p. 35 |
3.1 Introduction | p. 35 |
3.2 Basic Terminology | p. 35 |
3.2.1 Applications and Services | p. 35 |
3.2.2 Service and Network Providers | p. 36 |
3.2.3 Users and Subscribers | p. 37 |
3.2.4 Switches and Switching Centers | p. 37 |
3.3 A Simple Model of Call Processing | p. 39 |
3.4 Basic Model of Programmability | p. 43 |
3.5 First- and Third-Party Call Control | p. 44 |
3.6 Call Models and APIs | p. 45 |
3.7 Specification Language | p. 47 |
3.7.1 Specification Languages | p. 47 |
3.7.2 Choosing a Language | p. 48 |
3.8 Full and Half-Call Models | p. 51 |
3.9 Symmetric and Asymmetric Call Models | p. 52 |
3.10 Network and Application Views of Call Processing | p. 53 |
3.11 Network-Edge and Network-Core APIs | p. 54 |
3.12 API Extensibility | p. 55 |
3.13 Feature Interaction | p. 56 |
3.14 Concluding Remarks | p. 58 |
3.15 To Explore Further | p. 58 |
4 The Advanced Intelligent Network | p. 59 |
4.1 Introduction | p. 59 |
4.1.1 History | p. 59 |
4.1.2 Architecture | p. 60 |
4.2 SS7 | p. 61 |
4.2.1 SS7 Elements | p. 61 |
4.2.2 SS7 Protocols | p. 63 |
4.3 Core AIN and IN Aspects | p. 64 |
4.3.1 AIN/IN Principles | p. 64 |
4.3.2 IN Processing Model | p. 66 |
4.3.3 Basic Call State Models | p. 67 |
4.4 ITU-T IN Aspects | p. 71 |
4.4.1 ITU-T IN Architecture and Capability Sets | p. 71 |
4.4.2 Service-Independent Building Blocks, Services, and Service Features | p. 73 |
4.5 Wireless Intelligent Networks (WIN) | p. 74 |
4.5.1 History | p. 74 |
4.5.2 WIN Architecture | p. 75 |
4.6 Customized Applications for Mobile Enhanced Logic (CAMEL) | p. 77 |
4.7 AIN Examples | p. 78 |
4.7.1 Toll-Free Calling | p. 78 |
4.7.2 Internet Call Waiting | p. 79 |
4.7.3 900 Call Restriction with PIN Override | p. 80 |
4.8 Concluding Remarks | p. 81 |
4.9 To Explore Further | p. 82 |
5 The Java Telephony API | p. 83 |
5.1 Introduction | p. 83 |
5.1.1 What Is Computer Telephony Integration (CTI)? | p. 83 |
5.1.2 Why JTAPI? | p. 84 |
5.1.3 History of JTAPI | p. 85 |
5.2 JTAPI Basics | p. 85 |
5.3 Basic Call Scenarios | p. 88 |
5.3.1 Two-Party Call | p. 88 |
5.3.2 Two-Party Call with Multiple Terminals | p. 89 |
5.3.3 Three-Party Call | p. 90 |
5.4 The JTAPI Peer and JTAPI Packages | p. 90 |
5.4.1 Core | p. 92 |
5.4.2 Call Control | p. 94 |
5.4.3 Call Center | p. 97 |
5.4.4 Mobile | p. 98 |
5.4.5 Phone | p. 98 |
5.4.6 Media | p. 98 |
5.4.7 Private Data | p. 98 |
5.5 JTAPI Examples | p. 98 |
5.5.1 Provisioned Call Forwarding Application | p. 99 |
5.5.2 Dynamic Call Forwarding Application | p. 101 |
5.6 Distributed JTAPI | p. 103 |
5.6.1 Full Call Model | p. 104 |
5.6.2 Half Call Model | p. 105 |
5.7 Concluding Remarks | p. 106 |
5.8 To Explore Further | p. 106 |
6 JAIN Call Control: JCC and JCAT | p. 107 |
6.1 Introduction | p. 107 |
6.2 Background | p. 107 |
6.3 JCC and Signaling Protocols | p. 110 |
6.4 JCC and Application-Level Facilities | p. 110 |
6.5 Call Control in JAIN | p. 111 |
6.6 JCC and JCAT Service Drivers | p. 113 |
6.6.1 JCC Service Drivers | p. 113 |
6.6.2 JCAT Service Drivers | p. 114 |
6.7 Components of the JCC/JCAT API | p. 115 |
6.7.1 Basic Components | p. 115 |
6.7.2 Advanced Call Control Objects | p. 116 |
6.7.3 Basic API Patterns: Listeners and Factories | p. 116 |
6.7.4 Event and Listener Inheritance Diagrams | p. 117 |
6.8 More About Java Call Control | p. 118 |
6.8.1 JccProvider | p. 118 |
6.8.2 JccCall | p. 119 |
6.8.3 JccConnection | p. 121 |
6.8.4 JccAddress | p. 124 |
6.8.5 Event Filters | p. 125 |
6.9 Java Call Control EXTensions | p. 125 |
6.9.1 JcatProvider | p. 125 |
6.9.2 JcatCall | p. 126 |
6.9.3 JcatConnection | p. 126 |
6.9.4 JcatAddress | p. 127 |
6.9.5 JcatTerminal | p. 127 |
6.9.6 JcatTerminalConnection | p. 127 |
6.10 JCC Call Flows | p. 128 |
6.10.1 First-Party Call | p. 131 |
6.10.2 A Call Logging Application | p. 133 |
6.11 Running Examples Using JCC and JCAT | p. 138 |
6.11.1 Toll-Free Call Application | p. 138 |
6.11.2 Internet Call Waiting Application | p. 142 |
6.12 API and Protocols | p. 145 |
6.12.1 JCAT Merge Call Mapping to SIP | p. 146 |
6.13 Relationship of JCC/JCAT to JTAPI and Parlay APIs | p. 147 |
6.14 Concluding Remarks | p. 148 |
6.15 To Explore Further | p. 148 |
7 The Parlay/OSA API | p. 151 |
7.1 Introduction | p. 151 |
7.2 History and Background | p. 151 |
7.2.1 The JWG Process and Technology Mappings | p. 154 |
7.2.2 The Influence of TINA-C | p. 155 |
7.2.3 The TINA Business Model | p. 156 |
7.3 Parlay Architecture | p. 157 |
7.3.1 Registering and Using Parlay Services | p. 158 |
7.4 Overview of Parlay APIs | p. 160 |
7.4.1 Framework | p. 160 |
7.4.2 Call Control APIs | p. 163 |
7.4.3 User Interaction | p. 163 |
7.4.4 Mobility | p. 164 |
7.4.5 Terminal Capabilities | p. 164 |
7.4.6 Data Session Control | p. 164 |
7.4.7 Generic Messaging Service | p. 165 |
7.4.8 Connectivity Manager | p. 165 |
7.4.9 Account Management | p. 165 |
7.4.10 Charging API | p. 166 |
7.4.11 Policy Management Service | p. 166 |
7.4.12 Presence and Availability Management API | p. 167 |
7.5 Design Patterns and Naming Conventions | p. 167 |
7.5.1 Design Patterns and Conventions | p. 167 |
7.5.2 Naming Conventions | p. 169 |
7.6 Call Control APIs | p. 171 |
7.6.1 Generic Call Control API | p. 171 |
7.6.2 Multiparty Call Control | p. 174 |
7.6.3 Multimedia Call Control | p. 178 |
7.6.4 Conference Call Control | p. 179 |
7.7 Steps in the Early Life of a Parlay Application | p. 181 |
7.7.1 How the Application Accesses the Initial Interface | p. 182 |
7.7.2 Authenticating the Framework and Application | p. 183 |
7.7.3 Requesting Access to the Service Discovery Interface | p. 185 |
7.7.4 Discovering Parlay Services | p. 186 |
7.7.5 Signing the Service Agreement | p. 187 |
7.8 Steps in the Early Life of a Parlay Service | p. 189 |
7.8.1 How the Service Accesses the Initial Interface | p. 191 |
7.8.2 Authenticating the Framework and Service | p. 191 |
7.8.3 Requesting Access to the Service Registration Interface | p. 192 |
7.8.4 Registering a Parlay Service | p. 192 |
7.9 The Usage Session: Multimedia Call Control | p. 193 |
7.10 Running Examples in Parlay | p. 196 |
7.10.1 Toll-Free Application | p. 196 |
7.10.2 Internet Call Waiting Application | p. 202 |
7.11 Concluding Remarks | p. 205 |
7.12 To Explore Further | p. 205 |
8 Detailed API Design Issues | p. 207 |
8.1 Introduction | p. 207 |
8.2 Synchronous Versus Asynchronous Calls | p. 207 |
8.3 FSM Inheritance Considerations | p. 208 |
8.4 Object Mutability | p. 210 |
8.4.1 Multiple Sessions per Object | p. 211 |
8.5 Callbacks and Event Listeners | p. 212 |
8.6 Handling Events | p. 212 |
8.7 Event and Listener Hierarchy | p. 213 |
8.8 Using Interfaces Versus Using Classes | p. 214 |
8.9 Bootstrapping, Factories, and Peers | p. 216 |
8.10 To Explore Further | p. 217 |
9 XML Programmability: PINT, SPIRITS, JAIN SCML, and Parlay X | p. 219 |
9.1 Introduction | p. 219 |
9.2 PINT and SPIRITS | p. 221 |
9.2.1 PSTN/Internet Interworking Protocol (PINT) | p. 222 |
9.2.2 Service in the PSTN/IN Requesting InTernet Services (SPIRITS) | p. 223 |
9.2.3 Authorization, Authentication, and Brokering | p. 225 |
9.3 Service Creation Markup Language | p. 227 |
9.3.1 Developing and Deploying an SCML Script | p. 228 |
9.3.2 An Example Using SCML | p. 230 |
9.3.3 Using XSL to Generate Scripts | p. 231 |
9.4 Parlay X Web Services | p. 231 |
9.5 Concluding Remarks | p. 234 |
9.6 To Explore Further | p. 234 |
10 Concluding Remarks and a Look at the Future | p. 235 |
10.1 Problems with Existing APIs | p. 236 |
10.1.1 Network Intelligence Model | p. 236 |
10.1.2 API Complexity and Overhead | p. 236 |
10.1.3 Specification Rigor | p. 237 |
10.1.4 Security | p. 238 |
10.1.5 Support for Mobile Wireless Networks | p. 239 |
10.1.6 Support for Alternative Charging and Billing Models | p. 240 |
10.1.7 The Bottom Line: The Elusive "Killer App" | p. 241 |
10.2 A Speculative Look at the Future | p. 242 |
10.2.1 Scenario 1: APIs Everywhere | p. 242 |
10.2.2 Scenario 2: No APIs and No Call Models | p. 242 |
10.2.3 Scenario 3: APIs and Call Models, but No Standard | p. 243 |
10.2.4 Scenario 4: Other Approaches to Programmability | p. 243 |
10.3 Concluding Remarks | p. 244 |
Acronyms | p. 247 |
References | p. 253 |
Index | p. 261 |