RFC 2458

Toward the PSTN/Internet Inter-Networking--Pre-PINT Implementations

๐Ÿ“… published November 1998, from ietf

RFC 2458: Toward the PSTN/Internet Inter-Networking --Pre-PINT Implementations ๐ŸŽ€

okay bestie, this one is from November 1998 and it's an Informational RFC, so it's not a standard, just a super detailed field guide ๐Ÿ“–โœจ. The editor is H. Lu, and the crew is M. Krishnaswamy (Lucent Technologies), L. Conroy (Roke Manor Research), S. Bellovin, F. Burg, A. DeSimone, and K. Tewani (AT&T Labs), P. Davidson (Nortel), H. Schulzrinne (Columbia University), and K. Vishwanathan (Isochrome) ๐Ÿ’œ. It doesn't obsolete or update any other RFCs ๐Ÿ™…โ€โ™€๏ธ. It's from the Network Working Group, which is the main character of this whole story ๐ŸŒˆ.

Status of this Memo โœจ

so this memo is just here to share info with the Internet community ๐Ÿซถ. it does NOT count as an Internet standard of any kind, and it can be shared freely with no limits ๐Ÿ’….

Copyright (C) The Internet Society (1998). All Rights Reserved.

Abstract ๐Ÿฆ‹

okay so this doc is all about the info you need for building the inter-networking interfaces that the PINT Working Group is cooking up ๐Ÿณ. PINT stands for PSTN/Internet Inter-Networking, and the PSTN is the Public Switched Telephone Network ๐Ÿ“ž. it covers technologies, architectures, and a bunch of existing pre-PINT implementations (but not literally all of them, bestie, it's not that deep ๐Ÿ˜ญ). these are the ways Internet apps can request PSTN telecom services and make them way more enriched ๐Ÿ”ฅ.

the big idea is that PINT services mix the Internet and the PSTN together so the Internet handles the non-voice stuff, while voice and fax go entirely over the PSTN ๐Ÿ“ . here's the tea: the pre-PINT implementations were all built on their own, so they do not inter-operate ๐Ÿ’€. the PINT Working Group's job is to define the inter-networking interfaces so future PINT implementations can actually talk to each other ๐Ÿซถโœจ.

Table of Contents ๐Ÿ“

   1.      Introduction    .......................................     3
   2.      Terminology     .......................................     3
   3.      PINT Services   .......................................     4
   4.      Architectural Overview  ...............................     5
   4.1     Public Switched Telephone Network       ...............     5
   4.2     Pre-PINT Systems        ...............................     9
   5.      IN-Based Solutions      ...............................    20
   5.1     The Lucent System       ...............................    20
   5.1.1   Roles of the Web Server, Service Node, and SMS  .......    20
   5.1.2   A Click-to-Dial-Back Service Scenario   ...............    21
   5.1.3   Web Server-Service Node Interface       ...............    22
   5.1.4   Web Server-SMS Interface and SNMP MIB   ...............    24
   5.1.5   Security Considerations     ...........................    26
   5.2     Siemens Web Call Center     ...........................    27
   5.2.1   Service Description     ...............................    27
   5.2.2   Implementation      ...................................    29
   5.2.3   Derived Requirements/Lessons      .....................    35
   6.      Alternative Solutions   ...............................    37
   6.1     The AT&T System   .....................................    37
   6.1.1   High Level Architecture    ............................    38
   6.1.2   IP Client to CallBroker Interface    ..................    39
   6.1.3   Protocol    ...........................................    40
   6.1.4   APIs Exposed to the IP Client     .....................    41
   6.1.5   Voice-Bridge Control API       ........................    41
   6.2     Simple Computer Telephony Protocol      ...............    41
   6.2.1   Overview    ...........................................    41
   6.2.2   How SCTP Fits in with the Reference PINT Services    ..    42
   7.      Session Initiation Protocol--An Emerging Standard    ..    43
   7.1     Overview        .......................................    43
   7.2     SIP Protocol    .......................................    44
   7.3     SIP Entities    .......................................    45
   7.4     Providing Call Control Functionality    ...............    46
   8.      Overall Security Considerations   .....................    47
   9.      Conclusion      .......................................    48
   10.     Acknowledgments     ...................................    48
   11.     Appendix        .......................................    49
   11.1    PSTN/IN 101     .......................................    49
   11.1.1  Public Switched Telephone Network       ...............    49
   11.1.2  Intelligent Network     ...............................    51
   11.2    Call Center Features      .............................    54
   12.     References      .......................................    56
   Authors' Addresses    .........................................    57
   Full Copyright Statement     ..................................    60

1. Introduction ๐ŸŒธ

okay so the Abstract kinda already spilled the tea, but here's the full picture ๐Ÿซ–. this doc is all about the inter-networking interfaces being built by the PINT Working Group ๐Ÿ”ง. PINT services combine the Internet and PSTN so that the Internet handles the non-voice interactions, and the voice and fax stay completely on the PSTN ๐Ÿ“žโœจ.

the vibe of the doc goes like this ๐Ÿ—บ๏ธ. first, you get the basic terminology plus a quick "intuitive" look at PINT services ๐Ÿง . then the rest of the doc looks at the pre-PINT support for those services, using them as a benchmark ๐Ÿ“. after that comes an architectural overview that covers every solution out there right now ๐Ÿ—๏ธ. then the doc splits into two storylines ๐Ÿ‘ฏโ€โ™€๏ธ. one is about IN-based solutions (Intelligent Network), and the other is about alternatives, like the CallBroker approach and the Computer-Telephony Integration (CTI) approach ๐Ÿ’ป. next up are the emerging standards, especially the Session Initiation Protocol (SIP), which is honestly giving elegant solution to the PINT problem ๐Ÿ˜๐Ÿฆ‹. each of these developments gets its own section ๐ŸŽ€.

the last bits of the doc are the overall security considerations, the conclusion, acknowledgments, an appendix, and the references ๐Ÿ“š. the security section sums up the PINT security requirements we learned from pre-PINT experiences ๐Ÿ”, and the appendix is a tutorial on PSTN, IN, and Call Center functions ๐ŸŽ“. main character energy, honestly ๐Ÿ‘‘.

2. Terminology ๐Ÿ’œ

okay so this doc uses a few key terms, and you need these to follow along ๐Ÿซถ:

  • Authentication -- verification of the identity of a party ๐Ÿชช.
  • Authorization -- determination of whether or not a party has the right to perform certain activities ๐Ÿ”‘.
  • PINT Gateway -- the PSTN node that interacts with the Internet ๐ŸŒ‰.
  • User or Customer -- the person who asks for a service request to be issued. in the context of PINT Services, this person will use an Internet host to make his or her request ๐Ÿ’…. the term "user" is also used to describe a host originating the PINT service request on behalf of this person ๐Ÿค–.

3. PINT Services โœจ

okay so this section is where the PINT Working Group's four services get introduced ๐ŸŽ€ these are the ones they'd already identified and that pre-PINT implementations were already running: click-to-dial-back, click-to-fax, click-to-fax-back and voice-access-to-content ๐Ÿ’…

Now, the word "click" is NOT meant to be taken literally ๐Ÿ™ˆ it's just a nod to how people kick things off on the Internet, where point-and-click is basically the main move ๐Ÿ–ฑ๏ธ๐ŸŒธ so a service request could come from pretty much any kind of IP-based platform. Nobody is saying these services have to be run by a device on the PSTN or the Internet with a Web server, bestie ๐Ÿงš

The big idea is that the Internet handles the non-voice stuff, and the voice (and fax) rides entirely over the PSTN ๐Ÿ“žโœจ Think of a Web-based Yellow Pages that lets customers and suppliers actually ring each other up through the PSTN, which is exactly the kind of combo this is about ๐Ÿ’œ

Why bother with the PSTN? Because it gives you high-quality voice ๐ŸŽง, the ability to route calls differently based on pre-set rules (like time of day, day of the week, or where you are geographically) ๐Ÿ—บ๏ธ, outstanding security and reliability ๐Ÿ”, and flexible, low-cost, secure billing and charging systems ๐Ÿ’ธ. Meanwhile the Internet brings uniform, well-defined, widely-used interfaces you can reach anywhere, anytime ๐ŸŒˆ

3.1. Click-to-Dial-Back ๐Ÿ“ฒ

With this one, a user asks (through an IP host) for a PSTN call to be set up between another party and themselves ๐Ÿ’– The big prerequisite is that the user needs simultaneous access to both the PSTN and the Internet ๐Ÿซถ

Example time! ๐Ÿ›๏ธ Someone's browsing an online catalogue, clicks a button, and boom, they get a call from a sales rep ๐Ÿ“ž Just like the all-PSTN Free-Phone (aka "800") service, flexible billing can be set up here on behalf of the service provider ๐Ÿ’… And similarly to Free-Phone/800, the PSTN could route the call based on time of day, day of week, agent availability in different locations, and so on ๐Ÿฆ‹

3.2. Click-to-Fax ๐Ÿ“ 

Here a user at an IP host asks for a fax to be sent to a particular fax number ๐ŸŽ€ This is especially meaningful when the recipient only has a fax machine and no Internet access at all ๐Ÿ˜ญ

Picture this: a Web user is booking a hotel room in Beijing from a travel service page that has hotel info for major cities around the world ๐ŸŒ The chosen Beijing hotel has no Internet connection, but it does have a fax machine ๐Ÿ“  So the user fills out the reservation form and clicks a button to send it to the travel service provider ๐Ÿ’Œ The provider then generates a fax request and sends it, along with the reservation form, to the PSTN ๐Ÿงš Once the PSTN gets the request and the data, it translates the data into the proper facsimile format and delivers it to the Beijing hotel, as the fax request specifies ๐Ÿ‘‘

3.3. Click-to-Fax-Back ๐Ÿ”

With this service, a user at an IP host can ask for a fax to be sent to them ๐Ÿ’• Remember our Beijing user? Now they want the confirmation from the Beijing hotel ๐Ÿจ Another iconic use case is when the info is SO big that downloading it over the Internet would take forever and eat up a ton of disk space on their PC ๐Ÿ’€

3.4. Voice-Access-to-Content ๐ŸŽง

With this one, a user at an IP host asks for certain Internet information to be accessed (and delivered) in audio form over the PSTN, using the telephone as an informational appliance ๐Ÿ“ž๐ŸŒˆ One application is giving the blind Web access ๐Ÿซถ (This may need special PSTN resources to convert the Web data into speech, so it's not just a vibe, it's real infrastructure ๐Ÿ”ฅ)


4. Architectural Overview ๐Ÿ—๏ธ

4.1 Public Switched Telephone Network

okay so bestie, from an app's point of view, Internet nodes just connect directly to each other ๐Ÿฆ‹ โœจ When two machines want to talk, they already have the address of the destination end system, and they send network-level datagrams and trust that the underlying infrastructure will deliver them as needed ๐Ÿ’…

                                   _____
                 __          _____/     \_____
                [__]        /                 \
               [----]-.-.-.-.   Internet       .-.
                            \_____     _______/  |
                              __  \__./     __   .
                             [__]   /      [__]  |
                            [----]-.      [----]-.

               Key: .-.-. Internet Access Link

                                 Figure 1

If every node is on the same (broadcast) network, you don't need any routers in the middle ๐ŸŒธ They can send and deliver packets straight to each other. The Internet nodes handle their own communication requests and act as peers in the sessions that come out of it. no hierarchy, just vibes ๐Ÿซถ

This is giving a totally different energy from the PSTN ๐Ÿ“ž In the PSTN, the end systems are set up like this:

    /--\
   ()/\()__
    /__\   \       .................................
            \      !             !                 !           /--\
     __      \   [-!-]         [-!-]               !          ()/\()
     \ \      \__[CO ]=========[CO ]==\\           !        ___/__\
    [Fax]________[---]         [---]   \\        [-!-]     /   __
                                        \\=======[CO ]____/    \ \
                                                 [---]________[Fax]
   Key: ___   Access Lines
        ===   Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links
        CO    Central Office (Telephone Exchange)

                                 Figure 2

The end systems tend to be locked into one type of traffic ๐Ÿ“  For example, most terminals are dedicated to speech (telephones) or to faxes (fax machines). All the terminals connect to Central Offices (COs) through access lines, and those COs are linked together into a network ๐Ÿงš

Communication between terminals is "circuit switched," which means a dedicated synchronous data path (aka a circuit) has to be set up between the end terminals to carry all of the communication ๐ŸŽ€ The COs are the ones responsible for making that circuit and clearing (removing) it when it's done. A user makes a request from their terminal, and it gets passed to the "local" Central Office. The relationship between terminals and their local COs is strictly Client/Server ๐Ÿ‘‘

The COs connect to each other using two different kinds of connections ๐Ÿ’œ The first is a trunk connection (shown as a double line in the figure above), and it carries the data traffic generated by the terminals. The second acts as part of a separate network (shown as a dotted line in the figure above). This is the signaling network, and the COs use it to request that a connection be made between themselves and the destination of the circuit. That request gets carried across the trunk link to the "next" Central Office on the path. Once a path is in place through the PSTN, it always takes the same route ๐Ÿ˜ญ The Internet is the opposite: because the infrastructure is datagram-based, data packets can take different routes depending on the combined traffic flowing through the network at that moment ๐ŸŒˆ

Call setup can be split into two parts: first a connection is requested, and then the circuit gets made across the PSTN so call data can flow between the two parties โœจ Here's the next pair of figures (3a and 3b) showing that:

                            /--\
                           ()  ()
                             --____
                            /++\   \
                           /----\   \
                              A      \   [-!-]
                                      \->[CO ]
                                         [---]
                           Time = 13:55

                                 Figure 3a
   Key: ___   Access Lines
        ===   Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links
        CO    Central Office (Telephone Exchange)

    /--\
   ()  ()
     --            .................................
    /  \<---       ^             !                 !           /--\
   /----\   \      !             v                 !          ()  ()
      A'     \   [-!-]         [-!-]               !            --
              \__[CO ]=========[CO ]==\\           v        ->-/  \
                 [---]         [---]   \\        [-!-]     /  /----\
                                        \\=======[CO ]____/     B'
   Time = 14:00                                  [---]

                                 Figure 3b

Figure 3 shows one kind of service you can get, called call booking ๐Ÿ“… With this service, you send a request for a connection between the A and B telephones at a set time. Then you hang up the phone (the request phase is over). At the scheduled time, the CO makes the connection across the network the normal way, but first it rings the "local" or A' telephone to let the user know their call is about to happen ๐Ÿ””

For fancier services, the requesting telephone is often connected via its "local" CO to a Service Node (SN) ๐Ÿ’… That's where the user can hear prompts and specify the parameters of their request in a more flexible way. This is shown below, in Figures 4a and 4b. For more details on how the Service Node (and other Intelligent Network units) work, see the Appendix ๐Ÿ“–

When the SN is involved in both the request and the call setup, it looks like just another PSTN terminal to the CO ๐Ÿค– So the initial request gets routed to the Service Node, which then, acting as an end system, makes two independent calls "out" to A' and B' ๐Ÿ™Œ

                             /--\         [---]
                            ()  ()        [SN ]
                              --___       [|--]
                             /++\  \       |
                            /----\  \      |
                                     \     |
                               A      \   [|-!]
                                       \->[CO ]
                                          [---]
                            Time = 13:55

                                 Figure 4a
   Key: ___   Access Lines
        ===   Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links
        CO    Central Office (Telephone Exchange)
        SN    Service Node


    /--\         [---]
   ()  ()        [SN ]
     --          [|--]                                           /--\
    /  \<--       |   ...............................           ()  ()
   /----\  \      |  ^             !                !             --
            \     | /              v                v            /  \
      A'     \   [|-!]            [-!-]            [-!-]     ->-/----\
              \--[CO ]            [CO ]            [CO ]    /
                 [---]            [---]            [---]___/      B'
   Time = 14:00

                                 Figure 4b

Heads up, though ๐Ÿ™ˆ In both cases (Figures 3 and 4), you can get a similar service where the B' telephone is swapped out for an Intelligent Peripheral (or a Special Resource Functional entity inside a Service Node) that plays an announcement. That's how you can request a "wake up" call: the Intelligent Peripheral or Service Node Special Resource plays a suitable message to telephone A' at the time you asked for ๐ŸŒ… Again, for more details on how Special Resources (and other Intelligent Network units) work, see the Appendix ๐Ÿงš


4.2 Pre-PINT Systems

okay, so the pre-PINT systems covered here (the ones developed by AT&T, Lucent, Siemens and Nortel) each have their own quirks ๐Ÿ“ but they're lowkey super similar in architecture ๐Ÿ’– This section is all about the shared features. The specific descriptions of these systems come later, so stay tuned โœจ

All of these systems are pretty much like the diagram below ๐Ÿฆ‹ In each one, the service is split into two parts: one for the request and one for executing the service. Figure 5 sums up the whole process ๐Ÿซถ

                                _____
              __          _____/     \_____
             [__]        /                 \
            [-++-]-.-.>.-.   Internet       .-.-
                         \_____     _______/   .
                               \___/           v
                                       [----]  .
                                       [PINT]-.-
                                       [----]
                                         %
                                         v
                                       [---]
                                       [SN ]
                                       [|--]

                                 Figure 5a
   Key: CO    Central Office (Telephone Exchange)
        SN    Service Node
        PINT  PSTN/Internet Gateway
        .-.-. Internet Access Link
        %%%   Gateway/Service Node Link
        ___   PSTN Access Lines
        ===   PSTN Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links

                       _____
     __          _____/     \_____
    [__]        /                 \
   [----]-.-.-.-.   Internet       .-.-
                \_____     _______/   .
                      \___/           |
                              [----]  .
                              [PINT]-.-
                              [-%--]
                                %
                                %
                 /--\         [-%-]
                ()  ()        [SN ]
                  --          [|--]                               /--\
                 /  \<--       |    ....................         ()  ()
                /----\  \      |   ^        !          !           --
                         \     |  /         v          v          /  \
                   A'     \   [|-!]       [-!-]      [-!-]    ->-/----\
                           \--[CO ]=======[CO ]======[CO ]   /
                              [---]       [---]      [---]__/      B'

                                 Figure 5b

If you compare Figure 4a with Figure 5a, the big difference is how the information specifying the request reaches the Service Node ๐Ÿง In the PSTN/IN method from the earlier diagram, the user connects to the SN from telephone A, and that connection gets routed through the CO. In the Figure 5a case, the request comes from an Internet node, goes through the PINT gateway, and then reaches the Service Node over a "private" link ๐Ÿ”— The effect is identical in that the request for service gets specified, although the actual parameters used to specify the service might be a bit different ๐Ÿ’…

Looking at the execution phases (Figures 4b and 5b), the operation is again identical from the IN/PSTN perspective ๐ŸŒธ The Service Node appears to start two independent calls "out" to telephones A' and B' ๐Ÿ“žโœจ

Okay so picking up right where the AT&T and Nortel systems come in, bestie ๐Ÿ’…โœจ Those two took a different route: instead of hooking the PINT Gateway up to the PSTN through a Service Node (or some other Intelligent Network buddy), they let it plug straight into Central Offices that can do the stuff the gateway asks for ๐Ÿฆ‹ The commands get written at a "lower level," so they describe the call states needed for the service connection instead of a service identifier and addresses. The Intelligent Network pieces just handle the nitty-gritty of the service call for the gateway ๐Ÿงš So the commands sound more like what Central Offices already speak ๐ŸŽ€ The real difference is in the language used to describe the services, and every system can still use the overall architecture from Figure 5. The only open question is whether the Intelligent Network components are even needed in these other approaches ๐Ÿค”

Here's Figure 6, which shows the interface architecture for the kind of service we just mentioned ๐Ÿ’–

                        Internet  __                     __
                        Server   [__]        _______    [__]
                           [W3S-]-. ___/    .-.-.-[W3C-] Internet
                 _________________|/.-.-.-.-.   \         Terminal
                /               .. .             \
                | Internet     / .  \             |
                \___________  .  .   .           /
                            \/___|____\_________/
                            .    .      .
                           /      |       \
                        (A)      (B)      (E)
                       .          .          .
                     _|_         _|_         _|_
                    [SN ]<-(D)--[SMS]--(H)->[SCP]
                    [|-|]        ---        [-!-]
                    /  \                      !
                  (C)  (I)   ...........(F)...!.(G).
                 /        \  !                     !
              [--|]       [|-!]                  [-!-]
              [CO ]       [MSC]                  [SSP]
              [---]       [---] \|/              [---]
         /--\   |           |____|                 |   /--\
        ()/\()  |                                  |  ()/\()
         /--\___|                1                 |___/--\
Fixed PSTN Terminal             []            Fixed PSTN Terminal
                         Mobile Terminal
Key: W3S   HTTP (Web) Server
     W3C   HTTP (Web) Client/Browser
     CO    Central Office (Telephone Exchange)
     MSC   Mobile Switching Center (Mobile Network Telephone
           Exchange)
     SN    Service Node
     SSP   Service Switching Point
     SCP   Service Control Point
     SMS   Service Management System
     .-.-. Internet relationship
     ___   PSTN Access relationship
     ...   PSTN "core" signaling relationship
                             Figure 6

Here's what each interface does ๐Ÿซถ

  • A: this is where Internet requests for service get delivered to the Service Node ๐ŸŒธ
  • B: this is where Service Management requests get sent from the Internet to the Service Management System ๐Ÿ’œ
  • C: this is where the Service Node sends call control requests to a connected Central Office ๐Ÿ“ž
  • D: this is where the Service Management System manages the Service Node ๐Ÿงš
  • E: this is where Internet requests for service get delivered to the Service Control Point ๐Ÿฆ‹
  • F: this is where the Service Control Point sends service call control requests to the Mobile Switching Center ๐ŸŽ€
  • G: this is where the Service Control Point sends service control requests to the Service Switching Point ๐Ÿ’…
  • H: this is where the Service Management System manages the Service Control Point ๐Ÿ‘‘
  • I: this is where the Service Node sends service call control requests to the Mobile Switching Center โœจ

Okay so in practice a bunch of these interfaces have really similar purposes ๐Ÿ™ˆ Their methods are different though, because some of them (C and I) are about access arrangements, while others (F and G) are about a "core" signaling relationship ๐Ÿ’€ Still, you can group them by the "intent" of the messages sent across them, and that's the vibe we're going for ๐ŸŒˆ

For example, Interfaces A and E are similar, and one of the main goals of PINT work is to make sure they end up being the same ๐Ÿ”ฅ Interfaces D and H imply similar actions, so they'll probably carry similar messages ๐Ÿ“ And Interfaces C, F, G, and I all exist to ask for a call to be initiated, whether through access or core signaling relationships ๐Ÿ“žโœจ

You can also look at the interfaces by the kinds of components involved and the bodies that codify them ๐Ÿ’– Interfaces A, B, and E are all going to be realized as Internet Protocols ๐ŸŒ Everything else uses existing protocols in the PSTN/IN ๐Ÿซถ Those have traditionally been codified by different groups, and that's probably going to be the case for PINT work too ๐Ÿ˜ญ

The general setups for the different systems are shown next (Figures 7, 8, 9, and 10) ๐Ÿฆ‹ They differ in the details of their configurations, but they do pretty much the same main jobs, so the overall operation looks a lot like the generic architecture in Figures 5 and 6 ๐Ÿ’œ Here's the key for the following diagrams ๐ŸŽ€

    Components:

W3C     World Wide Web Client
W3S     World Wide Web Server
WSA     Web Server "Back End Program" Interface (CGI or Servlet
        interface)
Srvlt   Servlet "back end" program/objects
FS      Finger Server
SCTPC   Simple Computer Telephony Protocol Client
SCTPS   Simple Computer Telephony Protocol Server
CBC     CallBroker Client
CBS     CallBroker Server
SSTPC   Service Support Transport Protocol Client
SSF     Service Switching Function
SCF     Service Control Function
SRF     Special Resource Function
CO      Central Office/ Public Telephone Exchange
SSP     Service Switching Point
SCP     Service Control Point
SR/I.IP Special Resource/ "Internet" Intelligent Peripheral
SMS     Service Management System
INAPAd  Intelligent Network Application Part Adaptor
PktFlt  Packet Filter (Firewall)
SNMPAg  Simple Network Management Protocol Agent
    Protocols:

P0    HyperText Transfer Protocol
P1    HTTP Server <-> "Back End Program" internal protocol
P2    CallBroker Client <-> CallBroker Server protocol (AT&T system),
   or SCTP Client <-> Server protocol (Nortel system)
P3    PINT User Agent <-> PINT Gateway protocol
P4    Intra-Intelligent Network protocol (e.g., INAP)
P5    Proprietary (INAP-based) Gateway-> I.IP protocol
P6    Finger protocol
P7    Digital Subscriber Signaling 1 protocol
P8    Simple Network Management Protocol
P9    SMS <-> Service Control Point/Service Node protocol

Now here's Figure 7, the Siemens setup ๐ŸŒธ

 _____             _______             _____
|[W3C]|----(p0)-->| [W3S] |<--(p0)----|[W3C]|
|[---]|           | [WSA] |           |[FS.]|
|-----|           |   !   |           |[-!-]|
                  |  (p1) |           |--\--|
                  |   !   |               ^
                  |   !   |               (p6)
                  |   !   |                 \
                  |  (p1) |                  \
                  |   !   |                   \
                  |[Srvlt]|                    \
                  |___!___|                     \
                      !                          \
                     (p3)                         \
 Internet                !                            !
 .+.+.+.+.+.+.+.+.+.+.+. v .+.+.+.+.+.+.+.+.+.+.+.+.+.!.+.+.+.+.+.
 PSTN/IN  _______________!_________________       ____!_____ __________
          |I         [PktFlt]            I|       |[PktFlt]| |[PktFlt]|
          |N          Gateway            N|       |   !    | |   !    |
          |A ___________________________ A|       |   !    | |   !    |
          |P |                         | P|       |   !    | |[SNMPAg]|
  -(p4)-- |A | <-(p4)-> [SCP] <-(p4)-> | A|-(p5)->|[SR/IIP]| | [SMS]  |
  \       |d |          [-^-]          | d|       |[------]| | [-^-]  |
   \      |__|            !            |__|       |________| |___!____|
    \                     !                                      !
   [-v-]                  !-----------------(p9)-----------------!
   [SSP]
   [---]
 ___| |______
 |           |
 |  /--\     |    /--\
 | ()/\()    |   ()/\()
 |__/__\     |____/__\


                 Figure 7: The Siemens Web Call Center

And now Figure 8, the Lucent system ๐Ÿฆ‹

 _____             _______
|[W3C]|----(p0)-->| [W3S] |
|[---]|           | [WSA] |
|-----|           |   !   |
                  |  (p1) |
                  |   !   |
                  |   !   |
                  |   !   |
                  |  (p1) |
                  |   !   |
                  |[SSTPC]|-<----------------------------------
                  |___!___|                                   !
                      !                                      (p8)
                     (p3)                                     !
 Internet                !                                       v
 .+.+.+.+.+.+.+.+.+.+.+. v .+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+. ! .+.+
 PSTN/IN  _______________!__________________________________ ____!_____
          |          [PktFlt]        Service       [PktFlt]| |[PktFlt]|
          |              !             Node                | |   !    |
          |        [SCF Adaptor]                           | |   !    |
          |               !                                | |[SNMPAg]|
          |[SSF]<-(p4)->[SCF] <-------(p4)--------> [SRF]  | | [SMS]  |
          |[|--]        [-^-]                       [---]  | | [-^-]  |
          |_|_____________!________________________________| |___!____|
            |             !                                      !
   [-v-]  (p7)            !-----------------(p9)-----------------!
   [CO.]____|
   [---]
 ___| |_______
 |           |
 |  /--\     |    /--\
 | ()/\()    |   ()/\()
 |__/__\     |____/__\

                      Figure 8: The Lucent System
    _____             ________
   |[W3C]|----(p0)-->| [W3S]  |
   |[---]|           | [WSA]  |
   |-----|           |   !    |
                     |  (p1)  |
                     |   !    |
                     |[WS/CBS]|
                     |[Adaptr]|
                     |___!____|
                         ^
                        (p2)
    _____             ___v____
   |[CBC]|           | [CBS]  |
   |[---]|<---(p2)-->| [---]  |-<---------------------------------
   |-----|           |___!____|                                  !
                         !                                      (p8)
                        (p3)                                     !
 Internet                !                                       v
 .+.+.+.+.+.+.+.+.+.+.+. v .+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+. ! .+.+
 PSTN/IN  _______________!__________________________________ ____!_____
          |          [PktFlt]        Service       [PktFlt]| |[PktFlt]|
          |              !             Node                | |   !    |
          |        [SCF Adaptor]                           | |   !    |
          |               !                                | |[SNMPAg]|
          |[SSF]<-(p4)->[SCF] <-------(p4)--------> [SRF]  | | [SMS]  |
          |[|--]        [-^-]                       [---]  | | [-^-]  |
          |_|_____________!________________________________| |___!____|
            |             !                                      !
   [---]  (p7)            !-----------------(p9)-----------------!
   [CO.]____|
   [---]
 ___| |_______
 |           |
 |  /--\     |    /--\
 | ()/\()    |   ()/\()
 |__/__\     |____/__\

                       Figure 9: The AT&T System

    _____             ________
   |[W3C]|----(p0)-->| [W3S]  |
   |[---]|           | [WSA]  |
   |-----|           |   !    |
                     |  (p1)  |
                     |   !    |
                     |[WS/   ]|
                     |[ SCTPS]|
                     |[Adaptr]|
                     |___!____|
                         ^
                        (p2)
  _______             ___v___
 |[SCTPC]|           |[SCTPS]|
 |[-----]| <-(p2)--> |[-----]|-<----------------------------------
 |-------|           |___!___|                                   !
                         !                                      (p8)
                        (p3)                                     !
 Internet                !                                       v
 .+.+.+.+.+.+.+.+.+.+.+. v .+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+. ! .+.+.
 PSTN/IN  _______________!__________________________________ ____!_____
          |          [PktFlt]        Service       [PktFlt]| |[PktFlt]|
          |              !             Node                | |   !    |
          |        [SCF Adaptor]                           | |   !    |
          |               !                                | |[SNMPAg]|
          |[SSF]<-(p4)->[SCF] <-------(p4)--------> [SRF]  | | [SMS]  |
          |[|--]        [-^-]                       [---]  | | [-^-]  |
          |_|_____________!________________________________| |___!____|
            |             !                                      !
   [---]  (p7)            !-----------------(p9)-----------------!
   [CO.]____|
   [---]
 ___| |_______
 |           |
 |  /--\     |    /--\
 | ()/\()    |   ()/\()
 |__/__\     |____/__\

                      Figure 10: The Nortel System

Okay bestie, so the three systems are totally different babies ๐Ÿ“ Built by different groups, so of course the component names don't match ๐Ÿ’€ Some features are on one system and missing from the others, but there's a bunch of stuff they ALL share โœจ Every one of them has a Web-based interface (at least as an option) that uses "back end" programs to build protocols and pass them onward to the Intelligent Network system ๐Ÿ’ป

Several Intelligent Network Functional Entities get bundled into one Service Node in the Lucent, AT&T, and Nortel systems, while Siemens keeps them as separate units ๐Ÿงฉ Honestly? Not a huge deal for the services they actually offer ๐Ÿ’…

The big difference is whether the SCF is "aware" of the Internet interface and has been modified to be "complicit" in supporting these Internet requests ๐Ÿ‘€ Siemens went with reusing an existing SCP and adding a gateway function that translates as needed ๐Ÿ” Lucent used a "lighter weight" SCF adapter to terminate the Internet protocols, since the SCF was modified to support the Internet interface directly ๐Ÿฆ‹

The AT&T CallBroker and Nortel SCTP Servers bring in an intermediate protocol (labeled p2) that gives you an option beyond the Web interface the others use ๐ŸŽ€ It matches either the "CallBroker Client API" or the "SCTP Client API" ๐Ÿ“ฑ These give you a bi-directional protocol, so the Call Broker or SCTP Server can send indications to the Client whenever needed ๐Ÿ”” That's not easily doable with an HTTP-based scheme, which is why the Siemens side used a dedicated Finger client/server pair to fake that kind of interface ๐Ÿ˜ญ

The protocol between the Internet server and the Intelligent Network (labeled p3 in the diagrams above) is different in every system ๐ŸŒˆ A major goal for future work is to build a common protocol that supports the services offered, so the p3 interface lets different implementations interoperate ๐Ÿซถ In the Lucent, Siemens, and Nortel systems, this was an "internal" protocol, carried between entities inside the Service Node or Gateway ๐Ÿ”’

The systems also differ in how they support Internet access to Service Management and to Special Resources ๐Ÿงš Lucent had the most developed Internet management access, with a Simple Network Management Protocol (SNMP) agent that lets it interoperate with the SMS controlling the Service Node ๐Ÿ“Š In the Siemens scheme, the SMS had no direct Internet access, so any management actions happened within the normal PSTN management activities ๐Ÿ“ž As for Internet access to special resources, only the Siemens system needed it, as part of supporting Call Center agent notification ๐Ÿ“ฃ AT&T and Nortel would get equivalent functionality as mentioned above, and that would be tied to event notifications sent as part of their (p3) Internet/IN protocol ๐Ÿ”— These differences come from the different emphases in each product as it was developed, and future work will have to make sure common protocols can fully support the chosen services ๐Ÿ’œ

5. IN-Based Solutions โœจ

5.1 The Lucent System ๐Ÿ’–

Okay so Figure 11 shows the overall interconnection architecture of the Lucent prototype, which supports the four PINT services ๐ŸŒธ The IN-based architecture uses the Service Node and Service Management System on top of the Web server, which is what gives you Web-based access to the PINT services ๐Ÿ’ป This section sums up what each of these pieces does (plus a click-to-dial-back service scenario), lays out the interfaces between Web Server and Service Node and between Web Server and Service Management System (the interfaces A & B), and covers the common security concerns ๐Ÿ”

5.1.1 Roles of the Web Server, Service Node, and Service Management System ๐ŸŽ€

Web Server

The Web Server stores the profiles of content providers as well as pre-registered users ๐Ÿ“‡ A content provider profile holds stuff like the content provider ID, telephone number, and fax number ๐Ÿ“  The profile can also include service logic that says, for example, which telephone (or fax) number to reach based on time of day, day of week, or the user's geographical location, plus the conditions for accepting the charge of the calls ๐ŸŒ

The pre-registered user profile is kind of similar, and holds things like user name, password, telephone number, and fax number ๐Ÿ”‘ The last two can also be tied to time of day and day of week, so the user can be reached at the right telephone (or fax) number at the right time ๐Ÿ•ฐ๏ธ

Service Node

Living in the PSTN, the SN is like the SCP and performs the service control function [1, 2, 3] ๐Ÿ  It runs the service logic and tells switches how to complete a call ๐Ÿ“ฒ It also handles some switching jobs (like bridging calls) and a set of specialized stuff (like playing announcements, voice recognition, and text-to-speech conversion) ๐Ÿ—ฃ๏ธ

Service Management System

The SMS handles the administration and management of service logic and customer-related data on the SN ๐Ÿ—‚๏ธ It's in charge of replicating content provider profiles and provisioning that data on the SN ๐Ÿ“ค These functions are non-real time โณ

 Web Users
                              ____________
O --------------------------  | Internet |-------------------
                              ------------                  |
                                                            |
                                                            |
----------------            --------------               ------------
| Service Node |     D      | Service    |       B       |Web Server|
|     (SN)     |------------| Management |---------------|          |
|              |            |System (SMS)|               |          |
|              |      A     --------------               |          |
|              |-----------------------------------------|          |
----------------                                         ------------
   |         |
   | I       | C
   |         |
----------- ---------
|Mobile   | |Central|
|Switching| |Office |
| Center  | ---------
-----------     |
     |          |
     |          |
     O          O

    Mobile      Wireline PSTN
    Users       Users

Figure 11: Overall Interconnection Architecture of the Lucent System

5.1.2 A Click-to-Dial-Back Service Scenario ๐Ÿ“ž๐Ÿ’•

Picture this: a Web user has simultaneous access to the Web and telephone services (you can get that with an ISDN connection, for example) ๐Ÿ’ป๐Ÿ“ฑ They're scrolling through a sales catalogue and decide they want to talk to a sales rep ๐Ÿ›๏ธ

When the Web user clicks a button asking for a phone call from the sales office, the Web Server sends a message to the SN over the A interface, which means it's crossing the Internet-to-PSTN boundary ๐Ÿš€ The SN matches the info it got from the Web Server against the content provider profile that the SMS loaded and activated earlier over the D interface, and that's how it recognizes the signal ๐Ÿง 

Then the SN calls the Web user ๐Ÿ“ฒ The user picks up, hears an announcement like "Please wait, while we are connecting you to the sale agent," and waits to get connected to a sales agent ๐ŸŽถ Next, the SN invokes the service logic indicated in the profile ๐Ÿงพ

Here's where it gets iconic: that logic picks which sales agent to call based on the time of day ๐ŸŒ™ It's 8 P.M. in New York, where the Web user is, and the New York sales office is closed ๐Ÿ—ฝ But the San Francisco office is still open, so the SN calls an agent there ๐ŸŒ‰ Finally, the SN bridges the two calls and sets up a two-party call between the sales agent and the Web user ๐Ÿ‘‘

5.1.3 Web Server-Service Node Interface

okay bestie, this is where the Web Server and the SN actually talk to each other ๐Ÿ’ฌโœจ Lucent made a protocol called the Service Support Transfer Protocol (SSTP) for exactly this. It's request/response, so the Web Server sends a request to invoke a service and the SN sends back a message saying either success or failure. It runs on top of a reliable transport layer, like TCP ๐Ÿฆ‹ Also, SSTP only touches the service control function [1, 2, 3] of the SN, so that's its whole lane ๐Ÿ’…

5.1.3.1 Web Server to Service Node

three kinds of messages can go from the Web Server to the SN: the Transaction Initiator message, the Data Message, and the End of Data message ๐ŸŽ€

the last two are only needed if the service involves data, like click-to-fax, click-to-fax-back and voice-access-to-content. this was designed on purpose to handle data of varying size, and to make sure each stream fits inside the allowable size of the underlying transport packet data unit (which some TCP/IP implementations impose) ๐Ÿงš

a. Transaction Initiator

this message has everything needed to invoke a service, except the data itself. it includes these information elements:

  • Transaction ID, which uniquely specifies a service request ๐Ÿ”‘ The same transaction ID should be used for all the accompanying data-related messages, if the service request involves data. One way to generate unique transaction IDs is to concatenate: date, time, Web Server ID (uniquely assigned for each Web Server connected to the SN), and transaction sequence number (a cyclic counter incremented for each service request) ๐ŸŒธ
  • Service ID, which specifies the service to be invoked. It can be click-to-dial-back, click-to-fax, click-to-fax-back or voice-access-to-content ๐Ÿ“ž
  • Content Provider ID, which uniquely represents the content provider. This is the key to accessing the content provider's service logic and data on the SN ๐Ÿ‘‘
  • Content Provider Directory Number, which is the telephone or fax number of the content provider to be called through the PSTN โ˜Ž๏ธ
  • User Directory Number, which is the telephone or fax number of the user requesting the service ๐Ÿ’–
  • Billed Party, which specifies the party (either the user or content provider) to be billed ๐Ÿ’ธ

also, optional parameters may be sent from the Web Server to the SN. for example, a retry parameter may be sent to specify the number of times the SN will attempt to complete a service request upon failure, before the transport connection times out ๐Ÿ”

b. Data Message

this message carries the (encapsulated) user data part of a service request. for example, with click-to-fax-back, this data is the content to be faxed to the user ๐Ÿ“  Each message is made of the transaction ID and a data segment. the transaction ID must be the same as that of the transaction initiator part that first invoked the service ๐Ÿซถ

c. End of Data Message

this message contains the transaction ID and the end of data delimiter. the transaction ID is the same as that of the relevant transaction initiator message ๐Ÿ

5.1.3.2 Service Node to Web Server

the SN must respond to a service request from the Web Server ๐Ÿ™ˆ The response message consists of these information elements:

transaction ID, service type, result, time, and error code.

  • Transaction ID, which is the same as that of the original service request.
  • Service Type, which is the same as that of the original service request.
  • Result, which is either success or failure.
  • Time, which indicates the time of day the request was completed โฐ
  • Error Code, which gives the reason for failure. The possible reasons are: content provider telephone (or fax) busy, content provider telephone (or fax) no answer, user telephone busy, user refusal to complete, user no answer, nuisance control limit reached, and content provider telephone (or fax) not in the SN database ๐Ÿ’€

5.1.3.3 Usage Scenarios: Click-to-Fax and Click-to-Fax-Back

for click-to-fax and click-to-fax-back, the Lucent system only implemented the case where the data to be sent as a facsimile lives on the Web server ๐Ÿ–จ๏ธ At least three messages need to go from the Web server to the Service Node for these services ๐ŸŒˆ

the first one is the Transaction Initiator, which identifies the service type and a unique Transaction ID. It also includes the sender/receiver fax number ๐Ÿ“‡

next up is one or more messages carrying the data to be faxed. Each one carries the same unique Transaction ID as above ๐Ÿงพ

last comes the end of message. It has the Transaction ID (again, the same as the messages before it) and the end of data delimiter ๐Ÿ”š

once the SN gets these messages, the Service Node (equipped with a special fax card resource) converts the data into the G3 format, calls the receiver's fax, and sends the result back to the Web server immediately โšก Note that a receiver fax that's busy or doesn't answer is interpreted as failure ๐Ÿ˜ญ While a receiver fax answering the call is interpreted as success, that does not necessarily mean the fax will go through successfully ๐Ÿ™ƒ

5.1.4 Web Server-SMS Interface and SNMP MIB

this interface is responsible for uploading the content provider profile from the Web Server to the SMS, and for managing that information against any possible corruption ๐Ÿ›ก๏ธ The SN verifies the Content Provider ID and the Content Provider Directory Number sent by the Web Server against the content provider profile pre-loaded from the SMS โœ…

the content provider profile was based on an ASN.1 [4] structure, and SNMP [5] was used to set/get the object identifiers in the SMS database ๐Ÿงฉ

here's an example of the simple MIB available on the SMS ๐ŸŒธ

   inwebContProviderTable OBJECT-TYPE
           SYNTAX          SEQUENCE OF InwebContProviderEntry
           MAX-ACCESS      not-accessible
           STATUS          current
           DESCRIPTION
                   " A table containing Content Provider profiles "
           := { inweb 1}

   inwebContProviderEntry OBJECT-TYPE
           SYNTAX          InwebContProviderEntry
           MAX-ACCESS      not-accessible
           STATUS          current
           DESCRIPTION
                   " A conceptual row of the inweb. Each row
                           contains profile of one Content Provider"
           INDEX   { inwebSmsNumber }
           := { inwebContProviderTable 1 }

   InwebContProviderEntry := SEQUENCE {
           inwebSmsNumber                  Integer32,
           inwebContentProviderId          Integer32,
           inwebContentProviderPhoneNumber Integer32,
           inwebContentProviderFaxNumber   Integer32
           }

   inwebSmsNumber OBJECT-TYPE
           SYNTAX          Integer32
           MAX-ACCESS      read-only
           STATUS          current
           DESCRIPTION
                   " Serial number of the SMS - used for SNMP indexing "
           := { inwebContProviderEntry 1 }

   inwebContentProviderId OBJECT-TYPE
           SYNTAX          Integer32
           MAX-ACCESS      read-create
           STATUS          current
           DESCRIPTION
                   " A number that uniquely identifies each Content
   Provider "
           := { inwebContProviderEntry 2 }

   inwebContentProviderPhoneNumber OBJECT-TYPE
           SYNTAX          Integer32
           MAX-ACCESS      read-create
           STATUS          current
           DESCRIPTION
                   " Content Provider's Phone Number "
           := { inwebContProviderEntry 3 }

   inwebContentProviderFaxNumber OBJECT-TYPE
           SYNTAX          Integer32
           MAX-ACCESS      read-create
           STATUS          current
           DESCRIPTION
                   " Content Provider's Fax Number "
           := { inwebContProviderEntry 4 }

5.1.5 Security Considerations

okay, security time, and we are taking this seriously ๐Ÿ”๐Ÿ˜ค

The Lucent prototype addressed the security issues concerning the interface between the Web Server and the SN. The issues concerning the interface between the Web Server and the SMS, which was based on SNMP, were handled by the built-in security features of SNMP ๐Ÿ›ก๏ธ

  • Secure Communication Links

If the Network Operator (PSTN provider) is also the Web Service provider, the Web Server and SN/SMS will communicate over a corporate intranet. This network is almost always protected by the corporation's firewall, so it can be deemed secure. This was the case handled by the Lucent prototype ๐Ÿข

Nevertheless, if different corporations serve as the Network Operator and the Web Service Provider, then it's likely there may not be a dedicated secure communication link between the Web Server and SN/SMS. This raises serious security considerations. ๐Ÿšจ One possible solution is to use Virtual Private Networks (VPN). VPN features support authentication of the calling and called parties, and encryption of the messages sent over insecure links (such as those on the Internet) ๐Ÿ”’

  • Non-Repudiation

All transactions were logged on both the Web Server and the Service Node, to account for all operations in case of doubt or dispute ๐Ÿ“ The log information on the SN may also be used to generate bills ๐Ÿงพ

  • Malicious Requests of Users

A user may make repeated requests to a content provider directory number maliciously. This scenario was handled by setting a Nuisance Control Limit (NCL) on either the SN or the Web Server, or both ๐Ÿšซ The NCL has two parameters: one defining the number of requests from a user, and the other the period over which those requests take place โณ

A user may also attempt to request a call from a directory number other than that of a content provider. This scenario was handled by verifying the directory number (and the content provider ID) against the database on the SN containing all the content provider information ๐Ÿ•ต๏ธ If the directory number (or the content provider ID) was not in the database, the request would be rejected ๐Ÿ™…โ€โ™€๏ธ

5.2 Siemens Web Call Center

5.2.1 Service Description โœจ

okay so bestie, the Web Call Center is an Intelligent Network System that takes requests from Internet nodes for services to be provided on the PSTN ๐Ÿ“ž๐Ÿ’–. As the name suggests, it was built to support a cluster of services that together give you a subset of the features of a Call Center, with almost all user interactions happening through World Wide Web requests and responses ๐ŸŒธ. There's a background description of Call Center Features in the appendix if you want the full tea ๐Ÿต.

From an Intelligent Network perspective, a bunch of services work together to deliver those Call Center features ๐Ÿ’…. The features as implemented supported this scenario: a customer asks to be called back by an agent at a time they pick, to talk about an item they care about ๐Ÿฆ‹. The agent gets selected based on their availability and expertise in that topic. The agent is told who they're calling and what the topic is, and then they get connected to the customer ๐Ÿซถ.

The individual services deployed for this also managed the list of available agents ๐Ÿ“‹. The agent could "log into" and "log out of" the system, and could indicate whether they were ready to handle calls to the customer ๐ŸŽ€. Here's the list of services from a user's point of view, and honestly it's giving very organized ๐Ÿ˜ญ.

The services support:

  • i) Customer Request service ๐Ÿ’Œ: The customer explores a corporate Web site and clicks a link offering to have an agent call them back. That redirects them to the Web Call Center server, which shows a form asking for their name, the telephone number they want to be called on, and the time the call should happen โฐ. The service also notes the page the customer was referred from when they were redirected. Once the form is submitted, the customer gets an acknowledgment page listing the parameters they entered ๐Ÿงš.
  • ii) Agent Registration/Logon ๐Ÿ”: An agent requests the "login" page on the Web Call Center server. The service checks whether it has a record of an agent at the Internet node the request came from. If not, the caller gets a form to enter the service identity, the company's agent identifier, and a password. When that comes back, the service identity and company agent identifier are checked against a list of known identities. If they're found, the password is checked, and if it matches the record held by the service, a new session record is made linking this identity to the Internet node the call was made from ๐Ÿ”ฅ.
