Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP Country Locale Phone Provisioning Issue #79

Open
mbielech5 opened this issue Mar 28, 2022 · 1 comment
Open

HTTP Country Locale Phone Provisioning Issue #79

mbielech5 opened this issue Mar 28, 2022 · 1 comment

Comments

@mbielech5
Copy link

Hello All:

I am trying to setup HTTP provisioning instead of TFTP due to decreasing the Cisco phone's boot-up time. I am not sure whether to post this issue here at sccp_manager or under provision_sccp, but the two are closely connected to each other.

To start off, I have installed chan_sccp, sccp_manager, and provision_sccp in that order on a FreePBX 16 system with Asterisk 16. The Default Device Language has been set to English_United_States and the Network Country is United_States.

The phones can get most of the files (firmware, config, ringtones, wallpapers, etc.) via HTTP requests, but are unable to pull down the country-specific files, specifically the /United_States/g3-tones.xml file. Between the index.php file and the index.cnf file located in the /tftpboot folder, the Apache webserver is providing a link to the phone to g3-tones.xml at /tftpboot/locales/languages/United_States/g3-tones.xml but this should be at /tftpboot/locales/countries/United_States/g3-tones.xml

Here's where it becomes more difficult: sccp_manager is looking for the language and country files to be located inside the 'locales' folder of /tftpboot to generate the device configuration files with, while provision_sccp is using a 'language' file (and no 'country' file) directly on the root of the /tftpboot folder (not nested within the 'locales' folder).

No matter what I change in the index.cnf file, I cannot modify or reroute the countries request (g3-tones.xml) from the phone to the 'countries' folder located in the 'locales' folder. And yet, with debug set to on, the 'countries' and 'languages' values are at the correct location of /tftpboot/locales/countries and /tftpboot/locales/languages respectively.

I also noticed when setting the default_language in index.cnf, the value is /tftpboot/locales/English_United_States but should be /tftpboot/locales/languages/English_United_States. Adding a languages/ to the beginning when setting this value seems to correct this.

On the other hand, the TFTP re-writes/map file works as expected and I can always provision the files via TFTP; though much slower since the phones try to connect via HTTP first, then TFTP second.

So far, the current workaround I came up with is to temporarily disable the tftpboot.conf Apache webserver, forcing the phones to update the initial firmware and config file over TFTP initially, and then re-enable the tftpboot.conf Apache webserver. It appears that the phones only request the locale information once a firmware has been changed or updated, and I am sure the phones will operate just fine without the locale information downloaded; but it would be nice to have the best of both worlds.

I do realize that there is an open request to port the index.php file into an Apache mod_rewrite webserver config file, but is there anyone able to take a look at this issue to get it work with the current index.php/index.cnf method for now to work with both sccp_manager and provision_sccp together?

Below are some config files and debug output if it helps anyone with the issue:

tftpboot.conf

Listen 6970
<VirtualHost *:6970>
    DocumentRoot "/tftpboot"
    ErrorLog /var/log/httpd/tftp.error.log
    CustomLog /var/log/httpd/tftp.access.log combined

    <Directory /tftpboot>
      Options FollowSymlinks
      AllowOverride none
      Require all granted
      RewriteEngine on
      RewriteBase "/"
      RewriteCond "/tftpboot/%{REQUEST_FILENAME}" !-f
      RewriteCond "/tftpboot/%{REQUEST_FILENAME}" !-d
      RewriteRule "(.*)" "index.php?id=$1" [PT,QSA]
    </Directory>

    <Directory />
        Options FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>

    <Location />
      Require all granted
    </Location>

    Alias / "/tftpboot/"
</VirtualHost>

index.cnf

[main]
tftproot = /tftpboot
firmware = firmware
settings = settings
locales = locales
languages = languages
templates = templates
dialplan = dialplan
softkey = softkey
ringtones = ringtones
wallpapers = wallpapers
countries = countries
debug = 1
log = /tftpboot/provision.log
default_language = languages/English_United_States

index.php

<?php
//
// Written by Alex / github.com/PhantomVI
//

