function customcontexts_configpageinit($dispnum)
{
    global $currentcomponent;
    $extdisplay = isset($_REQUEST['extdisplay']) ? $_REQUEST['extdisplay'] : null;
    if ($extdisplay == '') {
        return true;
    }
    if ($dispnum == 'devices' || $dispnum == 'extensions') {
        $device_info = core_devices_get($extdisplay);
        if (empty($device_info)) {
            return true;
        } else {
            $tech = $device_info['tech'];
            switch ($tech) {
                case 'iax2':
                case 'iax':
                case 'sip':
                case 'dahdi':
                case 'zap':
                    $_REQUEST['tech'] = $tech;
                    $_REQUEST['customcontext'] = $device_info['context'];
                    break;
                default:
                    return true;
            }
        }
    } else {
        return true;
    }
    $contextssel = customcontexts_getcontexts();
    $currentcomponent->addoptlistitem('contextssel', 'from-internal', 'ALLOW ALL (Default)');
    foreach ($contextssel as $val) {
        $currentcomponent->addoptlistitem('contextssel', $val[0], $val[1]);
    }
    $currentcomponent->setoptlistopts('contextssel', 'sort', false);
    switch ($dispnum) {
        case 'devices':
            $currentcomponent->addguifunc('customcontexts_devices_configpageload');
            break;
        case 'extensions':
            $currentcomponent->addguifunc('customcontexts_extensions_configpageload');
            break;
    }
}
<?php

/* $Id: page.customcontexts.php $ */
if (!defined('FREEPBX_IS_AUTH')) {
    die('No direct script access allowed');
}
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
$dispnum = 'customcontexts';
//used for switch on config.php
?>


<div class="rnav">
<?php 
$contexts = customcontexts_getcontexts();
drawListMenu($contexts, $skip, $type, $display, $extdisplay, _("Context"));
?>
</div>