NB: This is very similar to the Universal Personal Telecommunications (UPT) service feature "register for incoming calls" ๐Ÿ’œ. It implies the identified person has exclusive use of the Internet node from that point onwards, so messages for them can be directed there ๐Ÿ‘‘.
  • iii) Agent Ready โœ…: An agent who's already logged on can say they're ready by requesting the appropriate "ready" page on the Web Call Center server ๐Ÿ™Œ. The service matches the agent using the Internet node Identifier and Agent Identity passed along with the Web request, checking them against its list of "active" agents. It then marks them as ready to handle calls in its list of available agents, along with their pre-defined skill set ๐Ÿ“.
  • iv) Agent Not Ready ๐Ÿ˜ด: An agent can request an appropriate "ready" page on the Web Call Center server to say they're temporarily not ready to handle calls ๐ŸŒ™.
  • v) Agent Logoff ๐Ÿ‘‹: An agent can request the "Logout" page on the Web Call Center server to say they're no longer associated with a particular Internet node ๐Ÿ’€. The service matches the agent using the Internet Node Identifier and Agent Identity passed along with the Web request, checking against its list of "active" agents. Once found, that agent's session record is removed and the caller is told so with an acknowledgment page โœจ.
NB: This is very similar to the UPT "unregister" service feature ๐Ÿ™ˆ.
  • vi) Call Center Agent Selection and Notification ๐Ÿ””: When the time the customer picked has arrived and an available agent with the right skills has been selected from the appropriate list, this service sends a notification to the Internet node associated with that agent ๐Ÿ“ฃ. A dedicated server is assumed to be running on the agent's machine. When it gets the notification, it triggers the agent's browser to request the "Agent Call In" page from the Web Call Center server. Once the agent's machine has made that request, the agent is told there's a customer to call ๐Ÿฅณ.
