This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ------------------------------------------------------------------------------- */ function TAPIput($data) { global $TAPIfp; fwrite($TAPIfp, $data); #echo "IN: $data"; } function TAPIget() { global $TAPIfp; $data = fgets($TAPIfp, 4096); #echo "OUT: $data"; return $data; } function TAPIConnect($host, $port, $username, $secret) { global $TAPIfp; $TAPIfp = fsockopen($host, $port); $data = str_replace("\n", "", TAPIget()); if (strpos($data, "Asterisk Call Manager/1.0") !== FALSE) { } else { return FALSE; } TAPIput("Action: Login\r\n"); TAPIput("Username: ".$username."\r\n"); TAPIput("Secret: ".$secret."\r\n\r\n"); $data = "."; while ($data != "") { $data = TAPIget(); $data = trim(str_replace("\n", "", $data)); $data = trim(str_replace("\r", "", $data)); if (strpos($data, "Success") !== FALSE) { $login = TRUE; } } TAPIput("Action: Events\r\n"); TAPIput("EventMask: off\r\n\r\n"); $data = "."; while ($data != "") { $data = TAPIget(); $data = trim(str_replace("\n", "", $data)); $data = trim(str_replace("\r", "", $data)); if (strpos($data, "Success") !== FALSE) { $login = TRUE; } } if (!$login) { return FALSE; } else { return TRUE; } } function TAPIOriginate($ph, $externalNumber) { $context = "outgoing"; $exten = $externalNumber; $priority = 1; $callerIDName = "Asterisk Telefonserver"; TAPIput("Action: Originate\r\n"); TAPIput("Channel: ".$ph->getLocalDialCmd()."\r\n"); TAPIput("Async: true\r\n"); TAPIput("Context: ".$context."\r\n"); TAPIput("Exten: ".$exten."\r\n"); TAPIput("CallerID: $callerIDName <".$ph->getMsn().">\r\n"); TAPIput("Priority: ".$priority."\r\n\r\n"); $data = "."; while ($data != "") { $data = TAPIget(); $data = trim(str_replace("\n", "", $data)); $data = trim(str_replace("\r", "", $data)); if (strpos($data, "Sucess:") !== FALSE) { return TRUE; } else { return FALSE; } } } ?>