rewrite codec methods to be more compliant with chan-sccp
Update db Fields for defaults Update save logic WIP update save defaults Field in sccpline
This commit is contained in:
parent
b15729a340
commit
a6a9850a3c
|
@ -728,7 +728,7 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
||||||
public function getMyConfig($var = null, $id = "noid") {
|
public function getMyConfig($var = null, $id = "noid") {
|
||||||
switch ($var) {
|
switch ($var) {
|
||||||
case "voicecodecs":
|
case "voicecodecs":
|
||||||
$val = explode(";", $this->sccpvalues['allow']['data']);
|
$val = explode(",", explode("|", $this->sccpvalues['disallow|allow']['data'])[1]);
|
||||||
$final = array();
|
$final = array();
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach ($val as $value) {
|
foreach ($val as $value) {
|
||||||
|
@ -766,6 +766,7 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
||||||
case 'audio':
|
case 'audio':
|
||||||
$lcodecs = $this->getMyConfig('voicecodecs');
|
$lcodecs = $this->getMyConfig('voicecodecs');
|
||||||
$allCodecs = $this->FreePBX->Codecs->getAudio();
|
$allCodecs = $this->FreePBX->Codecs->getAudio();
|
||||||
|
dbug('FPBX audio', $allCodecs);
|
||||||
break;
|
break;
|
||||||
case 'video':
|
case 'video':
|
||||||
$lcodecs = $this->getMyConfig('voicecodecs');
|
$lcodecs = $this->getMyConfig('voicecodecs');
|
||||||
|
@ -807,11 +808,11 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
||||||
$codecs[$c] = false;
|
$codecs[$c] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $codecs;
|
return $codecs;
|
||||||
} else {
|
} else {
|
||||||
//Remove non digits
|
//Remove non digits
|
||||||
$final = array();
|
$final = array();
|
||||||
|
dbug('codecs', $codecs);
|
||||||
foreach ($codecs as $codec => $order) {
|
foreach ($codecs as $codec => $order) {
|
||||||
$order = trim($order);
|
$order = trim($order);
|
||||||
if (ctype_digit($order)) {
|
if (ctype_digit($order)) {
|
||||||
|
|
|
@ -387,6 +387,7 @@ trait ajaxHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSubmit($request, $validateonly = false) {
|
function handleSubmit($request, $validateonly = false) {
|
||||||
|
dbug('request is:', $request);
|
||||||
$hdr_prefix = 'sccp_';
|
$hdr_prefix = 'sccp_';
|
||||||
$hdr_arprefix = 'sccp-ar_';
|
$hdr_arprefix = 'sccp-ar_';
|
||||||
$save_settings = array();
|
$save_settings = array();
|
||||||
|
@ -494,21 +495,48 @@ trait ajaxHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch ($key) {
|
switch ($key) {
|
||||||
|
case 'disallow':
|
||||||
|
if (is_array($value)) {
|
||||||
|
foreach ($value as $keycodeс => $valcodeс) {
|
||||||
|
$save_codec[$i] = $keycodeс;
|
||||||
|
$i++;
|
||||||
|
};
|
||||||
|
$tmpv = implode(",", $save_codec);
|
||||||
|
} else {
|
||||||
|
$tmpv = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($save_settings['disallow|allow']['data'])) {
|
||||||
|
$save_settings['disallow|allow']['data'] = $tmpv . "|";
|
||||||
|
} else {
|
||||||
|
$save_settings[] = array(
|
||||||
|
'keyword' => 'disallow|allow',
|
||||||
|
'data' => $tmpv . "|" .$save_settings['disallow|allow']['data'],
|
||||||
|
'seq' => $this->sccpvalues['disallow|allow']['seq'],
|
||||||
|
'type' => $this->sccpvalues['disallow|allow']['type'],
|
||||||
|
'systemdefault' => $this->sccpvalues['disallow|allow']['systemdefault']
|
||||||
|
);
|
||||||
|
unset($save_settings['disallow|allow']['data']);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'voicecodecs':
|
case 'voicecodecs':
|
||||||
case 'vcodec':
|
case 'vcodec':
|
||||||
foreach ($value as $keycodeс => $valcodeс) {
|
foreach ($value as $keycodeс => $valcodeс) {
|
||||||
$save_codec[$i] = $keycodeс;
|
$save_codec[$i] = $keycodeс;
|
||||||
$i++;
|
$i++;
|
||||||
};
|
};
|
||||||
$tmpv = implode(";", $save_codec);
|
$tmpv = implode(",", $save_codec);
|
||||||
if ($tmpv !== $this->sccpvalues['allow']['data']) {
|
if (empty($save_settings['disallow|allow']['data'])) {
|
||||||
|
$save_settings['disallow|allow']['data'] = $tmpv;
|
||||||
|
} else {
|
||||||
$save_settings[] = array(
|
$save_settings[] = array(
|
||||||
'keyword' => 'allow',
|
'keyword' => 'disallow|allow',
|
||||||
'data' => $tmpv,
|
'data' => $save_settings['disallow|allow']['data'] . $tmpv,
|
||||||
'seq' => $this->sccpvalues['allow']['seq'],
|
'seq' => $this->sccpvalues['disallow|allow']['seq'],
|
||||||
'type' => $this->sccpvalues['allow']['type'],
|
'type' => $this->sccpvalues['disallow|allow']['type'],
|
||||||
'systemdefault' => $this->sccpvalues['allow']['systemdefault']
|
'systemdefault' => $this->sccpvalues['disallow|allow']['systemdefault']
|
||||||
);
|
);
|
||||||
|
unset($save_settings['disallow|allow']['data']);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,11 @@
|
||||||
|
|
||||||
$def_val = null;
|
$def_val = null;
|
||||||
$dev_id = null;
|
$dev_id = null;
|
||||||
$sccp_codec = $this->getCodecs('audio', true);
|
$audio_codecs = $this->getCodecs('audio', true);
|
||||||
$video_codecs = $this->getCodecs('video', true);
|
$video_codecs = $this->getCodecs('video', true);
|
||||||
$sccp_disalow_def = $this->extconfigs->getExtConfig('sccpDefaults', 'disallow');
|
$sccp_disallow_def = $this->sccpvalues['disallow|allow']['data'];
|
||||||
$sccp_disalow = $sccp_disalow_def;
|
$sccp_disallow_def = explode("|",$sccp_disallow_def)[0];
|
||||||
|
$sccp_disallow = $sccp_disallow_def;
|
||||||
|
|
||||||
if (!empty($_REQUEST['id'])) {
|
if (!empty($_REQUEST['id'])) {
|
||||||
$dev_id = $_REQUEST['id'];
|
$dev_id = $_REQUEST['id'];
|
||||||
|
@ -23,22 +24,22 @@ if (!empty($_REQUEST['id'])) {
|
||||||
$codec_list[$c] = $i;
|
$codec_list[$c] = $i;
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
foreach ($sccp_codec as $c => $v) {
|
foreach ($audio_codecs as $c => $v) {
|
||||||
if (!isset($codec_list[$c])) {
|
if (!isset($codec_list[$c])) {
|
||||||
$codec_list[$c] = false;
|
$codec_list[$c] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($db_res['disallow'])) {
|
if (!empty($db_res['disallow'])) {
|
||||||
$sccp_disalow = $db_res['disallow'];
|
$sccp_disallow = $db_res['disallow'];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$codec_list = $sccp_codec;
|
$codec_list = $audio_codecs;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!-- TODO: Codec selection has moved to the line level in newer chan-sccp versions and should be moved -->
|
<!-- Codec selection is at the line level - this page sets site defaults based on chan-sccp defaults -->
|
||||||
<form autocomplete="off" name="frm_codec" id="frm_codec" class="fpbx-submit" action="" method="post">
|
<form autocomplete="off" name="frm_codec" id="frm_codec" class="fpbx-submit" action="" method="post">
|
||||||
<input type="hidden" name="category" value="codecform">
|
<input type="hidden" name="category" value="codecform">
|
||||||
<input type="hidden" name="Submit" value="Submit">
|
<input type="hidden" name="Submit" value="Submit">
|
||||||
|
@ -55,8 +56,8 @@ if (!empty($_REQUEST['id'])) {
|
||||||
<i class="fa fa-question-circle fpbx-help-icon" data-for="sccp_disallow"></i>
|
<i class="fa fa-question-circle fpbx-help-icon" data-for="sccp_disallow"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9 radioset">
|
<div class="col-md-9 radioset">
|
||||||
<input id="sccp_disallow" type="text" name="sccp_disallow" value="<?php echo $sccp_disalow ?>">
|
<input id="sccp_disallow" type="text" name="sccp_disallow" value="<?php echo $sccp_disallow ?>">
|
||||||
<label for="sccp_disallow"><?php echo _("default : " . $sccp_disalow_def) ?></label>
|
<label for="sccp_disallow"><?php echo _("default : " . $sccp_disallow_def) ?></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue