public static function get_pages_possible_jumps($lessonid) {
        global $USER;

        $params = array('lessonid' => $lessonid);
        $params = self::validate_parameters(self::get_pages_possible_jumps_parameters(), $params);

        $warnings = $jumps = array();

        list($lesson, $course, $cm, $context) = self::validate_lesson($params['lessonid']);

        // Only return for managers or if offline attempts are enabled.
        if ($lesson->can_manage() || $lesson->allowofflineattempts) {

            $lessonpages = $lesson->load_all_pages();
            foreach ($lessonpages as $page) {
                $jump = array();
                $jump['pageid'] = $page->id;

                $answers = $page->get_answers();
                if (count($answers) > 0) {
                    foreach ($answers as $answer) {
                        $jump['answerid'] = $answer->id;
                        $jump['jumpto'] = $answer->jumpto;
                        $jump['calculatedjump'] = $lesson->calculate_new_page_on_jump($page, $answer->jumpto);
                        // Special case, only applies to branch/end of branch.
                        if ($jump['calculatedjump'] == LESSON_RANDOMBRANCH) {
                            $jump['calculatedjump'] = lesson_unseen_branch_jump($lesson, $USER->id);
                        }
                        $jumps[] = $jump;
                    }
                } else {
                    // Imported lessons from 1.x.
                    $jump['answerid'] = 0;
                    $jump['jumpto'] = $page->nextpageid;
                    $jump['calculatedjump'] = $lesson->calculate_new_page_on_jump($page, $page->nextpageid);
                    $jumps[] = $jump;
                }
            }
        }

        $result = array(
            'jumps' => $jumps,
            'warnings' => $warnings,
        );
        return $result;
    }