function presencestate_prefs_get($extension)
{
    global $db;
    $sql = 'SELECT item_id, pref FROM presencestate_prefs WHERE extension = ?';
    $ret = $db->getAll($sql, array($extension), DB_FETCHMODE_ASSOC);
    if (DB::isError($ret)) {
        die_freepbx("Could not get presence state preferences.\n");
    }
    $presencestates = presencestate_list_get();
    foreach ($presencestates as $presencestate) {
        if ($presencestate['type'] == "dnd") {
            /* Default to DND. */
            $prefs[$presencestate['id']] = "dnd";
        } else {
            $prefs[$presencestate['id']] = '';
        }
    }
    foreach ($ret as $row) {
        $prefs[$row['item_id']] = $row['pref'];
    }
    return $prefs;
}
 public function ajaxHandler()
 {
     if ($_REQUEST['command'] == 'getJSON') {
         switch ($_REQUEST['jdata']) {
             case 'grid':
                 $list = presencestate_list_get();
                 $types = presencestate_types_get();
                 $ret = array();
                 foreach ($list as $item) {
                     $ret[] = array('id' => $item['id'], 'message' => $item['message'], 'type' => $types[$item['type']]);
                 }
                 return $ret;
                 break;
             default:
                 print json_encode(_("Invalid Request"));
                 break;
         }
     }
 }
 /**
  * @verb GET
  * @returns - a list of presencestates
  * @uri /presencestate/list
  */
 function get_presencestate_list($params)
 {
     $presencestates = presencestate_list_get();
     return $presencestates ? $presencestates : false;
 }