'app-announcement-'.$row[0].',s,1', 'description' => $row[1]); } return $extens; } function announcement_get_config($engine) { global $ext; switch ($engine) { case 'asterisk': foreach (announcement_list() as $row) { $ext->add('app-announcement-'.$row[0], 's', '', new ext_noop('Playing announcement '.$row[1])); if (! $row[6]) { $ext->add('app-announcement-'.$row[0], 's', '', new ext_answer('')); $ext->add('app-announcement-'.$row[0], 's', '', new ext_wait('1')); } if ($row[3] || $row[7]) { // allow skip if ($row[7]) { $ext->add('app-announcement-'.$row[0], 's', '', new ext_responsetimeout(10)); } $ext->add('app-announcement-'.$row[0], 's', 'play', new ext_background($row[2].'|nm')); if ($row[3]) { $ext->add('app-announcement-'.$row[0], '_X', '', new ext_noop('User skipped announcement')); if ($row[5]) { $ext->add('app-announcement-'.$row[0], '_X', '', new ext_gotoif('$["x${IVR_CONTEXT}" = "x"]', $row[4].':${IVR_CONTEXT},return,1')); } else { $ext->add('app-announcement-'.$row[0], '_X', '', new ext_goto($row[4])); } } if ($row[7]) { $ext->add('app-announcement-'.$row[0], $row[7], '', new ext_goto('s,play')); } } else { $ext->add('app-announcement-'.$row[0], 's', '', new ext_playback($row[2].'|noanswer')); } // if repeat enabled then set exten to t to allow for the key to be pressed, otherwise play message and go $exten = $row[7] ? 't':'s'; if ($row[5]) { $ext->add('app-announcement-'.$row[0], $exten, '', new ext_gotoif('$["x${IVR_CONTEXT}" = "x"]', $row[4].':${IVR_CONTEXT},return,1')); } else { $ext->add('app-announcement-'.$row[0], $exten, '', new ext_goto($row[4])); } } break; } } function announcement_list() { global $db; $sql = "SELECT announcement_id, description, recording, allow_skip, post_dest, return_ivr, noanswer, repeat FROM announcement ORDER BY description "; $results = $db->getAll($sql); if(DB::IsError($results)) { die($results->getMessage()."

Error selecting from announcement"); } return $results; } function announcement_get($announcement_id) { global $db; $sql = "SELECT announcement_id, description, recording, allow_skip, post_dest, return_ivr, noanswer, repeat FROM announcement WHERE announcement_id = ".addslashes($announcement_id); $row = $db->getRow($sql); if(DB::IsError($row)) { die($row->getMessage()."

Errpr selecting row from announcement"); } return $row; } function announcement_add($description, $recording, $allow_skip, $post_dest, $return_ivr, $noanswer, $repeat) { global $db; $sql = "INSERT INTO announcement (description, recording, allow_skip, post_dest, return_ivr, noanswer, repeat) VALUES (". "'".addslashes($description)."', ". "'".addslashes($recording)."', ". "'".($allow_skip ? 1 : 0)."', ". "'".addslashes($post_dest)."', ". "'".($return_ivr ? 1 : 0)."', ". "'".($noanswer ? 1 : 0)."', ". "'".addslashes($repeat)."')"; $result = $db->query($sql); if(DB::IsError($result)) { die($result->getMessage().$sql); } } function announcement_delete($announcement_id) { global $db; $sql = "DELETE FROM announcement WHERE announcement_id = ".addslashes($announcement_id); $result = $db->query($sql); if(DB::IsError($result)) { die($result->getMessage().$sql); } } function announcement_edit($announcement_id, $description, $recording, $allow_skip, $post_dest, $return_ivr, $noanswer, $repeat) { global $db; $sql = "UPDATE announcement SET ". "description = '".addslashes($description)."', ". "recording = '".addslashes($recording)."', ". "allow_skip = '".($allow_skip ? 1 : 0)."', ". "post_dest = '".addslashes($post_dest)."', ". "return_ivr = '".($return_ivr ? 1 : 0)."', ". "noanswer = '".($noanswer ? 1 : 0)."', ". "repeat = '".addslashes($repeat)."' ". "WHERE announcement_id = ".addslashes($announcement_id); $result = $db->query($sql); if(DB::IsError($result)) { die($result->getMessage().$sql); } } ?>