⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2824.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
         CPL features can be created by automated means, such as in the         example of the web middleware described in the previous         section. With a simple, text-based syntax, standard text-         processing languages will be able to create and edit CPL         scripts easily.      o  GUI tools         Finally, users will be able to use GUI tools to create and edit         CPL scripts.  We expect that most average-experience users will         take this approach once the CPL gains popularity.  The CPL will         be designed with this application in mind, so that the full         expressive power of scripts can be represented simply and         straightforwardly in a graphical manner.6 Network model   The Call Processing Language operates on a generalized model of an   Internet telephony network. While the details of various protocols   differ, on an abstract level all major Internet telephony   architectures are sufficiently similar that their major features can   be described commonly. This document generally uses SIP terminology,   as its authors' experience has mainly been with that protocol.6.1 Model components   In the Call Processing Language's network model, an Internet   telephony network contains two types of components.6.1.1 End systems   End systems are devices which originate and/or receive signalling   information and media. These include simple and complex telephone   devices, PC telephony clients, and automated voice systems. The CPL   abstracts away the details of the capabilities of these devices. An   end system can originate a call; and it can accept, reject, or   forward incoming calls. The details of this process (ringing, multi-   line telephones, and so forth) are not important for the CPL.Lennox & Schulzrinne         Informational                      [Page 7]RFC 2824                         CPL-F                          May 2000   For the purposes of the CPL, gateways -- for example, a device which   connects calls between an IP telephony network and the PSTN -- are   also considered to be end systems. Other devices, such as mixers or   firewalls, are not directly dealt with by the CPL, and they will not   be discussed here.6.1.2 Signalling servers   Signalling servers are devices which relay or control signalling   information. In SIP, they are proxy servers, redirect servers, or   registrars; in H.323, they are gatekeepers.   Signalling servers can perform three types of actions on call setup   information. They can:      proxy it: forward it on to one or more other network or end           systems, returning one of the responses received.      redirect it: return a response informing the sending system of a           different address to which it should send the request.      reject it: inform the sending system that the setup request could           not be completed.   RFC 2543 [1] has illustrations of proxy and redirect functionality.   End systems may also be able to perform some of these actions: almost   certainly rejection, and possibly redirection.   Signalling servers also normally maintain information about user   location.  Whether by means of registrations (SIP REGISTER or H.323   RAS messages), static configuration, or dynamic searches, signalling   servers must have some means by which they can determine where a user   is currently located, in order to make intelligent choices about   their proxying or redirection behavior.   Signalling servers are also usually able to keep logs of transactions   that pass through them, and to send e-mail to destinations on the   Internet, under programmatic control.6.2 Component interactions   When an end system places a call, the call establishment request can   proceed by a variety of routes through components of the network. To   begin with, the originating end system must decide where to send its   requests. There are two possibilities here: the originator may be   configured so that all its requests go to a single local server; or   it may resolve the destination address to locate a remote signalling   server or end system to which it can send the request directly.Lennox & Schulzrinne         Informational                      [Page 8]RFC 2824                         CPL-F                          May 2000   Once the request arrives at a signalling server, that server uses its   user location database, its local policy, DNS resolution, or other   methods, to determine the next signalling server or end system to   which the request should be sent. A request may pass through any   number of signalling servers: from zero (in the case when end systems   communicate directly) to, in principle, every server on the network.   What's more, any end system or signalling server can (in principle)   receive requests from or send them to any other.   For example, in figure 1, there are two paths the call establishment   request information may take. For Route 1, the originator knows only   a user address for the user it is trying to contact, and it is   configured to send outgoing calls through a local outgoing proxy   server.  Therefore, it forwards the request to its local server,   which finds the server of record for that address, and forwards it on   to that server.   In this case, the organization the destination user belongs to uses a   multi-stage setup to find users. The corporate server identifies   which department a user is part of, then forwards the request to the   appropriate departmental server, which actually locates the user.   (This is similar to the way e-mail forwarding is often configured.)   The response to the request will travel back along the same path.   For Route 2, however, the originator knows the specific device   address it is trying to contact, and it is not configured to use a   local outgoing proxy.  In this case, the originator can directly   contact the destination without having to communicate with any   network servers at all.   We see, then, that in Internet telephony signalling servers cannot in   general know the state of end systems they "control," since   signalling information may have bypassed them. This architectural   limitation implies a number of restrictions on how some services can   be implemented. For instance, a network system cannot reliably know   if an end system is currently busy or not; a call may have been   placed to the end system without traversing that network system.   Thus, signalling messages must explicitly travel to end systems to   find out their state; in the example, the end system must explicitly   return a "busy" indication.Lennox & Schulzrinne         Informational                      [Page 9]RFC 2824                         CPL-F                          May 2000      Outgoing                           Corporate        Departmental        Proxy                              Server            Server       _______  Outgoing proxy contacts   _______            _______       |     |     corporate server       |     |            |     |       |     | -------------------------> |     | ---------> |     |       |_____|                            |_____|            |_____|Route 1   ^                                                    \Searches         /                                                      \   forSends to/                                                        \ User proxy /                                                         _|   _______                                                      _______   |     |   Route 2                                            |     |   |     | ---------------------------------------------------> |     |   |_____|      Originator directly contacts destination        |_____|  Originator                                                 Destination         Figure 1: Possible paths of call setup messages7 Interaction of CPL with network model7.1 What a script does   A CPL script runs in a signalling server, and controls that system's   proxy, redirect, or rejection actions for the set-up of a particular   call. It does not attempt to coordinate the behavior of multiple   signalling servers, or to describe features on a "Global Functional   Plane" as in the Intelligent Network architecture [6].   More specifically, a script replaces the user location functionality   of a signalling server. As described in section 6.1.2, a signalling   server typically maintains a database of locations where a user can   be reached; it makes its proxy, redirect, and rejection decisions   based on the contents of that database. A CPL script replaces this   basic database lookup functionality; it takes the registration   information, the specifics of a call request, and other external   information it wants to reference, and chooses the signalling actions   to perform.   Abstractly, a script can be considered as a list of condition/action   pairs; if some attribute of the registration, request, and external   information matches a given condition, then the corresponding action   (or more properly set of actions) is taken. In some circumstances,   additional actions can be taken based on the consequences of the   first action and additional conditions. If no condition matches the   invitation, the signalling server's standard action -- its location   database lookup, for example -- is taken.Lennox & Schulzrinne         Informational                     [Page 10]RFC 2824                         CPL-F                          May 20007.2 Which script is executed   CPL scripts are usually associated with a particular Internet   telephony address. When a call establishment request arrives at a   signalling server which is a CPL server, that server associates the   source and destination addresses specified in the request with its   database of CPL scripts; if one matches, the corresponding script is   executed.   Once the script has executed, if it has chosen to perform a proxy   action, a new Internet telephony address will result as the   destination of that proxying. Once this has occurred, the server   again checks its database of scripts to see if any of them are   associated with the new address; if one is, that script as well is   executed (assuming that a script has not attempted to proxy to an   address which the server has already tried). For more details of this   recursion process, and a description of what happens when a server   has scripts that correspond both to a scripts origination address and   its destination address, see section 9.2.   In general, in an Internet telephony network, an address will denote   one of two things: either a user, or a device. A user address refers   to a particular individual, for example sip:joe@example.com,   regardless of where that user actually is or what kind of device he   or she is using. A device address, by contrast, refers to a   particular physical device, such as sip:x26063@phones.example.com.   Other, intermediate sorts of addresses are also possible, and have   some use (such as an address for "my cell phone, wherever it   currently happens to be registered"), but we expect them to be less   common. A CPL script is agnostic to the type of address it is   associated with; while scripts associated with user addresses are   probably the most useful for most services, there is no reason that a   script could not be associated with any other type of address as   well.  The recursion process described above allows scripts to be   associated with several of a user's addresses; thus, a user script   could specify an action "try me at my cell phone," whereas a device   script could say "I don't want to accept cell phone calls while I'm   out of my home area."   It is also possible for a CPL script to be associated not with one   specific Internet telephony address, but rather with all addresses   handled by a signalling server, or a large set of them. For instance,   an administrator might configure a system to prevent calls from or to   a list of banned incoming or outgoing addresses; these should   presumably be configured for everyone, but users should still to be   able to have their own custom scripts as well. Exactly when suchLennox & Schulzrinne         Informational                     [Page 11]RFC 2824                         CPL-F                          May 2000   scripts should be executed in the recursion process depends on the   precise nature of the administrative script. See section 9.2 for   further discussion of this.7.3 Where a script runs   Users can have CPL scripts on any network server which their call   establishment requests pass through and with which they have a trust   relationship. For instance, in the example in figure 1, the   originating user could have a script on the outgoing proxy, and the   destination user could have scripts on both the corporate server and   the departmental server. These scripts would typically perform   different functions, related to the role of the server on which they   reside; a script on the corporate-wide server could be used to   customize which department the user wishes to be found at, for   instance, whereas a script at the departmental server could be used   for more fine-grained location customization. Some services, such as   filtering out unwanted calls, could be located at either server. See   section 9.3 for some implications of a scenario like this.   This model does not specify the means by which users locate a CPL-   capable network server. In general, this will be through the same   means by which they locate a local Internet telephony server to   register themselves with; this may be through manual configuration,   or through automated means such as the Service Location Protocol [7].   It has been proposed that automated means of locating such servers   should include a field to indicate whether the server allows users to   upload CPLs.8 Creation and transport of a call processing language script   Users create call processing language scripts, typically on end   devices, and transmit them through the network to signalling servers.   Scripts persist in signalling servers until changed or deleted,   unless they are specifically given an expiration time; a network   system which supports CPL scripting will need stable storage.   The end device on which the user creates the CPL script need not bear   any relationship to the end devices to which calls are actually   placed. For example, a CPL script might be created on a PC, whereas   calls might be intended to be received on a simple audio-only   telephone.  Indeed, the device on which the script is created may not   be an "end device" in the sense described in section 6.1.1 at all;   for instance, a user could create and upload a CPL script from a   non-multimedia-capable web terminal.Lennox & Schulzrinne         Informational                     [Page 12]RFC 2824                         CPL-F                          May 2000   The CPL also might not necessarily be created on a device near either   the end device or the signalling server in network terms. For   example, a user might decide to forward his or her calls to a remote   location only after arriving at that location.   The exact means by which the end device transmits the script to the   server remains to be determined; it is likely that many solutions   will be able to co-exist. This method will need to be authenticated   in almost all cases.  The methods that have been suggested include   web file upload, SIP REGISTER message payloads, remote method   invocation, SNMP, ACAP, LDAP, and remote file systems such as NFS.   Users can also retrieve their current script from the network to an   end system so it can be edited. The signalling server should also be   able to report errors related to the script to the user, both static   errors that could be detected at upload time, and any run-time errors   that occur.   If a user has trust relationships with multiple signalling servers   (as discussed in section 7.3), the user may choose to upload scripts   to any or all of those servers. These scripts can be entirely   independent.9 Feature interaction behavior

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -