Changeset 2636

OpenPBX -> CallWeaver

Committed by:  coppice
Date:  Apr 22 2007 * 07:23 (about 1 year ago)

Affected files:

callweaver-cli/ARCHITECTURE (unified diff)

r1758r2636
1 OpenPBX Remote Control Architecture
1 CallWeaver Remote Control Architecture
22
33 Document version: 1.01
44
------
1414
1515 1) Objectives
1616
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
1818 server from any tasks which are related to handling remote interfaces so that
1919 it has all its resource available to providing telephony services.
2020
------
3232
3333 As a replacement for the embedded CLI, the new architecture introduces a
3434 separate standalone CLI utility which will connect via UNIX domain sockets
35 to the OpenPBX server.
35 to the CallWeaver server.
3636
3737 +----------------+ +----------------+
38 | OpenPBX | <---------- client requests ----------- | OpenPBX |
38 | CallWeaver | <---------- client requests ----------- | CallWeaver |
3939 | server | ----------- server responses ---------> | CLI utility |
4040 +----------------+ +----------------+
4141
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
4343 information about command syntax and command help of loadable modules, nor
4444 will it have any information about command syntax and command help of any
4545 built-in features. Command syntax and command help will be entirely removed
4646 from the codebase. Instead, syntax and help descriptions will be stored in
4747 property lists, one for each loadable module and one for built-in features.
4848
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
5050 and it will inform connecting clients about the location of this list. When
5151 a client in need of this information connects to the server, it will obtain
5252 the location from the server and load it into its own loaded module cache.
------
5454 connected clients that a change has occurred and the clients will then update
5555 their local caches accordingly.
5656
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
5858 lists containing the descriptions of command syntax and command help. Again,
5959 when a client in need of this information connects to the server, it will
6060 obtain the location from the server and load the relevant property lists
6161 into its own local cache.
6262
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
6464 command syntax and provide command help. Instead, command evaluation and help
6565 can be done entirely in the CLI client without any involvement by the server.
6666
6767
6868 +----------------+ +----------------+
69 | OpenPBX | <---- loaded module info request ------ | OpenPBX |
69 | CallWeaver | <---- loaded module info request ------ | CallWeaver |
7070 | server | ---- module info location response ---> | CLI utility |
7171 +----------------+ +----------------+
7272 | ^
------
8686
8787 As a replacement for the Manager Interface, the new architecture introduces a
8888 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.
9090
9191
9292 +-------------+ +-------------+ +-------------+
93 | OpenPBX | <- requests -- | OpenPBX | <- requests -- | Remote |
93 | CallWeaver | <- requests -- | CallWeaver | <- requests -- | Remote |
9494 | server | - responses -> | agent | - responses -> | client |
9595 +-------------+ +-------------+ +-------------+
9696 UNIX domain TCP/IP
------
9898
9999
100100 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
102102 provide a SOAP interface for remote SOAP based clients while an XML-RPC/http
103103 agent would provide an XML-RPC interface for remote XML-RPC based clients.
104104
105105
106106
107107 +-------------+ +-------------+ SOAP +-------------+
108 | OpenPBX | <- requests -- | SOAP | <- requests -- | SOAP |
108 | CallWeaver | <- requests -- | SOAP | <- requests -- | SOAP |
109109 | server | - responses -> | http agent | - responses -> | client |
110110 +-------------+ +-------------+ +-------------+
111111 UNIX domain TCP/IP
------
113113
114114
115115 +-------------+ +-------------+ XML-RPC +-------------+
116 | OpenPBX | <- requests -- | XML-RPC | <- requests -- | XML-RPC |
116 | CallWeaver | <- requests -- | XML-RPC | <- requests -- | XML-RPC |
117117 | server | - responses -> | http agent | - responses -> | client |
118118 +-------------+ +-------------+ +-------------+
119119 UNIX domain TCP/IP
------
123123 Further agents could be provided for IM based protocols, such as Jabber.
124124
125125 +-------------+ +-------------+ Jabber +-------------+
126 | OpenPBX | <- requests -- | Jabber | <- requests -- | Jabber |
126 | CallWeaver | <- requests -- | Jabber | <- requests -- | Jabber |
127127 | server | - responses -> | agent | - responses -> | client |
128128 +-------------+ +-------------+ +-------------+
129129 UNIX domain TCP/IP
------
132132
133133 4) Security
134134
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
136136 utilities or agents can take advantage of the local filesystem's built-in
137137 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
139139 of executables which should be permitted to connect. The UNIX domain socket
140140 system also allows the server to obtain information about the processes and
141141 users running the executables which are trying to connect. The server can
------
149149 of clients.
150150
151151
152 // END OF DOCUMENT
152 // END OF DOCUMENT

callweaver-cli/SPECIFICATION (unified diff)

r1754r2636
1 OpenPBX CLI utility - Specification
1 CallWeaver CLI utility - Specification
22
33 Document version: 1.0
44
------
1515 1) Objective
1616
1717 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
1919 in form of a standalone command line utility that acts as a client front-end.
2020
2121
2222 2) Command line options
2323
24 The OpenPBX CLI utility shall provide the following command line options:
24 The CallWeaver CLI utility shall provide the following command line options:
2525
2626 -h and --help, to print a brief online help
2727
------
3939
4040 3) Configuration file settings
4141
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
4343 in property list format. The utility must not ever use Windows INI format or
4444 the Windows derived Asterisk INI format for its configuration.
4545
------
4747
4848 o default mode, mode to use when the utility is called without arguments
4949
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
5151
5252 o inactivity timeout, duration of inactivity after which to disconnect
5353
------
6868
6969 4) Startup sequence
7070
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
7272 launched ...
7373
7474 First it shall evaluate any command line arguments, then proceed as follows:
------
104104
105105 5) Obtaining information about command syntax and help
106106
107 The OpenPBX CLI utility shall obtain information about loaded modules, their
107 The CallWeaver CLI utility shall obtain information about loaded modules, their
108108 commands, syntax and help by sending a request to the server which will
109109 respond with a path to a loaded modules cache which contains the paths
110110 to property lists describing the command syntax and help, one for each
------
113113 information directly. The server will only provide the location, but
114114 not the information itself.
115115
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
117117 an update notification from the server. The server will provide an update
118118 notification to each connected client whenever a reload has been executed.
119119
120120 /// TO DO: property list format for module command syntax and help
121121
122 // END OF FILE
122 // END OF FILE