|
|
|
|
|
|
|
|
|
1.1 Sessions and Call Control. |
|
|
|
1.2 Programmability and APIs. |
|
|
|
1.3 How This Book Is Organized. |
|
|
|
1.4 Relevant Industry For a. |
|
|
|
|
|
|
|
2. The Telephone Network, Converged Networks, and Programmability. |
|
|
|
2.1 Evolution of the PSTN. |
|
|
|
2.1.1 Circuit and Packet Switching. |
|
|
|
2.1.2 Switches and Signaling. |
|
|
|
2.1.3 Switch-Based Services. |
|
|
|
2.1.4 The (Advanced) Intelligent Network. |
|
|
|
2.1.5 Converged Networks. |
|
|
|
2.1.6 A Glance at Signaling Protocols: ISUP and SIP. |
|
|
|
2.2 Programmability in AIN and Converged Networks. |
|
|
|
2.2.1 Limitations of AIN. |
|
|
|
2.2.2 Programmability in Converged Networks. |
|
|
|
2.3 APIs Versus Protocols. |
|
|
|
2.3.1 The Difference Between APIs and Protocols. |
|
|
|
2.3.2 APIs Versus Protocols for Programmability. |
|
|
|
2.4 Motivating Services for API Definitions. |
|
|
|
2.4.1 Voice Virtual Private Network. |
|
|
|
2.4.2 Voice-Activated Dialing. |
|
|
|
|
|
2.5 Running Examples Used in This Book. |
|
|
|
|
|
2.5.2 Internet Call Waiting. |
|
|
|
|
|
|
|
3. Basic Concepts and Design Issues. |
|
|
|
|
|
|
|
3.2.1 Applications and Services. |
|
|
|
3.2.2 Service and Network Providers. |
|
|
|
3.2.3 Users and Subscribers. |
|
|
|
3.2.4 Switches and Switching Centers. |
|
|
|
3.3 A Simple Model of Call Processing. |
|
|
|
3.4 Basic Model of Programmability. |
|
|
|
3.5 First- and Third-Party Call Control. |
|
|
|
3.6 Call Models and APIs. |
|
|
|
3.7 Specification Language. |
|
|
|
3.7.1 Specification Languages. |
|
|
|
3.7.2 Choosing a Language. |
|
|
|
3.8 Full and Half-Call Models. |
|
|
|
3.9 Symmetric and Asymmetric Call Models. |
|
|
|
3.10 Network and Application Views of Call Processing. |
|
|
|
3.11 Network-Edge and Network-Core APIs. |
|
|
|
|
|
3.13 Feature Interaction. |
|
|
|
|
|
|
|
4. The Advanced Intelligent Network. |
|
|
|
|
|
|
|
|
4.2 SS7. |
|
|
|
|
|
|
4.3 Core AIN and IN Aspects. |
|
|
|
|
|
4.3.2 IN Processing Model. |
|
|
|
4.3.3 Basic Call State Models. |
|
|
|
|
|
4.4.1 ITU-T IN Architecture and Capability Sets. |
|
|
|
4.4.2 Service-Independent Building Blocks, Services, and Service Features. |
|
|
|
4.5 Wireless Intelligent Networks (WIN). |
|
|
|
|
|
|
|
4.6 Customized Applications for Mobile Enhanced Logic (CAMEL). |
|
|
|
|
|
|
|
4.7.2 Internet Call Waiting. |
|
|
|
4.7.3 900 Call Restriction with PIN Override. |
|
|
|
|
|
|
|
5. The Java Telephony API. |
|
|
|
|
|
5.1.1 What Is Computer Telephony Integration (CTI)? |
|
|
|
|
|
|
|
|
|
5.3 Basic Call Scenarios. |
|
|
|
|
|
5.3.2 Two-Party Call with Multiple Terminals. |
|
|
|
|
|
5.4 The JTAPI Peer and JTAPI Packages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.5.1 Provisioned Call Forwarding Application. |
|
|
|
5.5.2 Dynamic Call Forwarding Application. |
|
|
|
|
|
|
|
|
|
|
|
|
|
6. JAIN Call Control: JCC and JCAT. |
|
|
|
|
|
|
|
6.3 JCC and Signaling Protocols. |
|
|
|
6.4 JCC and Application-Level Facilities. |
|
|
|
6.5 Call Control in JAIN. |
|
|
|
6.6 JCC and JCAT Service Drivers. |
|
|
|
6.6.1 JCC Service Drivers. |
|
|
|
6.6.2 JCAT Service Drivers. |
|
|
|
6.7 Components of the JCC/JCAT API. |
|
|
|
|
|
6.7.2 Advanced Call Control Objects. |
|
|
|
6.7.3 Basic API Patterns: Listeners and Factories. |
|
|
|
6.7.4 Event and Listener Inheritance Diagrams. |
|
|
|
6.8 More About Java Call Control. |
|
|
|
|
|
|
|
|
|
|
|
|
|
6.9 Java Call Control EXTensions. |
|
|
|
|
|
|
|
|
|
|
|
|
|
6.9.6 JcatTerminalConnection. |
|
|
|
|
|
|
|
6.10.2 A Call Logging Application. |
|
|
|
6.11 Running Examples Using JCC and JCAT. |
|
|
|
6.11.1 Toll-Free Call Application. |
|
|
|
6.11.2 Internet Call Waiting Application. |
|
|
|
|
|
6.12.1 JCAT Merge Call Mapping to SIP. |
|
|
|
6.13 Relationship of JCC/JCAT to JTAPI and Parlay APIs. |
|
|
|
|
|
|
|
|
|
|
|
7.2 History and Background. |
|
|
|
7.2.1 The JWG Process and Technology Mappings. |
|
|
|
7.2.2 The Influence of TINA-C. |
|
|
|
7.2.3 The TINA Business Model. |
|
|
|
|
|
7.3.1 Registering and Using Parlay Services. |
|
|
|
7.4 Overview of Parlay APIs. |
|
|
|
|
|
|
|
|
|
|
|
7.4.5 Terminal Capabilities. |
|
|
|
7.4.6 Data Session Control. |
|
|
|
7.4.7 Generic Messaging Service. |
|
|
|
7.4.8 Connectivity Manager. |
|
|
|
7.4.9 Account Management. |
|
|
|
|
|
7.4.11 Policy Management Service. |
|
|
|
7.4.12 Presence and Availability Management API. |
|
|
|
7.5 Design Patterns and Naming Conventions. |
|
|
|
7.5.1 Design Patterns and Conventions. |
|
|
|
7.5.2 Naming Conventions. |
|
|
|
|
|
7.6.1 Generic Call Control API. |
|
|
|
7.6.2 Multiparty Call Control. |
|
|
|
7.6.3 Multimedia Call Control. |
|
|
|
7.6.4 Conference Call Control. |
|
|
|
7.7 Steps in the Early Life of a Parlay Application. |
|
|
|
7.7.1 How the Application Accesses the Initial Interface. |
|
|
|
7.7.2 Authenticating the Framework and Application. |
|
|
|
7.7.3 Requesting Access to the Service Discovery Interface. |
|
|
|
7.7.4 Discovering Parlay Services. |
|
|
|
7.7.5 Signing the Service Agreement. |
|
|
|
7.8 Steps in the Early Life of a Parlay Service. |
|
|
|
7.8.1 How the Service Accesses the Initial Interface. |
|
|
|
7.8.2 Authenticating the Framework and Service. |
|
|
|
7.8.3 Requesting Access to the Service Registration Interface. |
|
|
|
7.8.4 Registering a Parlay Service. |
|
|
|
7.9 The Usage Session: Multimedia Call Control. |
|
|
|
7.10 Running Examples in Parlay. |
|
|
|
7.10.1 Toll-Free Application. |
|
|
|
7.10.2 Internet Call Waiting Application. |
|
|
|
|
|
|
|
8. Detailed API Design Issues. |
|
|
|
|
|
8.2 Synchronous Versus Asynchronous Calls. |
|
|
|
8.3 FSM Inheritance Considerations. |
|
|
|
|
|
8.4.1 Multiple Sessions per Object. |
|
|
|
8.5 Callbacks and Event Listeners. |
|
|
|
|
|
8.7 Event and Listener Hierarchy. |
|
|
|
8.8 Using Interfaces Versus Using Classes. |
|
|
|
8.9 Bootstrapping, Factories, and Peers. |
|
|
|
|
|
9. XML Programmability: PINT, SPIRITS, JAIN SCML, and Parlay X. |
|
|
|
|
|
|
|
9.2.1 PSTN/Internet Interworking Protocol (PINT). |
|
|
|
9.2.2 Service in the PSTN/IN Requesting InTernet Services (SPIRITS). |
|
|
|
9.2.3 Authorization, Authentication, and Brokering. |
|
|
|
9.3 Service Creation Markup Language. |
|
|
|
9.3.1 Developing and Deploying an SCML Script. |
|
|
|
9.3.2 An Example Using SCML. |
|
|
|
9.3.3 Using XSL to Generate Scripts. |
|
|
|
9.4 Parlay X Web Services. |
|
|
|
|
|
|
|
10. Concluding Remarks and a Look at the Future. |
|
|
|
10.1 Problems with Existing APIs. |
|
|
|
10.1.1 Network Intelligence Model. |
|
|
|
10.1.2 API Complexity and Overhead. |
|
|
|
10.1.3 Specification Rigor. |
|
|
|
|
|
10.1.5 Support for Mobile Wireless Networks. |
|
|
|
10.1.6 Support for Alternative Charging and Billing Models. |
|
|
|
10.1.7 The Bottom Line: The Elusive “Killer App”. |
|
|
|
10.2 A Speculative Look at the Future. |
|
|
|
10.2.1 Scenario 1: APIs Everywhere. |
|
|
|
10.2.2 Scenario 2: No APIs and No Call Models. |
|
|
|
10.2.3 Scenario 3: APIs and Call Models, but No Standard. |
|
|
|
10.2.4 Scenario 4: Other Approaches to Programmability. |
|
|
|
|
|
|
|
|
|
|