NB: This is similar to a "Message Waiting" or "Wake Up Call" service ๐Ÿ’….

Note: As implemented, the agent is led automatically into the following service, because the returned Web page includes an automatic reload command ๐Ÿ”„.

  • vii) Agent Instruction ๐Ÿ“: A selected agent makes a request to the "Customer Processing" page on the Web Call Center server. The Internet node Identifier and Agent Identity the agent uses are matched against a list of agents expected to handle calls, and the instructions for the calls are returned to the agent ๐Ÿ’œ.
NB: This is similar to a "Voice Mail Replay" message service, but here the message is automatically generated, and there's no associated voice mail record feature you can access ๐ŸŽง.

Note: As implemented, the instructions page includes a number of buttons. They let the agent view the page the customer was looking at when they made the request, and trigger the customer callback (described next) ๐Ÿซถ.

  • ix) Agent/Customer Telephony Callback ๐Ÿ“žโœจ: The agent makes a request to the "dial-back" page on the Web Call Center server. The Internet node Identifier and Agent Identity they use are matched against a list of agents expected to handle calls. When the appropriate records have been found, the service makes the telephone call through to the customer and then connects the agent to that call, using the telephone number in the respective Call Center service record ๐Ÿฆ‹๐Ÿ‘‘.

5.2.2 Implementation ๐Ÿ› ๏ธ

