0) {
$context = $_SESSION['context'];
}
else {
$context = 'default';
}
//translate ringback
switch ($ringback) {
case "us-ring":
$ringback_value = "\'%(2000,4000,440.0,480.0)\'";
break;
case "uk-ring":
$ringback_value = "\'%(400,200,400,450);%(400,2200,400,450)\'";
break;
case "fr-ring":
$ringback_value = "\'%(1500,3500,440.0,0.0)\'";
break;
case "rs-ring":
$ringback_value = "\'%(1000,4000,425.0,0.0)\'";
break;
case "music":
$ringback_value = "\'local_stream://moh\'";
break;
default:
$ringback = 'us-ring';
$ringback_value = "\'%(2000,4000,440.0,480.0)\'";
}
//source should see the destination caller id
if (strlen($src) < 7) {
$source = "{".$sip_auto_answer."origination_caller_id_name='$src_cid_name',origination_caller_id_number=$src_cid_number,instant_ringback=true,ringback=$ringback_value,presence_id=$src@".$_SESSION['domains'][$domain_uuid]['domain_name'].",call_direction=outbound}sofia/internal/$src%".$_SESSION['domains'][$domain_uuid]['domain_name'];
}
else {
$bridge_array = outbound_route_to_bridge ($_SESSION['domain_uuid'], $src);
$source = "{origination_caller_id_name='$src_cid_name',origination_caller_id_number=$src_cid_number,instant_ringback=true,ringback=$ringback_value,presence_id=$src@".$_SESSION['domains'][$domain_uuid]['domain_name'].",call_direction=outbound}".$bridge_array[0];
}
//destination needs to see the source caller id
if (strlen($dest) < 7) {
$switch_cmd = "api originate $source &transfer('".$dest." XML ".$context."')";
}
else {
if (strlen($src) < 7) {
if (strlen($dest_cid_number) == 0) {
//get the caller id from the extension caller id comes from the extension (the source number)
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and extension = '$src' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$dest_cid_name = $row["outbound_caller_id_name"];
$dest_cid_number = $row["outbound_caller_id_number"];
break; //limit to 1 row
}
unset ($prep_statement);
}
}
$bridge_array = outbound_route_to_bridge ($_SESSION['domain_uuid'], $dest);
$destination = "{origination_caller_id_name='$dest_cid_name',origination_caller_id_number=$dest_cid_number}".$bridge_array[0];
if (permission_exists('click_to_call_call')) {
$switch_cmd = "api originate $source &bridge($destination)";
}
}
//display the last command
echo "
\n";
echo "
\n";
echo "\n";
echo "| Message | \n";
echo "
\n";
echo "\n";
echo "| $switch_cmd $src has called $dest | \n";
echo "
\n";
echo "
\n";
echo "
\n";
//create the even socket connection and send the event socket command
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if (!$fp) {
//show the error message
$msg = "Connection to Event Socket failed.
";
echo "\n";
echo "
\n";
echo "\n";
echo " | Message | \n";
echo "
\n";
echo "\n";
echo " | $msg | \n";
echo "
\n";
echo "
\n";
echo "
\n";
}
else {
//show the command result
$result = trim(event_socket_request($fp, $switch_cmd));
if (substr($result, 0,3) == "+OK") {
$uuid = substr($result, 4);
if ($rec == "true") {
//use the server's time zone to ensure it matches the time zone used by freeswitch
date_default_timezone_set($_SESSION['time_zone']['system']);
//create the api record command and send it over event socket
$switch_cmd = "api uuid_record ".$uuid." start ".$_SESSION['switch']['recordings']['dir']."/archive/".date("Y")."/".date("M")."/".date("d")."/".$uuid.".wav";
$result2 = trim(event_socket_request($fp, $switch_cmd));
}
}
echo "\n";
echo "
\n";
echo $result;
echo "
\n";
echo "
\n";
echo "
\n";
}
}
//show html form
echo " \n";
echo " \n";
echo " | \n";
echo " \n";
echo " Click to Call\n";
echo " \n";
echo " | \n";
echo " \n";
echo " \n";
echo " | \n";
echo "
\n";
echo " \n";
echo " | \n";
echo " \n";
echo " Provide the following information to make a call from the source number to the destination number.\n";
echo " \n";
echo " | \n";
echo "\n";
echo "
\n";
echo "
";
echo "
";
echo "";
//show the footer
require_once "includes/footer.php";
?>