[go: up one dir, main page]

Menu

[166f65]: / makecall.php  Maximize  Restore  History

Download this file

109 lines (95 with data), 3.2 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
<?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&amp;callto=". $celldata->row[$celldata->cellnum] ."\">Call</a>\n";
}
function xmlencode($tag)
{
$tag = str_replace("&", "&amp;", $tag);
$tag = str_replace("<", "&lt;", $tag);
$tag = str_replace(">", "&gt;", $tag);
$tag = str_replace("'", "&apos;", $tag);
$tag = str_replace("\"", "&quot;", $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();
}
}
?>