5.2.2.1 Introduction ๐ŸŒˆ

The Siemens Web Call Center used an existing IN system and service logic that supported Call Center features ๐Ÿ’–. The scenario it supports is very similar to the Siemens IN-based Call Center it was based on, and one of the goals was to minimize changes to the service offered ๐ŸŽ€. It's also virtually identical to the service "Internet Requested Telephony Dial-back" provided by the Lucent system ๐Ÿ“.

As provided via the Internet, the services are mostly the same as those provided via the PSTN and IN alone ๐Ÿ’…. The main differences are that the World Wide Web is the interface to the services instead of a telephone, SSP, and Intelligent Peripheral ๐ŸŒธ. Also, the feature that places a telephone call between the agent and the customer is implemented within the IN system in a different way. That's the only element where the PSTN is involved ๐Ÿ“ž.

5.2.2.2 Web Call Center Configuration ๐Ÿงฉ

The general arrangement for the Web Call Center system is shown in Figure 7 ๐Ÿ—บ๏ธ. The components that were added to an existing IN system to handle the Internet interface are described next โœจ.

In addition to the SCP, SSP and SMS that were part of the original IN-based system, another unit was included to send notification messages to agents ๐Ÿ””. In the IN system, agents got "wake up" telephone calls when they were needed to handle their next customer's call back ๐Ÿ˜ญ. This unit is called the "Internet Intelligent Peripheral", and its use is described later under "Non-World Wide Web Interactions" ๐Ÿซถ.

Since there was a need to reuse as many of the existing IN components unchanged as possible, a Gateway unit was provided to deal with the interface between the Internet and the SCP ๐Ÿšช. It injected INAP (Intelligent Network Application Protocol) messages into the SCP, making it think it had received an Initial DP trigger from an SSP ๐Ÿคฏ. It also intercepted the "Connect To Resource" and "Prompt and Collect" INAP messages sent from the SCP, and acted on them to return the parameters the Internet users generated when they filled in the forms that triggered the service transaction ๐Ÿ“‹. It translated the "Play Announcement" message sent to the Intelligent Peripheral into a form that the Intelligent Peripheral could use ๐Ÿ”ง. Finally, it passed on the INAP message the SCP used to trigger the SSP into making the telephone call back ๐Ÿ“ž๐Ÿ’….

5.2.2.3 User Interaction ๐ŸŽ€

In the IN/PSTN-based system, the services had contact with customers and agents through their telephones, SSPs, and Intelligent Peripherals. Those were programmed to play announcements to them and to capture their responses ๐ŸŽ™๏ธ. These responses were indicated by DTMF tones sent by pressing keys on the telephones โ˜Ž๏ธ.