$base_path = realpath($_SERVER['DOCUMENT_ROOT']);
$base_config = Array(
    'debug' => 1,
    'tftproot' => $base_path,
    'default_language' => 'English_United_States',
    'firmware' => 'firmware', 'settings' => 'settings', 'wallpapers' => 'wallpapers', 'ringtones' => 'ringtones',
    'locales' => 'locales', 'countries' => 'countries', 'languages' => 'languages'
);
$base_tree = Array('settings' => 'tftproot', 'wallpapers' => 'tftproot', 'ringtones'=>'tftproot',
                   'locales' => 'tftproot',  'firmware' => 'tftproot', 'languages' => 'locales', 
                   'countries' => 'locales', 'default_language' => 'locales');

# Merge config
$ini_array = parse_ini_file('index.cnf');
if (!empty($ini_array)) {
    $config = array_merge($base_config, $ini_array);
}

foreach ($base_tree as $key => $value) {
     if (!empty($config[$key])) {
        if (substr($config[$key],0,1) != "/") {
             $config[$key] = $config[$value].'/'.$config[$key];
         }
     }
}
 
#$config['tftproot'] = (!empty($config['tftproot'])) ? $config['tftproot'] : '/tftpboot';

# Fixup debug
$print_debug = (!empty($config['debug'])) ? $config['debug'] : 'off';
$print_debug = ($print_debug == 1) ? 'on' : $print_debug;

# Parse request
$request = $_REQUEST;
$req_file = !empty($request['id']) ? $request['id'] : '';

# directory content extensions map
$fw_suffix = array('.bin', '.loads', '.sbn', '.sb2', '.sbin', '.zz', '.zup', '.loads');

//$settings_suffix = array('cnf.xml');

$ringtones_list = array('distinctive.xml', 'ringlist.xml','distinctiveringlist.xml');
$ringtones_suffix = array('.raw', '.pcm', '.rwb');

$locale_list = array('-dictionary.', 'dictionary-ext.', '-dictionary.utf-8.', '-kate.xml', '-font.xml', '-font.dat','-tones.xml',
                     'be-sccp.jar', 'tc-sccp.jar', 'td-sccp.jar', 'ipc-sccp.jar', 'mk-sccp.jar', '_locale.loads', 'i-button-help.xml',
                     'tc-sip.jar', 'td-sipp.jar');

# Show debug output
if ($print_debug == 'on') {
    print_r("<br> Config:<pre>");
    print_r($config);
    print("</pre>");
    print_r("<br> Request:<br><pre>");
    print_r($request);
    print("</pre>");
}

# Start parsing the request
$req_file_full_path = '' ;

