HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/posscale/subdomains/IMH_RCC/readme.txt
Remote Call Control Interface Sample based on PHP

----------------------------------------------------------------------------------
Configuration
----------------------------------------------------------------------------------
To run this sample, the following applications should be installed and properly configured:

	1. Apache 2
	2. PHP 5. 

In the php.ini file for PHP5, change the following settings:

	a. Uncomment the following line: 
  	       extension=php_xmlrpc.dll
	       extension=php_sockets.dll

	b. Set implicit_flush = On
----------------------------------------------------------------------------------
Use
----------------------------------------------------------------------------------
The sample provides the following options:
	1. Creates and transfers a call.
	2. Creates two calls and joins them.
	3. Upload legible configuration 

To create and transfer a call, follow these steps:
	1. Specify the "From", "To", "Transfer To� fields for �Call1". 
	2. Click the "Run Transfer" button.

To create two calls and join them, follow these steps:
	1. Specify the "From", "To" fields for �Call1" and �Call2". 
	2. Click the "Run Join" button.

To upload legible configuration
	1. Specify filepath to configuration file
	3. Click the "Upload" button

To upload global speed dial
	1. Specify filepath to global speed dial file
	3. Click the "Upload" button

It is also possible to play a voice message for "Call2" by selecting a file name from the appropriate dropdown list.

----------------------------------------------------------------------------------
 Specification
----------------------------------------------------------------------------------
RCCI based on PHP includes the following files: 

	1. Page file "rcci.php".
	2. Page file "rcci_updateconfig.php".
	3. Page file "rcci_globalspeeddial.php".
	4. PHP class file "XMLCalls_inc.php".
	5. CSS file "styles.css".

The class constructor should initialize objects with the connection and authentication parameters as shown below:

	$net = new XMLCalls ($ip_addr, $port, $user_name, $password)

XMLCalls_inc.php contains the class XMLCalls that has the following interface functions:

Authenticate() 
	authenticates the user on the Quadro with the "$user_name" and "$password" specified when creating the object.

Join($from, $to, $from2, $to2, $play_filename) 
	creates 2 calls, plays a message to the second called party, then joins the calls.
What happens if executed: 
	the party "$to" rings, indicating the "$from" as a caller. 
	Once "$to" answers the call, "$to2" rings, indicating the "$from2" as a caller. 
	The party "$to" hears silence. Once "$to2" answers the call, the voice message, specified as $play_filename", is played. 
	When the playback is complete, the parties "$to" and "$to2" are connected, and can talk to each other.

Transfer($from, $to, $transfer_to) 
	creates a call from the party "$from" to "$to", then transfers it to the party "$transfer_to".
What happens if executed: 
	the party "$to" rings, indicating the "$from" as a caller. 
	Once "$to" answers the call, the party "$transfer_to" will ring. 
	While the call is ringing at the party "$transfer_to"�s phone, "$to" listens ring-back tone. 
	If the party "$transfer_to" answers the call, a two-way communication is established between "$to" and "$transfer_to".

UpdateConfig($filePath) 
	upload legible configuration file specified by "$filepath" to Quadro.

UploadGlobalSpeedDial($filePath) 
	upload global speed file specified by "$filepath" to Quadro.
	
There are some low-level interface functions, the main of which is the following:

Call($from, $to) 
	creates a simple call. After calling this function, the "$to" party will ring, indicating the "$from" as a caller. 
	After "$to" answers the call, they hear silence. 
	The call created by this function, should be handled further, using methods shown in the example.