In this case, almost all interactions happen through World Wide Web requests and responses ๐ŸŒ. The sequence of announcements and responses for each service is "collapsed" into individual form-filling transactions, and the requests aren't limited to digits (or "star" and "hash") ๐Ÿ™Œ. The implications of using forms on service operation are covered in more detail later, under HTTP/IN Service mapping ๐Ÿฆ‹.

5.2.2.4 Service/Caller Identifiers โœจ

okay so when the services come in through the IN/PSTN system, they get the Calling Line Identity (CLI) of the caller AND the number the caller dials (the DN) ๐Ÿ“ž. The CLI gets used EVERYWHERE to identify the caller and (for the agent) to index into service data tables so the system knows what to do next ๐Ÿ’…. Web transactions get an equivalent value to the DN as the requested Universal Resource Locator (URL) ๐Ÿฆ‹, but the CLI cannot be given reliably ๐Ÿ˜ญ. The nearest equivalent is the IP Address of the customer's or agent's machine. BUT, HTTP proxies mean that this "original" Internet node Address may not be available. If a proxy is used, then its IP Address is the one associated with the request ๐Ÿ™ˆ.

In providing these Call Center features, the customer only has ONE Web-based transaction: the initial request for a PSTN telephone callback ๐Ÿ“ฑ. To do that, they have to fill in a form that specifies not only the time to be called back, but also the telephone number to be reached ๐ŸŽ€. Those values can be used to identify the customer if needed, so the problem of originating Internet Node ambiguity is not relevant here ๐Ÿซถ.

With the agents, though, there are sequences of coupled transactions, and the particular sequence has to be identified ๐Ÿงš. A bunch of these are running at once, so there needs to be some identifier that shows which agent is being handled in each case ๐Ÿ”ฅ.

Such an identifier is NOT part of a sequence of basic Web transactions, sis ๐Ÿ’€. In a Web transaction, the HTTP Client/Web Browser makes a request, and the HTTP Server responds, usually including some content in its reply that the browser processes. After that, it closes the TCP connection. That's the end of the transaction, and the HTTP client and server normally can't keep state information beyond this point. Any sequence just gets reduced to a set of unrelated transactions. Lowkey tragic ๐Ÿ˜ญ.

A result of this simple pattern is that any state information reflecting longer or more complex interactions has to be stored (at least partly) on the client system ๐Ÿ’œ. One approach is the use of cookies [6]. HTTP servers can set these as part of their response to a request, and they get sent back with all later requests for appropriate URLs as extra HTTP headers ๐Ÿ“. The cookies let the HTTP server identify the client in following requests, so it can continue an extended session with them โœจ.

Cookies are used in providing the Internet Call Center ๐ŸŒธ. Persistent cookies are installed into the Web Browser on machines that are going to be used by call center agents, as a service management (pre-service) task. The cookie value is unique to the machine and is used to index into a list of machine IP addresses that's stored as part of the service data ๐Ÿ’–.

