<?php
function Ast_MakeCall($callfrom, $callto)
{
$tmpfile="/var/spool/asterisk/".$callfrom.".tmp";
print "Calling: ". $callto ." From: ".$callfrom;
$fp = fopen($tmpfile, "w");
if ($fp) {
fputs($fp,"Channel: SIP/".$callfrom."\n");
fputs($fp,"MaxRetries: 1\n");
fputs($fp,"Retry: 0\n");
fputs($fp,"RetryTime: 60\n");
// fputs($fp,"Context: trunklocal\n");
fputs($fp,"Callerid: <$callfrom>\n");
fputs($fp,"Extension: ".$callto."\n");
fputs($fp,"Priority: 1\n");
fputs($fp,"SetVar: ALERT_INFO=\"Ring Answer\"\n");
// "CallerID: "
fclose($fp);
system("mv $tmpfile /var/spool/asterisk/outgoing/");
}
}
function Ast_ContactsOptionsCB($celldata)
{
print "<a href=\"". $_SERVER['PHP_SELF'] ."?f=makecall&callto=". $celldata->row[$celldata->cellnum] ."\">Call</a>\n";
}
function xmlencode($tag)
{
$tag = str_replace("&", "&", $tag);
$tag = str_replace("<", "<", $tag);
$tag = str_replace(">", ">", $tag);
$tag = str_replace("'", "'", $tag);
$tag = str_replace("\"", """, $tag);
return $tag;
}
function Ast_AJAXGetContacts($login)
{
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Type: text/xml");
$search=$login->cgi->var_val("querystring");
print "<CONTACT_LIST>\n";
$res=SipUser_DBQry($login->conn, " WHERE s.callerid LIKE '%$search%' OR s.name LIKE '%$search%'");
if ($res) {
while ( ($row = DBGetRow($res)) ) {
print "<CONTACT value=\"". xmlencode($row["callerid"]) ."\" callerid=\"". xmlencode($row["callerid"]) ."\" number=\"". $row["name"] ."\" />\n";
}
DBFreeResult($res);
} else {
print "<ERROR message=\"". DBErrorMsg($login->conn) ."\" />\n";
}
print "</CONTACT_LIST>\n";
return;
}
function Ast_ShowContacts($login)
{
global $contact_tbl;
global $contact_name_col;
global $contact_number_col;
global $contact_query_field;
$search=$login->cgi->var_val($contact_query_field);
print "<form action=\"". $login->cgi->relname ."\" method=get>";
$login->cgi->print_hidden();
print $contact_query_field ." ";
$res=DBQuery("SELECT DISTINCT $contact_query_field FROM $contact_tbl ORDER BY $contact_query_field",$login->conn);
if ($res) {
$valuelist = array();
array_push(&$valuelist, $row[0]);
while ( ($row=DBGetRow($res)) ) {
// array_push(&$valuelist, $row[0] =>$row[0]);
$valuelist[$row[0]] = $row[0];
}
if ($valuelist) {
phpSelectBox($contact_query_field,$search,$valuelist);
print "<input type=submit name=search value=\"Search\">\n";
}
DBFreeResult($res);
}
?>
</form>
<?php
$lv = new phpListViewCtrl($login->conn, $login->cgi, "contacts", "Contacts", null);
if ($lv) {
$lv->SetLimit(0);
$lv->AddColumn($contact_name_col, "Name", true, "char", null,null);
$lv->AddColumn($contact_number_col, "Number", true, "char", null,null);
$lv->AddColumn($contact_number_col, "Options", true, "char", Ast_ContactsOptionsCB,null);
if (strlen($search)) {
$lv->AddSelect("FROM $contact_tbl WHERE $contact_query_field='$search' GROUP BY $contact_number_col ORDER BY $contact_name_col ASC");
} else {
$lv->AddSelect("FROM $contact_tbl GROUP BY $contact_number_col ORDER BY $contact_name_col ASC");
}
$lv->Render();
}
}
?>