$vars['__EXTENSION'] = $extension; if ($argc == 4) { $vars['NAME_RECORDING'] = $argv[3]; } # Connect to the AGI $asm = new AGI_AsteriskManager(); $asm->connect(); # Get language $language = Aastra_get_language(); # Notify each phone for ($i = 0; $i < sizeof($notify); $i++) { $vars['__REALCALLERIDNUM'] = $notify[$i]; $state = $asm->ExtensionState($notify[$i], 'default'); if ($state['Status'] != 0) { $vars['NOTIFY_VM'] = 'true'; } while (list($key, $val) = each($vars)) { $vars_arr[] = "{$key}={$val}"; } if (Aastra_compare_version_Asterisk('1.6')) { $vars = implode(',', $vars_arr); } else { $vars = implode('|', $vars_arr); } $res = $asm->Originate2('Local/' . $notify[$i] . '@presence-notify', 9999, 'default', 1, null, null, null, sprintf(Aastra_get_label('%s is back <%s>', $language), $extension, $extension), $vars); flush(); sleep(30); // give them a break inbetween calls, so they don't get flood of them all at once ;) } # Disconnect properly $asm->disconnect();
function Aastra_set_devstate_Asterisk($device, $state, $asm = NULL) { # Connect to AGI if needed if ($asm == NULL) { $as = new AGI_AsteriskManager(); $res = $as->connect(); } else { $as = $asm; } if (Aastra_compare_version_Asterisk('1.6')) { $res = $as->Command('devstate change ' . $device . ' ' . $state); } else { $res = $as->Command('core set global DEVSTATE(' . $device . ') ' . $state); $res = $as->Command('core set global DEVICE_STATE(' . $device . ') ' . $state); } # Disconnect properly if ($asm == NULL) { $as->disconnect(); } }