Changeset 2636
OpenPBX -> CallWeaver
Committed by:
coppice
Date:
Apr 22 2007 * 07:23 (about 1 year ago)
Affected files:
callweaver-cli/ARCHITECTURE (unified diff)
| r1758 | r2636 | |
|---|---|---|
| 1 | OpenPBX Remote Control Architecture | |
| 1 | CallWeaver Remote Control Architecture | |
| 2 | 2 | |
| 3 | 3 | Document version: 1.01 |
| 4 | 4 | |
| --- | --- | |
| 14 | 14 | |
| 15 | 15 | 1) Objectives |
| 16 | 16 | |
| 17 | The prime objective of the remote control architecture is to free the OpenPBX | |
| 17 | The prime objective of the remote control architecture is to free the CallWeaver | |
| 18 | 18 | server from any tasks which are related to handling remote interfaces so that |
| 19 | 19 | it has all its resource available to providing telephony services. |
| 20 | 20 | |
| --- | --- | |
| 32 | 32 | |
| 33 | 33 | As a replacement for the embedded CLI, the new architecture introduces a |
| 34 | 34 | separate standalone CLI utility which will connect via UNIX domain sockets |
| 35 | to the OpenPBX server. | |
| 35 | to the CallWeaver server. | |
| 36 | 36 | |
| 37 | 37 | +----------------+ +----------------+ |
| 38 | | OpenPBX | <---------- client requests ----------- | OpenPBX | | |
| 38 | | CallWeaver | <---------- client requests ----------- | CallWeaver | | |
| 39 | 39 | | server | ----------- server responses ---------> | CLI utility | |
| 40 | 40 | +----------------+ +----------------+ |
| 41 | 41 | |
| 42 | Under the new architecture, the OpenPBX server will no longer load any | |
| 42 | Under the new architecture, the CallWeaver server will no longer load any | |
| 43 | 43 | information about command syntax and command help of loadable modules, nor |
| 44 | 44 | will it have any information about command syntax and command help of any |
| 45 | 45 | built-in features. Command syntax and command help will be entirely removed |
| 46 | 46 | from the codebase. Instead, syntax and help descriptions will be stored in |
| 47 | 47 | property lists, one for each loadable module and one for built-in features. |
| 48 | 48 | |
| 49 | The OpenPBX server will maintain a list of currently loaded modules on disk | |
| 49 | The CallWeaver server will maintain a list of currently loaded modules on disk | |
| 50 | 50 | and it will inform connecting clients about the location of this list. When |
| 51 | 51 | a client in need of this information connects to the server, it will obtain |
| 52 | 52 | the location from the server and load it into its own loaded module cache. |
| --- | --- | |
| 54 | 54 | connected clients that a change has occurred and the clients will then update |
| 55 | 55 | their local caches accordingly. |
| 56 | 56 | |
| 57 | In addition, the OpenPBX server will also provide the location of the property | |
| 57 | In addition, the CallWeaver server will also provide the location of the property | |
| 58 | 58 | lists containing the descriptions of command syntax and command help. Again, |
| 59 | 59 | when a client in need of this information connects to the server, it will |
| 60 | 60 | obtain the location from the server and load the relevant property lists |
| 61 | 61 | into its own local cache. |
| 62 | 62 | |
| 63 | As a result, the OpenPBX server is entirely relieved of the task to evaluate | |
| 63 | As a result, the CallWeaver server is entirely relieved of the task to evaluate | |
| 64 | 64 | command syntax and provide command help. Instead, command evaluation and help |
| 65 | 65 | can be done entirely in the CLI client without any involvement by the server. |
| 66 | 66 | |
| 67 | 67 | |
| 68 | 68 | +----------------+ +----------------+ |
| 69 | | OpenPBX | <---- loaded module info request ------ | OpenPBX | | |
| 69 | | CallWeaver | <---- loaded module info request ------ | CallWeaver | | |
| 70 | 70 | | server | ---- module info location response ---> | CLI utility | |
| 71 | 71 | +----------------+ +----------------+ |
| 72 | 72 | | ^ |
| --- | --- | |
| 86 | 86 | |
| 87 | 87 | As a replacement for the Manager Interface, the new architecture introduces a |
| 88 | 88 | separate standalone agent which will connect via UNIX domain sockets to the |
| 89 | OpenPBX server and accept connections from clients via network sockets. | |
| 89 | CallWeaver server and accept connections from clients via network sockets. | |
| 90 | 90 | |
| 91 | 91 | |
| 92 | 92 | +-------------+ +-------------+ +-------------+ |
| 93 | | OpenPBX | <- requests -- | OpenPBX | <- requests -- | Remote | | |
| 93 | | CallWeaver | <- requests -- | CallWeaver | <- requests -- | Remote | | |
| 94 | 94 | | server | - responses -> | agent | - responses -> | client | |
| 95 | 95 | +-------------+ +-------------+ +-------------+ |
| 96 | 96 | UNIX domain TCP/IP |
| --- | --- | |
| 98 | 98 | |
| 99 | 99 | |
| 100 | 100 | For each protocol to be supported, a specific agent can be provided which acts |
| 101 | as a proxy between clients and the OpenPBX server. A SOAP/http agent would | |
| 101 | as a proxy between clients and the CallWeaver server. A SOAP/http agent would | |
| 102 | 102 | provide a SOAP interface for remote SOAP based clients while an XML-RPC/http |
| 103 | 103 | agent would provide an XML-RPC interface for remote XML-RPC based clients. |
| 104 | 104 | |
| 105 | 105 | |
| 106 | 106 | |
| 107 | 107 | +-------------+ +-------------+ SOAP +-------------+ |
| 108 | | OpenPBX | <- requests -- | SOAP | <- requests -- | SOAP | | |
| 108 | | CallWeaver | <- requests -- | SOAP | <- requests -- | SOAP | | |
| 109 | 109 | | server | - responses -> | http agent | - responses -> | client | |
| 110 | 110 | +-------------+ +-------------+ +-------------+ |
| 111 | 111 | UNIX domain TCP/IP |
| --- | --- | |
| 113 | 113 | |
| 114 | 114 | |
| 115 | 115 | +-------------+ +-------------+ XML-RPC +-------------+ |
| 116 | | OpenPBX | <- requests -- | XML-RPC | <- requests -- | XML-RPC | | |
| 116 | | CallWeaver | <- requests -- | XML-RPC | <- requests -- | XML-RPC | | |
| 117 | 117 | | server | - responses -> | http agent | - responses -> | client | |
| 118 | 118 | +-------------+ +-------------+ +-------------+ |
| 119 | 119 | UNIX domain TCP/IP |
| --- | --- | |
| 123 | 123 | Further agents could be provided for IM based protocols, such as Jabber. |
| 124 | 124 | |
| 125 | 125 | +-------------+ +-------------+ Jabber +-------------+ |
| 126 | | OpenPBX | <- requests -- | Jabber | <- requests -- | Jabber | | |
| 126 | | CallWeaver | <- requests -- | Jabber | <- requests -- | Jabber | | |
| 127 | 127 | | server | - responses -> | agent | - responses -> | client | |
| 128 | 128 | +-------------+ +-------------+ +-------------+ |
| 129 | 129 | UNIX domain TCP/IP |
| --- | --- | |
| 132 | 132 | |
| 133 | 133 | 4) Security |
| 134 | 134 | |
| 135 | UNIX domain socket based connections between the OpenPBX server and local CLI | |
| 135 | UNIX domain socket based connections between the CallWeaver server and local CLI | |
| 136 | 136 | utilities or agents can take advantage of the local filesystem's built-in |
| 137 | 137 | access control system such as file permissions and ACLs. In addition to the |
| 138 | filesystem's access control, the OpenPBX server can maintain a list of names | |
| 138 | filesystem's access control, the CallWeaver server can maintain a list of names | |
| 139 | 139 | of executables which should be permitted to connect. The UNIX domain socket |
| 140 | 140 | system also allows the server to obtain information about the processes and |
| 141 | 141 | users running the executables which are trying to connect. The server can |
| --- | --- | |
| 149 | 149 | of clients. |
| 150 | 150 | |
| 151 | 151 | |
| 152 | // END OF DOCUMENT | |
| 152 | // END OF DOCUMENT |
callweaver-cli/SPECIFICATION (unified diff)
| r1754 | r2636 | |
|---|---|---|
| 1 | OpenPBX CLI utility - Specification | |
| 1 | CallWeaver CLI utility - Specification | |
| 2 | 2 | |
| 3 | 3 | Document version: 1.0 |
| 4 | 4 | |
| --- | --- | |
| 15 | 15 | 1) Objective |
| 16 | 16 | |
| 17 | 17 | The objective of this subproject is to remove the embedded command line |
| 18 | interface (CLI) from the OpenPBX server and to provide a replacement facility | |
| 18 | interface (CLI) from the CallWeaver server and to provide a replacement facility | |
| 19 | 19 | in form of a standalone command line utility that acts as a client front-end. |
| 20 | 20 | |
| 21 | 21 | |
| 22 | 22 | 2) Command line options |
| 23 | 23 | |
| 24 | The OpenPBX CLI utility shall provide the following command line options: | |
| 24 | The CallWeaver CLI utility shall provide the following command line options: | |
| 25 | 25 | |
| 26 | 26 | -h and --help, to print a brief online help |
| 27 | 27 | |
| --- | --- | |
| 39 | 39 | |
| 40 | 40 | 3) Configuration file settings |
| 41 | 41 | |
| 42 | The OpenPBX CLI utility shall have its own configuration file which shall be | |
| 42 | The CallWeaver CLI utility shall have its own configuration file which shall be | |
| 43 | 43 | in property list format. The utility must not ever use Windows INI format or |
| 44 | 44 | the Windows derived Asterisk INI format for its configuration. |
| 45 | 45 | |
| --- | --- | |
| 47 | 47 | |
| 48 | 48 | o default mode, mode to use when the utility is called without arguments |
| 49 | 49 | |
| 50 | o server socket, full path to the OpenPBX server's UNIX domain socket | |
| 50 | o server socket, full path to the CallWeaver server's UNIX domain socket | |
| 51 | 51 | |
| 52 | 52 | o inactivity timeout, duration of inactivity after which to disconnect |
| 53 | 53 | |
| --- | --- | |
| 68 | 68 | |
| 69 | 69 | 4) Startup sequence |
| 70 | 70 | |
| 71 | The OpenPBX CLI utility shall use the following startup sequence when it is | |
| 71 | The CallWeaver CLI utility shall use the following startup sequence when it is | |
| 72 | 72 | launched ... |
| 73 | 73 | |
| 74 | 74 | First it shall evaluate any command line arguments, then proceed as follows: |
| --- | --- | |
| 104 | 104 | |
| 105 | 105 | 5) Obtaining information about command syntax and help |
| 106 | 106 | |
| 107 | The OpenPBX CLI utility shall obtain information about loaded modules, their | |
| 107 | The CallWeaver CLI utility shall obtain information about loaded modules, their | |
| 108 | 108 | commands, syntax and help by sending a request to the server which will |
| 109 | 109 | respond with a path to a loaded modules cache which contains the paths |
| 110 | 110 | to property lists describing the command syntax and help, one for each |
| --- | --- | |
| 113 | 113 | information directly. The server will only provide the location, but |
| 114 | 114 | not the information itself. |
| 115 | 115 | |
| 116 | The OpenPBX CLI utility shall update the module cache whenever it receives | |
| 116 | The CallWeaver CLI utility shall update the module cache whenever it receives | |
| 117 | 117 | an update notification from the server. The server will provide an update |
| 118 | 118 | notification to each connected client whenever a reload has been executed. |
| 119 | 119 | |
| 120 | 120 | /// TO DO: property list format for module command syntax and help |
| 121 | 121 | |
| 122 | // END OF FILE | |
| 122 | // END OF FILE |
![Home changeset 2636 [home]](/images/logo.png?1180520111)
RSS Feeds