if (!empty($req_file)) {
    $signed = FALSE;
    $req_data_ar = explode('/', $req_file);
    $req_data_len = count($req_data_ar) - 1;

    $orig_req_file_name = end($req_data_ar);
    $req_file_name = $orig_req_file_name;
    
    if (strpos('.sgn;', strtolower($orig_req_file_name).';') !== FALSE) {		// handle signed files
        $signed = TRUE;
        $req_file_name = basename($orig_req_file_name, '.sgn');				// strip signed part
    }

        
    if (file_exists($config['tftproot'].'/'.$req_file_name))				// prevent "/../...//" browsing - (eliminate back door)
    {
        $req_file_full_path = $config['tftproot'].'/'.$req_file_name;
    } 
    else 
    { 
        $tmp_file = explode('.', $req_file_name);
        
        if (strpos_array($req_file_name, $fw_suffix,'any') !== FALSE) {			// Firmware file was requested
            $firmware_list = find_all_files($config['firmware']);
            $pos2 = strpos_array($firmware_list, $req_file_name, 'any'); 		// case unsensitive
            if ($pos2 !== FALSE) { 							// Request Firmware 
                $req_file_full_path = $firmware_list[$pos2];
            }
            if ($print_debug == 'on'){ print_r('<br>Requested Firmware: '. $req_file_full_path. '<br>');}
        }
        else 
        {
            $tmp_file = '';

            //if (strpos_array($req_file_name, $settings_suffix, 'any') !==  FALSE) { 	// Request Settings
            if (strpos(strtolower($req_file_name), '.cnf.xml') !==  FALSE) {		// Request Settings
                $tmp_file = $config['settings'].'/'.$req_file_name;
            }
            else if (strpos(strtolower($req_file), 'desktops/') !== FALSE) { 		// Request Wallpapers
                $tmp_file = $config['wallpapers'].'/'. $req_data_ar[$req_data_len-1].'/'. $req_file_name;
            }
            else if (strpos_array($ringtones_list, $req_file_name, 'any') !== FALSE) {	// Request RingTones
                $tmp_file = $config['ringtones'].'/'.$req_file_name;
                if (!file_exists($tmp_file)) {
                    $tmp_file = $config['ringtones'].'/ringlist.xml';
                }
            } 
            else if(strpos_array($req_file_name, $ringtones_suffix,'any') !== FALSE) {			// Firmware file was requested
                $tmp_file = $config['ringtones'].'/'.$req_file_name;
            }
            else if (strpos_array($req_file, $locale_list, 'any') !== FALSE) { 		// Request Languages
                if (!empty($req_data_ar[$req_data_len-1])) {
                    $tmp_file = $config['languages'].'/'. $req_data_ar[$req_data_len-1].'/'. $req_file_name;
                } else {
                    $tmp_file = $config['default_language'].'/'. $req_file_name;
                }
            }
            
/*
            else if (strpos(strtolower($req_file), '-tones.xml') !== FALSE) { 		// Request Countries
                $tmp_file = $config['countries'].'/'. $req_data_ar[$req_data_len-1].'/'. $req_data_ar[$req_data_len];
            }
 
            else if (strpos(strtolower($req_file), '-dictionary.') !== FALSE) { 		// Request Countries
                $tmp_file = $config['languages'].'/'. $req_data_ar[$req_data_len-1].'/'. $req_data_ar[$req_data_len];
            }

            else if (strpos_array($req_file, $locale_list, 'any') !== FALSE) { 		// Request Languages
                $tmp_file = $config['languages'].'/'. $req_data_ar[$req_data_len-1].'/'. $req_data_ar[$req_data_len];
            }

            else if (strpos(strtolower($req_file), '-dictionary.jar') !== FALSE) { 	// Request Countries
                $tmp_file = $config['languages'].'/'. $req_data_ar[$req_data_len-1].'/'. $req_data_ar[$req_data_len];
            }
*/
            if ($print_debug == 'on'){ print_r('<br>File : '. $orig_req_file_name. ' not found.<br>');}
            if (empty($tmp_file)) { 
                if (!empty($config['log'])) { to_log(array('GET ('.$req_file.'):'.$orig_req_file_name, 'no match found'),'E',$config['log']); }
                header("HTTP/1.0 404 Not Found");
                die('ERROR: no match found.');
            }
            $req_file_full_path = $tmp_file;
        }
    }
    if (!empty($config['log'])) { to_log(array('GET ('.$req_file.') :'.$orig_req_file_name, 'Remap :'.$req_file_full_path),'i',$config['log']); }
    
    if (!empty($req_file_full_path)) { 
        if ($signed) {
            $req_file_full_path .= '.sgn';
        }
        if (!file_exists($req_file_full_path)) { 
            header("HTTP/1.0 404 Not Found");
            die('Could not find:'. $req_file_full_path);
        }
        if ($print_debug == 'on'){ print_r('<br>Returning: '. $req_file_full_path. '<br>');}
        file_force_download($req_file_full_path);
    } 
} 

/*
 * Helper functiosn 
 */
function file_force_download($file) {
  if (file_exists($file)) {

    if (ob_get_level()) {
      ob_end_clean();
    }

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));

    if ($fd = fopen($file, 'rb')) {
      while (!feof($fd)) {
        print fread($fd, 1024);
      }
      fclose($fd);
    }
    exit;
  }
}

/*
 *  Founds any string from array in array 
 */
function strpos_array($haystack, $needles, $mode='any') {
    if (is_array($needles)) {
        foreach ($needles as $str) {
            $pos = strpos_array($haystack, $str, $mode);
            if ($pos !== FALSE) {
                return $pos;
            }
        }
    } else {
        if (is_array($haystack)) {
            foreach ($haystack as $key => $subtr) {
                $pos = strpos_array($subtr, $needles, $mode);
                if ($pos !== FALSE) {
                    return $key;
                }
            }
            return FALSE;
        } else {
            if ($mode == 'any') {
                return strpos(strtolower($haystack), strtolower($needles));
            } else {
                if ($mode == 'full') {
                    if ($haystack == $needles) {
                        return 0;
                    } else {
                        return FALSE;
                    }
                } else {
                    return strpos($haystack, $needles);
                }
                    
            }
        }
    }
    return FALSE;
}

