Portions created by the Initial Developer are Copyright (C) 2008-2020 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('var_add') || permission_exists('var_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //set the action as an add or an update if (is_uuid($_REQUEST["id"])) { $action = "update"; $var_uuid = $_REQUEST["id"]; } else { $action = "add"; } //set http values as php variables if (count($_POST) > 0) { $var_category = trim($_POST["var_category"]); $var_name = trim($_POST["var_name"]); $var_value = trim($_POST["var_value"]); $var_command = trim($_POST["var_command"]); $var_hostname = trim($_POST["var_hostname"]); $var_enabled = trim($_POST["var_enabled"]); $var_order = trim($_POST["var_order"]); $var_description = trim($_POST["var_description"]); $var_description = str_replace("''", "'", $var_description); if (strlen($_POST["var_category_other"]) > 0) { $var_category = trim($_POST["var_category_other"]); } } //process the post if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //get the uuid if ($action == "update") { $var_uuid = $_POST["var_uuid"]; } //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: vars.php'); exit; } //check for all required data $msg = ''; //if (strlen($var_category) == 0) { $msg .= $text['message-required'].$text['label-category']."
\n"; } if (strlen($var_name) == 0) { $msg .= $text['message-required'].$text['label-name']."
\n"; } //if (strlen($var_value) == 0) { $msg .= $text['message-required'].$text['label-value']."
\n"; } //if (strlen($var_command) == 0) { $msg .= $text['message-required'].$text['label-command']."
\n"; } if (strlen($var_enabled) == 0) { $msg .= $text['message-required'].$text['label-enabled']."
\n"; } if (strlen($var_order) == 0) { $msg .= $text['message-required'].$text['label-order']."
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //add or update the database if ($_POST["persistformvar"] != "true") { if ($action == "add" && permission_exists('var_add')) { //begin insert array $var_uuid = uuid(); $array['vars'][0]['var_uuid'] = $var_uuid; //set message message::add($text['message-add']); } if ($action == "update" && permission_exists('var_edit')) { //begin update array $array['vars'][0]['var_uuid'] = $var_uuid; //set message message::add($text['message-update']); } if (is_array($array) && @sizeof($array) != 0) { //add common fields to array $array['vars'][0]['var_category'] = $var_category; $array['vars'][0]['var_name'] = $var_name; $array['vars'][0]['var_value'] = $var_value; $array['vars'][0]['var_command'] = $var_command; $array['vars'][0]['var_hostname'] = $var_hostname != '' ? $var_hostname : null; $array['vars'][0]['var_enabled'] = $var_enabled; $array['vars'][0]['var_order'] = $var_order; $array['vars'][0]['var_description'] = base64_encode($var_description); //execute insert/update $database = new database; $database->app_name = 'vars'; $database->app_uuid = '54e08402-c1b8-0a9d-a30a-f569fc174dd8'; $database->save($array); unset($array); //unset the user defined variables $_SESSION["user_defined_variables"] = ""; //synchronize the configuration save_var_xml(); //redirect header("Location: vars.php"); exit; } } } //pre-populate the form if (is_array($_GET) && is_uuid($_GET["id"]) && $_POST["persistformvar"] != "true") { $var_uuid = $_GET["id"]; $sql = "select * from v_vars "; $sql .= "where var_uuid = :var_uuid "; $parameters['var_uuid'] = $var_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { $var_category = $row["var_category"]; $var_name = $row["var_name"]; $var_value = $row["var_value"]; $var_command = $row["var_command"]; $var_hostname = $row["var_hostname"]; $var_enabled = $row["var_enabled"]; $var_order = $row["var_order"]; $var_description = base64_decode($row["var_description"]); } unset($sql, $parameters); } //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //include header $document['title'] = $text['title-variable']; require_once "resources/header.php"; //show contents echo "
\n"; echo "
\n"; echo "
".$text['header-variable']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'vars.php']); echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save']); echo "
\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //if variable is a code then show the codec info if ($var_name == "global_codec_prefs" || $var_name == "outbound_codec_prefs") { echo "\n"; echo ""; echo ""; } echo "
\n"; echo " ".$text['label-category']."\n"; echo "\n"; $table_name = 'v_vars'; $field_name = 'var_category'; $sql_where_optional = ""; $field_current_value = $var_category; echo html_select_other($table_name, $field_name, $sql_where_optional, $field_current_value); echo $text['description-category']."\n"; echo "
\n"; echo " ".$text['label-name']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-name']."\n"; echo "
\n"; echo " ".$text['label-value']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-value']."\n"; echo "
\n"; echo " ".$text['label-command']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-command']."\n"; echo "
\n"; echo " ".$text['label-hostname']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-hostname']."\n"; echo "
\n"; echo " ".$text['label-enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-enabled']."\n"; echo "
\n"; echo " ".$text['label-order']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-order']."\n"; echo "
\n"; echo " ".$text['label-description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-description']."\n"; echo "
\n"; echo "
\n"; echo "".$text['label-codec_information']."

\n"; echo "Module must be compiled and loaded.     codecname[@8000h|16000h|32000h[@XXi]]
\n"; echo "
\n"; echo "XX is the frame size must be multples allowed for the codec
\n"; echo "10-120ms is supported on some codecs.
\n"; echo "We do not support exceeding the MTU of the RTP packet.
\n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " "; echo " \n"; echo " \n"; echo "
opus@48000h@10iOpus 48khz using 10 ms ptime (mono and stereo)
opus@48000h@20iOpus 48khz using 20 ms ptime (mono and stereo)
opus@48000h@40iOpus 48khz using 40 ms ptime
opus@16000h@10iOpus 16khz using 10 ms ptime (mono and stereo)
opus@16000h@20iOpus 16khz using 20 ms ptime (mono and stereo)
opus@16000h@40iOpus 16khz using 40 ms ptime
opus@8000h@10iOpus 8khz using 10 ms ptime (mono and stereo)
opus@8000h@20iOpus 8khz using 20 ms ptime (mono and stereo)
opus@8000h@40iOpus 8khz using 40 ms ptime
opus@8000h@60iOpus 8khz using 60 ms ptime
opus@8000h@80iOpus 8khz using 80 ms ptime
opus@8000h@100iOpus 8khz using 100 ms ptime
opus@8000h@120iOpus 8khz using 120 ms ptime
iLBC@30iiLBC using mode=30 which will win in all cases.
DVI4@8000h@20iIMA ADPCM 8kHz using 20ms ptime. (multiples of 10)
DVI4@16000h@40iIMA ADPCM 16kHz using 40ms ptime. (multiples of 10)
speex@8000h@20iSpeex 8kHz using 20ms ptime.
speex@16000h@20iSpeex 16kHz using 20ms ptime.
speex@32000h@20iSpeex 32kHz using 20ms ptime.
G7221@16000hG722.1 16kHz (aka Siren 7)
G7221@32000hG722.1C 32kHz (aka Siren 14)
CELT@32000hCELT 32kHz, only 10ms supported
CELT@48000hCELT 48kHz, only 10ms supported
GSM@40iGSM 8kHz using 40ms ptime. (GSM is done in multiples of 20, Default is 20ms)
G722G722 16kHz using default 20ms ptime. (multiples of 10)
PCMUG711 8kHz ulaw using default 20ms ptime. (multiples of 10)
PCMAG711 8kHz alaw using default 20ms ptime. (multiples of 10)
G726-16G726 16kbit adpcm using default 20ms ptime. (multiples of 10)
G726-24G726 24kbit adpcm using default 20ms ptime. (multiples of 10)
G726-32G726 32kbit adpcm using default 20ms ptime. (multiples of 10)
G726-40G726 40kbit adpcm using default 20ms ptime. (multiples of 10)
AAL2-G726-16Same as G726-16 but using AAL2 packing. (multiples of 10)
AAL2-G726-24Same as G726-24 but using AAL2 packing. (multiples of 10)
AAL2-G726-32Same as G726-32 but using AAL2 packing. (multiples of 10)
AAL2-G726-40Same as G726-40 but using AAL2 packing. (multiples of 10)
LPCLPC10 using 90ms ptime (only supports 90ms at this time)
L16L16 isn't recommended for VoIP but you can do it. L16 can exceed the MTU rather quickly.

These are the passthru audio codecs:
G729G729 in passthru mode. (mod_g729)
G723G723.1 in passthru mode. (mod_g723_1)
AMRAMR in passthru mode. (mod_amr)

These are the passthru video codecs: (mod_h26x)
H261H.261 Video
H263H.263 Video
H263-1998H.263-1998 Video
H263-2000H.263-2000 Video
H264H.264 Video
\n"; echo "
"; echo "

"; if ($action == "update") { echo "\n"; } echo "\n"; echo "
"; //include header require_once "resources/footer.php"; ?>