Also, a session cookie gets stored on the agent's machine when the agent registers, and it's cleared when they de-register ๐ŸŒˆ. This is used to identify the agent, and so the IP address of the node the agent is associated with (and where the agent's later requests should come from). The services that interact with Call Center agents use the agent session cookie value as an identifier. In principle this isn't necessary, but it does simplify the session data lookup procedure ๐Ÿง . The rest of the services use the persistent machine identifier in place of the CLI, and index into their service data with it. Both cookies get sent with each agent request. If they're not present, the request is redirected to other services (for example, to the agent Logon service) ๐Ÿšช.


5.2.2.5 Mapping from HTTP Transactions to IN-Based Service Features ๐Ÿฆ‹

all of the client-initiated services need user interaction ๐Ÿ—ฃ๏ธ. In the IN/PSTN system, most of the services look like this: callers get connected to an announcement unit that plays them a list of choices and captures their selection ๐ŸŽง. The caller can pre-dial the digits they need. In that case, the prompts aren't needed, so they're not made ๐Ÿ™…โ€โ™€๏ธ.

The pattern is a bit different on the Internet side, because the initial HTTP request returns a response, and then the Web transaction is over ๐Ÿ˜ค. When that first response returns a form for the caller to fill in, submitting the form starts a NEW HTTP transaction ๐Ÿ’…. It's all still one instance of the service though. The service is made up of two request/response pairs in tandem ๐Ÿ‘‘.

It IS possible to design a service that handles this pair of Web transactions as a single unit, but it may be better to reconfigure it ๐Ÿค”. Designing a service that deals with two Web exchanges as one extended transaction is seriously complex ๐Ÿคฏ. It has to maintain state across the pair of Web exchanges, and it has to handle a bunch of failure cases, including time-outs and "out of time" submission of forms ๐Ÿ˜ต. The alternative is to split the service into two sub-features. The first one covers the initial request and the delivery of the form back, and the second one deals with processing the submitted form and returning any confirmation in reply ๐ŸŽ€.

Not all of the services need form-filling, so they can be treated as a single IN feature. There are two cases where forms ARE required ๐Ÿ“. The first is the Customer Request service, and the other is the "Agent Registration" service. In both cases, the initial Web transaction (where the form is requested and returned to the client) doesn't need any specific service logic processing. The initial delivery of the form to a customer or agent can be handled by a "normal" Web Server ๐ŸŒท. In both cases, the service logic only gets triggered when the form is submitted. So, again, each of these services can be treated as a single IN feature ๐Ÿซถ.

The IN service logic that deals with these requests has a general pattern of action ๐Ÿงฉ. An HTTP request comes in, and that triggers the IN service logic into action. The service logic "sees" this as an Initial DP message and starts processing as if it had been sent from an SSF ๐Ÿงšโ€โ™€๏ธ. The SCF uses what looks to it like an Intelligent Peripheral to collect the parameters of the request, and then sends back final announcements to the requesting entity ๐Ÿ“ข.

The main difference, from the point of view of the IN service logic running on the SCF, is that the service doesn't need to tell the SSF to make a temporary connection to the Intelligent Peripheral. It's as if that connection has already been made ๐Ÿ”Œ. Similarly, there's no need to close the service transaction by sending an explicit Continue Execution message to the SSF ๐Ÿšซ.

The sequence of "prompt/collect" instructions used to collect service parameters from a caller in an IN service maps pretty well to a sequence of requests that pull a data value out of the HTTP request, based on a tag ๐Ÿท๏ธ. This is a fairly standard feature of Web Server CGI or Servlet processing. Using this mapping minimizes the changes to the service design, since the service logic "sees" an Intelligent Peripheral that it sends normal Request Report Prompt & Collect messages to, and that it receives data values back from ๐Ÿ’ž.

ALL services have to fit in with the underlying HTTP interaction pattern, so they're expected to send a final Announce instruction to the Intelligent Peripheral at the end of the service ๐ŸŽฌ. This is done in many IN services anyway, and in ALL of the service features described here. These announcements form the content returned to the Web Client ๐Ÿ’Œ.


5.2.2.6 Non-World Wide Web Interactions ๐Ÿ•ธ๏ธ

there are TWO exceptions to the sole use of the World Wide Web for interaction ๐Ÿ˜ณ. The first one happens in the "Message Waiting"/"Wake Up Call" service, where the selected agent gets informed of a callback request โฐ. World Wide Web transactions are very simple: the client browser requests content associated with a particular HTTP URL, and the server sends back a response, which marks the end of the transaction. The server can't spontaneously associate with a client. It has to be initiated by a client request ๐Ÿ™…โ€โ™€๏ธ.

It would be possible for the server to delay closing an earlier transaction (by not sending back all of the content specified and leaving the TCP connection open). But it was decided that an alternative scheme would be more convenient ๐Ÿ’ญ. The "wake up call" was arranged by an "Internet Intelligent Peripheral" sending a request to a daemon process running on the selected agent's machine, using the Finger protocol [7]. The daemon sent back a standard response, but ALSO, the Web Browser on the agent's machine got triggered into making a further HTTP request to the server ๐Ÿ””. That way, the "Agent Instruction" transaction starts automatically, while still using a normal HTTP request/response pattern ๐ŸŽ‰.

The second exception is in the final "Agent/Customer Telephony Callback" service ๐Ÿ“ž. This transaction is started when the agent selects a link on the "call instructions page" that was returned to them, and it includes a "confirmation" page being sent back to them in an HTTP response. But the actual purpose of this service is to make a telephone connection over the PSTN between the agent's telephone and the customer's telephone ๐Ÿ’•. It's the only service element that involves the PSTN directly. From the IN/PSTN perspective, the resulting telephone connection is different from the one in the scheme that uses the IN and PSTN alone. Here, a PSTN call is made out to the agent's telephone, another call is made out to the customer's telephone, and the two calls get bridged ๐ŸŒ‰. That's different from the earlier scheme, where the agent originated a call to the voice mail replay system, and that call was redirected to a new destination (the customer's telephone). Since this feature differs in purpose from the other services, and needs a different implementation within the IN and PSTN system, it was organized as a separate service ๐Ÿง.


5.2.2.7 Security Considerations ๐Ÿ”

okay this part is SERIOUS, bestie ๐Ÿ˜ญ๐Ÿ” read it carefully!

In this system, the assumption was made that the interface presented to requesting agents and customers was provided via a fire wall, to deal with most attacks on the IN components ๐Ÿงฑ. The interface appeared as a Web Server, and there was NO direct access to the HTTP documents served, or to the servlets providing the service logic ๐Ÿ™…โ€โ™€๏ธ.

The Callback service was considered to have simpler security requirements than other IN services, because it was akin to a free phone "1-800" service access number ๐Ÿ“ . The agents work for the service subscriber and aren't charged directly. Similarly, the requesting customer isn't charged for their request, or for the resulting call back ๐Ÿ’ธ. Service subscribers would be willing to pay the costs of the telephone calls generated by this cluster of services, and the costs of running the agent services could be charged directly to them. So, the authorization for service is defined by the contract between the service subscriber and the service provider ๐Ÿ“œ.

Authentication of agents was seen as a problem ๐Ÿ’€. As an interim measure, cookies were used. But this scheme delivers the cookie data as a plain text item (a header of the Web request) ๐Ÿ‘€. Secure Socket Layer connections were REQUIRED for communication with the agent services, and this had an impact on the performance of the IN system ๐Ÿข.

5.2.3. Derived Requirements/Lessons โœจ

okay so security is literally the first thing everyone talks about ๐Ÿ”’ A firewall was used to control access to the IN Components, and SSL was used for talking to the Agents so the cookie values they were sending with their requests stayed protected ๐Ÿช no cap, that's giving main character energy for security.

For other services, the entity that the requests seem to come from is probably going to get charged for the service ๐Ÿ’ธ So authentication and authorization of service provision at the time of the request is a whole thing. The service needs to be authorized in a way that makes non-repudiation ensured ๐Ÿซถ That probably means the person making the request provides a certificate of identity, and that certificate gets tied to a financial account they have with the service provider. The certificate can then be stored as part of the billing record ๐Ÿงพ Electronic commerce is out of scope for this work, ngl, but the way a request for confirmation of identity gets passed out to the requesting user and delivered back to the service logic still has to be considered ๐Ÿ‘€

When you go from a "pure" IN/PSTN system to one that supports requests over the Internet, the way clients interact with the services is so different that the service logic had to be redesigned ๐ŸŽ€ It was realized that keeping track of a service's state while it's processing was going to be a problem ๐Ÿ˜ญ but this got side-stepped by re-engineering the services as form processors, so they could handle fully specified requests as a single (Web) transaction โœจ Also, a "normal" Web Server was used to deliver the forms to the users. This is a big change from the IN system, where the equivalent of the form (the prompts) got sent in sequence as part of the same service process ๐Ÿ’…

The Call Center features suited this change perfectly ๐Ÿ’– But it may not be the same for other IN services. It's pretty common for services to be designed so the user gets prompted for a response, and the service keeps going depending on that response ๐Ÿ™ˆ The Web form shows all of the options at once, so this kind of variant prompt/collect sequence is not possible. Honestly, it's hard to see how an IN service could be reused without some amount of modification ๐Ÿฅบ

An intermediate "gateway" system was provided to "cocoon" the service logic as far away as possible from the details of the components it was working with ๐Ÿฆ‹ When needed, this unit translated calls from the service logic into commands that worked with the Internet (and the Web Server that acted as the interface). Our experience was that an SCP could be "spoofed" into thinking it was operating with other IN components in the normal way ๐Ÿงš Within the limits of the service used, this turned out to be simpler than originally expected, which is iconic ๐Ÿ‘‘

Choosing this simple approach still lets a considerable range of services be provided while keeping any investment in existing IN systems ๐ŸŒธ Modifying existing IN service logic was also easier than feared. All of the services examined provided announcements at the end of the service transaction, and that could be used to trigger a Web response being sent back to the requesting Internet user โญ The changes to the Call Center service logic ended up being minor. It took as long to analyze the service and see how it could be arranged as a sequence of "form processing" transactions as it did to make the changes to the service logic ๐Ÿ™Œ

In the Siemens Web Call Center, the "Internet Intelligent Peripheral" that the service logic talked to was running as a separate program on the same node ๐Ÿ–ฅ๏ธ Where more complex behavior is needed from it (like converting text to speech data and interfacing with the PSTN), it would almost certainly be on a separate node ๐ŸŒˆ If data gets transferred from the Internet in a scheme like this, any intermediate gateway would be involved in relaying the data to that node ๐Ÿซง


6. Alternative Solutions ๐Ÿฆ‹

6.1. The AT&T System ๐Ÿ’œ

AT&T developed a framework for controlling voice and voice-band data (e.g., fax) and for providing PINT services ๐Ÿ“ž The key to the framework is CallBroker, a logical entity that acts on behalf of a user to set up sessions and make requests for PSTN resources. The sessions typically include initiating calls between two or more end points the user specified ๐ŸŽ€ Besides its interactions with the PSTN for call setup, the CallBroker is responsible for other functions when necessary, like authentication and usage recording ๐Ÿ”

This section briefly discusses the protocol at the two interfaces that need to be defined, plus the matching APIs that provide the services above โœจ The two interfaces are (1) the one between the CallBroker (or Web Server) and the Service Control Function in the Service Node in the PSTN, and (2) the one between the IP client and the CallBroker. The second one is the big deal, because it lets service providers extend this architecture into a platform for other advanced/value-added services (to be identified later) ๐Ÿš€ The view taken here is that the IP client is more general, and implements a protocol for talking to the CallBroker that allows full two-way communication ๐Ÿ’ฌ That's needed when a called party hangs up and the IP Client has to be told about that status/progress. It's also needed when conferencing, to show which parties are joining the call ๐Ÿ™‹โ€โ™€๏ธ

6.1.1. High Level Architecture ๐Ÿ—๏ธ

A high level architecture showing the various logical entities and the Interfaces among these logical Entities and the IP Client is in Figure 12 ๐Ÿ‘‡

                                ________________
                               /
             1        _____   / 2   _____
    /|________________|    |________|    |   PSTN
                      |____|  \     |____|
                      Call     \    / SCF\
                      Broker    \  /  SN  \
                                 \_____________
                                /          \
                               /            \
                              /              \
                             __              __
                             /\              /\

                           Calling       Participant
                            Party      (Called Party)


                Figure 12:  The CallBroker Architecture

The CallBroker does more than start and control calls for the user ๐Ÿง  It also authenticates the IP Client, does usage recording, and manages the session for the IP Client for the telephony call. The idea of a session means a client state machine has to be kept in the CallBroker ๐Ÿ” This also helps notify the IP Client about the status/progress of the requests it generated.

From the IP Client's point of view, the logical entities needed for the above functions live inside the CallBroker and look like Figure 13 below ๐Ÿ‘€ These match the functions we already talked about: Usage Recording Function, Session Management Function, Voice Bridge, and the Authentication Function. The fact that some of these functions may be physically separate from the CallBroker (like the Voice Bridge being in the PSTN) doesn't clash with the general view taken here ๐Ÿซถ So the CallBroker Model mediates requests for network services and lets us define various value added services in the future ๐ŸŒŸ

   llllllllllllllll
   l              l
   l Call Broker  l                  Authentication
   l  Server      l                  Function
   l  ______      l    Interface 2a   ______
   l |      |x x xlx x x x x x x x x  |    |
   l |______|x    l                   |____|
   l       x    x  l
   l        x    xl  Interface 2b
   lSession State lx
   l   Mnmgt. x   l  x            Usage Recording
   l  Function    l     x             Function
   l _______    x l       x          ______
   l |     |      l          x  x x  |    |
   l |_____|     xl                  |____|
   llllllllllllllll
                  x
                   x Interface 2c
                   x
                 _______
                 |     |
                 |_____|

                  Bridge


           Figure 13: Functional Entities in the Call Broker

Various interfaces (i.e., 2a, 2b, 2c in Figure 13) between different functional entities in the CallBroker may also be standardized ๐Ÿงฉ The Session State Management Function may be physically realized as part of the CallBroker Server ๐Ÿ–ฒ๏ธ

6.1.2. IP Client to CallBroker Interface ๐Ÿ“ก

Communication on the IP Client to CallBroker Interface (Interface 1 in Figure 12) is a simple ASCII based protocol running directly on TCP ๐Ÿ”ค The messages on this interface are mostly requests from the client to the CallBroker, responses from the CallBroker to the IP client answering those requests, and unsolicited events from the CallBroker to the IP client. Since the communication isn't strictly transaction oriented, traditional encapsulation protocols like HTTP can't be used ๐Ÿ™…โ€โ™€๏ธ There's been some ongoing work trying to use multiple concurrent HTTP POST requests to support event delivery, but without too much difficulty, the ASCII protocol specified here can easily be mapped to the POST payload of HTTP ๐Ÿ’Œ

6.1.3. Protocol ๐ŸŽ€

Basic Format

The basic format of the protocol looks like this ๐Ÿ‘‡

[header]<<LF>
<<LF>
[body]<<LF>
<<LF>
<<LF>

The header and body of the protocol are separated by 2 line feed characters ๐Ÿ’ซ The format of the header and the body is described below. Line feed characters in the header or body get escaped using simple URL encoding ๐Ÿ“

Header

[session-id | 0]<<LF>
[message-id]<<LF>
[version-info]<<LF>

All CallBroker transactions are identified by sessions ๐Ÿชช A session doesn't have to match one-to-one with a TCP session. If the IP client is trying to start a new session with the CallBroker, the session-id field gets filled with '0' to signal a session creation request ๐ŸŒฑ Every session request needs to come with enough authentication information for the CallBroker to create the session ๐Ÿ”‘

Message-id represents the operation of the message ๐ŸŽฏ

Version-info contains optional version information for the protocol. This helps with possible version mismatch detection and graceful error recovery ๐Ÿ›Ÿ

Body

The body of the protocol messages is made up of name value pairs ๐Ÿ“ These name-value pairs are interpreted with reference to the message-id, which signifies the operation the CallBroker has to perform ๐Ÿฅฐ

6.1.4. APIs Exposed to the IP Client ๐ŸŒท

The APIs of the CallBroker exposed to the IP client are distinct and different from the APIs the CallBroker uses from the different supporting subsystems, including the authentication subsystem and the usage recording subsystem ๐Ÿ™Œ The IP client APIs let clients effectively control voice conferencing ๐ŸŽ™๏ธโœจ

6.1.5 Voice-Bridge Control API

okay so the Voice Bridge Control API is what CallBroker applications use to get at the voice bridging stuff ๐ŸŽ€ and there are two things to keep straight: sessions and calls ๐Ÿ’…. Calls are the actual voice calls going to or from the voice bridge. Calls can get grouped together into sessions, and every call in a session gets bridged with the others ๐Ÿฆ‹. But calls also mean something outside of sessions, and a single call can belong to multiple sessions at once, each with a different weight โœจ. This is what makes stuff like whispering in a conference call possible ๐Ÿคซ. Calls can also get dropped out of a conference session and bridged together in a brand new session, which gives you a sub-conference ๐ŸŒธ. And the best part: those calls can later get re-added to the main conference session. iconic, honestly ๐Ÿ‘‘


6.2 Simple Computer Telephony Protocol

6.2.1 Overview

okay bestie, the Simple Computer Telephony Protocol (SCTP) is a third party call control protocol ๐Ÿ’€, which means it does NOT fit the PINT charter. Nobody's kicking it out though ๐Ÿซถ. It's in here so we can see how PINT services could be built on top of SCTP, and where SCTP slots into the PINT architecture ๐Ÿงฉ.

SCTP does more than third party call control โœจ. It also handles subscriber (aka user) feature management, like letting someone set do not disturb or call forwarding parameters ๐Ÿ“ž. And it can monitor the status of a subscriber's terminal, line, and address ๐Ÿ‘€. It's strictly client/server, no peer to peer drama ๐Ÿ™…โ€โ™€๏ธ. It runs as a TCP application protocol, it's ASCII-based, and it uses sockets ๐Ÿ”Œ. The SCTP Server is usually hooked up to a switch through a CTI (Computer-Telephony Integration) connection. Because of that, feature interactions only happen within a single call, not between PSTN services ๐Ÿ“. The SCTP Server inside a PINT Gateway could also connect to an SN or an SCP. Check the figures below ๐ŸŽ€. And again, SCTP does NOT carry media ๐Ÿ™ˆ.

6.2.2 How SCTP Fits in with the Reference PINT Services

SCTP Client as Part of a Web Server

   +------+    +--------+       +--------+    +------+
   |      |    |        | SCTP  |        |    |      |
   |      |----|        |-------|        |----|      |
   |      |    |        |       |        |    |      |
   +------+    +--------+       +--------+    +------+
   User's PC   Web Server/      PINT Gateway  SN/SCP/Switch
               CGI

             Figure 14: SCTP Client as Part of a Web Server

so in this setup, the SCTP Client lives inside the Web Server ๐Ÿ . Its whole job is starting calls to the PSTN whenever a user asks for it ๐Ÿ“ฒ. The SCTP Server sits in the PINT Gateway ๐Ÿ’–. Okay, now let's run through the classic PINT examples, they're so good ๐Ÿ˜ญ:

Click-to-dial-back: the SCTP Client sends an SCTP MakeCall to the SCTP Server. The calling number comes from the Web page, and the called number comes from the user ๐Ÿ“ž.

Click-to-fax-back: the SCTP Client sends an SCTP MakeCall to the SCTP Server with the called number set to the user's fax machine, and the calling number set to the Web Server's fax machine ๐Ÿ“ . The treatment is set to the URI for the file that needs faxing. The SCTP Server grabs the file and feeds it into the call just like a fax machine would ๐Ÿ–จ๏ธ.

Click-to-fax: the SCTP Client sends an SCTP MakeCall with the calling number set to the user's fax machine, and the called number set to the Web Server's fax machine ๐Ÿ’œ. How the file gets to the user's fax machine is outside the scope of SCTP, so that's not on us ๐Ÿคทโ€โ™€๏ธ.

Voice-access-to-content: the SCTP Client sends an SCTP MakeCall with the called number set to the user's telephone number, and the calling number set to the Web Server ๐ŸŽง. The treatment is a URI for the file of the particular Web page to be read out to the called number. The SCTP Server handles the file to voice conversion, and that gets fed into the call as if it were voice ๐Ÿ—ฃ๏ธ.

In all of these cases, the SCTP Client can generate a bunch of different Web pages to send to the Web Server through CGI (Common Gateway Interface) ๐ŸŒˆ. What goes on those pages depends on the call completion status of the CallMake SCTP action โœจ.

SCTP Client Running on the User's PC

                             +------+
                 HTML        |      |  INTERNET
   +-----+    /--------------|      |
   |     |---/               +------+
   |     |                   Web Server
   |     |---\
   +-----+    \
   User's PC   \ SCTP        +------+       +------+
                \------------|      |-------|      | PSTN
                             |      |       |      |
                             +------+       +------+
                             PINT Gateway   SN/SCP/Switch


            Figure 15: SCTP Client Running on the User's PC

in this one, the user has an SCTP Client sitting right on their own PC ๐Ÿ’ป. If they're using their telephone line to connect to a Web Server and a call comes in, the SCTP Server in the PINT Gateway posts that event to the SCTP Client ๐Ÿ””. A window pops up on their screen with options for handling the incoming call ๐ŸชŸ. They can take the call, send it to voice mail, or send it to another number ๐Ÿ“ฑ. It's giving personal assistant energy ๐Ÿงš.

For the Fax back service, for example, if the user has a separate fax machine from their PC, the SCTP Server would tell the SCTP Client there's an incoming fax ๐Ÿ“ . The user would then end or suspend their Internet connection so the fax can come through, and once that's done they can resume the Internet connection ๐Ÿ”. Literally a whole choreography ๐Ÿ’ƒ


7. Session Initiation Protocol--An Emerging Standard

7.1 Overview

SIP, the Session Initiation Protocol, is a simple signaling protocol for Internet conferencing and telephony ๐Ÿ“ž. It's still being developed within the IETF MMUSIC (Multiparty Multimedia Session Control) Working Group ๐ŸŒธ.

SIP gives you the mechanisms to support these services โœจ:

  • call forwarding, including the equivalent of 700-, 800- and 900-type calls;
  • call-forwarding no answer;
  • call-forwarding busy;
  • call-forwarding unconditional;
  • other address-translation services;
  • callee and calling "numbers" delivery, where the numbers can be of any (preferably unique) naming scheme;
  • personal mobility, i.e., the ability to reach a called party under a single, location-independent address, even when the user changes terminals;
  • terminal-type negotiation and selection: a caller can be given a choice of how to reach a party, e.g., via Internet telephony, mobile, phone, and an answering service;
  • caller and callee authentication;
  • blind and supervised call transfer;
  • user location; and
  • invitation to multicast conferences.

Extensions of SIP exist that let you do third-party signaling ๐Ÿฆ‹. That covers click-to-dial-back services, fully meshed conferences, and connections to Multipoint Control Units (MCUs), plus mixed modes and the transition between them ๐ŸŒˆ.

SIP addresses (URLs) can be embedded in Web pages ๐Ÿ•ธ๏ธ. SIP is addressing-neutral, meaning addresses are expressed as URLs of various types, like SIP, H.323, or telephone (E.164) ๐Ÿ’…. A purely representational example of a SIP URL might be sip:+12125551212@foo.example.com, where foo.example.com is the host serving as a gateway into the PSTN ๐Ÿšช.

SIP is independent of the packet layer and only requires an unreliable datagram service, because it brings its own reliability mechanism ๐Ÿ’ช. While SIP usually runs over UDP or TCP, it could, without technical changes, run over IPX, or carrier pigeons, ATM AAL5 or X.25, in rough order of desirability ๐Ÿ•Š๏ธ๐Ÿ˜‚.

SIP can set up calls "out-of-band" ๐ŸŽŸ๏ธ. For example, the SIP protocol exchanges use IP plus UDP or TCP, but the actual data transport can happen over the PSTN. That makes it possible to use SIP to control a PBX or send requests to a Service Control Point, and the PINT services make use of this flexibility ๐Ÿง .

7.2 SIP Protocol

SIP is a textual client-server protocol, similar in syntax to HTTP and RTSP ๐Ÿ“. Requests consist of a method (INVITE, BYE, ACK, or REGISTER), a list of parameter-value pairs describing the request, and an optional request body ๐ŸŽ€. Parameters include the origin and destination of the call and a unique call identifier. They may also indicate the caller's organization, along with the call's subject and priority ๐Ÿ’ผ. The request body contains a description of the call to be established or the conference to be joined. SIP doesn't prescribe the description format; SDP is one possibility being standardized within the IETF ๐ŸŒŸ. For the purposes of PINT services, an additional phone number address format is to be added to SDP ๐Ÿ“ž.

Responses tell you whether a request is still being processed, was successful, can possibly be satisfied by another node, or failed ๐Ÿšฆ. When a call is redirected, the response indicates the name of the node to be tried. Unsuccessful calls may also return a better time to try again โฐ.

In a typical successful call, the caller sends an INVITE request to the callee ๐Ÿ’Œ. The callee accepts the call by returning a response code to the callee, which then confirms receipt of that acceptance with an ACK request ๐Ÿค. Either side can end the call by sending a BYE request ๐Ÿ‘‹.

Requests can be authenticated using standard HTTP password and challenge-response mechanisms ๐Ÿ”. Requests and responses may also be signed and encrypted ๐Ÿ”’.

7.3 SIP entities

SIP distinguishes three kinds of entities ๐Ÿ‘‘:

User agents receive and initiate calls, and may forward the call ๐Ÿ“ฒ.

A proxy server is an intermediary program that acts as both a server and a client for the purpose of making requests on behalf of other clients ๐ŸŽญ. Requests are serviced internally or passed on, possibly after translation, to other servers. A proxy must interpret, and if necessary rewrite, a request message before forwarding it โœ๏ธ. A proxy server may, for example, locate a user and then attempt one or more possible network addresses ๐Ÿ”.

A redirect server accepts a SIP request, maps the address into zero or more new addresses, and returns these addresses to the client ๐Ÿ—บ๏ธ. Unlike a proxy server, it does not initiate its own SIP request. Unlike a user agent server, it does not accept calls ๐Ÿ™…โ€โ™€๏ธ.

Proxy and redirect servers may make use of location servers that determine the current likely location of the callee ๐Ÿ“.

A PSTN gateway initiates phone calls between two parties ๐Ÿ“ž. This may be a server that sends requests to an SCP in an IN environment, or it may be a CTI-controlled PBX ๐Ÿข.

A SIP call may traverse one or more proxy servers ๐ŸŒ.

The servers that control a PBX or an SCP act as user agents ๐ŸŽ›๏ธ. And a Web server may also act as a SIP user agent ๐Ÿ•ธ๏ธโœจ.

7.4 Providing Call Control Functionality ๐Ÿ’…

Okay so, the SIP for PINT spec explains how to use SIP to start phone calls between two PSTN end points ๐Ÿ“ž. (SIP can also set up calls between Internet end points, and between an Internet and a PSTN end point, but that's beyond the scope of this doc, so we're not going there today ๐Ÿซ–.)

The SIP client that starts these calls can be at the user's location (their workstation), or it can be a Web server that calls up a SIP client through a CGI program ๐ŸŒ. There's no difference in operation or functionality between the two, except that the owner of the Web server might be legally responsible for the calls made ๐Ÿ˜ฌ.

A SIP client needs to convey two addresses to the PSTN gateway: the party making the call and the party being called ๐Ÿ“ฑ. (The party to be billed also needs to be identified. This can be done with a SIP header, or by having the server look up the right party based on the two parties. This aspect is for further study ๐Ÿ”ฎ.)

Here are three ways these addresses can be conveyed in SIP โœจ. In the examples, the address of party A is +1-212-555-1234 and the address of party B is +1-415-555-1200. (The URL types in this and other examples are representational. They may but do not have to exist ๐ŸŒธ.)

(1) The two PSTN addresses are contained in the To header (and request-URI) and an Also header. For example:

INVITE sip:+1-212-555-1234@pbx.example.com SIP/2.0
To: phone:1-212-555-1234
From: sip:j.doe@example.com
Content-type: application/sdp
Call-ID: 19970721T135107.25.181@foo.bar.com
Also: phone:+1-415-555-1200

v=0
o=user1 53655765 2353687637 IN IP4 128.3.4.5
c=PSTN E.164 +1-415-555-1200
t=0 0
m=audio 0 RTP/AVP 0

In that case, the gateway connects to party A first and then party B ๐Ÿ“ฒ. It doesn't wait for A to accept the call before calling B ๐Ÿ™ˆ.

(2) Parties A and B are indicated by separate invitations ๐ŸŽ€. This lets the gateway make sure party A is actually available before it calls party B ๐Ÿ’–. After calling party A, the gateway could play an announcement saying the call is being connected, using, for example, RTSP with an appropriate Conference header indicating the call ๐ŸŽถ.

INVITE sip:+1-212-555-1234@pbx.example.com SIP/2.0
To: phone:1-212-555-1234
From: sip:j.doe@example.com
Content-type: application/sdp
Call-ID: 19970721T135107.25.181@foo.bar.com
...
INVITE sip:+1-415-555-1200@pbx.example.com SIP/2.0
To: phone:+1-415-555-1200
From: sip:j.doe@example.com
Content-type: application/sdp
Call-ID: 19970721T135107.25.181@foo.bar.com
...

(3) The two PSTN addresses are conveyed in the To header of the SIP request, and the address in the SDP media description ๐Ÿงš. So a request might look like this:

INVITE sip:+1-212-555-1234@pbx.example.com SIP/2.0
To: phone:1-212-555-1234
From: sip:j.doe@example.com
Content-type: application/sdp
Call-ID: 19970721T135107.25.181@foo.bar.com

v=0
o=user1 53655765 2353687637 IN IP4 128.3.4.5
c=PSTN E.164 +1-415-555-1200
t=0 0
m=audio 0 RTP/AVP 0

Here, pbx.example.com is the name of the PSTN gateway, and the call will be established between 1-212-555-1234 and +1-415-555-1200 ๐Ÿ“.

Users can be added to an existing call by method (1) or (2) ๐Ÿซถ.


8. Overall Security Considerations ๐Ÿ”’

Okay, this part is serious, bestie ๐Ÿ˜ญ. Inter-networking the Internet and the PSTN necessitates new interfaces, like the A, B and E interfaces in Figure 6. To make sure their use doesn't put the networks, especially the PSTN, at any extra security risk, these interfaces need to be designed with proper security considerations ๐Ÿ›ก๏ธ. Sections 5.1.5 and 5.2.2.7 describe how two of the pre-PINT implementations, the Lucent and Siemens systems, handle the security aspect, respectively ๐Ÿ‘‘.

Worth noting are the security requirements suggested by pre-PINT experiences. They are:

  • Peer entity authentication, to allow a communicating entity to prove its identity to another in the network (e.g., the requesting IP-host to the PINT gateway, and the PINT gateway to the PSTN node providing the service control function) ๐Ÿชช.
  • Authorization and access control, to verify whether a network entity (e.g., the requesting IP-host) is allowed to use a network resource (e.g., requesting services from the PINT gateway) ๐Ÿšช.
  • Non-repudiation, to account for all operations in case of doubt or dispute ๐Ÿงพ.
  • Confidentiality, to avoid disclosure of information (e.g., the end user profile information and data) without the permission of its owner ๐Ÿคซ.

In the course of PINT interface development, additional requirements are likely to arise. It is imperative that the resulting interfaces include specific means to meet all the security requirements ๐Ÿšจ.

Bestie, this is the part that matters most. Every one of these needs real, specific mechanisms, not vibes ๐Ÿ’€.

9. Conclusion ๐ŸŽ‰

This document has provided the information relevant to developing inter-networking interfaces between the PSTN and the Internet, to support PINT services ๐ŸŒˆ. Specifically, it covered technologies, architectures, and several existing pre-PINT implementations of the arrangements through which Internet applications can request and enrich PSTN telecommunications services โœจ. The key takeaway is that the pre-PINT implementations were developed independently, so they do not inter-operate ๐Ÿฅฒ. It's the job of the PINT Working Group to define the inter-networking interfaces that will support inter-operation of future PINT service implementations ๐Ÿฆ‹.


10. Acknowledgments ๐Ÿ™

The authors would like to acknowledge Scott Bradner, Igor Faynberg, Dave Oran, Scott Petrack, and Allyn Romanow for their insightful comments in the PINT Working Group discussions that led to the creation of this document ๐Ÿ’œ.


11. Appendix ๐Ÿ“š

11.1 PSTN/IN 101 โ˜Ž๏ธ

11.1.1 Public Switched Telephone Network ๐Ÿข

What is normally considered "the Telephone Network" is actually a set of interconnected networks ๐Ÿ•ธ๏ธ. Potentially, each of these networks could be owned by a different Network Operator. The official name for such a network is Public Switched Telecommunications Network (PSTN). A simple PSTN consists of a set of Switches (called Central Offices or Telephone Exchanges) with links interconnecting them to make up the network, along with a set of access connections by which terminals are attached. The PSTN is used to deliver calls between terminals connected to itself or to other PSTNs it is interconnected with. Calls on the PSTN are circuit switched, which means a bi-directional connection is made between the calling and called terminals for the duration of the call ๐Ÿ“ผ. In PSTNs the connection is usually carried through the network in digital format, occupying a fixed bandwidth, usually 56 or 64 Kbps. The overall configuration of the PSTN is shown in Figure 16 ๐Ÿ—บ๏ธ.

    /--\
   ()/\()__
    /__\   \       .................................
            \      !             !                 !           /--\
     __      \   [-!-]         [-!-]               !          ()/\()
     \ \      \__[CO ]=========[CO ]==\\           !        ___/__\
    [Fax]________[---]         [---]   \\        [-!-]     /   __
                                        \\=======[CO ]____/    \ \
                                                 [---]________[Fax]
   Key: ___   Access Lines
        ===   Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links

                               Figure 16

Messages are sent between the Switches to make and dissolve connections through the network on demand, and to indicate the status of terminals involved in a call ๐Ÿ“จ. These "signaling" messages are carried over a separate (resilient) data network dedicated to this purpose. This signaling network is also known as the Common Channel Signaling (CCS) or Signaling System Number 7 (or SS7) network, after the names of the signaling protocol suite used ๐Ÿ“ก.

As yet, the majority of access connections to a PSTN carry analogue signals, with simple (analogue) telephones or Facsimile machines as terminals ๐Ÿ“ . Call requests are indicated to the Central Office a telephone is connected to, either by a sequence of pulses or tone pairs being sent. Notifications about the status of the request are sent back to the telephone in the form of tones ๐Ÿ””. A Central Office indicates that a call is being offered to a telephone by sending an alternating voltage down the access connection, which makes the ringer in the telephone sound ๐Ÿ›Ž๏ธ. These access lines have a unique address associated with them and can support a single call ๐ŸŽฏ.

However, with analogue or digital multi-line connections, or Integrated Service Digital Network (ISDN) Basic or Primary Rate Interfaces (BRI or PRI), several concurrent calls are possible and a set of addresses are associated with them ๐Ÿงฉ. The new ISDN access connections are designed so that data exchanged with the network is in multiplexed digital form. There's an individual channel for each of the potential connections, plus a separate channel dedicated to sending and receiving call request and call alert data, as well as carrying packet switched user data ๐Ÿช„. These call request and call alert messages act as the equivalent of the pulses or tones sent when dialing, and the ringing signal sent to a telephone when a call is being made to it ๐Ÿ”Š.

The operation of the call request is fairly simple in most cases, and is shown in Figure 17 ๐Ÿง .

    /--\
   ()  ()
     --____
    /++\   \       .................................           /--\
   /----\   \      ^             v                 !          ()  ()
      A      \   [-!-]         [-!-]               !            --
              \->[CO ]=========[CO ]==\\           v        ->-/  \
                 [---]         [---]   \\        [-!-]     /  /----\
                                        \\=======[CO ]____/     B
                                                 [---]
   Key: ___   Access Lines
        ===   Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links
        CO    Central Office (Telephone Exchange)

                               Figure 17

The user presses a sequence of numbers on a telephone handset (labeled A), and the telephone passes a sequence of digits (either as pulses or tone pairs) to the Central Office via the access line ๐Ÿ“ž. The Central Office contains a processor that is notified that the user has made a request, along with the digit string that is the sole parameter of the request ๐Ÿ”ข. This digit string is taken to be the unique address of an access line connected either to that Central Office or to another one. There is a hierarchical addressing scheme, so the digit string can be parsed easily ๐Ÿชœ. A call request to a terminal (labeled B) connected to a remote Central Office can be routed by examining the digit string passed. The Central Office extracts the part of the passed address that corresponds to the remote Central Office in question, and can route the request onward, forming an inter-Switch call request and passing it via the signaling network ๐Ÿš€. At the same time, it allocates one of its available transmission channels towards the remote Central Office ๐Ÿ’ซ.

11.1.2 Intelligent Network โœจ

okay so this scheme has been around since the 1950s ๐Ÿ•ฐ๏ธ and honestly it handles the majority of calls just fine ๐Ÿ’… but there's a whole range of extra services that can be (and have been) layered on top of that basic call processing ๐ŸŽ€ the big ones are Freephone and Premium Rate services (aka the 1-800 and 1-900 numbers) ๐Ÿ“ž the vibe is that the cost changes, so the caller doesn't pay for a freephone call, or pays extra for a premium rate call ๐Ÿ’ธ they also share a thing: the number you dial has to be translated to find the "real" address of the destination terminal ๐Ÿ” that's why they're called number translation services, and they make up the bulk of all the supplementary services delivered today ๐Ÿ‘‘

these were originally programmed into each Central Office ๐Ÿข but maintaining the data tables on every single processor got super cumbersome ๐Ÿ˜ฉ so a more general solution was sought ๐Ÿ” after a considerable gestation period, the answer was the Intelligent Network ๐Ÿง  it takes the separation of Central Offices and the network links that connect them one step further โœจ

the Central Offices are considered to provide the Call Control Function (CCF) ๐ŸŽ›๏ธ on top of that, the Service Switching Function (SSF) "enhances" these Switches by spotting when a particular request has been made (like dialing 1-800) ๐Ÿ‘€ when that pattern shows up, the SSF equipment sends a specialized request message over the signaling network to a separate computer that implements the Service Control Function (SCF) ๐Ÿ“จ the SCF is responsible for querying service specific data (held in a unit providing the Service Data Function, or SDF), performing any digit translations that are needed, and sending the details of how to proceed back to the SSF ๐Ÿงฉ the SSF then obeys those instructions and puts the call through to the "real" destination ๐Ÿ“ฒ in lots of implementations the SDF is closely coupled to the SCF ๐Ÿซถ this configuration is shown in Figure 18 ๐Ÿ–ผ๏ธ

                 [---]           [---]  [---]
    /--\         [SRF]           [SCF]  [SDF]
   ()/\()__      [|-!]           [-!-]  [-!-]
    /__\   \     ||  \.............!......!........
            \    ||  /           !                !          /--\
     __      \   [|-!]         [-!-]              !         ()/\()
     \ \      \__[SSF]         [CCF]              !       ___/__\
    [Fax]________[CCF]=========[---]==\\         [!--]   /   __
                                       \\========[CCF]__/    \ \
                                                 [---]_______[Fax]


   Key: ___   access relationship
        ===   trunk relationship
        ...   signaling relationship


                               Figure 18

the advantage here is that you can have a much smaller number of physical units dedicated to the SCF ๐Ÿ™Œ and since they're connected to the signaling network, they can be contacted by, and can send instructions back to, all of the units providing the SSF (and therefore the CCF) ๐Ÿฆ‹

another upgrade is a separate entity called the Special Resource Function (SRF) ๐ŸŒˆ equipment implementing this function includes announcement units that play recorded messages (like prompts to enter digits) to callers ๐ŸŽ™๏ธ it also includes the tone decoders needed to capture any digits the caller presses in response to those prompts ๐Ÿ”ข the SRF is usually connected to the rest of the PSTN via trunk data links ๐Ÿ”— and it also has a signaling connection (directly or indirectly) back to the SCF, through the PSTN's core signaling network ๐Ÿ“ก

here's how these functional entities work together ๐Ÿงš the SCF can ask an SSF handling a call to route the caller temporarily through to an SRF ๐Ÿ›ค๏ธ following instructions sent from the SCF over the signaling network, the SRF plays announcements and collects the digits the user presses on their terminal in response to prompts ๐ŸŽน once those digits are collected, they can be passed on to the SCF in a signaling message for further processing ๐Ÿ’Œ in normal operation, the SCF then asks the SSF to dissolve the temporary connection between the user's terminal and the SRF ๐Ÿงน this is how collecting account numbers or passwords (or PINs) works, and it's the heart of many "Calling Card" services ๐Ÿ’ณโœจ

this pattern of user interaction is also used in a wide variety of other services that need extra account information and PINs ๐Ÿ” the info is collected just like we described, and can be checked against the correct values stored in the service database before the call is allowed to proceed โœ…

the Intelligent Network functional entities can be realized as physical units in a number of different combinations ๐Ÿงฉ a common configuration is shown in Figure 19 ๐Ÿ–ผ๏ธ

                 [---]           [---] [---]     [---]
    /--\         [I.P]           [SCP] [SDP]     [SN ]
   ()/\()__      [|-!]           [-!-] [-!-]     [--|]
    /__\   \     ||  \.............!.....!.....     |
            \    ||  /           !             \    |        /--\
     __      \   [|-!]         [-!-]            \   |       ()/\()
     \ \      \__[SSP]=========[CO ]==\\         \  |     ___/__\
    [Fax]________[---]         [---]   \\        [!-|]   /   __
                                        \\=======[CO ]__/    \ \
                                                 [---]_______[Fax]

   Key: ___   Access Lines
        ===   Trunk Links (inter-CO user data links)
        ...   Inter-CO signaling network links
        SSP   Service Switching Point - a unit that implements the
              Service Switching Function
        CCP   Call Control Point - a unit that performs call control
              functions.
              This is normally a kind of Central Office (shown as CO
              above)
        SCP   Service Control Point - a unit implementing the Service
              Control Function. NOTE that this is connected to the SS7
              Network and uses this connection for all of its
              communications.
        I.P   Intelligent Peripheral - a unit that contains specialized
              resources (like announcement units, tone decoders).
              In effect, it implements Special Resource Functions.
        SN    Service Node

                               Figure 19

this diagram also shows a unit called a Service Node, or SN ๐Ÿ  it contains components that realize all of the operational Intelligent Network functions (SSF, SCF, SDF, and SRF) ๐ŸŽ sometimes it's just more convenient to have all of these elements in one node (for operations and maintenance reasons, for example), especially within smaller PSTNs or where there's a relatively low level of requests for particular services ๐Ÿฅฐ another difference is that, since they're all co-located, proprietary protocols can be used for internal communication, instead of the full Intelligent Network Application Part (INAP) protocol that's used over the core signaling network between discrete units ๐Ÿคซ it also differs from the "unbundled" approach in that it's connected to the COs within a PSTN as a peripheral, having only an access connection to a Central Office; there is no connection to the core signaling network ๐Ÿ™…โ€โ™€๏ธ other than that, it operates in a similar way and can provide the same kinds of services ๐Ÿ’–

if you want the full specification of the Intelligent Network, check out the ITU recommendations [1] ๐Ÿ“š and for the system, its history, how it operates, and the philosophy behind it, two books ([2] and [3]) cover it all ๐Ÿ“

11.2 Call Center Features ๐Ÿ“žโœจ

okay bestie, so a Call Center is a system that lets a company organize a group of similar people (called agents) who can either make calls to customers or take calls from them ๐Ÿ’โ€โ™€๏ธ The system spreads incoming calls out to the agents based on who is available, and it automates outgoing calls too. It picks an agent for the call and only routes the call to them once the call request has been made of the PSTN ๐ŸŽ€

The incoming call distribution feature ("automatic call distribution", or ACD) usually comes with a call queuing scheme ๐ŸŽถ Callers get temporarily connected to an announcement unit that normally plays music. Calls get handled in sequence, so once you're at the front of the queue, the ACD system picks the next available agent and puts you through to them ๐Ÿ’–

Another feature connects an incoming caller to a unit that asks what their call is about ๐Ÿงš Then it picks the agent based on the exact area of expertise they need. To make this work, the agents get sorted by what they know (their "Skill Set") ๐Ÿง  If skill set sorting is used, then by implication there will be separate queues for each skill set ๐ŸŒˆ This selection scheme can be used on its own too. For example, these so-called "voice navigation systems" can pick a particular department extension number based on what the customer needs, so they can automate the job of a company telephone receptionist when it comes to routing incoming calls ๐Ÿ’…

Where possible, the info gleaned from the customer can be passed to the selected agent, usually over a separate networked computer connection ๐Ÿ–ฅ๏ธ It's the same deal for outgoing calls: if the call is going to one customer on a list, info about that customer and the purpose of the call can go to the agent handling it ๐Ÿฆ‹ These setups are generally called "Computer Telephony Integration" or CTI systems. Strictly speaking, a CTI system can just handle routing of incoming calls and automation of outgoing calls (also known as computer integrated telephony features), without the agents having access to a network of computers ๐Ÿ™ˆ But ngl, the business case for combining the call center's telephony with agents who have customer info on their computers is seriously compelling ๐Ÿ”ฅ

This is often combined even further with a company's order and service processing computer system ๐Ÿ’ผ In this case, a call is treated as part of a business transaction, and the info being exchanged gets captured as fields of a computer form ๐Ÿ“ A computer system like that isn't technically part of a call center, but hooking the company computer system up to the call center is super common ๐Ÿซถ It lets the details of the call get stored in a centralized database, which allows for more automated order processing, for example. It also lets a call be transferred from one agent to another when needed, so the new agent already has the info captured ๐Ÿ’œ This can be really useful if someone with a different area of expertise is needed to handle the customer's requirements ๐Ÿ‘‘

Traditionally, Call Centers were used to support teams of agents working at a single site (or a small number of sites with private telephony trunks connecting them) ๐Ÿข The site Private Automatic Branch eXchange (PABX) was integrated with a computer system to provide these features to people at that site โœจ There can also be a business case for giving these features to distributed teams of workers ๐ŸŒธ Support for people working from home has been seen as especially important ๐Ÿก Some Call Center features have been built into public telephone exchanges, or Central Offices (COs), from many manufacturers as part of their "Centrex" service offerings ๐ŸŽ€

There are practical limits to providing these features on COs ๐Ÿ˜ญ Apart from the procedures needed to configure the features for any telephone line that's going to use them, the basic requirement that every agent must have a connection to the supporting CO can limit how useful it is ๐Ÿ™ƒ Another approach is to provide Call Center features via the Intelligent Network ๐ŸŒ The features could then be provided over a Telephone Operator's entire network, and the Call Center could be configured centrally while still letting agents be located anywhere within the telephone network ๐Ÿงš It also means the supported company can pay for the Call Center features "as they go" instead of having a high "up front" cost ๐Ÿค‘


12. References ๐Ÿ“š

[1] ITU-T Q.12xx Recommendation Series, Geneva, 1995.

[2] I. Faynberg, L. R. Gabuzda, M. P. Kaplan, and N. J. Shah, "The
    Intelligent Network Standards, their Application to Services",
    McGraw-Hill, 1996.

[3] T. Magedanz and R. Popesku-Zeletin, "Intelligent Networks: Basic
    Technology, Standards and Evolution", Intl. Thomson Computer
    Press, 1996.

[4] Information processing systems - Open Systems Interconnection -
    Specification of Abstract Syntax Notation One (ASN.1),
    International Organization for Standardization, International
    Standard 8824, December, 1987.

[5] McCloghrie, K., Editor, "Structure of Management Information for
    Version 2 of the Simple Network Management Protocol (SNMPv2)",
    RFC 1902, January 1996.

[6] Kristol, D. and L. Montulli, "HTTP State Management Mechanism",
    RFC 2109, February 1997.

[7] Zimmerman, D., "The Finger User Information Protocol", RFC 1288
    December 1991.

Authors' Addresses ๐Ÿซถ

Here's where you can find the people behind this doc ๐Ÿ’–

Steve Bellovin
AT&T Labs
Room E-215
180 Park Ave. Bldg. 103
Florham Park, NJ 07932-0000
USA

Phone: +1 973 360 8656
Fax: +1 973 360 8077
EMail: smb@research.att.com
Fred M. Burg
AT&T Labs
Room 1N-117
307 Middletown Lincroft Road
Lincroft, NJ 07738
USA

Phone: +1 732 576 4322
Fax: +1 732 576 4317
EMail: fburg@hogpb.att.com
Lawrence Conroy
Roke Manor Research Limited
IT&N-INIA Group
Roke Manor, Old Salisbury Lane,
Romsey, Hampshire    SO51 0ZN
U.K.

Phone: +44 1794 833666
Fax: +44 1794 833434
EMail: lwc@roke.co.uk
Paul Davidson
Nortel
P.O.Box 3511 Station "C"
Mail Stop 242
Ottawa, Ontario, Canada K1Y 4H7

Phone: +1 613 763 4234
EMail: pauldav@nortel.ca
A. DeSimone
Lucent Technologies
Room 6H510
600-700 Mountain Avenue
Murray Hill, NJ  07974-0636
USA

Phone: +1 908 582 2382
Fax: +1 908 582 1086
E-Mail:tds@lucent.com
Murali Krishnaswamy
Bell Laboratories
Lucent Technologies
Room 2G-527a
101 Crawfords Corner Road
Holmdel, NJ 07733-3030
USA

Phone: +1 732 949 3611
Fax: +1 732 949 3210
EMail: murali@bell-labs.com
Hui-Lan Lu
Bell Laboratories
Lucent Technologies
Room 4K-309
101 Crawfords Corner Road
Holmdel, NJ 07733-3030
USA

Phone: +1 732 949 0321
Fax: +1 732 949 1196
EMail: hui-lan.lu@bell-labs.com
Henning Schulzrinne
Dept. of Computer Science
Columbia University
New York, NY 10027
USA

Phone: +1 212 939 7042 (@Bell Labs: 732 949 8344)
Fax: +1 212 666 0140
EMail: schulzrinne@cs.columbia.edu
Kamlesh T. Tewani
AT&T Labs
Room 1K-334
101, Crawfords Corner Rd.
Holmdel, NJ 07733
USA

Phone: +1 732 949 5369
Fax: +1 732 949 8569
EMail: tewani@att.com
Kumar Vishwanathan
Isochrone
EMail: kumar@isochrone.com

Here's the legal stuff, kept exactly as written ๐ŸŒˆ

Copyright (C) The Internet Society (1998). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from