forked from tsawyer/allmon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathallmon.inc.php
47 lines (42 loc) · 1.09 KB
/
allmon.inc.php
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
<?php
// Reads output lines from Asterisk Manager
function get_response($fp) {
$response = '';
while (TRUE) {
#$str = fgets($fp, 1024);
$str = fgets($fp);
if (strlen(trim($str)) != 0 ) {
$response .= $str;
} else {
return($response);
}
}
}
function connect($host) {
// Set default port if not provided
$arr = split(":", $host);
$ip = $arr[0];
if (isset($arr[1])) {
$port = $arr[1];
} else {
$port = 5038;
}
// Open a manager socket.
$fp = @fsockopen($ip, $port, $errno, $errstr, 5);
#print "ERROR: $errno $errstr";
if ($fp === FALSE) {
die("Could not connect.\n");
}
return ($fp);
}
function login($fp, $user, $password) {
// Login
fwrite($fp,"ACTION: LOGIN\r\nUSERNAME: $user\r\nSECRET: $password\r\nEVENTS: 0\r\n\r\n");
$login = get_response($fp);
#print $login;
if ('ion accepted' == substr($login, -12)) {
#if (!preg_match('/Response: Success.*Message: Authentication accepted/s', $login)) {
die("Login failed!\n");
}
}
?>