function to_log($text, $level='i', $file) {
    switch (strtolower($level)) {
        case 'e':
        case 'error':
            $level='ERROR';
            break;
        case 'i':
        case 'info':
            $level='INFO';
            break;
        case 'd':
        case 'debug':
            $level='DEBUG';
            break;
        default:
            $level='INFO';
    }
    if (is_array($text)) {
        $to_log = '';
        foreach ($text as $value) {
           $to_log .= $value."\t";
        }
    } else {
        $to_log .= $text;
    }
    $_txt = date('d.m.Y h:i:s')."\t[".$level."]\t ".$to_log."\n"; 
    if (empty($file)) {
        error_log($_txt, 0);
    } else {
        error_log($_txt, 3, $file);    
    }
}

function find_all_files($dir, $file_mask=null, $mode='full'){

    $result = NULL;
    if (empty($dir) || (!file_exists($dir))) {
        return $result;
    }

    $root = scandir($dir);
    foreach($root as $value) {
        if($value === '.' || $value === '..') {continue;}
        if(is_file("$dir/$value")) {
            $filter = FALSE;
            if (!empty($file_mask)) {
                if (is_array($file_mask)) {
                    foreach ($file_mask as $k){
                        if (strpos(strtolower($value), strtolower($k)) !== FALSE) {$filter = true;}
                    }
                } else {
                    if (strpos(strtolower($value), strtolower($file_mask)) !== FALSE) {$filter = true;}
                }
              } else {$filter = true;}
            if ($filter) {
                if ($mode=='fileonly'){
                    $result[]="$value";
                } else {
                    $result[]="$dir/$value";
                }
            } else {$result[]=null;}
            continue;
        }
        $sub_fiend = find_all_files("$dir/$value", $file_mask, $mode);
        if (!empty($sub_fiend)) {
            foreach($sub_fiend as $sub_value) {
                if (!empty($sub_value)) {
                    $result[]=$sub_value;
                }
            }
        }
    }
    return $result;
} 

/var/log/httpd/tftp.access.log

10.98.1.5 - - [28/Mar/2022:11:30:19 -0400] "GET /term61.default.loads HTTP/1.1" 200 648 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:30:20 -0400] "GET /jar41sccp.9-4-2ES26.sbn HTTP/1.1" 200 1630052 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:30:26 -0400] "GET /cnu41.9-4-2ES26.sbn HTTP/1.1" 200 556833 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:30:29 -0400] "GET /apps41.9-4-2ES26.sbn HTTP/1.1" 200 3157527 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:30:40 -0400] "GET /dsp41.9-4-2ES26.sbn HTTP/1.1" 200 562693 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:30:42 -0400] "GET /cvm41sccp.9-4-2ES26.sbn HTTP/1.1" 200 2219477 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:32:25 -0400] "GET /CTLSEP001E4A93748B.tlv HTTP/1.1" 404 688 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:32:25 -0400] "GET /ITLSEP001E4A93748B.tlv HTTP/1.1" 404 688 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:32:25 -0400] "GET /ITLFile.tlv HTTP/1.1" 404 666 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:32:26 -0400] "GET /SEP001E4A93748B.cnf.xml HTTP/1.1" 200 3373 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:32:54 -0400] "GET /SCCP41.9-4-2SR3-1S.loads HTTP/1.1" 200 652 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:32:57 -0400] "GET /jar41sccp.9-4-2ES26.sbn HTTP/1.1" 200 1630052 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:33:04 -0400] "GET /cnu41.9-4-2ES26.sbn HTTP/1.1" 200 556833 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:33:08 -0400] "GET /apps41.9-4-2ES26.sbn HTTP/1.1" 200 3157527 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:33:20 -0400] "GET /dsp41.9-4-2ES26.sbn HTTP/1.1" 200 562693 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:33:25 -0400] "GET /cvm41sccp.9-4-2ES26.sbn HTTP/1.1" 200 2219477 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:34:43 -0400] "GET /CTLSEP001E4A93748B.tlv HTTP/1.1" 404 688 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:34:43 -0400] "GET /ITLSEP001E4A93748B.tlv HTTP/1.1" 404 688 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:34:43 -0400] "GET /ITLFile.tlv HTTP/1.1" 404 666 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:34:43 -0400] "GET /SEP001E4A93748B.cnf.xml HTTP/1.1" 200 3373 "-" "-"
10.98.1.5 - - [28/Mar/2022:11:34:51 -0400] "GET /English_United_States/mk-sccp.jar HTTP/1.1" 200 58726 "-" "-"
-->10.98.1.5 - - [28/Mar/2022:11:34:53 -0400] "GET /United_States/g3-tones.xml HTTP/1.1" 404 729 "-" "-"<--

