/** * @verb GET * @returns - a list of users' findmefollow settings * @uri /findmefollow/users */ function get_findmefollow_users($params) { $users = array(); $findmefollow_allusers = findmefollow_allusers(); foreach ($findmefollow_allusers as $user) { $users[$user[0]] = $user[1]; unset($user); } return $users ? $users : false; }
//edit group - just delete and then re-add the extension if ($action == 'edtGRP') { findmefollow_del($account); findmefollow_add($account, $strategy, $grptime, implode("-", $grplist), $goto, $grppre, $annmsg_id, $dring, $needsconf, $remotealert_id, $toolate_id, $ringing, $pre_ring, $ddial, $changecid, $fixedcid); needreload(); redirect_standard('extdisplay'); } } } ?> </div> <div class="rnav"><ul> <?php //get unique ring groups $gresults = findmefollow_allusers(); $set_users = findmefollow_list(); if (isset($gresults)) { foreach ($gresults as $gresult) { $defined = is_array($set_users) ? in_array($gresult[0], $set_users) ? "(edit)" : "(add)" : "add"; echo "<li><a class=\"" . ($extdisplay == 'GRP-' . $gresult[0] ? 'current' : '') . "\" href=\"config.php?display=" . urlencode($dispnum) . "&extdisplay=" . urlencode("GRP-" . $gresult[0]) . "\">" . _("{$gresult['1']}") . " <{$gresult[0]}> {$defined} </a></li>"; } } ?> </ul></div> <div class="content"> <?php if ($extdisplay == "") { echo '<br><h2>' . _("Follow Me") . '</h2><br><h3>' . _('Choose a user/extension:') . '</h3><br><br><br><br><br><br><br>'; } elseif ($action == 'delGRP') {
function findmefollow_add($grpnum, $strategy, $grptime, $grplist, $postdest, $grppre = '', $annmsg_id = '', $dring, $needsconf, $remotealert_id, $toolate_id, $ringing, $pre_ring, $ddial, $changecid = 'default', $fixedcid = '') { global $amp_conf; global $astman; global $db; if (empty($postdest)) { $postdest = "ext-local,{$grpnum},dest"; } //Follow Me auto # on external number. //http://code.freepbx.org/cru/FREEPBX-51#CFR-111 $users = findmefollow_allusers(); $users = is_array($users) ? $users : array(); foreach ($users as $user) { $extens[$user[0]] = $user[1]; } $list = !is_array($grplist) ? explode("-", $grplist) : $grplist; foreach (array_keys($list) as $key) { // remove invalid chars $list[$key] = preg_replace("/[^0-9*+]/", "", $list[$key]); if ($list[$key] == "") { unset($list[$key]); continue; } if (empty($extens[$list[$key]])) { /* Extension not found. Must be an external number. */ $list[$key] .= '#'; } } $grplist = implode("-", $list); $sql = "INSERT INTO findmefollow (grpnum, strategy, grptime, grppre, grplist, annmsg_id, postdest, dring, needsconf, remotealert_id, toolate_id, ringing, pre_ring) VALUES ('" . $db->escapeSimple($grpnum) . "', '" . $db->escapeSimple($strategy) . "', " . $db->escapeSimple($grptime) . ", '" . $db->escapeSimple($grppre) . "', '" . $db->escapeSimple($grplist) . "', '" . $db->escapeSimple($annmsg_id) . "', '" . $db->escapeSimple($postdest) . "', '" . $db->escapeSimple($dring) . "', '{$needsconf}', '{$remotealert_id}', '{$toolate_id}', '{$ringing}', '{$pre_ring}')"; $results = sql($sql); if ($astman) { $astman->database_put("AMPUSER", $grpnum . "/followme/prering", isset($pre_ring) ? $pre_ring : ''); $astman->database_put("AMPUSER", $grpnum . "/followme/grptime", isset($grptime) ? $grptime : ''); $astman->database_put("AMPUSER", $grpnum . "/followme/grplist", isset($grplist) ? $grplist : ''); $needsconf = isset($needsconf) ? $needsconf : ''; $confvalue = $needsconf == 'CHECKED' ? 'ENABLED' : 'DISABLED'; $astman->database_put("AMPUSER", $grpnum . "/followme/grpconf", $confvalue); $ddial = isset($ddial) ? $ddial : ''; $ddialvalue = $ddial == 'CHECKED' ? 'EXTENSION' : 'DIRECT'; $astman->database_put("AMPUSER", $grpnum . "/followme/ddial", $ddialvalue); if ($amp_conf['USEDEVSTATE']) { $ddialstate = $ddial == 'CHECKED' ? 'NOT_INUSE' : 'BUSY'; $devices = $astman->database_get("AMPUSER", $grpnum . "/device"); $device_arr = explode('&', $devices); foreach ($device_arr as $device) { $astman->set_global($amp_conf['AST_FUNC_DEVICE_STATE'] . "(Custom:FOLLOWME{$device})", $ddialstate); } } $astman->database_put("AMPUSER", $grpnum . "/followme/changecid", $changecid); $fixedcid = preg_replace("/[^0-9\\+]/", "", trim($fixedcid)); $astman->database_put("AMPUSER", $grpnum . "/followme/fixedcid", $fixedcid); } else { fatal("Cannot connect to Asterisk Manager with " . $amp_conf["AMPMGRUSER"] . "/" . $amp_conf["AMPMGRPASS"]); } }