/tftpboot/provision.log

28.03.2022 03:25:03	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:25:03	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:25:03	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:25:03	[INFO]	 GET (ToveLow-Habits.raw) :ToveLow-Habits.raw	Remap :/tftpboot/ringtones/ToveLow-Habits.raw	
28.03.2022 03:25:04	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:27:14	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:27:15	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:27:15	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:27:15	[INFO]	 GET (ToveLow-Habits.raw) :ToveLow-Habits.raw	Remap :/tftpboot/ringtones/ToveLow-Habits.raw	
28.03.2022 03:27:16	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:28:26	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:28:26	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:28:26	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:28:26	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:28:27	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:28:27	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:28:27	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:28:27	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:28:27	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:28:28	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:28:29	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:28:32	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:30:19	[INFO]	 GET (term61.default.loads) :term61.default.loads	Remap :/tftpboot/firmware/7941/term61.default.loads	
28.03.2022 03:30:20	[INFO]	 GET (jar41sccp.9-4-2ES26.sbn) :jar41sccp.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/jar41sccp.9-4-2ES26.sbn	
28.03.2022 03:30:26	[INFO]	 GET (cnu41.9-4-2ES26.sbn) :cnu41.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/cnu41.9-4-2ES26.sbn	
28.03.2022 03:30:29	[INFO]	 GET (apps41.9-4-2ES26.sbn) :apps41.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/apps41.9-4-2ES26.sbn	
28.03.2022 03:30:40	[INFO]	 GET (dsp41.9-4-2ES26.sbn) :dsp41.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/dsp41.9-4-2ES26.sbn	
28.03.2022 03:30:42	[INFO]	 GET (cvm41sccp.9-4-2ES26.sbn) :cvm41sccp.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/cvm41sccp.9-4-2ES26.sbn	
28.03.2022 03:32:25	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:32:25	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:32:25	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:32:26	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:32:54	[INFO]	 GET (SCCP41.9-4-2SR3-1S.loads) :SCCP41.9-4-2SR3-1S.loads	Remap :/tftpboot/firmware/7941/SCCP41.9-4-2SR3-1S.loads	
28.03.2022 03:32:57	[INFO]	 GET (jar41sccp.9-4-2ES26.sbn) :jar41sccp.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/jar41sccp.9-4-2ES26.sbn	
28.03.2022 03:33:04	[INFO]	 GET (cnu41.9-4-2ES26.sbn) :cnu41.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/cnu41.9-4-2ES26.sbn	
28.03.2022 03:33:08	[INFO]	 GET (apps41.9-4-2ES26.sbn) :apps41.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/apps41.9-4-2ES26.sbn	
28.03.2022 03:33:20	[INFO]	 GET (dsp41.9-4-2ES26.sbn) :dsp41.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/dsp41.9-4-2ES26.sbn	
28.03.2022 03:33:25	[INFO]	 GET (cvm41sccp.9-4-2ES26.sbn) :cvm41sccp.9-4-2ES26.sbn	Remap :/tftpboot/firmware/7941/cvm41sccp.9-4-2ES26.sbn	
28.03.2022 03:34:43	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:34:43	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:34:43	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:34:43	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:34:51	[INFO]	 GET (English_United_States/mk-sccp.jar) :mk-sccp.jar	Remap :/tftpboot/locales/languages/English_United_States/mk-sccp.jar	
28.03.2022 03:34:53	[INFO]	 GET (United_States/g3-tones.xml) :g3-tones.xml	Remap :/tftpboot/locales/languages/United_States/g3-tones.xml	
28.03.2022 03:36:14	[INFO]	 GET (English_United_States/mk-sccp.jar) :mk-sccp.jar	Remap :/tftpboot/locales/languages/English_United_States/mk-sccp.jar	
28.03.2022 03:36:31	[INFO]	 GET (United_States/g3-tones.xml) :g3-tones.xml	Remap :/tftpboot/locales/languages/United_States/g3-tones.xml	
28.03.2022 03:36:31	[ERROR]	 GET (favicon.ico):favicon.ico	no match found	
28.03.2022 03:36:35	[ERROR]	 GET (CTLSEP001E4A93748B.tlv):CTLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:36:35	[ERROR]	 GET (ITLSEP001E4A93748B.tlv):ITLSEP001E4A93748B.tlv	no match found	
28.03.2022 03:36:35	[ERROR]	 GET (ITLFile.tlv):ITLFile.tlv	no match found	
28.03.2022 03:36:35	[INFO]	 GET (SEP001E4A93748B.cnf.xml) :SEP001E4A93748B.cnf.xml	Remap :/tftpboot/settings/SEP001E4A93748B.cnf.xml	
28.03.2022 03:36:40	[INFO]	 GET (United_States/g3-tones.xml) :g3-tones.xml	Remap :/tftpboot/locales/languages/United_States/g3-tones.xml	
28.03.2022 04:37:23	[INFO]	 GET (United_States/g3-tones.xml) :g3-tones.xml	Remap :/tftpboot/locales/languages/United_States/g3-tones.xml

/var/log/messages

Mar 28 11:38:42 freepbx in.tftpd[2080]: RRQ from 10.98.1.5 filename term61.default.loads remapped to firmware/7941/term61.default.loads
Mar 28 11:38:42 freepbx in.tftpd[2080]: Client 10.98.1.5 finished term61.default.loads
Mar 28 11:38:44 freepbx in.tftpd[2081]: RRQ from 10.98.1.5 filename jar41sccp.9-4-2ES26.sbn remapped to firmware/7941/jar41sccp.9-4-2ES26.sbn
Mar 28 11:38:47 freepbx in.tftpd[2081]: Client 10.98.1.5 finished jar41sccp.9-4-2ES26.sbn
Mar 28 11:38:52 freepbx in.tftpd[2082]: RRQ from 10.98.1.5 filename cnu41.9-4-2ES26.sbn remapped to firmware/7941/cnu41.9-4-2ES26.sbn
Mar 28 11:38:53 freepbx in.tftpd[2082]: Client 10.98.1.5 finished cnu41.9-4-2ES26.sbn
Mar 28 11:38:56 freepbx in.tftpd[2083]: RRQ from 10.98.1.5 filename apps41.9-4-2ES26.sbn remapped to firmware/7941/apps41.9-4-2ES26.sbn
Mar 28 11:39:02 freepbx in.tftpd[2083]: Client 10.98.1.5 finished apps41.9-4-2ES26.sbn
Mar 28 11:39:10 freepbx in.tftpd[2119]: RRQ from 10.98.1.5 filename dsp41.9-4-2ES26.sbn remapped to firmware/7941/dsp41.9-4-2ES26.sbn
Mar 28 11:39:11 freepbx in.tftpd[2119]: Client 10.98.1.5 finished dsp41.9-4-2ES26.sbn
Mar 28 11:39:14 freepbx in.tftpd[2120]: RRQ from 10.98.1.5 filename cvm41sccp.9-4-2ES26.sbn remapped to firmware/7941/cvm41sccp.9-4-2ES26.sbn
Mar 28 11:39:18 freepbx in.tftpd[2120]: Client 10.98.1.5 finished cvm41sccp.9-4-2ES26.sbn
Mar 28 11:41:05 freepbx in.tftpd[2244]: RRQ from 10.98.1.5 filename CTLSEP001E4A93748B.tlv remapped to settings/CTLSEP001E4A93748B.tlv
Mar 28 11:41:05 freepbx in.tftpd[2244]: Client 10.98.1.5 File not found settings/CTLSEP001E4A93748B.tlv
Mar 28 11:41:06 freepbx in.tftpd[2245]: RRQ from 10.98.1.5 filename ITLSEP001E4A93748B.tlv remapped to settings/ITLSEP001E4A93748B.tlv
Mar 28 11:41:06 freepbx in.tftpd[2245]: Client 10.98.1.5 File not found settings/ITLSEP001E4A93748B.tlv
Mar 28 11:41:06 freepbx in.tftpd[2246]: RRQ from 10.98.1.5 filename ITLFile.tlv remapped to settings/ITLFile.tlv
Mar 28 11:41:06 freepbx in.tftpd[2246]: Client 10.98.1.5 File not found settings/ITLFile.tlv
Mar 28 11:41:06 freepbx in.tftpd[2247]: RRQ from 10.98.1.5 filename SEP001E4A93748B.cnf.xml remapped to settings/SEP001E4A93748B.cnf.xml
Mar 28 11:41:06 freepbx in.tftpd[2247]: Client 10.98.1.5 finished SEP001E4A93748B.cnf.xml
Mar 28 11:41:34 freepbx in.tftpd[2254]: RRQ from 10.98.1.5 filename SCCP41.9-4-2SR3-1S.loads remapped to firmware/7941/SCCP41.9-4-2SR3-1S.loads
Mar 28 11:41:34 freepbx in.tftpd[2254]: Client 10.98.1.5 finished SCCP41.9-4-2SR3-1S.loads
Mar 28 11:41:37 freepbx in.tftpd[2255]: RRQ from 10.98.1.5 filename jar41sccp.9-4-2ES26.sbn remapped to firmware/7941/jar41sccp.9-4-2ES26.sbn
Mar 28 11:41:40 freepbx in.tftpd[2255]: Client 10.98.1.5 finished jar41sccp.9-4-2ES26.sbn
Mar 28 11:41:47 freepbx in.tftpd[2257]: RRQ from 10.98.1.5 filename cnu41.9-4-2ES26.sbn remapped to firmware/7941/cnu41.9-4-2ES26.sbn
Mar 28 11:41:48 freepbx in.tftpd[2257]: Client 10.98.1.5 finished cnu41.9-4-2ES26.sbn
Mar 28 11:41:52 freepbx in.tftpd[2258]: RRQ from 10.98.1.5 filename apps41.9-4-2ES26.sbn remapped to firmware/7941/apps41.9-4-2ES26.sbn
Mar 28 11:41:58 freepbx in.tftpd[2258]: Client 10.98.1.5 finished apps41.9-4-2ES26.sbn
Mar 28 11:42:09 freepbx in.tftpd[2294]: RRQ from 10.98.1.5 filename dsp41.9-4-2ES26.sbn remapped to firmware/7941/dsp41.9-4-2ES26.sbn
Mar 28 11:42:10 freepbx in.tftpd[2294]: Client 10.98.1.5 finished dsp41.9-4-2ES26.sbn
Mar 28 11:42:14 freepbx in.tftpd[2295]: RRQ from 10.98.1.5 filename cvm41sccp.9-4-2ES26.sbn remapped to firmware/7941/cvm41sccp.9-4-2ES26.sbn
Mar 28 11:42:18 freepbx in.tftpd[2295]: Client 10.98.1.5 finished cvm41sccp.9-4-2ES26.sbn
Mar 28 11:43:32 freepbx in.tftpd[2331]: RRQ from 10.98.1.5 filename CTLSEP001E4A93748B.tlv remapped to settings/CTLSEP001E4A93748B.tlv
Mar 28 11:43:32 freepbx in.tftpd[2331]: Client 10.98.1.5 File not found settings/CTLSEP001E4A93748B.tlv
Mar 28 11:43:32 freepbx in.tftpd[2332]: RRQ from 10.98.1.5 filename ITLSEP001E4A93748B.tlv remapped to settings/ITLSEP001E4A93748B.tlv
Mar 28 11:43:32 freepbx in.tftpd[2332]: Client 10.98.1.5 File not found settings/ITLSEP001E4A93748B.tlv
Mar 28 11:43:32 freepbx in.tftpd[2333]: RRQ from 10.98.1.5 filename ITLFile.tlv remapped to settings/ITLFile.tlv
Mar 28 11:43:32 freepbx in.tftpd[2333]: Client 10.98.1.5 File not found settings/ITLFile.tlv
Mar 28 11:43:33 freepbx in.tftpd[2334]: RRQ from 10.98.1.5 filename SEP001E4A93748B.cnf.xml remapped to settings/SEP001E4A93748B.cnf.xml
Mar 28 11:43:33 freepbx in.tftpd[2334]: Client 10.98.1.5 finished SEP001E4A93748B.cnf.xml
Mar 28 11:43:42 freepbx in.tftpd[2341]: RRQ from 10.98.1.5 filename English_United_States/mk-sccp.jar remapped to locales/languages/English_United_States/mk-sccp.jar
Mar 28 11:43:43 freepbx in.tftpd[2341]: Client 10.98.1.5 finished English_United_States/mk-sccp.jar
Mar 28 11:43:45 freepbx in.tftpd[2342]: RRQ from 10.98.1.5 filename United_States/g3-tones.xml remapped to locales/countries/United_States/g3-tones.xml
Mar 28 11:43:45 freepbx in.tftpd[2342]: Client 10.98.1.5 finished United_States/g3-tones.xml

Thank you everyone :)

@mbielech5
Copy link
Author

Also, here is my server info screen:

SCCPServerInfo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant