root
3 years ago
2118 changed files with 276297 additions and 1 deletions
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,104 @@
|
||||
<?php |
||||
|
||||
$mes = ""; |
||||
$acao = isset($_GET['acao']) ? trim($_GET['acao']) : 'select'; |
||||
$paramPesquisa = isset($_REQUEST['paramPesquisa']) ? $_REQUEST['paramPesquisa'] : ''; |
||||
$filtro = isset($_REQUEST["paramPesquisa"]) ? trim($_REQUEST["paramPesquisa"]) : ''; |
||||
$filtroNovo = !isset($_REQUEST["pgn"]) ? '' : sprintf("¶mPesquisa%s&pgn=%s&bloco=%s&pg=%s", $_REQUEST["paramPesquisa"], $_REQUEST["pgn"], $_REQUEST["bloco"], $_REQUEST["pg"]); |
||||
$recontaPag = ($acao == 'inseri') || (GetFormAcao() == FORM_DELETE) || isset($_POST['pesquisa']); |
||||
$tpl = "agendaRamais/depto/deptoRamais.htm"; |
||||
|
||||
if ($acao == "deletaDep") { |
||||
try { |
||||
/* |
||||
* VERIFICA SE EXISTE O RAMAL NA TABELA |
||||
*/ |
||||
$departamento = $_GET['dpto']; |
||||
$query = "SELECT dpto_nome FROM rma_departamentos WHERE dpto_id='$departamento' "; |
||||
$result = pg_query($dbcon, $query); |
||||
if (!pg_num_rows($result)) { |
||||
GeraExcept('Departamento Inválido, não foi possível excluir o registro!'); |
||||
} |
||||
|
||||
$busca = "SELECT a.dpto_nome FROM rma_departamentos a,rma_depto_ramais b WHERE a.dpto_id=b.dpto_id AND b.dpto_id='$departamento'"; |
||||
$result = pg_query($dbcon, $busca); |
||||
if (!pg_num_rows($result)) { |
||||
GeraExcept('O "Departamento" possui ramais vinculados, remova antes essas referências!'); |
||||
} |
||||
|
||||
/* |
||||
* DELETA O RAMAL |
||||
*/ |
||||
$deleta = "DELETE FROM rma_departamentos WHERE dpto_id='$departamento'"; |
||||
$result = pg_query($dbcon, $deleta); |
||||
/* |
||||
* VERIFICA SE O RAMAL FOI DELETADO |
||||
*/ |
||||
$query = "SELECT dpto_nome FROM rma_departamento WHERE dpto_id='$departamento'"; |
||||
$result = pg_query(dbcon, $query); |
||||
if (!$result || !pg_affected_rows($result)) { |
||||
GeraExcept('Erro ao excluir o "Departamento"!'); |
||||
} |
||||
|
||||
Alert('O "Departamento" foi excluido com sucesso!'); |
||||
} catch (Exception $ex) { |
||||
Alert($ex->getMessage()); |
||||
} |
||||
} |
||||
|
||||
|
||||
$compl = ''; |
||||
if (isset($_REQUEST['paramPesquisa']) && $_REQUEST['paramPesquisa']) { |
||||
$compl = PreparaLike($filtro, true); |
||||
$compl = sprintf("and (b.dpto_nome ilike %s)", $compl); |
||||
} |
||||
|
||||
$query = " SELECT b.dpto_nome,b.dpto_id, (select count(*) from rma_depto_ramais c where c.dpto_id = b.dpto_id ) as n_dep |
||||
FROM rma_departamentos b |
||||
where 1=1 $compl |
||||
GROUP BY b.dpto_nome,b.dpto_id ORDER BY dpto_nome ASC"; |
||||
|
||||
$resultados = ''; |
||||
$params = "¶mPesquisa=$filtro"; |
||||
$links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); |
||||
$query .= " limit $regPagina offset $offSet"; |
||||
$result = pg_query($dbcon, $query); |
||||
while ($rowDepto = pg_fetch_array($result)) { |
||||
$dptoNome = $rowDepto['dpto_nome']; |
||||
$dptoId = $rowDepto['dpto_id']; |
||||
$relacionamento = $rowDepto['n_dep']; |
||||
$depMostra = "<a style=\"color: #000;\" href=\"javaScript:NovaJanela('index.php?idProg=144&dpto=$dptoId', 'EditaDepartamento', '500', '150', 'resizable=NO,scrollbars=1');\">$dptoNome</a>"; |
||||
$resultados .= "<tr> |
||||
<td width=\"50\" align=\"center\">$dptoId</td> |
||||
<td>$depMostra</td> |
||||
<td width=\"20\" align=\"right\">$relacionamento</td> |
||||
<td width=\"20\" style=\"text-align: center; border-right:0;\"><a href=\"javaScript:NovaJanela('index.php?idProg=147&dpto=$dptoId', 'RelacionarRamais', '630', '300', 'resizable=NO,scrollbars=1');\"><img src=\"imgSite/usuarios.gif\" width=\"15\" height=\"15\" border=\"0\"></a></td> |
||||
<td width=\"20\" style=\"text-align: center; border-right:0; border-left:0;\"><a href=\"javaScript:NovaJanela('index.php?idProg=144&dpto=$dptoId', 'EditaDepartamento', '500', '150', 'resizable=NO,scrollbars=1');\"><img src=\"imgSite/editaUser.png\" border=\"0\"></a></td> |
||||
<td width=\"20\" style=\"text-align: center; border-left:0;\"><a href=\"javaScript:DeletaDep('$dptoId', '$params');\"><img src=\"imgSite/deletaUser.png\" border=\"0\"></a></td> |
||||
</tr>"; |
||||
} |
||||
|
||||
$imgNovo = "<a href=\"javaScript:NovaJanela('index.php?idProg=143$filtroNovo', 'Cadastro de Departamentos', '500', '150', 'resizable=NO,scrollbars=1');\"><img src=\"images/novo.gif\" border=\"0\" align=\"absmiddle\"> Novo Departamento</a>"; |
||||
$smarty->assign('linhas', $resultados); |
||||
$smarty->assign('erro', $mes); |
||||
$smarty->assign("paramPesquisa", $paramPesquisa); |
||||
$smarty->assign("imgNovo", $imgNovo); |
||||
$smarty->assign("links", $links); |
||||
$smarty->assign("pagMostra", $pagMostra); |
||||
$smarty->assign("totalReg", $totalReg); |
||||
$smarty->assign("pgn", $_REQUEST["pgn"]); |
||||
$smarty->assign("bloco", $_REQUEST["bloco"]); |
||||
$smarty->assign("pg", $_REQUEST["pg"]); |
||||
|
||||
GetTemplate($smarty, $tpl); |
||||
|
||||
function RetornaMensagem($mes) { |
||||
if ($mes == "") { |
||||
$alert = ""; |
||||
} else { |
||||
$alert = "<script type=\"text/javascript\">alert('$mes');</script>"; |
||||
return $alert; |
||||
} |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,63 @@
|
||||
<?php |
||||
|
||||
$tpLayout = -1; |
||||
/* |
||||
* RECEBE VALORES! |
||||
*/ |
||||
$departamento = $_POST['nome']; |
||||
$Finalizar = $_POST['concluir']; |
||||
if ($Finalizar == "Inserir") { |
||||
TrataValor($departamento); |
||||
if (TrataValor($departamento) == 1) { |
||||
/* |
||||
* VERIFICA SE JA POSSUI ALGUM REGISTRO RELACIONADO AO DEPARTAMENTO! |
||||
*/ |
||||
$busca = "SELECT dpto_nome FROM rma_departamentos WHERE dpto_nome='$departamento'"; |
||||
$result = pg_query($dbcon, $busca); |
||||
if (pg_num_rows($result) >= 1) { |
||||
/* |
||||
* VERIFICA SE DEPARTAMENTO ESTÁ INATIVO! |
||||
*/ |
||||
$busca = pg_query($dbcon, "SELECT dpto_nome FROM rma_departamentos WHERE dpto_status!='1'"); |
||||
if (pg_num_rows($busca) >= 1) { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Departamento ja existente,mas inativo!"; |
||||
} else { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Departamento ja existente!"; |
||||
} |
||||
} else { |
||||
|
||||
/* |
||||
* INSERI DEPARTAMENTO! |
||||
*/ |
||||
$insert = "INSERT INTO rma_departamentos (dpto_nome) VALUES ('$departamento')"; |
||||
$query = pg_query($dbcon, $insert); |
||||
/* |
||||
* VERIFICA SE REGISTRO FOI INSERIDO! |
||||
*/ |
||||
$busca = "SELECT dpto_nome FROM rma_departamentos WHERE dpto_nome='$departamento'"; |
||||
$result = pg_query($dbcon, $busca); |
||||
if (pg_num_rows($result) >= 1) { |
||||
$mes = "<img src=\"imgSite/stAprovado.png\">Departamento cadastrado com sucesso!"; |
||||
$jsStartup[] = "window.opener.ResetForm(); window.close();"; |
||||
} else { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Ocorreu um erro ao inserir o Departamento!"; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
function TrataValor($departamento) { |
||||
if (empty($departamento)) { |
||||
return "Por favor preencha o campo nome!"; |
||||
} else { |
||||
return 1; |
||||
} |
||||
} |
||||
|
||||
if (TrataValor($departamento) != 1) { |
||||
$mes = TrataValor($departamento); |
||||
} |
||||
$smarty->assign('mes', $mes); |
||||
$smarty->assign('departamento', $departamento); |
||||
$smarty->display("agendaRamais/depto/deptoRamaisInsert.html"); |
||||
?> |
@ -0,0 +1,125 @@
|
||||
<?php |
||||
|
||||
require('funcoesFormulario.php'); |
||||
$templateName = 'agendaRamais/depto/dptoRamaisRelaciona.html'; |
||||
$tpLayout = -1; |
||||
$fieldsForm = array(); |
||||
$fieldsForm = IsPostBack() ? $_POST : $_GET; |
||||
|
||||
//Id da campanha |
||||
$idPausa = $fieldsForm['id']; |
||||
$fieldsForm['erro'] = ""; |
||||
$departamento = $fieldsForm['dpto']; |
||||
$ramaisInc = $fieldsForm['ramaisInc']; |
||||
$ramais = $fieldsForm['ramais']; |
||||
if (isset($fieldsForm['btIncGrupo'])) { |
||||
if (empty($fieldsForm['ramais'])) { |
||||
$fieldsForm['erro'] = fmtMsg('Selecione um ramal!'); |
||||
} else { |
||||
@pg_query($dbcon, 'begin'); |
||||
|
||||
foreach ($fieldsForm['ramais'] as $ramal) { |
||||
$query = "insert into rma_depto_ramais (nome,dpto_id)values('%s', '%s')"; |
||||
$query = sprintf($query, $ramal, $departamento); |
||||
$result = @pg_query($dbcon, $query); |
||||
|
||||
if (!$result) |
||||
break; |
||||
} |
||||
|
||||
if ($result) |
||||
@pg_query($dbcon, 'commit'); |
||||
else |
||||
@pg_query($dbcon, 'rollback'); |
||||
|
||||
$fieldsForm['erro'] = $result ? fmtMsg('Ramal incluido com sucesso!') : fmtErro('O Ramal não pode ser incluido!', pg_last_error($dbcon)); |
||||
} |
||||
} |
||||
else if (isset($fieldsForm['btRmGrupo'])) { |
||||
if (empty($fieldsForm['ramaisInc'])) { |
||||
$fieldsForm['erro'] = fmtMsg('Selecione um ramal!'); |
||||
} else { |
||||
@pg_query($dbcon, 'begin'); |
||||
|
||||
foreach ($fieldsForm['ramaisInc'] as $ramalInc) { |
||||
$query = "DELETE FROM rma_depto_ramais WHERE nome='%s' AND dpto_id='%s'"; |
||||
$query = sprintf($query, $ramalInc, $departamento); |
||||
$result = @pg_query($dbcon, $query); |
||||
|
||||
if (!$result) |
||||
break; |
||||
} |
||||
|
||||
if ($result) |
||||
@pg_query($dbcon, 'commit'); |
||||
else |
||||
@pg_query($dbcon, 'rollback'); |
||||
|
||||
$fieldsForm['erro'] = $result ? fmtMsg('Ramal removido com sucesso!') : fmtErro('O ramal não pode ser removido!', pg_last_error($dbcon)); |
||||
} |
||||
} |
||||
|
||||
$fieldsForm['listaGrupo'] = GetPausasGrupo($dbcon, $departamento, $fieldsForm['ramais']); |
||||
$fieldsForm['listaGrupoInc'] = GetPausasGrupoInc($dbcon, $departamento, $fieldsForm['ramaisInc']); |
||||
|
||||
|
||||
/* |
||||
* Atualiza templates templates |
||||
*/ |
||||
foreach ($fieldsForm as $key => $value) { |
||||
$smarty->assign($key, $value); |
||||
} |
||||
|
||||
GetTemplate($smarty, $templateName); |
||||
/* |
||||
* IMPRIMI RAMAIS QUE POSSUEM DEPARTAMENTO |
||||
*/ |
||||
|
||||
function GetPausasGrupo($dbcon, $departamento, $codSel = 0) { |
||||
|
||||
$agentes = "<select name=\"ramaisInc[]\" style=\"width:280px\" id=\"ramaisInc\" size=\"8\" multiple=\"multiple\">"; |
||||
|
||||
$query = " SELECT b.dpto_nome,a.nome,a.callerid FROM "; |
||||
$query .= " pbx_ramais_mesa a,rma_departamentos b,rma_depto_ramais c WHERE a.nome=c.nome AND c.dpto_id=b.dpto_id AND c.dpto_id='$departamento'"; |
||||
$query .= " order by a.nome "; |
||||
$result = pg_query($dbcon, $query); |
||||
|
||||
while ($dados = pg_fetch_row($result)) { |
||||
if ($codSel == $dados[0]) { |
||||
$sel = "selected"; |
||||
$i = 1; |
||||
} else { |
||||
$sel = ""; |
||||
} |
||||
$agentes .= "<option value=\"$dados[1]\" $sel>$dados[2]/$dados[1]</option>"; |
||||
} |
||||
$agentes .= "</select>"; |
||||
return $agentes; |
||||
} |
||||
|
||||
/* |
||||
* IMPRIMI RAMAIS QUE ESTAO SEM DEPARTAMENTO! |
||||
*/ |
||||
|
||||
function GetPausasGrupoInc($dbcon, $departamento, $codSel = 0) { |
||||
|
||||
$agentes = "<select name=\"ramais[]\" style=\"width:280px\" id=\"ramais\" size=\"8\" multiple=\"multiple\">"; |
||||
|
||||
$query = " SELECT a.nome, a.callerid FROM pbx_ramais_mesa a left join rma_depto_ramais b on b.nome = a.nome left join rma_departamentos c on c.dpto_id = b.dpto_id WHERE c.dpto_id is null ORDER BY a.nome ASC"; |
||||
$result = pg_query($dbcon, $query); |
||||
|
||||
|
||||
while ($dados = pg_fetch_row($result)) { |
||||
if ($codSel == $dados[0]) { |
||||
$sel = "selected"; |
||||
$i = 1; |
||||
} else { |
||||
$sel = ""; |
||||
} |
||||
$agentes .= "<option value=\"$dados[0]\" $sel>$dados[1]/$dados[0]</option>"; |
||||
} |
||||
$agentes .= "</select>"; |
||||
return $agentes; |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,79 @@
|
||||
<?php |
||||
|
||||
$tpLayout = -1; |
||||
/* |
||||
* RECEBE ID DO DEPARTAMENTO! |
||||
*/ |
||||
if (empty($_GET['dpto'])) { |
||||
|
||||
/* |
||||
* RECEBE VALORES VIA POST DO FORMULARIO! |
||||
*/ |
||||
$departamento = $_POST['nome']; |
||||
$id = $_POST['dpto']; |
||||
$Finalizar = $_POST['concluir']; |
||||
if ($departamento == "") { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Por favor preencha todos os campos!"; |
||||
} |
||||
if ($Finalizar == "Alterar") { |
||||
$id = $_POST['dpto']; |
||||
TrataValor($departamento); |
||||
if (TrataValor($departamento) == 1) { |
||||
/* |
||||
* FAZ UPDATE DO REGISTRO! |
||||
*/ |
||||
$update = "UPDATE rma_departamentos SET dpto_nome='$departamento' WHERE dpto_id='$id'"; |
||||
$result = pg_query($dbcon, $update); |
||||
|
||||
/* |
||||
* VERIFICA SE REGISTRO FOI ATUALIZADO COM SUCESSO! |
||||
*/ |
||||
$busca = "SELECT dpto_nome FROM rma_departamentos WHERE dpto_nome='$departamento' AND dpto_id='$id'"; |
||||
$result = pg_query($dbcon, $busca); |
||||
if (pg_num_rows($result) >= 1) { |
||||
$mes = "<img src=\"imgSite/stAprovado.png\">Departamento Atualizado com sucesso!"; |
||||
} else { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Não foi possivel atualizar departamento!"; |
||||
} |
||||
} |
||||
} |
||||
} else { |
||||
$id = $_GET['dpto']; |
||||
/* |
||||
* VERIFICA SE DEPARTAMENTO É EXISTENTE! |
||||
*/ |
||||
|
||||
$busca = "SELECT dpto_nome,dpto_id FROM rma_departamentos WHERE dpto_status='1' AND dpto_id='$id'"; |
||||
$result = pg_query($dbcon, $busca); |
||||
if (pg_num_rows($result) >= 1) { |
||||
/* |
||||
* SE DEPARTAMENTO FOR EXISTENE, ESTE LOOP MONTA UM COMBO! |
||||
*/ |
||||
while ($rowDepto = pg_fetch_array($result)) { |
||||
$departamento = $rowDepto['dpto_nome']; |
||||
$id = $rowDepto['dpto_id']; |
||||
$option .= "<option value=\"" . $id . "\">" . $nome . "</option>"; |
||||
} |
||||
} else { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Departamento não encontrado!"; |
||||
} |
||||
} |
||||
|
||||
function TrataValor($departamento) { |
||||
if (empty($departamento)) { |
||||
return "Por favor preencha o campo nome!"; |
||||
} else { |
||||
return 1; |
||||
} |
||||
} |
||||
|
||||
if (TrataValor($departamento) != 1) { |
||||
$mes = TrataValor($departamento); |
||||
} |
||||
|
||||
|
||||
$smarty->assign('nome', $departamento); |
||||
$smarty->assign('mes', $mes); |
||||
$smarty->assign('id', $id); |
||||
$smarty->display("agendaRamais/depto/deptoRamaisUpdate.html"); |
||||
?> |
@ -0,0 +1,107 @@
|
||||
<?php |
||||
|
||||
$tpl = "agendaRamais/ramais/ramais.html"; |
||||
$acao = isset($_GET['acao']) ? trim($_GET['acao']) : 'select'; |
||||
$paramPesquisa = isset($_REQUEST['paramPesquisa']) ? $_REQUEST['paramPesquisa'] : ''; |
||||
$filtro = isset($_REQUEST["paramPesquisa"]) ? trim($_REQUEST["paramPesquisa"]) : ''; |
||||
$filtroNovo = !isset($_REQUEST["pgn"]) ? '' : sprintf("¶mPesquisa%s&pgn=%s&bloco=%s&pg=%s", $_REQUEST["paramPesquisa"], $_REQUEST["pgn"], $_REQUEST["bloco"], $_REQUEST["pg"]); |
||||
$recontaPag = ($acao == 'inseri') || ($acao == "deletaRamal") || isset($_POST['pesquisa']); |
||||
|
||||
if ($acao == "deletaRamal") { |
||||
try { |
||||
$deletaRamal = 1; |
||||
/* |
||||
* VERIFICA SE EXISTE O RAMAL NA TABELA |
||||
*/ |
||||
$ramal = $_GET['ramal']; |
||||
$query = "SELECT rma_telefone FROM pbx_ramais_agenda WHERE rma_telefone='$ramal' "; |
||||
$result = pg_query($dbcon, $query); |
||||
if (!pg_num_rows($result)) { |
||||
GeraExcept('Ramal Inválido, não foi possível excluir o registro!'); |
||||
} |
||||
/* |
||||
* DELETA O RAMAL |
||||
*/ |
||||
$result = pg_query($dbcon, 'begin'); |
||||
if (!$result) { |
||||
GeraExcept('Não foi possível inicar a operação!'); |
||||
} |
||||
|
||||
$deleta = "DELETE FROM pbx_ramais_agenda WHERE rma_telefone='$ramal'"; |
||||
$result = pg_query($dbcon, $deleta); |
||||
if (!$result) { |
||||
GeraExcept('Não foi possível excluir o "Ramal" selecionado!'); |
||||
} |
||||
|
||||
$deleta = "DELETE FROM rma_depto_ramais WHERE nome='$ramal'"; |
||||
$result = pg_query($dbcon, $deleta); |
||||
if (!$result) { |
||||
GeraExcept('Não foi possível remover as dependências do "Ramal" selecionado!'); |
||||
} |
||||
$result = pg_query($dbcon, 'commit'); |
||||
|
||||
Alert('O "Ramal" foi excluido com sucesso!'); |
||||
} catch (Exception $ex) { |
||||
$result = pg_query($dbcon, 'rollback'); |
||||
Alert($ex->getMessage()); |
||||
} |
||||
} |
||||
|
||||
$compl = ''; |
||||
if (isset($_REQUEST['paramPesquisa']) && $_REQUEST['paramPesquisa']) { |
||||
$compl = PreparaLike($filtro, true); |
||||
$compl = sprintf("and (a.nome::text ilike %s or a.callerid::text ilike %s)", $compl, $compl); |
||||
} |
||||
|
||||
$query = " |
||||
SELECT a.id, |
||||
coalesce(c.dpto_nome, 'PADRÃO') as dpto_nome, |
||||
a.nome, |
||||
a.callerid, |
||||
a.tipo_table |
||||
FROM |
||||
pbx_ramais_mesa a |
||||
left join rma_depto_ramais b |
||||
ON b.nome = a.nome left |
||||
join rma_departamentos c |
||||
ON c.dpto_id = b.dpto_id |
||||
where 1=1 $compl |
||||
ORDER BY |
||||
a.nome ASC"; |
||||
|
||||
$params = "¶mPesquisa=$filtro"; |
||||
$links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); |
||||
$query .= " limit $regPagina offset $offSet"; |
||||
$result = pg_query($dbcon, $query); |
||||
while ($rowRamais = pg_fetch_array($result)) { |
||||
$id = $rowRamais['id']; |
||||
$nome = $rowRamais['callerid']; |
||||
$ramal = $rowRamais['nome']; |
||||
$departamento = $rowRamais['dpto_nome']; |
||||
$tipo_table = $rowRamais['tipo_table']; |
||||
$nomeMostra = '<a style="color: #000;" href="javaScript:NovaJanela(\'index.php?idProg=142&ramal=' . $ramal . '&tipoTable=' . $tipo_table . '\', \'EditardeRamais\', \'380\', \'220\', \'resizable=NO,scrollbars=1\');" title="Editar este ramal">' . $nome . '</a>'; |
||||
$link = ($tipo_table == "AGD") ? "<a href=\"javaScript:DeletaRamal('$ramal', '$params');\" title=\"Excluir ramal\"><img src=\"imgSite/deletaUser.png\" border=\"0\"></a>" : "<a href=\"javaScript:alert('Exclua este ramal pela administração PBX!');\" title=\"Exclua este ramal pela administração PBX!\"><img src=\"images/delete.gif\" border=\"0\" width=\"15\" height=\"15\"></a>"; |
||||
$resultados .= ' |
||||
<tr> |
||||
<td width="50" align=\"center\">' . $id . '</td> |
||||
<td>' . $nomeMostra . '</td> |
||||
<td>' . $ramal . '</td> |
||||
<td>' . $departamento . '</td> |
||||
<td width="20" style="text-align: center; border-right: 0;"><a href="javaScript:NovaJanela(\'index.php?idProg=142&ramal=' . $ramal . '&tipoTable=' . $tipo_table . '\', \'EditardeRamais\', \'380\', \'220\', \'resizable=NO,scrollbars=1\');" title="Editar este ramal"><img src="imgSite/editaUser.png" border="0"></a></td> |
||||
<td width="20" style="text-align: center; border-left: 0;">' . $link . '</td> |
||||
</tr>'; |
||||
} |
||||
|
||||
$imgNovo = "<a href=\"javaScript:NovaJanela('index.php?idProg=141&tipoTable=$tipo_table$filtroNovo', 'CadastrodeRamais', '380', '220', 'resizable=NO,scrollbars=1');\" title=\"Cadastrar um novo ramal\"><img src=\"images/novo.gif\" border=\"0\" align=\"absmiddle\"> Novo Ramal</a>"; |
||||
$smarty->assign('linhas', $resultados); |
||||
$smarty->assign('nomeRamal', $nomeRamal); |
||||
$smarty->assign("paramPesquisa", $paramPesquisa); |
||||
$smarty->assign("imgNovo", $imgNovo); |
||||
$smarty->assign("links", $links); |
||||
$smarty->assign("pagMostra", $pagMostra); |
||||
$smarty->assign("totalReg", $totalReg); |
||||
$smarty->assign("pgn", $_REQUEST["pgn"]); |
||||
$smarty->assign("bloco", $_REQUEST["bloco"]); |
||||
$smarty->assign("pg", $_REQUEST["pg"]); |
||||
GetTemplate($smarty, $tpl); |
||||
?> |
@ -0,0 +1,37 @@
|
||||
<?php |
||||
|
||||
$tpLayout = 1; |
||||
$ramal = $_GET['ramal']; |
||||
if ($_GET['acao'] == "deleta") { |
||||
/* |
||||
* VERIFICA SE EXISTE O RAMAL NA TABELA |
||||
*/ |
||||
$ramal = $_GET['id']; |
||||
$query = "SELECT rma_telefone FROM pbx_ramais_agenda WHERE rma_telefone='$ramal' "; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) >= 1) { |
||||
/* |
||||
* DELETA O RAMAL |
||||
*/ |
||||
$deleta = "DELETE FROM pbx_ramais_agenda WHERE rma_telefone='$ramal'"; |
||||
$result = pg_query($dbcon, $deleta); |
||||
/* |
||||
* VERIFICA SE O RAMAL FOI DELETADO |
||||
*/ |
||||
$query = "SELECT rma_telefone FROM pbx_ramais_agenda WHERE rma_telefone='$ramal'"; |
||||
$result = pg_query(dbcon, $query); |
||||
if (pg_num_rows($result) >= 1) { |
||||
$mes = "<td colspan='2' style='color:#900000;font-weight:bold;'>Não foi possivel excluir o ramal!</td>"; |
||||
} else { |
||||
$mes = "<td colspan='2' style='color:#009900;font-weight:bold;'>Ramal deletado com sucesso!</td>"; |
||||
} |
||||
} else { |
||||
$mes = "<td colspan='2' style='color:#900000;font-weigth:bold;'>Ramal não encontrado, talvez ja deletado!</td>"; |
||||
} |
||||
} |
||||
|
||||
|
||||
$smarty->assign('ramal', $ramal); |
||||
$smarty->assign('mes', $mes); |
||||
$smarty->display("agendaRamais/ramais/ramaisDelete.html"); |
||||
?> |
@ -0,0 +1,109 @@
|
||||
<?php |
||||
|
||||
$tpLayout = 1; |
||||
$tipoAgenda = $_GET['tipoTable']; |
||||
$ddd = GetDddPadrao(); |
||||
|
||||
/* |
||||
* RECEBE VALORES VIA POST |
||||
*/ |
||||
if ($_POST['concluir'] == "Finalizar") { |
||||
$nome = $_POST['nome']; |
||||
$ramal = $_POST['ramal']; |
||||
$departamento = $_POST['depto']; |
||||
$ddd = $_POST['ddd']; |
||||
$valor = TrataValor($nome, $ddd, $ramal); |
||||
if ($valor == 1) { |
||||
/* |
||||
* VERIFICA SE JA POSSUI ALGUM RAMAL CADASTRADO |
||||
*/ |
||||
$query = "SELECT nome FROM pbx_ramais_mesa WHERE nome='$ramal'"; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) >= 1) { |
||||
|
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Telefone já esta cadastrado!"; |
||||
} else { |
||||
/* |
||||
* INSERI REGISTROS |
||||
*/ |
||||
$insertRamal = "INSERT INTO pbx_ramais_agenda (rma_telefone,rma_nome,ddd) VALUES ('$ramal','$nome','$ddd')"; |
||||
$result = pg_query($dbcon, $insertRamal); |
||||
|
||||
/* |
||||
* VERIFICA SE REGISTROS FORAM INSERIDOS |
||||
*/ |
||||
$busca = "SELECT rma_telefone,rma_nome FROM pbx_ramais_agenda WHERE rma_telefone='$ramal' AND rma_nome='$nome' AND ddd='$ddd'"; |
||||
$result = pg_query($dbcon, $busca); |
||||
if (pg_num_rows($result) >= 1) { |
||||
/* |
||||
* RELACIONA REGISTRO COM O DEPARTAMENTO |
||||
*/ |
||||
$insert = "INSERT INTO rma_depto_ramais (nome,dpto_id) VALUES ('$ramal','$departamento')"; |
||||
$query = pg_query($dbcon, $insert); |
||||
|
||||
//$mes = "<img src=\"imgSite/stAprovado.png\">Telefone Cadastrado com sucesso!"; |
||||
$msg = "alert('Operação realizada com sucesso!');"; |
||||
$nome = ""; |
||||
$ramal = ""; |
||||
$departamento = ""; |
||||
|
||||
$jsStartup[] = $msg; |
||||
$jsStartup[] = "window.close();"; |
||||
$jsStartup[] = "window.opener.ResetForm();"; |
||||
} else { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Erro ao inserir Telefone!"; |
||||
} |
||||
} |
||||
} else { |
||||
$mes = TrataValor($nome, $ddd, $ramal); |
||||
} |
||||
} |
||||
|
||||
/* |
||||
* LOOP QUE TRAS RAMAIS |
||||
*/ |
||||
$query = "SELECT dpto_id,dpto_nome FROM rma_departamentos WHERE dpto_status='1'"; |
||||
$result = pg_query($dbcon, $query); |
||||
while ($rowDep = pg_fetch_array($result)) { |
||||
$id = $rowDep['dpto_id']; |
||||
$nomedpto = $rowDep['dpto_nome']; |
||||
$optionDep .= "<option value=\"" . $id . "\" " . ($id == $departamento ? 'selected' : '' ) . ">" . $nomedpto . "</option>"; |
||||
} |
||||
|
||||
|
||||
|
||||
if ($tipoAgenda == "AGD") { |
||||
$trDDD = true; |
||||
} else { |
||||
$trDDD = false; |
||||
} |
||||
$smarty->assign('optionDep', $optionDep); |
||||
$smarty->assign('nome', $nome); |
||||
$smarty->assign('ramal', $ramal); |
||||
$smarty->assign('mes', $mes); |
||||
$smarty->assign('ddd', $ddd); |
||||
$smarty->assign('trDDD', $trDDD); |
||||
$smarty->display("agendaRamais/ramais/ramaisInsert.html"); |
||||
|
||||
function TrataValor($nome, $ddd, $ramal) { |
||||
$img = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">"; |
||||
if (empty($nome)) { |
||||
return " $img Por favor preencha o campo nome!"; |
||||
} |
||||
|
||||
if (empty($ramal)) { |
||||
return " $img Por favor preencha o campo telefone!"; |
||||
} |
||||
if (!is_numeric($ramal)) { |
||||
$erro = 2; |
||||
return " $img Preencha o campo Telefone corretamente,permitido somente numero!"; |
||||
} |
||||
if ($erro != 2) { |
||||
return 1; |
||||
} |
||||
} |
||||
?> |
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,249 @@
|
||||
<?php |
||||
|
||||
$tpLayout = 1; |
||||
if (empty($_POST['tipoTable'])) { |
||||
$tipoTable = $_GET['tipoTable']; |
||||
} else { |
||||
$tipoTable = $_POST['tipoTable']; |
||||
} |
||||
if (empty($_POST['ramal'])) { |
||||
$ramal = $_GET['ramal']; |
||||
} else { |
||||
$ramal = $_POST['ramal']; |
||||
} |
||||
$busca = " |
||||
SELECT |
||||
coalesce(c.dpto_nome, 'PADRÃO') as dpto_nome, |
||||
c.dpto_id, |
||||
a.nome, |
||||
a.ddd , |
||||
a.callerid as nome_completo, |
||||
a.tipo_table |
||||
FROM |
||||
pbx_ramais_mesa a |
||||
left join rma_depto_ramais b ON b.nome = a.nome |
||||
left join rma_departamentos c ON c.dpto_id = b.dpto_id |
||||
WHERE |
||||
a.nome='$ramal' |
||||
ORDER BY |
||||
a.nome |
||||
ASC"; |
||||
|
||||
|
||||
|
||||
$result = pg_query($busca); |
||||
if ($rowRamal = pg_fetch_array($result)) { |
||||
$telefone = $rowRamal["nome"]; |
||||
$dispositivo = $rowRamal["dispositivo"]; |
||||
$nome = $rowRamal["nome_completo"]; |
||||
$departamentoNome = $rowRamal["dpto_nome"]; |
||||
$depto_id = $rowRamal["dpto_id"]; |
||||
$tipoTable = $rowRamal["tipo_table"]; |
||||
$ddd = $rowRamal["ddd"]; |
||||
$tipoTable = $rowRamal["tipo_table"]; |
||||
} |
||||
|
||||
|
||||
|
||||
/* |
||||
* VERIFICA SE CLIENTE CLICOU EM FINALIZAR OPERACAO |
||||
*/ |
||||
|
||||
|
||||
if ($_POST['concluir'] == "Finalizar") { |
||||
/* |
||||
* RECEBE VALORES DO FORMULARIO |
||||
*/ |
||||
$nome = $_POST['nome']; |
||||
$depto_id = $_POST['depto']; |
||||
$ramal = $_POST['ramal']; |
||||
$telefone = $_POST['telefone']; |
||||
$ddd = $_POST['ddd']; |
||||
if (TrataValor($nome, $ddd, $telefone, $trDDD) == 1) { |
||||
|
||||
/* |
||||
* VERIFICA SE JA EXISTE ALGUM REGISTRO COM AS INFORMACOES PASSADAS NO FORMULARIO! |
||||
*/ |
||||
$query = "SELECT a.callerid,c.dpto_nome FROM pbx_ramais_mesa a,rma_depto_ramais b,rma_departamentos c WHERE a.nome='$telefone' AND a.callerid='$nome' AND b.dpto_id=c.dpto_id AND a.nome=b.nome AND b.dpto_id='$depto_id'"; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) >= 1) { |
||||
$query = "SELECT dpto_nome FROM rma_depto_ramais WEHRE nome='$telefone' AND dpto_id='$depto_id'"; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) >= 1) { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Ja existe registro com essas informacoes!"; |
||||
} |
||||
} else { |
||||
/* |
||||
* VERIFICA QUAL TABELA ESTA O RAMAL |
||||
*/ |
||||
|
||||
if ($tipoTable == "SIP") { |
||||
$tabela = "pbx_sip_ramais"; |
||||
$campoRamal = "nome"; |
||||
$campoNome = "callerid"; |
||||
$telefone = $ramal; |
||||
} elseif ($tipoTable == "IAX") { |
||||
$tabela = "pbx_iax_pbx"; |
||||
$campoRamal = "nome"; |
||||
$campoNome = "identificador"; |
||||
$telefone = $ramal; |
||||
} elseif ($tipoTable == "DGV") { |
||||
$tabela = "pbx_dgv"; |
||||
$campoRamal = "nome"; |
||||
$campoNome = "callerid"; |
||||
$telefone = $ramal; |
||||
} elseif ($tipoTable == "PBX") { |
||||
$tabela = "pbx_ramais_pbx"; |
||||
$campoRamal = "numero"; |
||||
$campoNome = "identificador"; |
||||
$telefone = $ramal; |
||||
} elseif ($tipoTable == "DAHDI") { |
||||
$tabela = "pbx_dahdi"; |
||||
$campoRamal = "numero"; |
||||
$campoNome = "identificador"; |
||||
$telefone = $ramal; |
||||
} elseif ($tipoTable == "KHOMP") { |
||||
$tabela = "pbx_khomp"; |
||||
$campoRamal = "numero"; |
||||
$campoNome = "identificador"; |
||||
$telefone = $ramal; |
||||
} elseif ($tipoTable == "AGD") { |
||||
$tabela = "pbx_ramais_agenda"; |
||||
$campoRamal = "rma_telefone"; |
||||
$campoNome = "rma_nome"; |
||||
$campoTelefone = ", rma_telefone='$telefone'"; |
||||
} else { |
||||
$tabela = ""; |
||||
$campoRamal = ""; |
||||
$campoNome = ""; |
||||
} |
||||
|
||||
/* |
||||
* VERIFICA SE RAMAL JA ESTÁ RELACIONADO COM ALGUM DEPARTAMENTO |
||||
*/ |
||||
$query = "SELECT nome FROM rma_depto_ramais WHERE nome='$ramal'"; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) >= 1) { |
||||
/* |
||||
* SE O PARAMETRO DO DEPARTAMENTO RECEBIDO FOR IGUAL A 0(zero) DELETA REGISTRO NA TABELA DE RELACIONAMENTO |
||||
*/ |
||||
if ($depto_id == '0') { |
||||
$delete = "DELETE FROM rma_depto_ramais WHERE nome='$telefone'"; |
||||
$result = pg_query($dbcon, $delete); |
||||
} |
||||
/* |
||||
* ATUALIZA DEPARTAMENTO DO RAMAL |
||||
*/ |
||||
$update = "UPDATE rma_depto_ramais SET dpto_id='$depto_id' ,nome='$telefone', data_reg = now() WHERE nome='$ramal'"; |
||||
$result = pg_query($dbcon, $update); |
||||
|
||||
/* |
||||
* VERIFICA SE DEPARTAMENTO FOI ATUALIZADO COM SUCESSO |
||||
*/ |
||||
$query = "SELECT dpto_id,nome FROM rma_depto_ramais WHERE dpto_id='$depto_id' AND nome='$telefone'"; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) < 1) { |
||||
$mes = "Erro ao alterar o departmaneto!"; |
||||
} |
||||
} else { |
||||
/* |
||||
* SE RAMAL NÃO ESTIVER RELACIONADO COM NENHUM DEPARTAMENTO,SISTEMA FAZ A INSERÇÃO DO RAMAL NA TABELA |
||||
*/ |
||||
$insert = "INSERT INTO rma_depto_ramais (dpto_id,nome) VALUES ('$depto_id','$telefone')"; |
||||
$result = pg_query($dbcon, $insert); |
||||
$query = "SELECT dpto_id,nome FROM rma_depto_ramais WHERE dpto_id='$depto_id' AND nome='$telefone'"; |
||||
$result = pg_query($dbcon, $query); |
||||
if (pg_num_rows($result) < 1) { |
||||
$mes = "Erro ao inserir o departmaneto!"; |
||||
} |
||||
} |
||||
|
||||
/* |
||||
* EXECUTA UPDATE NA TABELA |
||||
*/ |
||||
$update = "UPDATE $tabela SET $campoNome='$nome' $campoTelefone WHERE $campoRamal='$ramal'"; |
||||
$query = pg_query($dbcon, $update); |
||||
/* |
||||
* ATUALIZA DDD DO RAMAL |
||||
*/ |
||||
$update = "UPDATE pbx_ramais_agenda SET ddd='$ddd' WHERE rma_telefone='$ramal'"; |
||||
$result = pg_query($dbcon, $update); |
||||
|
||||
/* |
||||
* VERIFICA SE UPDATE FOI REALIZADO COM SUCESSO! |
||||
*/ |
||||
$query = "SELECT callerid FROM pbx_ramais_mesa WHERE callerid='$nome' AND nome='$telefone'"; |
||||
$result = pg_query($dbcon, $query); |
||||
|
||||
|
||||
|
||||
if (pg_num_rows($result) >= 1) { |
||||
if ($tipoTable != 'AGD') { |
||||
__GravaAstDb($dbcon, $ramal, $nome); |
||||
} |
||||
$mes = "<img src=\"imgSite/stAprovado.png\">Registro alterado com sucesso!"; |
||||
} else { |
||||
$mes = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">Não foi possivel alterar registro!"; |
||||
} |
||||
} |
||||
} |
||||
echo "<script>opener.location.reload(); |
||||
fecha_popup(0,'index.php?idProg=140&pbxRequest=1'); |
||||
</script>"; |
||||
} |
||||
/* |
||||
* LOOP DE DEPARTAMENTOS |
||||
*/ |
||||
$buscaDep = "SELECT dpto_nome,dpto_id FROM rma_departamentos WHERE dpto_status='1'"; |
||||
$resultDep = pg_query($dbcon, $buscaDep); |
||||
while ($rowDep = pg_fetch_array($resultDep)) { |
||||
$nomeDep = $rowDep['dpto_nome']; |
||||
$idDep = $rowDep['dpto_id']; |
||||
$optionDep .= "<option value=\"" . $idDep . "\" " . ($idDep == $depto_id ? "selected" : "") . ">" . $nomeDep . "</option>"; |
||||
} |
||||
$optionDep .= "<option value=\"0\" " . ($depto_id == "0" ? "selected" : "") . ">PADRÃO</option>"; |
||||
|
||||
function TrataValor($nome, $ddd, $telefone, $trDDD) { |
||||
$img = "<img src=\"imgSite/icone_alert.png\" width=\"16\" height=\"16\">"; |
||||
if (empty($nome)) { |
||||
return " $img Por favor preencha o campo nome!"; |
||||
} |
||||
|
||||
if (empty($telefone)) { |
||||
return " $img Por favor preencha o campo telefone!"; |
||||
} |
||||
if (!is_numeric($telefone)) { |
||||
$erro = 2; |
||||
return " $img Preencha o campo Telefone corretamente,permitido somente numero!"; |
||||
} |
||||
if ($erro != 2) { |
||||
return 1; |
||||
} |
||||
} |
||||
|
||||
if (TrataValor($nome, $ddd, $telefone, $trDDD) != 1) { |
||||
$mes = TrataValor($nome, $ddd, $telefone, $trDDDD); |
||||
} |
||||
|
||||
|
||||
if ($tipoTable == "AGD") { |
||||
$trDDD = true; |
||||
} else { |
||||
$trDDD = false; |
||||
} |
||||
$smarty->assign('nome', $nome); |
||||
$smarty->assign('idRamal', $ramal); |
||||
$smarty->assign('ramal', $telefone); |
||||
$smarty->assign('tipoAgenda', $tipoTable); |
||||
$smarty->assign('mes', $mes); |
||||
$smarty->assign('optionDep', $optionDep); |
||||
$smarty->assign('trDDD', $trDDD); |
||||
$smarty->assign('ddd', $ddd); |
||||
$smarty->display("agendaRamais/ramais/ramaisUpdate.html"); |
||||
|
||||
function __GravaAstDb($dbcon, $ramal, $nome) { |
||||
include_once('admin/funcoes.php'); |
||||
CommandAsterisk2($dbcon, 'BINA-NOME', $ramal, $nome); |
||||
} |
||||
|
||||
?> |
@ -0,0 +1,80 @@
|
||||
; |
||||
; Named Access Control Lists (ACLs) |
||||
; |
||||
; A convenient way to share acl definitions |
||||
; |
||||
; This configuration file is read on startup |
||||
; |
||||
; CLI Commands |
||||
; ----------------------------------------------------------- |
||||
; acl show Show all named ACLs configured |
||||
; acl show <name> Show contents of a particular named ACL |
||||
; reload acl Reload configuration file |
||||
; |
||||
; Any configuration that uses ACLs which has been made to be able to use named |
||||
; ACLs will specify a named ACL with the 'acl' option in its configuration in |
||||
; a similar fashion to the usual 'permit' and 'deny' options. Example: |
||||
; acl=my_named_acl |
||||
; |
||||
; Multiple named ACLs can be applied by either comma separating the arguments or |
||||
; just by adding additional ACL lines. Example: |
||||
; acl=my_named_acl |
||||
; acl=my_named_acl2 |
||||
; |
||||
; or |
||||
; |
||||
; acl=my_named_acl,my_named_acl2 |
||||
; |
||||
; ACLs specified by name are evaluated independently from the ACL specified via |
||||
; permit/deny. In order for an address to pass a given ACL, it must pass both |
||||
; the ACL specified by permit/deny for a given item as well as any named ACLs |
||||
; that were specified. |
||||
; |
||||
;[example_named_acl1] |
||||
;deny=0.0.0.0/0.0.0.0 |
||||
;permit=209.16.236.0 |
||||
;permit=209.16.236.1 |
||||
; |
||||
;[example_named_acl2] |
||||
;permit=0.0.0.0/0.0.0.0 |
||||
;deny=10.24.20.171 |
||||
;deny=10.24.20.103 |
||||
;deny=209.16.236.1 |
||||
; |
||||
; example_named_acl1 above shows an example of whitelisting. When whitelisting, the |
||||
; named ACLs should follow a deny that blocks everything (like deny=0.0.0.0/0.0.0.0) |
||||
; The following example explains how combining the ACLs works: |
||||
; <in another configuration> |
||||
; [example_item_with_acl] |
||||
; acl=example_named_acl1 |
||||
; acl=example_named_acl2 |
||||
; |
||||
; Suppose 209.16.236.0 tries to communicate and the ACL for that example is applied to it... |
||||
; First, example_named_acl1 is evaluated. The address is allowed by that ACL. |
||||
; Next, example_named_acl2 is evaluated. The address isn't blocked by example_named_acl2 |
||||
; either, so it passes. |
||||
; |
||||
; Suppose instead 209.16.236.1 tries to communicate and the same ACL is applied. |
||||
; First, example_named_acl1 is evaluated and the address is allowed. |
||||
; However, it is blocked by example_named_acl2, so the address is blocked from the combined |
||||
; ACL. |
||||
; |
||||
; Similarly, the permits/denies in specific configurations that make up an ACL definition |
||||
; are also treated as a separate ACL for evaluation. So if we change the example above to: |
||||
; <in another configuration> |
||||
; [example_item_with_acl] |
||||
; acl=example_named_acl1 |
||||
; acl=example_named_acl2 |
||||
; deny=209.16.236.0 |
||||
; |
||||
; Then 209.16.236.0 will be rejected by the non-named component of the combined ACL even |
||||
; though it passes the two named components. |
||||
; |
||||
; |
||||
; Named ACLs can use ipv6 addresses just like normal ACLs. |
||||
;[ipv6_example_1] |
||||
;deny = :: |
||||
;permit = ::1/128 |
||||
; |
||||
;[ipv6_example_2] |
||||
;permit = fe80::21d:bad:fad:2323 |
@ -0,0 +1,8 @@
|
||||
; |
||||
; Sample ADSI Configuration file |
||||
; |
||||
[intro] |
||||
alignment = center |
||||
greeting => Welcome to the |
||||
greeting => Asterisk |
||||
greeting => Open Source PBX |
@ -0,0 +1,39 @@
|
||||
; |
||||
; Voice over Frame Relay (Adtran style) |
||||
; |
||||
; Configuration file |
||||
|
||||
[interfaces] |
||||
; |
||||
; Default language |
||||
; |
||||
;language=en |
||||
; |
||||
; Lines for which we are the user termination. They accept incoming |
||||
; and outgoing calls. We use the default context on the first 8 lines |
||||
; used by internal phones. |
||||
; |
||||
context=default |
||||
;user => voice00 |
||||
;user => voice01 |
||||
;user => voice02 |
||||
;user => voice03 |
||||
;user => voice04 |
||||
;user => voice05 |
||||
;user => voice06 |
||||
;user => voice07 |
||||
; Calls on 16 and 17 come from the outside world, so they get |
||||
; a little bit special treatment |
||||
context=remote |
||||
;user => voice16 |
||||
;user => voice17 |
||||
; |
||||
; Next we have lines which we only accept calls on, and typically |
||||
; do not send outgoing calls on (i.e. these are where we are the |
||||
; network termination) |
||||
; |
||||
;network => voice08 |
||||
;network => voice09 |
||||
;network => voice10 |
||||
;network => voice11 |
||||
;network => voice12 |
@ -0,0 +1,91 @@
|
||||
; |
||||
; alarmreceiver.conf |
||||
; |
||||
; Sample configuration file for the Asterisk alarm receiver application. |
||||
; |
||||
|
||||
|
||||
[general] |
||||
|
||||
; |
||||
; Specify a timestamp format for the metadata section of the event files |
||||
; Default is %a %b %d, %Y @ %H:%M:%S %Z |
||||
|
||||
timestampformat = %a %b %d, %Y @ %H:%M:%S %Z |
||||
|
||||
; |
||||
; Specify a command to execute when the caller hangs up |
||||
; |
||||
; Default is none |
||||
; |
||||
|
||||
;eventcmd = yourprogram -yourargs ... |
||||
|
||||
; |
||||
; Specify a spool directory for the event files. This setting is required |
||||
; if you want the app to be useful. Event files written to the spool |
||||
; directory will be of the template event-XXXXXX, where XXXXXX is a random |
||||
; and unique alphanumeric string. |
||||
; |
||||
; Default is none, and the events will be dropped on the floor. |
||||
; |
||||
|
||||
eventspooldir = /tmp |
||||
|
||||
; |
||||
; The alarmreceiver app can either log the events one-at-a-time to individual |
||||
; files in the spool directory, or it can store them until the caller |
||||
; disconnects and write them all to one file. |
||||
; |
||||
; The default setting for logindividualevents is no. |
||||
; |
||||
|
||||
logindividualevents = no |
||||
|
||||
; |
||||
; The timeout for receiving the first DTMF digit is adjustable from 1000 msec. |
||||
; to 10000 msec. The default is 2000 msec. Note: if you wish to test the |
||||
; receiver by entering digits manually, set this to a reasonable time out |
||||
; like 10000 milliseconds. |
||||
|
||||
fdtimeout = 2000 |
||||
|
||||
; |
||||
; The timeout for receiving subsequent DTMF digits is adjustable from |
||||
; 110 msec. to 4000 msec. The default is 200 msec. Note: if you wish to test |
||||
; the receiver by entering digits manually, set this to a reasonable time out |
||||
; like 4000 milliseconds. |
||||
; |
||||
|
||||
sdtimeout = 200 |
||||
|
||||
; |
||||
; Wait for the connection to settle post-answer. Adjustable from 500 msec. to 10000 msec. |
||||
; The default is 1250 msec. |
||||
; |
||||
|
||||
answait = 1250 |
||||
|
||||
; When logging individual events it may be desirable to skip grouping of metadata |
||||
|
||||
;no_group_meta = yes |
||||
|
||||
; |
||||
; The loudness of the ACK and Kissoff tones is adjustable from 100 to 8192. |
||||
; The default is 8192. This shouldn't need to be messed with, but is included |
||||
; just in case there are problems with signal levels. |
||||
; |
||||
|
||||
loudness = 8192 |
||||
|
||||
; |
||||
; The db-family setting allows the user to capture statistics on the number of |
||||
; calls, and the errors the alarm receiver sees. The default is for no |
||||
; db-family name to be defined and the database logging to be turned off. |
||||
; |
||||
|
||||
;db-family = yourfamily: |
||||
|
||||
; |
||||
; End of alarmreceiver.conf |
||||
; |
@ -0,0 +1,77 @@
|
||||
; |
||||
; Open Sound System Console Driver Configuration File |
||||
; |
||||
[general] |
||||
; |
||||
; Automatically answer incoming calls on the console? Choose yes if |
||||
; for example you want to use this as an intercom. |
||||
; |
||||
autoanswer=yes |
||||
; |
||||
; Default context (is overridden with @context syntax) |
||||
; |
||||
context=local |
||||
; |
||||
; Default extension to call |
||||
; |
||||
extension=s |
||||
; |
||||
; Default language |
||||
; |
||||
;language=en |
||||
; |
||||
; Default Music on Hold class to use when this channel is placed on hold in |
||||
; the case that the music class is not set on the channel with |
||||
; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel |
||||
; putting this one on hold did not suggest a class to use. |
||||
; |
||||
;mohinterpret=default |
||||
; |
||||
; Silence suppression can be enabled when sound is over a certain threshold. |
||||
; The value for the threshold should probably be between 500 and 2000 or so, |
||||
; but your mileage may vary. Use the echo test to evaluate the best setting. |
||||
;silencesuppression = yes |
||||
;silencethreshold = 1000 |
||||
; |
||||
; To set which ALSA device to use, change this parameter |
||||
;input_device=hw:0,0 |
||||
;output_device=hw:0,0 |
||||
|
||||
; |
||||
; Default mute state (can also be toggled via CLI) |
||||
;mute=true |
||||
|
||||
; |
||||
; If enabled, no audio capture device will be opened. This is useful on |
||||
; systems where there will be no return audio path, such as overhead pagers. |
||||
;noaudiocapture=true |
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an |
||||
; ALSA channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The ALSA channel can't accept jitter, |
||||
; thus an enabled jitterbuffer on the receive ALSA side will always |
||||
; be used if the sending side can create jitter. |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP |
||||
; channel. Two implementations are currently available - "fixed" |
||||
; (with size always equals to jbmax-size) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. |
||||
; The option represents the number of milliseconds by which the new |
||||
; jitter buffer will pad its size. the default is 40, so without |
||||
; modification, the new jitter buffer will set its size to the jitter |
||||
; value plus 40 milliseconds. increasing this value may help if your |
||||
; network normally has low jitter, but occasionally has spikes. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
@ -0,0 +1,31 @@
|
||||
; |
||||
; Answering Machine Detection Configuration |
||||
; |
||||
|
||||
[general] |
||||
total_analysis_time = 5000 ; Maximum time allowed for the algorithm to decide |
||||
; on whether the audio represents a HUMAN, or a MACHINE |
||||
silence_threshold = 256 ; If the average level of noise in a sample does not reach |
||||
; this value, from a scale of 0 to 32767, then we will consider |
||||
; it to be silence. |
||||
|
||||
; Greeting ; |
||||
initial_silence = 2500 ; Maximum silence duration before the greeting. |
||||
; If exceeded, then the result is detection as a MACHINE. |
||||
after_greeting_silence = 800 ; Silence after detecting a greeting. |
||||
; If exceeded, then the result is detection as a HUMAN |
||||
greeting = 1500 ; Maximum length of a greeting. If exceeded, then the |
||||
; result is detection as a MACHINE. |
||||
|
||||
; Word detection ; |
||||
min_word_length = 100 ; Minimum duration of Voice to considered as a word |
||||
maximum_word_length = 5000 ; Maximum duration of a single Voice utterance allowed. |
||||
between_words_silence = 50 ; Minimum duration of silence after a word to consider |
||||
; the audio what follows as a new word |
||||
|
||||
maximum_number_of_words = 3 ; Maximum number of words in the greeting |
||||
; If REACHED, then the result is detection as a MACHINE |
||||
; WARNING: Releases prior to January 1 2016 documented |
||||
; maximum_number_of_words as 'if exceeded, then MACHINE', |
||||
; which did not reflect the true functionality. In Asterisk 14, |
||||
; this functionality will change to reflect the variables' name. |
@ -0,0 +1,158 @@
|
||||
; |
||||
; Asterisk default ADSI script |
||||
; |
||||
; |
||||
; Begin with the preamble requirements |
||||
; |
||||
DESCRIPTION "Asterisk PBX" ; Name of vendor |
||||
VERSION 0x00 ; Version of stuff |
||||
;SECURITY "_AST" ; Security code |
||||
SECURITY 0X9BDBF7AC ; Security code |
||||
FDN 0x0000000F ; Descriptor number |
||||
|
||||
; |
||||
; Flags |
||||
; |
||||
FLAG "nocallwaiting" |
||||
|
||||
; |
||||
; Predefined strings |
||||
; |
||||
DISPLAY "titles" IS "** Asterisk PBX **" |
||||
DISPLAY "talkingto" IS "Call active." JUSTIFY LEFT |
||||
DISPLAY "callname" IS "$Call1p" JUSTIFY LEFT |
||||
DISPLAY "callnum" IS "$Call1s" JUSTIFY LEFT |
||||
DISPLAY "incoming" IS "Incoming call!" JUSTIFY LEFT |
||||
DISPLAY "ringing" IS "Calling... " JUSTIFY LEFT |
||||
DISPLAY "callended" IS "Call ended." JUSTIFY LEFT |
||||
DISPLAY "missedcall" IS "Missed call." JUSTIFY LEFT |
||||
DISPLAY "busy" IS "Busy." JUSTIFY LEFT |
||||
DISPLAY "reorder" IS "Reorder." JUSTIFY LEFT |
||||
DISPLAY "cwdisabled" IS "Callwait disabled" |
||||
DISPLAY "empty" IS "asdf" |
||||
|
||||
; |
||||
; Begin soft key definitions |
||||
; |
||||
KEY "callfwd" IS "CallFwd" OR "Call Forward" |
||||
OFFHOOK |
||||
VOICEMODE |
||||
WAITDIALTONE |
||||
SENDDTMF "*60" |
||||
GOTO "offHook" |
||||
ENDKEY |
||||
|
||||
KEY "vmail_OH" IS "VMail" OR "Voicemail" |
||||
OFFHOOK |
||||
VOICEMODE |
||||
WAITDIALTONE |
||||
SENDDTMF "8500" |
||||
ENDKEY |
||||
|
||||
KEY "vmail" IS "VMail" OR "Voicemail" |
||||
SENDDTMF "8500" |
||||
ENDKEY |
||||
|
||||
KEY "backspace" IS "BackSpc" OR "Backspace" |
||||
BACKSPACE |
||||
ENDKEY |
||||
|
||||
KEY "cwdisable" IS "CWDsble" OR "Disable Call Wait" |
||||
SENDDTMF "*70" |
||||
SETFLAG "nocallwaiting" |
||||
SHOWDISPLAY "cwdisabled" AT 4 |
||||
TIMERCLEAR |
||||
TIMERSTART 1 |
||||
ENDKEY |
||||
|
||||
KEY "cidblock" IS "CIDBlk" OR "Block Callerid" |
||||
SENDDTMF "*67" |
||||
SETFLAG "nocallwaiting" |
||||
ENDKEY |
||||
|
||||
; |
||||
; Begin main subroutine |
||||
; |
||||
|
||||
SUB "main" IS |
||||
IFEVENT NEARANSWER THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE |
||||
SHOWDISPLAY "talkingto" AT 2 NOUPDATE |
||||
SHOWDISPLAY "callname" AT 3 |
||||
SHOWDISPLAY "callnum" AT 4 |
||||
GOTO "stableCall" |
||||
ENDIF |
||||
IFEVENT OFFHOOK THEN |
||||
CLEAR |
||||
CLEARFLAG "nocallwaiting" |
||||
CLEARDISPLAY |
||||
SHOWDISPLAY "titles" AT 1 |
||||
SHOWKEYS "vmail" |
||||
SHOWKEYS "cidblock" |
||||
SHOWKEYS "cwdisable" UNLESS "nocallwaiting" |
||||
GOTO "offHook" |
||||
ENDIF |
||||
IFEVENT IDLE THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 |
||||
SHOWKEYS "vmail_OH" |
||||
ENDIF |
||||
IFEVENT CALLERID THEN |
||||
CLEAR |
||||
; SHOWDISPLAY "titles" AT 1 NOUPDATE |
||||
; SHOWDISPLAY "incoming" AT 2 NOUPDATE |
||||
SHOWDISPLAY "callname" AT 3 NOUPDATE |
||||
SHOWDISPLAY "callnum" AT 4 |
||||
ENDIF |
||||
IFEVENT RING THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE |
||||
SHOWDISPLAY "incoming" AT 2 |
||||
ENDIF |
||||
IFEVENT ENDOFRING THEN |
||||
SHOWDISPLAY "missedcall" AT 2 |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 |
||||
SHOWKEYS "vmail_OH" |
||||
ENDIF |
||||
IFEVENT TIMER THEN |
||||
CLEAR |
||||
SHOWDISPLAY "empty" AT 4 |
||||
ENDIF |
||||
ENDSUB |
||||
|
||||
SUB "offHook" IS |
||||
IFEVENT FARRING THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE |
||||
SHOWDISPLAY "ringing" AT 2 NOUPDATE |
||||
SHOWDISPLAY "callname" at 3 NOUPDATE |
||||
SHOWDISPLAY "callnum" at 4 |
||||
ENDIF |
||||
IFEVENT FARANSWER THEN |
||||
CLEAR |
||||
SHOWDISPLAY "talkingto" AT 2 |
||||
GOTO "stableCall" |
||||
ENDIF |
||||
IFEVENT BUSY THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE |
||||
SHOWDISPLAY "busy" AT 2 NOUPDATE |
||||
SHOWDISPLAY "callname" at 3 NOUPDATE |
||||
SHOWDISPLAY "callnum" at 4 |
||||
ENDIF |
||||
IFEVENT REORDER THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE |
||||
SHOWDISPLAY "reorder" AT 2 NOUPDATE |
||||
SHOWDISPLAY "callname" at 3 NOUPDATE |
||||
SHOWDISPLAY "callnum" at 4 |
||||
ENDIF |
||||
ENDSUB |
||||
|
||||
SUB "stableCall" IS |
||||
IFEVENT REORDER THEN |
||||
SHOWDISPLAY "callended" AT 2 |
||||
ENDIF |
||||
ENDSUB |
@ -0,0 +1,109 @@
|
||||
;[calendar1] |
||||
;type = ical ; type of calendar--currently supported: ical, caldav, exchange, or ews |
||||
;url = https://example.com/home/jdoe/Calendar/ ; URL to shared calendar (Zimbra example) |
||||
;user = jdoe ; web username |
||||
;secret = supersecret ; web password |
||||
;refresh = 15 ; refresh calendar every n minutes |
||||
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period |
||||
; ; should always be >= refresh |
||||
; |
||||
; You can set up res_calendar to execute a call upon an upcoming busy status |
||||
; The following fields are available from the ${CALENDAR_EVENT(<field>)} dialplan function: |
||||
; |
||||
; summary : The VEVENT Summary property or Exchange subject |
||||
; description : The text description of the vent |
||||
; organizer : The organizer of the event |
||||
; location : The location field of the event |
||||
; calendar : The name of the calendar tied to the event |
||||
; uid : The unique ID for this event |
||||
; start : Start time of the event |
||||
; end : The end time of the event |
||||
; busystate : 0=FREE, 1=TENTATIVE, 2=BUSY |
||||
; |
||||
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) |
||||
; |
||||
;channel = SIP/60001 ; Channel to dial |
||||
;context = default ; Context to connect to on answer |
||||
;extension = 123 ; Extension to connect to on answer |
||||
; |
||||
; or |
||||
; |
||||
;app = Playback ; Application to execute on answer (instead of context/extension) |
||||
;appdata = tt-weasels ; Data part of application to execute on answer |
||||
; |
||||
;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds |
||||
; |
||||
; Channel variables can be set on the notification channel. The format is |
||||
; setvar=name=value. Variable subsitution is done on the value to allow the use of dialplan |
||||
; functions like CALENDAR_EVENT. The variables are set in order, so one can use the value |
||||
; of earlier variables in the definition of later ones. |
||||
; |
||||
;setvar = CALLERID(name)=${CALENDAR_EVENT(summary)} |
||||
|
||||
;[calendar2] |
||||
; Note: Support for Exchange Server 2003 |
||||
; |
||||
;type = exchange ; type of calendar--currently supported: ical, caldav, exchange, or ews |
||||
;url = https://example.com/exchange/jdoe ; URL to MS Exchange OWA for user (usually includes exchange/user) |
||||
;user = jdoe ; Exchange username |
||||
;secret = mysecret ; Exchange password |
||||
;refresh = 15 ; refresh calendar every n minutes |
||||
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period |
||||
; ; should always be >= refresh |
||||
; |
||||
; You can set up res_calendar to execute a call upon an upcoming busy status |
||||
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) |
||||
; |
||||
;channel = SIP/1234 ; Channel to dial |
||||
;context = default ; Context to connect to on answer |
||||
;extension = 1234 ; Extension to connect to on answer |
||||
; |
||||
; or |
||||
; |
||||
;[calendar3] |
||||
; Note: Support for Exchange Server 2007+ |
||||
; |
||||
;type = ews ; type of calendar--currently supported: ical, caldav, exchange, or ews |
||||
;url = https://example.com/ews/Exchange.asmx ; URL to MS Exchange EWS |
||||
;user = jdoe ; Exchange username |
||||
;secret = mysecret ; Exchange password |
||||
;refresh = 15 ; refresh calendar every n minutes |
||||
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period |
||||
; ; should always be >= refresh |
||||
; |
||||
; You can set up res_calendar to execute a call upon an upcoming busy status |
||||
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) |
||||
; |
||||
;channel = SIP/1234 ; Channel to dial |
||||
;context = default ; Context to connect to on answer |
||||
;extension = 1234 ; Extension to connect to on answer |
||||
; |
||||
; or |
||||
; |
||||
;app = Playback ; Application to execute on answer (instead of context/extension) |
||||
;appdata = tt-weasels ; Data part of application to execute on answer |
||||
; |
||||
;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds |
||||
|
||||
;[calendar4] |
||||
;type = caldav ; type of calendar--currently supported: ical, caldav, exchange, or ews |
||||
;url = https://www.google.com/calendar/dav/username@gmail.com/events/ ; Main GMail calendar (the trailing slash is significant!) |
||||
;user = jdoe@gmail.com ; username |
||||
;secret = mysecret ; password |
||||
;refresh = 15 ; refresh calendar every n minutes |
||||
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period |
||||
; ; should always be >= refresh |
||||
; |
||||
; You can set up res_calendar to execute a call upon an upcoming busy status |
||||
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) |
||||
; |
||||
;channel = SIP/1234 ; Channel to dial |
||||
;context = default ; Context to connect to on answer |
||||
;extension = 1234 ; Extension to connect to on answer |
||||
; |
||||
; or |
||||
; |
||||
;app = Playback ; Application to execute on answer (instead of context/extension) |
||||
;appdata = tt-weasels ; Data part of application to execute on answer |
||||
; |
||||
;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds |
@ -0,0 +1,205 @@
|
||||
; |
||||
; --- Call Completion Supplementary Services --- |
||||
; |
||||
; For more information about CCSS, see the CCSS user documentation |
||||
; https://wiki.asterisk.org/wiki/display/AST/Call+Completion+Supplementary+Services+(CCSS) |
||||
; |
||||
|
||||
[general] |
||||
; The cc_max_requests option is a global limit on the number of |
||||
; CC requests that may be in the Asterisk system at any time. |
||||
; |
||||
;cc_max_requests = 20 |
||||
; |
||||
; The cc_STATE_devstate variables listed below can be used to change the |
||||
; default mapping of the internal state machine tracking the state of |
||||
; call completion to an Asterisk Device State value. The acceptable values |
||||
; that can be provided are as follows, with a description of what the |
||||
; equivalent device BLF that this maps to: |
||||
; |
||||
; UNKNOWN ; Device is valid but channel didn't know state |
||||
; NOT_INUSE ; Device is not used |
||||
; INUSE ; Device is in use |
||||
; BUSY ; Device is busy |
||||
; INVALID ; Device is invalid |
||||
; UNAVAILABLE ; Device is unavailable |
||||
; RINGING ; Device is ringing |
||||
; RINGINUSE ; Device is ringing *and* in use |
||||
; ONHOLD ; Device is on hold |
||||
; |
||||
; These states are used to generate DEVICE_STATE information that can be |
||||
; included with Asterisk hints for phones to subscribe to the state information |
||||
; or dialplan to check the state using the EXTENSION_STATE() function or |
||||
; the DEVICE_STATE() function. |
||||
; |
||||
; The states are in the format of: "ccss:TECH/ID" so an example of device |
||||
; SIP/3000 making a CallCompletionRequest() could be checked by looking at |
||||
; DEVICE_STATE(ccss:SIP/3000) or an Asterisk Hint could be generated such as |
||||
; |
||||
; [hint-context] |
||||
; exten => *843000,hint,ccss:SIP/3000 |
||||
; |
||||
; and then accessed with EXTENSION_STATE(*843000@hint-context) |
||||
; or subscribed to with a BLF button on a phone. |
||||
; |
||||
; The available state mapping and default values are: |
||||
; |
||||
; cc_available_devstate = NOT_INUSE |
||||
; cc_offered_devstate = NOT_INUSE |
||||
; cc_caller_requested_devstate = NOT_INUSE |
||||
; cc_active_devstate = INUSE |
||||
; cc_callee_ready_devstate = INUSE |
||||
; cc_caller_busy_devstate = ONHOLD |
||||
; cc_recalling_devstate = RINGING |
||||
; cc_complete_devstate = NOT_INUSE |
||||
; cc_failed_devstate = NOT_INUSE |
||||
|
||||
; |
||||
;============================================ |
||||
; PLEASE READ THIS!!! |
||||
; The options described below should NOT be |
||||
; set in this file. Rather, they should be |
||||
; set per-device in a channel driver |
||||
; configuration file. |
||||
; PLEASE READ THIS!!! |
||||
;=========================================== |
||||
; |
||||
; -------------------------------------------------------------------- |
||||
; Timers |
||||
; -------------------------------------------------------------------- |
||||
;There are three configurable timers for all types of CC: the |
||||
;cc_offer_timer, the ccbs_available_timer, and the ccnr_available_timer. |
||||
;In addition, when using a generic agent, there is a fourth timer, |
||||
;the cc_recall_timer. All timers are configured in seconds, and the |
||||
;values shown below are the defaults. |
||||
; |
||||
;When a caller is offered CCBS or CCNR, the cc_offer_timer will |
||||
;be started. If the caller does not request CC before the |
||||
;cc_offer_timer expires, then the caller will be unable to request |
||||
;CC for this call. |
||||
; |
||||
;cc_offer_timer = 20 |
||||
; |
||||
;Once a caller has requested CC, then either the ccbs_available_timer |
||||
;or the ccnr_available_timer will run, depending on the service |
||||
;requested. The reason why there are two separate timers for CCBS |
||||
;and CCNR is that it is reasonable to want to have a shorter timeout |
||||
;configured for CCBS than for CCNR. If the available timer expires |
||||
;before the called party becomes available, then the CC attempt |
||||
;will have failed and monitoring of the called party will stop. |
||||
; |
||||
;ccbs_available_timer = 4800 |
||||
;ccnr_available_timer = 7200 |
||||
; |
||||
; When using a generic agent, the original caller is called back |
||||
; when one of the original called parties becomes available. The |
||||
; cc_recall_timer tells Asterisk how long it should let the original |
||||
; caller's phone ring before giving up. Please note that this parameter |
||||
; only affects operation when using a generic agent. |
||||
; |
||||
;cc_recall_timer = 20 |
||||
; -------------------------------------------------------------------- |
||||
; Policies |
||||
; -------------------------------------------------------------------- |
||||
; Policy settings tell Asterisk how to behave and what sort of |
||||
; resources to allocate in order to facilitate CC. There are two |
||||
; settings to control the actions Asterisk will take. |
||||
; |
||||
; The cc_agent_policy describes the behavior that Asterisk will |
||||
; take when communicating with the caller during CC. There are |
||||
; three possible options. |
||||
; |
||||
;never: Never offer CC to the caller. Setting the cc_agent_policy |
||||
; to this value is the way to disable CC for a call. |
||||
; |
||||
;generic: A generic CC agent is one which uses no protocol-specific |
||||
; mechanisms to offer CC to the caller. Instead, the caller |
||||
; requests CC using a dialplan function. Due to internal |
||||
; restrictions, you should only use a generic CC agent on |
||||
; phones (i.e. not "trunks"). If you are using phones which |
||||
; do not support a protocol-specific method of using CC, then |
||||
; generic CC agents are what you should use. |
||||
; |
||||
;native: A native CC agent is one which uses protocol-specific |
||||
; signaling to offer CC to the caller and accept CC requests |
||||
; from the caller. The supported protocols for native CC |
||||
; agents are SIP, ISDN ETSI PTP, ISDN ETSI PTMP, and Q.SIG |
||||
;cc_agent_policy=never |
||||
; |
||||
; The cc_monitor_policy describes the behavior that Asterisk will |
||||
; take when communicating with the called party during CC. There |
||||
; are four possible options. |
||||
; |
||||
;never: Analogous to the cc_agent_policy setting. We will never |
||||
; attempt to request CC services on this interface. |
||||
; |
||||
;generic: Analogous to the cc_agent_policy setting. We will monitor |
||||
; the called party's progress using protocol-agnostic |
||||
; capabilities. Like with generic CC agents, generic CC |
||||
; monitors should only be used for phones. |
||||
; |
||||
;native: Analogous to the cc_agent_policy setting. We will use |
||||
; protocol-specific methods to request CC from this interface |
||||
; and to monitor the interface for availability. |
||||
; |
||||
;always: If an interface is set to "always," then we will accept |
||||
; protocol-specific CC offers from the caller and use |
||||
; a native CC monitor for the remainder of the CC transaction. |
||||
; However, if the interface does not offer protocol-specific |
||||
; CC, then we will fall back to using a generic CC monitor |
||||
; instead. This is a good setting to use for phones for which |
||||
; you do not know if they support protocol-specific CC |
||||
; methodologies. |
||||
;cc_monitor_policy=never |
||||
; |
||||
; |
||||
; -------------------------------------------------------------------- |
||||
; Limits |
||||
; -------------------------------------------------------------------- |
||||
; |
||||
; The use of CC requires Asterisk to potentially use more memory than |
||||
; some administrators would like. As such, it is a good idea to limit |
||||
; the number of CC requests that can be in the system at a given time. |
||||
; The values shown below are the defaults. |
||||
; |
||||
; The cc_max_agents setting limits the number of outstanding CC |
||||
; requests a caller may have at any given time. Please note that due |
||||
; to implementation restrictions, this setting is ignored when using |
||||
; generic CC agents. Generic CC agents may only have one outstanding |
||||
; CC request. |
||||
; |
||||
;cc_max_agents = 5 |
||||
; |
||||
; The cc_max_monitors setting limits the number of outstanding CC |
||||
; requests can be made to a specific interface at a given time. |
||||
; |
||||
;cc_max_monitors = 5 |
||||
; |
||||
; -------------------------------------------------------------------- |
||||
; Other |
||||
; -------------------------------------------------------------------- |
||||
; |
||||
; When using a generic CC agent, the caller who requested CC will be |
||||
; called back when a called party becomes available. When the caller |
||||
; answers his phone, the administrator may opt to have a macro run. |
||||
; What this macro does is up to the administrator. By default there |
||||
; is no callback macro configured. |
||||
; |
||||
;cc_callback_macro= |
||||
; |
||||
; Alternatively, the administrator may run a subroutine. By default |
||||
; there is no callback subroutine configured. The subroutine should |
||||
; be specified in the format: [[context,]exten,]priority |
||||
; |
||||
;cc_callback_sub= |
||||
; |
||||
; When using an ISDN phone and a generic CC agent, Asterisk is unable |
||||
; to determine the dialstring that should be used when calling back |
||||
; the original caller. Furthermore, if you desire to use any dialstring- |
||||
; specific options, such as distinctive ring, you must set this |
||||
; configuration option. For non-ISDN phones, it is not necessary to |
||||
; set this, since Asterisk can determine the dialstring to use since |
||||
; it is identical to the name of the calling device. By default, there |
||||
; is no cc_agent_dialstring set. |
||||
; |
||||
;cc_agent_dialstring= |
@ -0,0 +1,59 @@
|
||||
; The point of this module is to allow you log whatever you like in terms of |
||||
; the CDR variables. Do you want to log uniqueid? Then simply ensure that |
||||
; your table has that column. If you don't want the column, ensure that it |
||||
; does not exist in the table structure. If you'd like to call uniqueid |
||||
; something else in your table, simply provide an alias in the configuration |
||||
; file that maps the standard CDR field name (uniqueid) to whatever column |
||||
; name you like. Perhaps you'd like some extra CDR values logged that aren't |
||||
; in the standard repertoire of CDR variables (some that come to mind are |
||||
; certain values used for LCR: route, per_minute_cost, and per_minute_price). |
||||
; Simply set those CDR variables in your dialplan, i.e. Set(CDR(route)=27), |
||||
; ensure that a corresponding column exists in your table, and cdr_adaptive_odbc |
||||
; will do the rest. |
||||
; |
||||
; This configuration defines the connections and tables for which CDRs may |
||||
; be populated. Each context specifies a different CDR table to be used. |
||||
; |
||||
; The columns in the tables should match up word-for-word (case-insensitive) |
||||
; to the CDR variables set in the dialplan. The natural advantage to this |
||||
; system is that beyond setting up the configuration file to tell you what |
||||
; tables to look at, there isn't anything more to do beyond creating the |
||||
; columns for the fields that you want, and populating the corresponding |
||||
; CDR variables in the dialplan. For the builtin variables only, you may |
||||
; create aliases for the real column name. |
||||
; |
||||
; Please note that after adding columns to the database, it is necessary to |
||||
; reload this module to get the new column names and types read. |
||||
; |
||||
; Warning: if you specify two contexts with exactly the same connection and |
||||
; table names, you will get duplicate records in that table. So be careful. |
||||
; |
||||
|
||||
;[first] |
||||
;connection=mysql1 |
||||
;table=cdr |
||||
|
||||
;[second] |
||||
;connection=mysql1 |
||||
;table=extracdr |
||||
|
||||
;[third] |
||||
;connection=sqlserver |
||||
;table=AsteriskCDR |
||||
;schema=public ; for databases which support schemas |
||||
;usegmtime=yes ; defaults to no |
||||
;alias src => source |
||||
;alias channel => source_channel |
||||
;alias dst => dest |
||||
;alias dstchannel => dest_channel |
||||
; |
||||
; Any filter specified MUST match exactly or the CDR will be discarded |
||||
;filter accountcode => somename |
||||
;filter src => 123 |
||||
; Negative filters are also now available |
||||
;filter src != 456 |
||||
; |
||||
; Additionally, we now support setting static values per column. The reason |
||||
; for this is to allow different sections to specify different values for |
||||
; a certain named column, presumably separated by filters. |
||||
;static "Some Special Value" => identifier_code |
@ -0,0 +1,62 @@
|
||||
; |
||||
; Note - if the database server is hosted on the same machine as the |
||||
; asterisk server, you can achieve a local Unix socket connection by |
||||
; setting hostname=localhost |
||||
; |
||||
; port and sock are both optional parameters. If hostname is specified |
||||
; and is not "localhost" (you can use address 127.0.0.1 instead), then |
||||
; cdr_mysql will attempt to connect to the port specified or use the |
||||
; default port. If hostname is not specified or if hostname is |
||||
; "localhost", then cdr_mysql will attempt to connect to the socket file |
||||
; specified by sock or otherwise use the default socket file. |
||||
; |
||||
;[global] |
||||
;hostname=database.host.name |
||||
;dbname=asteriskcdrdb |
||||
;table=cdr |
||||
;password=password |
||||
;user=asteriskcdruser |
||||
;port=3306 |
||||
;sock=/tmp/mysql.sock |
||||
; By default CDRs are logged in the system's time zone |
||||
;cdrzone=UTC ; log CDRs with UTC |
||||
;usegmtime=yes ;log date/time in GMT. Default is "no" |
||||
;cdrzone=America/New_York ; or use a specific time zone |
||||
; |
||||
; If your system's locale differs from mysql database character set, |
||||
; cdr_mysql can damage non-latin characters in CDR variables. Use this |
||||
; option to protect your data. |
||||
;charset=koi8r |
||||
; |
||||
; Older versions of cdr_mysql set the calldate field to whenever the |
||||
; record was posted, rather than the start date of the call. This flag |
||||
; reverts to the old (incorrect) behavior. Note that you'll also need |
||||
; to comment out the "start=calldate" alias, below, to use this. |
||||
;compat=no |
||||
; |
||||
; ssl connections (optional) |
||||
;ssl_ca=<path to CA cert> |
||||
;ssl_cert=<path to cert> |
||||
;ssl_key=<path to keyfile> |
||||
; |
||||
; You may also configure the field names used in the CDR table. |
||||
; |
||||
[columns] |
||||
;static "<value>" => <column> |
||||
;alias <cdrvar> => <column> |
||||
alias start => calldate |
||||
;alias clid => <a_field_not_named_clid> |
||||
;alias src => <a_field_not_named_src> |
||||
;alias dst => <a_field_not_named_dst> |
||||
;alias dcontext => <a_field_not_named_dcontext> |
||||
;alias channel => <a_field_not_named_channel> |
||||
;alias dstchannel => <a_field_not_named_dstchannel> |
||||
;alias lastapp => <a_field_not_named_lastapp> |
||||
;alias lastdata => <a_field_not_named_lastdata> |
||||
;alias duration => <a_field_not_named_duration> |
||||
;alias billsec => <a_field_not_named_billsec> |
||||
;alias disposition => <a_field_not_named_disposition> |
||||
;alias amaflags => <a_field_not_named_amaflags> |
||||
;alias accountcode => <a_field_not_named_accountcode> |
||||
;alias userfield => <a_field_not_named_userfield> |
||||
;alias uniqueid => <a_field_not_named_uniqueid> |
@ -0,0 +1,12 @@
|
||||
; |
||||
; cdr_odbc.conf |
||||
; |
||||
|
||||
;[global] |
||||
;dsn=MySQL-test |
||||
;loguniqueid=yes |
||||
;dispositionstring=yes |
||||
;table=cdr ;"cdr" is default table name |
||||
;usegmtime=no ; set to "yes" to log in GMT |
||||
;hrtime=yes ;Enables microsecond accuracy with the billsec and duration fields |
||||
;newcdrcolumns=yes ; Enable logging of post-1.8 CDR columns (peeraccount, linkedid, sequence) |
@ -0,0 +1,10 @@
|
||||
; |
||||
; Mappings for custom config file |
||||
; |
||||
[master] ; currently, only file "master.db" is supported, with only one table at a time. |
||||
;table => cdr |
||||
;columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, test |
||||
;values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}','${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}' |
||||
|
||||
;Enable High Resolution Times for billsec and duration fields |
||||
;values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration,f)}','${CDR(billsec,f)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}' |
@ -0,0 +1,83 @@
|
||||
; |
||||
; Asterisk Call Detail Records (CDR) - Syslog Backend |
||||
; |
||||
|
||||
; The cdr_syslog module writes CDRs using the facilities provided by syslog. |
||||
; |
||||
; Not only must you configure cdr_syslog from this file (cdr_syslog.conf) but |
||||
; you will also need to make changes to your /etc/syslog.conf before CDRs will |
||||
; be written to syslog. |
||||
; |
||||
; As an example, you can add the following to /etc/syslog.conf: |
||||
; |
||||
; local4.info /var/log/asterisk-cdr.log |
||||
; |
||||
; And then instruct syslogd to re-read the configuration file by sending it a |
||||
; HUP signal. On Linux this can be done like this: |
||||
; |
||||
; kill -HUP `cat /var/run/syslogd.pid` |
||||
; |
||||
; Finally, you will need to uncomment the [cdr-simple] section below, and restart |
||||
; Asterisk. When calls are placed, you should start seeing records appear in |
||||
; /var/log/asterisk-cdr.log. |
||||
|
||||
[general] |
||||
; Facility |
||||
; |
||||
; The 'facility' keyword specifies the syslog facility to use when writing out |
||||
; CDRs. |
||||
; |
||||
; Accepted values: One of the following: |
||||
; user, local0, local1, local2, local3, local4, local5, local6 |
||||
; and local7. |
||||
; |
||||
; Note: Depending on your platform, the following may also be |
||||
; available: |
||||
; auth, authpriv, cron, daemon, ftp, kern, lpr, mail, |
||||
; news, syslog, and uucp. |
||||
; |
||||
; Default value: local4 |
||||
|
||||
;facility=local0 |
||||
|
||||
; Priority |
||||
; |
||||
; Use the 'priority' keyword to select which of the syslog priority levels to |
||||
; use when logging CDRs. |
||||
; |
||||
; Accepted values: One of the following: |
||||
; alert, crit, debug, emerg, err, info, notice, warning |
||||
; Default value: info |
||||
|
||||
;priority=warn |
||||
|
||||
; Note: The settings for 'facility' and 'priority' in the [general] section |
||||
; define the default values for all of the logging locations created |
||||
; below in separate sections. |
||||
|
||||
;[cdr-master] |
||||
;facility = local5 |
||||
;priority = debug |
||||
|
||||
; Template |
||||
; |
||||
; The 'template' value allows you to specify a custom format for messages |
||||
; written to syslog. This is similar to how cdr_custom is configured. |
||||
; |
||||
; Allowed values: A diaplan style string. |
||||
; Default value: None, this is required field. |
||||
; |
||||
; Note: Because of the way substitution is done, the only meaningful values |
||||
; available when the record is logged are those available via the CDR() |
||||
; dialplan function. All other channel variables will be unavailable. |
||||
|
||||
;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration)}","${CDR(billsec)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}" |
||||
|
||||
; High Resolution Time for billsec and duration fields |
||||
;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration,f)}","${CDR(billsec,f)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}" |
||||
;[cdr-simple] |
||||
|
||||
; Since we don't specify a facility or priority for this logging location, the |
||||
; records will use the defaults specified in the [general] section. |
||||
|
||||
;template = "We received a call from ${CDR(src)}" |
@ -0,0 +1,77 @@
|
||||
; |
||||
; Asterisk Call Detail Records (CDR) - FreeTDS Backend |
||||
; |
||||
|
||||
;[global] |
||||
|
||||
; Connection |
||||
; |
||||
; Use the 'connection' keyword to specify one of the instance names from your |
||||
; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk |
||||
; configuration file, but one specific to the FreeTDS library. See the FreeTDS |
||||
; documentation on 'freetds.conf' for more information: |
||||
; |
||||
; http://www.freetds.org/userguide/freetdsconf.htm |
||||
; |
||||
; Accepted values: One of the connections specified in freetds.conf |
||||
|
||||
;connection=ConnectionFromFreeTDSConf |
||||
|
||||
; Database Name |
||||
; |
||||
; The 'dbname' keyword specifies the database name to use when logging CDRs. |
||||
; |
||||
; Accepted values: Any valid database name |
||||
|
||||
;dbname=AsteriskCDRs |
||||
|
||||
; Database Table Name |
||||
; |
||||
; The 'table' keyword identifies which database table is used to log CDRs. |
||||
; |
||||
; Accepted value: Any valid table name |
||||
; Default value: If not specified, a table named 'cdr' is assumed |
||||
|
||||
;table=cdr |
||||
|
||||
; Credentials |
||||
; |
||||
; The 'username' and 'password' keywords specify the user credentials that |
||||
; Asterisk should use when connecting to the database. |
||||
; |
||||
; Accepted value: Any valid username and password |
||||
|
||||
;username=mangUsr |
||||
;password= |
||||
|
||||
; Language |
||||
; |
||||
; The 'language' keyword changes the language which are used for error and |
||||
; information messages returned by SQL Server. Each database and user has their |
||||
; own default value, and this default can be overriden here. |
||||
; |
||||
; Accepted value: Any language installed on the target SQL Server. |
||||
; Default value: us_english |
||||
|
||||
;language=us_english |
||||
|
||||
; Character Set |
||||
; |
||||
; The 'charset' setting is used to change the character set used when connecting |
||||
; to the database server. Each database and database user has their own |
||||
; character set setting, and this default can be overriden here. |
||||
; |
||||
; Accepted value: Any valid character set available on the target SQL server. |
||||
; Default value: iso_1 |
||||
|
||||
;charset=BIG5 |
||||
|
||||
; High Resolution Times |
||||
; |
||||
; The 'hrtime' setting is used to store high resolution (sub second) times for |
||||
; billsec and duration fields. |
||||
; |
||||
; Accepted value: true or false |
||||
; Default value: false |
||||
|
||||
;hrtime=false |
@ -0,0 +1,108 @@
|
||||
; |
||||
; Asterisk Channel Event Logging (CEL) - Adaptive ODBC Backend |
||||
; |
||||
|
||||
; General module options category. |
||||
[general] |
||||
; Use 'show_user_defined' to put "USER_DEFINED" in the eventtype field, |
||||
; instead of (by default) just putting the user defined event name there. |
||||
; |
||||
;show_user_defined=yes |
||||
|
||||
; This configuration defines the connections and tables for which CEL records |
||||
; may be populated. Each context specifies a different CEL table to be used. |
||||
; |
||||
; The columns in the tables should match up word-for-word (case-insensitive) to |
||||
; the CEL variables set in the dialplan. The natural advantage to this system |
||||
; is that beyond setting up the configuration file to tell you what tables to |
||||
; look at, there isn't anything more to do beyond creating the columns for the |
||||
; fields that you want, and populating the corresponding CEL variables in the |
||||
; dialplan. |
||||
; |
||||
; Please note that after adding columns to the database, it is necessary to |
||||
; reload this module to get the new column names and types read. |
||||
; |
||||
; Warning: if you specify two contexts with exactly the same connection and |
||||
; table names, you will get duplicate records in that table. So be careful. |
||||
; |
||||
; CEL FIELDS: |
||||
; eventtype |
||||
; CHANNEL_START = 1 |
||||
; CHANNEL_END = 2 |
||||
; HANGUP = 3 |
||||
; ANSWER = 4 |
||||
; APP_START = 5 |
||||
; APP_END = 6 |
||||
; BRIDGE_START = 7 |
||||
; BRIDGE_END = 8 |
||||
; CONF_START = 9 |
||||
; CONF_END = 10 |
||||
; PARK_START = 11 |
||||
; PARK_END = 12 |
||||
; BLINDTRANSFER = 13 |
||||
; ATTENDEDTRANSFER = 14 |
||||
; TRANSFER = 15 |
||||
; HOOKFLASH = 16 |
||||
; 3WAY_START = 17 |
||||
; 3WAY_END = 18 |
||||
; CONF_ENTER = 19 |
||||
; CONF_EXIT = 20 |
||||
; USER_DEFINED = 21 |
||||
; LINKEDID_END = 22 |
||||
; BRIDGE_UPDATE = 23 |
||||
; PICKUP = 24 |
||||
; FORWARD = 25 |
||||
; eventtime (timeval, includes microseconds) |
||||
; userdeftype (set only if eventtype == USER_DEFINED) |
||||
; cid_name |
||||
; cid_num |
||||
; cid_ani |
||||
; cid_rdnis |
||||
; cid_dnid |
||||
; exten |
||||
; context |
||||
; channame |
||||
; appname |
||||
; appdata |
||||
; accountcode |
||||
; peeraccount |
||||
; uniqueid |
||||
; linkedid |
||||
; amaflags (an int) |
||||
; userfield |
||||
; peer |
||||
; extra |
||||
|
||||
; The point of this module is to allow you log whatever you like in terms of the |
||||
; CEL variables. Do you want to log uniqueid? Then simply ensure that your |
||||
; table has that column. If you don't want the column, ensure that it does not |
||||
; exist in the table structure. If you'd like to call uniqueid something else |
||||
; in your table, simply provide an alias in this file that maps the standard CEL |
||||
; field name (uniqueid) to whatever column name you like. |
||||
|
||||
;[first] |
||||
;connection=mysql1 |
||||
;table=cel |
||||
|
||||
;[second] |
||||
;connection=mysql1 |
||||
;table=extracel |
||||
|
||||
;[third] |
||||
;connection=sqlserver |
||||
;table=AsteriskCEL |
||||
;usegmtime=yes ; defaults to no |
||||
;allowleapsecond=no ; allow leap second in SQL column for eventtime, default yes. |
||||
;alias src => source |
||||
;alias channel => source_channel |
||||
;alias dst => dest |
||||
;alias dstchannel => dest_channel |
||||
|
||||
; Any filter specified MUST match exactly or the event will be discarded |
||||
;filter accountcode => somename |
||||
;filter src => 123 |
||||
|
||||
; Additionally, we now support setting static values per column. Reason |
||||
; for this is to allow different sections to specify different values for |
||||
; a certain named column, presumably separated by filters. |
||||
;static "Some Special Value" => identifier_code |
@ -0,0 +1,24 @@
|
||||
; |
||||
; Asterisk Channel Event Logging (CEL) - SQLite 3 Backend |
||||
; |
||||
|
||||
; |
||||
; Mappings for sqlite3 config file |
||||
; |
||||
; Within a mapping, use the CALLERID() and CHANNEL() functions to retrieve |
||||
; details from the CEL event. There are also a few variables created by this |
||||
; module that can be used in a mapping: |
||||
; |
||||
; eventtype - The name of the CEL event. |
||||
; eventtime - The timestamp of the CEL event. |
||||
; eventenum - Like eventtype but is "USER_DEFINED" for a user defined event. |
||||
; userdeftype - User defined event type name from CELGenUserEvent(). |
||||
; eventextra - Extra data included with this CEL event, typically along with |
||||
; an event of type USER_DEFINED from CELGenUserEvent(). |
||||
; BRIDGEPEER - Bridged peer channel name at the time of the CEL event. |
||||
; CHANNEL(peer) could also be used. |
||||
; |
||||
;[master] ; currently, only file "master.db" is supported, with only one table at a time. |
||||
;table => cel |
||||
;columns => eventtype, eventtime, cidname, cidnum, cidani, cidrdnis, ciddnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer, userdeftype, eventextra |
||||
;values => '${eventtype}','${eventtime}','${CALLERID(name)}','${CALLERID(num)}','${CALLERID(ANI)}','${CALLERID(RDNIS)}','${CALLERID(DNID)}','${CHANNEL(context)}','${CHANNEL(exten)}','${CHANNEL(channame)}','${CHANNEL(appname)}','${CHANNEL(appdata)}','${CHANNEL(amaflags)}','${CHANNEL(accountcode)}','${CHANNEL(uniqueid)}','${CHANNEL(userfield)}','${BRIDGEPEER}','${userdeftype}','${eventextra}' |
@ -0,0 +1,69 @@
|
||||
; |
||||
; Asterisk Channel Event Logging (CEL) - FreeTDS Backend |
||||
; |
||||
|
||||
;[global] |
||||
|
||||
; Connection |
||||
; |
||||
; Use the 'connection' keyword to specify one of the instance names from your |
||||
; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk |
||||
; configuration file, but one specific to the FreeTDS library. See the FreeTDS |
||||
; documentation on 'freetds.conf' for more information: |
||||
; |
||||
; http://www.freetds.org/userguide/freetdsconf.htm |
||||
; |
||||
; Accepted values: One of the connections specified in freetds.conf |
||||
|
||||
;connection=ConnectionFromFreeTDSConf |
||||
|
||||
; Database Name |
||||
; |
||||
; The 'dbname' keyword specifies the database name to use when logging CEL |
||||
; records. |
||||
; |
||||
; Accepted values: Any valid database name |
||||
|
||||
;dbname=MalicoHN |
||||
|
||||
; Database Table Name |
||||
; |
||||
; The 'table' keyword identifies which database table is used to log CEL |
||||
; records. |
||||
; |
||||
; Accepted value: Any valid table name |
||||
; Default value: If not specified, a table named 'cel' is assumed |
||||
|
||||
;table=cel |
||||
|
||||
; Credentials |
||||
; |
||||
; The 'username' and 'password' keywords specify the user credentials that |
||||
; Asterisk should use when connecting to the database. |
||||
; |
||||
; Accepted value: Any valid username and password |
||||
|
||||
;username=mangUsr |
||||
;password= |
||||
|
||||
; Language |
||||
; |
||||
; The 'language' keyword changes the language which are used for error and |
||||
; information messages returned by SQL Server. Each database and user has their |
||||
; own default value, and this default can be overriden here. |
||||
; |
||||
; Accepted value: Any language installed on the target SQL Server. |
||||
; Default value: Server default |
||||
|
||||
;language=us_english |
||||
|
||||
; Character Set |
||||
; |
||||
; The 'charset' setting is used to change the character set used when connecting |
||||
; to the database server. Each database and database user has their own |
||||
; character set setting, and this default can be overriden here. |
||||
; |
||||
; Accepted value: Any valid character set available on the target server. |
||||
; Default value: Server setting |
||||
|
||||
;charset=BIG5 |
@ -0,0 +1,69 @@
|
||||
; |
||||
; chan_mobile.conf |
||||
; configuration file for chan_mobile |
||||
; |
||||
|
||||
[general] |
||||
interval=30 ; Number of seconds between trying to connect to devices. |
||||
|
||||
; The following is a list of adapters we use. |
||||
; id must be unique and address is the bdaddr of the adapter from hciconfig. |
||||
; Each adapter may only have one device (headset or phone) connected at a time. |
||||
; Add an [adapter] entry for each adapter you have. |
||||
|
||||
[adapter] |
||||
id=blue |
||||
address=00:09:DD:60:01:A3 |
||||
;forcemaster=yes ; attempt to force adapter into master mode. default is no. |
||||
;alignmentdetection=yes ; enable this if you sometimes get 'white noise' on asterisk side of the call |
||||
; its a bug in the bluetooth adapter firmware, enabling this will compensate for it. |
||||
; default is no. |
||||
|
||||
[adapter] |
||||
id=dlink |
||||
address=00:80:C8:35:52:78 |
||||
|
||||
; The following is a list of the devices we deal with. |
||||
; Every device listed below will be available for calls in and out of Asterisk. |
||||
; Each device needs an adapter=xxxx entry which determines which bluetooth adapter is used. |
||||
; Use the CLI command 'mobile search' to discover devices. |
||||
; Use the CLI command 'mobile show devices' to see device status. |
||||
; |
||||
; To place a call out through a mobile phone use Dial(Mobile/[device]/NNN.....) or Dial(Mobile/gn/NNN......) in your dialplan. |
||||
; To call a headset use Dial(Mobile/[device]). |
||||
|
||||
[LGTU550] |
||||
address=00:E0:91:7F:46:44 ; the address of the phone |
||||
port=4 ; the rfcomm port number (from mobile search) |
||||
context=incoming-mobile ; dialplan context for incoming calls |
||||
adapter=dlink ; adapter to use |
||||
group=1 ; this phone is in channel group 1 |
||||
;sms=no ; support SMS, defaults to yes |
||||
;nocallsetup=yes ; set this only if your phone reports that it supports call progress notification, but does not do it. Motorola L6 for example. |
||||
|
||||
[blackberry] |
||||
address=00:60:57:32:7E:B2 |
||||
port=2 |
||||
context=incoming-mobile |
||||
adapter=dlink |
||||
group=1 |
||||
;blackberry=yes ; set this if you are using a blackberry device |
||||
|
||||
[6310i] |
||||
address=00:60:57:32:7E:B1 |
||||
port=13 |
||||
context=incoming-mobile |
||||
adapter=dlink |
||||
group=1 ; this phone is in channel group 1 also. |
||||
|
||||
[headset] |
||||
address=00:0B:9E:11:AE:C6 |
||||
port=1 |
||||
type=headset ; This is a headset, not a Phone ! |
||||
adapter=blue |
||||
|
||||
[headset1] |
||||
address=00:0B:9E:11:74:A5 |
||||
port=1 |
||||
type=headset |
||||
adapter=dlink |
@ -0,0 +1,12 @@
|
||||
; |
||||
; Asterisk CLI configuration |
||||
; |
||||
|
||||
[startup_commands] |
||||
; |
||||
; Any commands listed in this section will get automatically executed |
||||
; when Asterisk starts as a daemon or foreground process (-c). |
||||
; |
||||
;sip set debug on = yes |
||||
;core set verbose 3 = yes |
||||
;core set debug 1 = yes |
@ -0,0 +1,203 @@
|
||||
; |
||||
; CLI Aliases configuration |
||||
; |
||||
; This module also registers a "cli show aliases" CLI command to list |
||||
; configured CLI aliases. |
||||
|
||||
[general] |
||||
; Here you define what alias templates you want to use. You can also define |
||||
; multiple templates to use as well. If you do, and there is a conflict, then |
||||
; the first alias defined will win. |
||||
; |
||||
template = friendly ; By default, include friendly aliases |
||||
;template = asterisk_1dot2 ; Asterisk 1.2 style syntax |
||||
;template = asterisk_1dot4 ; Asterisk 1.4 style syntax |
||||
;template = individual_custom ; see [individual_custom] example below which |
||||
; includes a list of aliases from an external |
||||
; file |
||||
|
||||
|
||||
; Because the Asterisk CLI syntax follows a "module verb argument" syntax, |
||||
; sometimes we run into an issue between being consistant with this format |
||||
; in the core system, and maintaining system friendliness. In order to get |
||||
; around this we're providing some useful aliases by default. |
||||
; |
||||
[friendly] |
||||
hangup request=channel request hangup |
||||
originate=channel originate |
||||
help=core show help |
||||
pri intense debug span=pri set debug intense span |
||||
reload=module reload |
||||
pjsip reload=module reload res_pjsip.so res_pjsip_authenticator_digest.so res_pjsip_endpoint_identifier_ip.so res_pjsip_mwi.so res_pjsip_notify.so res_pjsip_outbound_publish.so res_pjsip_publish_asterisk.so res_pjsip_outbound_registration.so |
||||
|
||||
; CLI Alias Templates |
||||
; ------------------- |
||||
; |
||||
; You can define several alias templates. |
||||
; It works with context templates like all other configuration files |
||||
; |
||||
;[asterisk](!) |
||||
; To create an alias you simply set the variable name as the alias and variable |
||||
; value as the real CLI command you want executed |
||||
; |
||||
;die die die=stop now |
||||
|
||||
;[asterisk_1dot6](asterisk) |
||||
; Alias for making voicemail reload actually do module reload app_voicemail.so |
||||
;voicemail reload=module reload app_voicemail.so |
||||
; This will make the CLI command "mr" behave as though it is "module reload". |
||||
;mr=module reload |
||||
; |
||||
; |
||||
; In addition, you could also include a flat file of aliases which is loaded by |
||||
; the [individual_custom] template in the [general] section. |
||||
; |
||||
;[individual_custom] |
||||
;#include "/etc/asterisk/aliases" |
||||
|
||||
; Implemented CLI Alias Templates |
||||
; ------------------------------- |
||||
; |
||||
; Below here we have provided you with some templates, easily allowing you to |
||||
; utilize previous Asterisk CLI commands with any version of Asterisk. In this |
||||
; way you will be able to use Asterisk 1.2 and 1.4 style CLI syntax with any |
||||
; version Asterisk going forward into the future. |
||||
; |
||||
; We have also separated out the vanilla syntax into a context template which |
||||
; allows you to keep your custom changes separate of the standard templates |
||||
; we have provided you. In this way you can clearly see your custom changes, |
||||
; and also allowing you to combine various templates as you see fit. |
||||
; |
||||
; The naming scheme we have used is recommended, but certainly is not enforced |
||||
; by Asterisk. If you wish to use the provided templates, simply define the |
||||
; context name which does not utilize the '_tpl' at the end. For example, |
||||
; if you would like to use the Asterisk 1.2 style syntax, define in the |
||||
; [general] section |
||||
|
||||
[asterisk_1dot2_tpl](!) |
||||
show channeltypes=core show channeltypes |
||||
show channeltype=core show channeltype |
||||
show manager command=manager show command |
||||
show manager commands=manager show commands |
||||
show manager connected=manager show connected |
||||
show manager eventq=manager show eventq |
||||
rtp no debug=rtp set debug off |
||||
rtp rtcp debug ip=rtcp debug ip |
||||
rtp rtcp debug=rtcp debug |
||||
rtp rtcp no debug=rtcp debug off |
||||
rtp rtcp stats=rtcp stats |
||||
rtp rtcp no stats=rtcp stats off |
||||
stun no debug=stun debug off |
||||
udptl no debug=udptl debug off |
||||
show image formats=core show image formats |
||||
show file formats=core show file formats |
||||
show applications=core show applications |
||||
show functions=core show functions |
||||
show switches=core show switches |
||||
show hints=core show hints |
||||
show globals=core show globals |
||||
show function=core show function |
||||
show application=core show application |
||||
set global=core set global |
||||
show dialplan=dialplan show |
||||
show codecs=core show codecs |
||||
show audio codecs=core show audio codecs |
||||
show video codecs=core show video codecs |
||||
show image codecs=core show image codecs |
||||
show codec=core show codec |
||||
moh classes show=moh show classes |
||||
moh files show=moh show files |
||||
agi no debug=agi debug off |
||||
show agi=agi show |
||||
dump agihtml=agi dumphtml |
||||
show features=feature show |
||||
show indications=indication show |
||||
answer=console answer |
||||
hangup=console hangup |
||||
flash=console flash |
||||
dial=console dial |
||||
mute=console mute |
||||
unmute=console unmute |
||||
transfer=console transfer |
||||
send text=console send text |
||||
autoanswer=console autoanswer |
||||
oss boost=console boost |
||||
console=console active |
||||
save dialplan=dialplan save |
||||
add extension=dialplan add extension |
||||
remove extension=dialplan remove extension |
||||
add ignorepat=dialplan add ignorepat |
||||
remove ignorepat=dialplan remove ignorepat |
||||
include context=dialplan add include |
||||
dont include=dialplan remove include |
||||
extensions reload=dialplan reload |
||||
show translation=core show translation |
||||
convert=file convert |
||||
show queue=queue show |
||||
add queue member=queue add member |
||||
remove queue member=queue remove member |
||||
ael no debug=ael nodebug |
||||
sip debug=sip set debug |
||||
sip no debug=sip set debug off |
||||
show voicemail users=voicemail show users |
||||
show voicemail zones=voicemail show zones |
||||
iax2 trunk debug=iax2 set debug trunk |
||||
iax2 jb debug=iax2 set debug jb |
||||
iax2 no debug=iax2 set debug off |
||||
iax2 no trunk debug=iax2 set debug trunk off |
||||
iax2 no jb debug=iax2 set debug jb off |
||||
show agents=agent show |
||||
show agents online=agent show online |
||||
show memory allocations=memory show allocations |
||||
show memory summary=memory show summary |
||||
show version=core show version |
||||
show version files=core show file version |
||||
show profile=core show profile |
||||
clear profile=core clear profile |
||||
soft hangup=channel request hangup |
||||
|
||||
[asterisk_1dot2](asterisk_1dot2_tpl) |
||||
; add any additional custom commands you want below here, for example: |
||||
;die quickly=stop now |
||||
|
||||
[asterisk_1dot4_tpl](!) |
||||
cdr status=cdr show status |
||||
rtp debug=rtp set debug on |
||||
rtcp debug=rtcp set debug on |
||||
rtcp stats=rtcp set stats on |
||||
stun debug=stun set debug on |
||||
udptl debug=udptl set debug on |
||||
core show globals=dialplan show globals |
||||
core set global=dialplan set global |
||||
core set chanvar=dialplan set chanvar |
||||
agi dumphtml=agi dump html |
||||
ael debug=ael set debug |
||||
funcdevstate list=devstate list |
||||
sip history=sip set history on |
||||
skinny debug=skinny set debug on |
||||
mgcp set debug=mgcp set debug on |
||||
abort shutdown=core abort shutdown |
||||
stop now=core stop now |
||||
stop gracefully=core stop gracefully |
||||
stop when convenient=core stop when convenient |
||||
restart now=core restart now |
||||
restart gracefully=core restart gracefully |
||||
restart when convenient=core restart when convenient |
||||
soft hangup=channel request hangup |
||||
|
||||
[asterisk_1dot4](asterisk_1dot4_tpl) |
||||
; add any additional custom commands you want below here. |
||||
|
||||
[asterisk_11_tpl](!) |
||||
jabber list nodes=xmpp list nodes |
||||
jabber purge nodes=xmpp purge nodes |
||||
jabber delete node=xmpp delete node |
||||
jabber create collection=xmpp create collection |
||||
jabber create leaf=xmpp create leaf |
||||
jabber set debug=xmpp set debug |
||||
jabber show connections=xmpp show connections |
||||
jabber show buddies=xmpp show buddies |
||||
features reload=module reload features |
||||
|
||||
[asterisk_11](asterisk_11_tpl) |
||||
; add any additional custom commands you want below here. |
@ -0,0 +1,82 @@
|
||||
; |
||||
; CLI permissions configuration example for Asterisk |
||||
; |
||||
; All the users that you want to connect with asterisk using |
||||
; rasterisk, should have write/read access to the |
||||
; asterisk socket (asterisk.ctl). You could change the permissions |
||||
; of this file in 'asterisk.conf' config parameter: 'astctlpermissions' (0666) |
||||
; found on the [files] section. |
||||
; |
||||
; general options: |
||||
; |
||||
; default_perm = permit | deny |
||||
; This is the default permissions to apply for a user that |
||||
; does not has a permissions definided. |
||||
; |
||||
; user options: |
||||
; permit = <command name> | all ; allow the user to run 'command' | |
||||
; ; allow the user to run 'all' the commands |
||||
; deny = <command name> | all ; disallow the user to run 'command' | |
||||
; ; disallow the user to run 'all' commands. |
||||
; |
||||
|
||||
[general] |
||||
|
||||
default_perm=permit ; To leave asterisk working as normal |
||||
; we should set this parameter to 'permit' |
||||
; |
||||
; Follows the per-users permissions configs. |
||||
; |
||||
; This list is read in the sequence that is being written, so |
||||
; In this example the user 'eliel' is allow to run only the following |
||||
; commands: |
||||
; sip show peer |
||||
; core set debug |
||||
; core set verbose |
||||
; If the user is not specified, the default_perm option will be apply to |
||||
; every command. |
||||
; |
||||
; Notice that you can also use regular expressions to allow or deny access to a |
||||
; certain command like: 'core show application D*'. In this example the user will be |
||||
; allowed to view the documentation for all the applications starting with 'D'. |
||||
; Another regular expression could be: 'channel originate SIP/[0-9]* extension *' |
||||
; allowing the user to use 'channel originate' on a sip channel and with the 'extension' |
||||
; parameter and avoiding the use of the 'application' parameter. |
||||
; |
||||
; We can also use the templates syntax: |
||||
; [supportTemplate](!) |
||||
; deny=all |
||||
; permit=sip show ; all commands starting with 'sip show' will be allowed |
||||
; permit=core show |
||||
; |
||||
; You can specify permissions for a local group instead of a user, |
||||
; just put a '@' and we will know that is a group. |
||||
; IMPORTANT NOTE: Users permissions overwrite group permissions. |
||||
; |
||||
;[@adm] |
||||
;deny=all |
||||
;permit=sip |
||||
;permit=core |
||||
; |
||||
; |
||||
;[eliel] |
||||
;deny=all |
||||
;permit=sip show peer |
||||
;deny=sip show peers |
||||
;permit=core set |
||||
; |
||||
; |
||||
;User 'tommy' inherits from template 'supportTemplate': |
||||
; deny=all |
||||
; permit=sip show |
||||
; permit=core show |
||||
;[tommy](supportTemplate) |
||||
;permit=core set debug |
||||
;permit=dialplan show |
||||
; |
||||
; |
||||
;[mark] |
||||
;deny=all |
||||
;permit=all |
||||
; |
||||
; |
@ -0,0 +1,206 @@
|
||||
[speex] |
||||
; CBR encoding quality [0..10] |
||||
; used only when vbr = false |
||||
quality => 3 |
||||
|
||||
; codec complexity [0..10] |
||||
; tradeoff between cpu/quality |
||||
complexity => 2 |
||||
|
||||
; perceptual enhancement [true / false] |
||||
; improves clarity of decoded speech |
||||
enhancement => true |
||||
|
||||
; voice activity detection [true / false] |
||||
; reduces bitrate when no voice detected, used only for CBR |
||||
; (implicit in VBR/ABR) |
||||
vad => true |
||||
|
||||
; variable bit rate [true / false] |
||||
; uses bit rate proportionate to voice complexity |
||||
vbr => true |
||||
|
||||
; available bit rate [bps, 0 = off] |
||||
; encoding quality modulated to match this target bit rate |
||||
; not recommended with dtx or pp_vad - may cause bandwidth spikes |
||||
abr => 0 |
||||
|
||||
; VBR encoding quality [0-10] |
||||
; floating-point values allowed |
||||
vbr_quality => 4 |
||||
|
||||
; discontinuous transmission [true / false] |
||||
; stops transmitting completely when silence is detected |
||||
; pp_vad is far more effective but more CPU intensive |
||||
dtx => false |
||||
|
||||
; preprocessor configuration |
||||
; these options only affect Speex v1.1.8 or newer |
||||
|
||||
; enable preprocessor [true / false] |
||||
; allows dsp functionality below but incurs CPU overhead |
||||
preprocess => false |
||||
|
||||
; preproc voice activity detection [true / false] |
||||
; more advanced equivalent of DTX, based on voice frequencies |
||||
pp_vad => false |
||||
|
||||
; preproc automatic gain control [true / false] |
||||
pp_agc => false |
||||
pp_agc_level => 8000 |
||||
|
||||
; preproc denoiser [true / false] |
||||
pp_denoise => false |
||||
|
||||
; preproc dereverb [true / false] |
||||
pp_dereverb => false |
||||
pp_dereverb_decay => 0.4 |
||||
pp_dereverb_level => 0.3 |
||||
|
||||
|
||||
[plc] |
||||
; for all codecs which do not support native PLC |
||||
; this determines whether to perform generic PLC |
||||
; there is a minor performance penalty for this |
||||
genericplc => true |
||||
|
||||
; Generate custom formats for formats requiring attributes. |
||||
; After defining the custom format, the name used in defining |
||||
; the format can be used throughout Asterisk in the format 'allow' |
||||
; and 'disallow' options. |
||||
; |
||||
; Example: silk8 is a predefined custom format in this config file. |
||||
; Once this config file is loaded, silk8 can be used anywhere a |
||||
; peer's codec capabilities are defined. |
||||
; |
||||
; In sip.conf 'silk8' can be defined as a capability for a peer. |
||||
; [peer1] |
||||
; type=peer |
||||
; host=dynamic |
||||
; disallow=all |
||||
; allow=silk8 ;custom codec defined in codecs.conf |
||||
; |
||||
; LIMITATIONS |
||||
; Custom formats can only be defined at startup. Any changes to this |
||||
; file made after startup will not take into effect until after Asterisk |
||||
; is restarted. |
||||
; |
||||
|
||||
; Default Custom SILK format definitions, only one custom SILK format per |
||||
; sample rate is allowed. |
||||
[silk8] |
||||
type=silk |
||||
samprate=8000 |
||||
fec=true ; turn on or off encoding with forward error correction. |
||||
; On recommended, off by default. |
||||
packetloss_percentage=10 ; Estimated packet loss percentage in uplink direction. This |
||||
; affects how much redundancy is built in when using fec. |
||||
; The higher the percentage, the larger amount of bandwidth is |
||||
; used. Default is 0%, 10% is recommended when fec is in use. |
||||
|
||||
maxbitrate=10000 ; Use the table below to make sure a useful bitrate is choosen |
||||
; for maxbitrate. If not set or value is not within the bounds |
||||
; of the encoder, a default value is chosen. |
||||
; |
||||
; sample rate | bitrate range |
||||
; 8khz | 5000 - 20000 bps |
||||
; 12khz | 7000 - 25000 bps |
||||
; 16khz | 8000 - 30000 bps |
||||
; 24khz | 20000- 40000 bps |
||||
; |
||||
;dtx=true ; Encode using discontinuous transmission mode or not. Turning this |
||||
; on will save bandwidth during periods of silence at the cost of |
||||
; increased computational complexity. Off by default. |
||||
|
||||
[silk12] |
||||
type=silk |
||||
samprate=12000 |
||||
maxbitrate=12000 |
||||
fec=true |
||||
packetloss_percentage=10; |
||||
|
||||
[silk16] |
||||
type=silk |
||||
samprate=16000 |
||||
maxbitrate=20000 |
||||
fec=true |
||||
packetloss_percentage=10; |
||||
|
||||
[silk24] |
||||
type=silk |
||||
samprate=24000 |
||||
maxbitrate=30000 |
||||
fec=true |
||||
packetloss_percentage=10; |
||||
|
||||
|
||||
; Default custom CELT codec definitions. Only one custom CELT definition is allowed |
||||
; per a sample rate. |
||||
;[celt44] |
||||
;type=celt |
||||
;samprate=44100 ; The samplerate in hz. This option is required. |
||||
;framesize=480 ; The framesize option represents the duration of each frame in samples. |
||||
; This must be a factor of 2. This option is only advertised in an SDP |
||||
; when it is set. Otherwise a default of framesize of 480 is assumed |
||||
; internally |
||||
|
||||
;[celt48] |
||||
;type=celt |
||||
;samprate=48000 |
||||
|
||||
;[celt32] |
||||
;type=celt |
||||
;samprate=32000 |
||||
|
||||
;============================ OPUS Section Options ============================ |
||||
; |
||||
;[opus] |
||||
;type= ; Must be of type "opus" (default: "") |
||||
;packet_loss= ; Encoder's packet loss percentage. Can be any number between 0 |
||||
; and 100, inclusive. A higher value results in more loss |
||||
; resistance. (default: 0) |
||||
;complexity= ; Encoder's computational complexity. Can be any number between 0 |
||||
; and 10, inclusive. Note, 10 equals the highest complexity. |
||||
; (default: 10) |
||||
;max_bandwidth= ; Encoder's maximum bandwidth allowed. Sets an upper bandwidth |
||||
; bound on the encoder. Can be any of the following: narrow, |
||||
; medium, wide, super_wide, full. (default: full) |
||||
;signal= ; Encoder's signal type. Aids in mode selection on the encoder: Can |
||||
; be any of the following: auto, voice, music. (default: auto) |
||||
;application= ; Encoder's application type. Can be any of the following: voip, |
||||
; audio, low_delay. (default: voip) |
||||
;max_playback_rate= ; Override the maximum playback rate in the offer's SDP. |
||||
; Any value between 8000 and 48000 (inclusive) is valid, |
||||
; however typically it should match one of the usual opus |
||||
; bandwidths. A value of "sdp" is also allowed. When set |
||||
; to "sdp" then the value from the offer's SDP is used. |
||||
; (default: "sdp") |
||||
;bitrate= ; Override the maximum average bitrate in the offer's SDP. Any value |
||||
; between 500 and 512000 is valid. The following values are also |
||||
; allowed: auto, max, sdp. When set to "sdp" then the value from |
||||
; the offer's sdp is used. (default: "sdp") |
||||
;cbr= ; Override the constant bit rate parameter in the offer's SDP. A value of |
||||
; 0/false/no represents a variable bit rate whereas 1/true/yes represents |
||||
; a constant bit rate. A value of "sdp" is also allowed. When set to "sdp" |
||||
; then the value from the offer's sdp is used. (default: "sdp") |
||||
;fec= ; Override the use inband fec parameter in the offer's SDP. A value of |
||||
; 0/false/no represents disabled whereas 1/true/yes represents enabled. |
||||
; A value of "sdp" is also allowed. When set to "sdp" then the value from |
||||
; the offer's sdp is used. (default: "sdp") |
||||
;dtx= ; Override the use dtx parameter in the offer's SDP. A value of 0/false/no |
||||
; represents disabled whereas 1/true/yes represents enabled. A value of |
||||
; "sdp" is also allowed. When set to "sdp" then the value from the offer's |
||||
; sdp is used. (default: "sdp") |
||||
|
||||
;=============================== OPUS Examples ================================ |
||||
; |
||||
;[opus] |
||||
;type=opus |
||||
;max_playback_rate=8000 ; Limit the maximum playback rate on the encoder |
||||
;fec=no ; Force no inband fec on the encoder (i.e don't use what's on the SDP) |
||||
|
||||
;[myopus] |
||||
;type=opus |
||||
;max_bandwidth=wide ; Maximum encoded bandwidth set to wide band (0-8000 Hz |
||||
; ; audio bandwidth at 16Khz sample rate) |
||||
;cbr=yes ; Force a constant bit rate (i.e don't use what's on the SDP) |
@ -0,0 +1,46 @@
|
||||
; Config to test config parsing |
||||
; global and item have values that differ from defaults |
||||
; global_defaults and item_defualts are to show all defaults are set |
||||
; there should be an option for every default type, and a custom type |
||||
|
||||
[global] |
||||
intopt=-1 |
||||
uintopt=1 |
||||
timelenopt1=1ms |
||||
timelenopt2=1s |
||||
timelenopt3=1m |
||||
timelenopt4=1h |
||||
doubleopt=0.1 |
||||
sockaddropt=1.2.3.4:1234 |
||||
boolopt=true |
||||
boolflag1=true |
||||
boolflag2=false |
||||
boolflag3=true |
||||
deny=0.0.0.0/0 |
||||
permit=1.2.3.4/32 |
||||
codecopt=!all,ulaw,g729 |
||||
stropt=test |
||||
customopt=yes |
||||
|
||||
[global_defaults] |
||||
|
||||
[item] |
||||
intopt=-1 |
||||
uintopt=1 |
||||
timelenopt1=1 |
||||
timelenopt2=1 |
||||
timelenopt3=1 |
||||
timelenopt4=1 |
||||
doubleopt=0.1 |
||||
sockaddropt=1.2.3.4:1234 |
||||
boolopt=true |
||||
boolflag1=true |
||||
boolflag2=false |
||||
boolflag3=true |
||||
acldenyopt=0.0.0.0/0 |
||||
aclpermitopt=1.2.3.4/32 |
||||
codecopt=!all,ulaw,g729 |
||||
stropt=test |
||||
customopt=yes |
||||
|
||||
[item_defaults] |
@ -0,0 +1,97 @@
|
||||
; |
||||
; Configuration for chan_console, a cross-platform console channel driver. |
||||
; |
||||
|
||||
[general] |
||||
|
||||
; Set this option to "yes" to enable automatically answering calls on the |
||||
; console. This is very useful if the console is used as an intercom. |
||||
; The default value is "no". |
||||
; |
||||
;autoanswer = no |
||||
|
||||
; Set the default context to use for outgoing calls. This can be overridden by |
||||
; dialing some extension@context, unless the overridecontext option is enabled. |
||||
; The default is "default". |
||||
; |
||||
;context = default |
||||
|
||||
; Set the default extension to use for outgoing calls. The default is "s". |
||||
; |
||||
;extension = s |
||||
|
||||
; Set the default CallerID for created channels. |
||||
; |
||||
;callerid = MyName Here <(256) 428-6000> |
||||
|
||||
; Set the default language for created channels. |
||||
; |
||||
;language = en |
||||
|
||||
; If you set overridecontext to 'yes', then the whole dial string |
||||
; will be interpreted as an extension, which is extremely useful |
||||
; to dial SIP, IAX and other extensions which use the '@' character. |
||||
; The default is "no". |
||||
; |
||||
;overridecontext = no ; if 'no', the last @ will start the context |
||||
; if 'yes' the whole string is an extension. |
||||
|
||||
|
||||
; Default Music on Hold class to use when this channel is placed on hold in |
||||
; the case that the music class is not set on the channel with |
||||
; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel |
||||
; putting this one on hold did not suggest a class to use. |
||||
; |
||||
;mohinterpret=default |
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an |
||||
; Console channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The Console channel can't accept jitter, |
||||
; thus an enabled jitterbuffer on the receive Console side will always |
||||
; be used if the sending side can create jitter. |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a Console |
||||
; channel. Two implementations are currently available - "fixed" |
||||
; (with size always equals to jbmax-size) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. |
||||
; The option represents the number of milliseconds by which the new |
||||
; jitter buffer will pad its size. the default is 40, so without |
||||
; modification, the new jitter buffer will set its size to the jitter |
||||
; value plus 40 milliseconds. increasing this value may help if your |
||||
; network normally has low jitter, but occasionally has spikes. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
|
||||
; |
||||
; Any configuration context defined beyond the [general] section configures |
||||
; specific devices for use. |
||||
; |
||||
|
||||
[default] |
||||
input_device = default ; When configuring an input device and output device, |
||||
output_device = default ; use the name that you see when you run the "console |
||||
; list available" CLI command. If you say "default", the |
||||
; system default input and output devices will be used. |
||||
autoanswer = no |
||||
context = default |
||||
extension = s |
||||
callerid = MyName Here <(256) 428-6000> |
||||
language = en |
||||
overridecontext = no |
||||
mohinterpret = default |
||||
active = yes ; This option should only be set for one console. |
||||
; It means that it is the active console to be |
||||
; used from the Asterisk CLI. |
@ -0,0 +1,5 @@
|
||||
|
||||
[general] |
||||
|
||||
#include "../zaptel.conf" |
||||
|
@ -0,0 +1,11 @@
|
||||
[1] |
||||
active=yes |
||||
alarms=UNCONFIGURED |
||||
description=ZTDUMMY/1 (source: HRtimer) 1 |
||||
name=ZTDUMMY/1 |
||||
manufacturer= |
||||
devicetype=Zaptel Dummy Timing Driver |
||||
location= |
||||
basechan=1 |
||||
totchans=0 |
||||
irq=0 |
@ -0,0 +1,34 @@
|
||||
# |
||||
# Configuration file for dbsep.cgi |
||||
# |
||||
# The purpose of this file is to provide realtime access to a database, |
||||
# possibly through ODBC, without needing to load the ODBC drivers into |
||||
# Asterisk, since there are several backend drivers which are rather |
||||
# buggy. |
||||
# |
||||
# We accomplish this separation by using the res_config_curl realtime |
||||
# driver to connect to a server running dbsep.cgi (or another, which |
||||
# implements the same protocol). |
||||
# |
||||
# This file contains the information necessary to configure dbsep.cgi. |
||||
# |
||||
# |
||||
# Once installed to a web server, you'll need to preload func_curl.so |
||||
# and res_config_curl.so in modules.conf and configure extconfig.conf: |
||||
# |
||||
# voicemail => curl,http://server/path/to/dbsep.cgi/voicemail |
||||
# sippeers => curl,http://server/path/to/dbsep.cgi/sippeers |
||||
# |
||||
|
||||
# The Data Source Name, as specified by the Perl DBI module. |
||||
# Typically, this will be along the lines of 'DBI:mysql:astdbname[:dbhostname]' or 'DBI:Pg:dbname=astdbname;hostname=dbhostname' |
||||
dsn=somedsn |
||||
|
||||
# Connected database user |
||||
dbuser=someuser |
||||
|
||||
# And its password |
||||
dbpass=password |
||||
|
||||
# For most databases, this is fine. Set to 'no' for Sybase or MS SQL Server. |
||||
backslash_is_escape=yes |
@ -0,0 +1,42 @@
|
||||
[default] |
||||
; |
||||
; Length of sound (in milliseconds) before a period of silence is considered |
||||
; to be a change from talking to silence or a period of noise converts silence |
||||
; to talking. [default=256] |
||||
; |
||||
;silencethreshold=256 |
||||
|
||||
; DTMF Reverse Twist and Normal Twist is the difference in power between the row and column energies. |
||||
; |
||||
; Normal Twist is where the row energy is greater than the column energy. |
||||
; Reverse Twist is where the column energy is greater. |
||||
; |
||||
; Power level difference between frequencies for different Administrations/RPOAs |
||||
; Power Gain equiv |
||||
; normal reverse dB's |
||||
; AT&T(default) 6.31 2.51 8dB(normal), 4dB(reverse) |
||||
; NTT 3.16 3.16 Max. 5dB |
||||
; Danish 3.98 3.98 Max. 6dB |
||||
; Australian 10.0 10.0 Max. 10dB |
||||
; Brazilian 7.94 7.94 Max. 9dB |
||||
; ETSI 3.98 3.98 Max. 6dB |
||||
|
||||
;previous version compatible AT&T values |
||||
; RADIO_RELAX disabled, and relaxdtmf=no |
||||
; 6.30 2.50 7.99dB(normal), 3.98dB(reverse) |
||||
; RADIO_RELAX disabled, and relaxdtmf=yes |
||||
; 6.30 4.00 7.99dB(normal), 6.02dB(reverse) |
||||
; RADIO_RELAX enabled, and relaxdtmf=no |
||||
; 6.30 2.50 7.99dB(normal), 3.984dB(reverse) |
||||
; RADIO_RELAX enabled, and relaxdtmf=yes |
||||
; 6.30 6.50 7.99dB(normal), 8.13dB(reverse) |
||||
|
||||
;If you don't know what these mean, don't change them. |
||||
;dtmf_normal_twist=6.31 |
||||
;dtmf_reverse_twist=2.51 |
||||
;relax_dtmf_normal_twist=6.31 |
||||
;relax_dtmf_reverse_twist=3.98 |
||||
|
||||
;successive number hits/misses of 12.75ms before a digit/nodigit is considered valid |
||||
;dtmf_hits_to_begin=2 |
||||
;dtmf_misses_to_end=3 |
@ -0,0 +1,268 @@
|
||||
; |
||||
; DUNDi configuration file |
||||
; |
||||
; For more information about DUNDi, see http://www.dundi.com |
||||
; |
||||
; |
||||
[general] |
||||
; |
||||
; The "general" section contains general parameters relating |
||||
; to the operation of the dundi client and server. |
||||
; |
||||
; The first part should be your complete contact information |
||||
; should someone else in your peer group need to contact you. |
||||
; |
||||
;department=Your Department |
||||
;organization=Your Company, Inc. |
||||
;locality=Your City |
||||
;stateprov=ST |
||||
;country=US |
||||
;email=your@email.com |
||||
;phone=+12565551212 |
||||
; |
||||
; |
||||
; Specify bind address and port number. Default is |
||||
; 4520 |
||||
; |
||||
;bindaddr=0.0.0.0 |
||||
;port=4520 |
||||
; |
||||
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of the tos parameter. |
||||
;tos=ef |
||||
; |
||||
; Our entity identifier (Should generally be the MAC address of the |
||||
; machine it's running on. Defaults to the first eth address, but you |
||||
; can override it here, as long as you set it to the MAC of *something* |
||||
; you own!) The EID can be overridden by a setting in asterisk.conf, |
||||
; or by setting this option. |
||||
; |
||||
;entityid=00:07:E9:3B:76:60 |
||||
; |
||||
; Peers shall cache our query responses for the specified time, |
||||
; given in seconds. Default is 3600. |
||||
; |
||||
;cachetime=3600 |
||||
; |
||||
; This defines the max depth in which to search the DUNDi system. |
||||
; Note that the maximum time that we will wait for a response is |
||||
; (2000 + 200 * ttl) ms. |
||||
; |
||||
ttl=32 |
||||
; |
||||
; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set |
||||
; to yes, then we cancel the whole thing (that's enough time for one |
||||
; retransmission only). This is used to keep things from stalling for a long |
||||
; time for a host that is not available, but would be ill advised for bad |
||||
; connections. In addition to 'yes' or 'no' you can also specify a number |
||||
; of milliseconds. See 'qualify' for individual peers to turn on for just |
||||
; a specific peer. |
||||
; |
||||
autokill=yes |
||||
; |
||||
; pbx_dundi creates a rotating key called "secret", under the family |
||||
; 'secretpath'. The default family is dundi (resulting in |
||||
; the key being held at dundi/secret). |
||||
; |
||||
;secretpath=dundi |
||||
; |
||||
; The 'storehistory' option (also changeable at runtime with |
||||
; 'dundi store history' and 'dundi no store history') will |
||||
; cause the DUNDi engine to keep track of the last several |
||||
; queries and the amount of time each query took to execute |
||||
; for the purpose of tracking slow nodes. This option is |
||||
; off by default due to performance impacts. |
||||
; |
||||
;storehistory=yes |
||||
|
||||
[mappings] |
||||
; |
||||
; The "mappings" section maps DUNDi contexts |
||||
; to contexts on the local asterisk system. Remember |
||||
; that numbers that are made available under the e164 |
||||
; DUNDi context are regulated by the DUNDi General Peering |
||||
; Agreement (GPA) if you are a member of the DUNDi E.164 |
||||
; Peering System. |
||||
; |
||||
; dundi_context => local_context,weight,tech,dest[,options]] |
||||
; |
||||
; 'dundi_context' is the name of the context being requested |
||||
; within the DUNDi request |
||||
; |
||||
; 'local_context' is the name of the context on the local system |
||||
; in which numbers can be looked up for which responses shall be given. |
||||
; |
||||
; 'weight' is the weight to use for the responses provided from this |
||||
; mapping. The number must be >= 0 and < 60000. Since it is totally |
||||
; valid to receive multiple responses to a query, responses received |
||||
; with a lower weight are tried first. Note that the weight has a |
||||
; special meaning in the e164 context - see the GPA for more details. |
||||
; |
||||
; 'tech' is the technology to use (IAX, SIP, H323) |
||||
; |
||||
; 'dest' is the destination to supply for reaching that number. The |
||||
; following variables can be used in the destination string and will |
||||
; be automatically substituted: |
||||
; ${NUMBER}: The number being requested |
||||
; ${IPADDR}: The IP address to connect to |
||||
; ${SECRET}: The current rotating secret key to be used |
||||
; |
||||
; Further options may include: |
||||
; |
||||
; nounsolicited: No unsolicited calls of any type permitted via this |
||||
; route |
||||
; nocomunsolicit: No commercial unsolicited calls permitted via |
||||
; this route |
||||
; residential: This number is known to be a residence |
||||
; commercial: This number is known to be a business |
||||
; mobile: This number is known to be a mobile phone |
||||
; nocomunsolicit: No commercial unsolicited calls permitted via |
||||
; this route |
||||
; nopartial: Do not search for partial matches |
||||
; |
||||
; There *must* exist an entry in mappings for DUNDi to respond |
||||
; to any request, although it may be empty. |
||||
; |
||||
;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial |
||||
;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial |
||||
;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial |
||||
|
||||
;digexten => default,0,IAX2,guest@lappy/${NUMBER} |
||||
;asdf => |
||||
|
||||
; |
||||
; Weights for mappings can be set a few different ways: |
||||
; |
||||
; 1) It can be set as a static number. |
||||
;testmap1 => context1,222,IAX2,guest@peer1/${NUMBER} |
||||
; |
||||
; 2) It can be an Asterisk global variable. |
||||
;testmap2 => context2,${DUNDITESTVAR},IAX2,guest@peer2${NUMBER} |
||||
; |
||||
; 3) It can be retrieved using a dialplan function. This can be extremely |
||||
; useful if you want to let an external script decide what the weight |
||||
; in a response shouuld be. |
||||
;testmap3 => context3,${SHELL(echo 123)},IAX2,guest@peer3/${NUMBER} |
||||
; |
||||
; The built in variables ${SECRET}, ${IPADDR} and ${NUMBER} can also be |
||||
; passed to the weight. For example, you could pass the ${NUMBER} value |
||||
; to your SHELL() script and use that to dynamically return a weight. |
||||
; |
||||
; Note than when using a global variable or dialplan function to set the |
||||
; weight for a mapping, that response caching should be disabled if you |
||||
; plan for these values to change frequently at all. If the results are |
||||
; cached, then any change in value will not take effect until the cache |
||||
; has expired. |
||||
; |
||||
|
||||
; |
||||
; The remaining sections represent the peers |
||||
; that we fundamentally trust. The section name |
||||
; represents the name and optionally at a specific |
||||
; DUNDi context if you want the trust to be established |
||||
; for only a specific DUNDi context. |
||||
; |
||||
; inkey - What key they will be authenticating to us with |
||||
; |
||||
; outkey - What key we use to authenticate to them |
||||
; |
||||
; host - What their host is |
||||
; |
||||
; port - The port where their host is listening (default: 4520) |
||||
; |
||||
; order - What search order to use. May be 'primary', 'secondary', |
||||
; 'tertiary' or 'quartiary'. In large systems, it is beneficial |
||||
; to only query one up-stream host in order to maximize caching |
||||
; value. Adding one with primary and one with secondary gives you |
||||
; redundancy without sacrificing performance. |
||||
; |
||||
; include - Includes this peer when searching a particular context |
||||
; for lookup (set "all" to perform all lookups with that |
||||
; host. This is also the context in which peers are permitted |
||||
; to precache. |
||||
; |
||||
; noinclude - Disincludes this peer when searching a particular context |
||||
; for lookup (set "all" to perform no lookups with that |
||||
; host. |
||||
; |
||||
; permit - Permits this peer to search a given DUNDi context on |
||||
; the local system. Set "all" to permit this host to |
||||
; lookup all contexts. This is also a context for which |
||||
; we will create/forward PRECACHE commands. |
||||
; |
||||
; deny - Denies this peer to search a given DUNDi context on |
||||
; the local system. Set "all" to deny this host to |
||||
; lookup all contexts. |
||||
; |
||||
; model - inbound, outbound, or symmetric for whether we receive |
||||
; requests only, transmit requests only, or do both. |
||||
; |
||||
; precache - Utilize/Permit precaching with this peer (to pre |
||||
; cache means to provide an answer when no request |
||||
; was made and is used so that machines with few |
||||
; routes can push those routes up a to a higher level). |
||||
; outgoing means we send precache routes to this peer, |
||||
; incoming means we permit this peer to send us |
||||
; precache routes. symmetric means we do both. |
||||
; |
||||
; Note: You cannot mix symmetric/outbound model with symmetric/inbound |
||||
; precache, nor can you mix symmetric/inbound model with symmetric/outbound |
||||
; precache. |
||||
; |
||||
; |
||||
; The '*' peer is special and matches an unspecified entity |
||||
; |
||||
|
||||
; |
||||
; Sample Primary e164 DUNDi peer |
||||
; |
||||
;[00:50:8B:F3:75:BB] |
||||
;model = symmetric |
||||
;host = 64.215.96.114 |
||||
;inkey = digium |
||||
;outkey = misery |
||||
;include = e164 |
||||
;permit = e164 |
||||
;qualify = yes |
||||
|
||||
; |
||||
; Sample Secondary e164 DUNDi peer |
||||
; |
||||
;[00:A0:C9:96:92:84] |
||||
;model = symmetric |
||||
;host = misery.digium.com |
||||
;inkey = misery |
||||
;outkey = ourkey |
||||
;include = e164 |
||||
;permit = e164 |
||||
;qualify = yes |
||||
;order = secondary |
||||
|
||||
; |
||||
; Sample "push mode" downstream host |
||||
; |
||||
;[00:0C:76:96:75:28] |
||||
;model = inbound |
||||
;host = dynamic |
||||
;precache = inbound |
||||
;inkey = littleguy |
||||
;outkey = ourkey |
||||
;include = e164 ; In this case used only for precaching |
||||
;permit = e164 |
||||
;qualify = yes |
||||
|
||||
; |
||||
; Sample "push mode" upstream host |
||||
; |
||||
;[00:07:E9:3B:76:60] |
||||
;model = outbound |
||||
;precache = outbound |
||||
;host = 216.207.245.34 |
||||
;register = yes |
||||
;inkey = dhcp34 |
||||
;permit = all ; In this case used only for precaching |
||||
;include = all |
||||
;qualify = yes |
||||
;outkey=foo |
||||
|
||||
;[*] |
||||
; |
@ -0,0 +1,22 @@
|
||||
; |
||||
; ENUM Configuration for resolving phone numbers over DNS |
||||
; |
||||
; Sample config for Asterisk |
||||
; This file is reloaded at "module reload enum" in the CLI |
||||
; |
||||
[general] |
||||
; |
||||
; The search list for domains may be customized. Domains are searched |
||||
; in the order they are listed here. |
||||
; |
||||
search => e164.arpa |
||||
; |
||||
; If you'd like to use the E.164.org public ENUM registry in addition |
||||
; to the official e164.arpa one, uncomment the following line |
||||
; |
||||
;search => e164.org |
||||
; |
||||
; As there are more H323 drivers available you have to select to which |
||||
; drive a H323 URI will map. Default is "H323". |
||||
; |
||||
h323driver => H323 |
@ -0,0 +1,111 @@
|
||||
; |
||||
; Static and realtime external configuration |
||||
; engine configuration |
||||
; |
||||
; See https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration |
||||
; for basic table formatting information. |
||||
; |
||||
[settings] |
||||
; |
||||
; Static configuration files: |
||||
; |
||||
; file.conf => driver,database[,table[,priority]] |
||||
; |
||||
; maps a particular configuration file to the given |
||||
; database driver, database and table (or uses the |
||||
; name of the file as the table if not specified) |
||||
; |
||||
; Uncomment to load queues.conf via the odbc engine. |
||||
; |
||||
;queues.conf => odbc,asterisk,ast_config |
||||
;extensions.conf => sqlite,asterisk,ast_config |
||||
; |
||||
; The following files CANNOT be loaded from Realtime storage: |
||||
; asterisk.conf |
||||
; extconfig.conf (this file) |
||||
; logger.conf |
||||
; |
||||
; Additionally, the following files cannot be loaded from |
||||
; Realtime storage unless the storage driver is loaded |
||||
; early using 'preload' statements in modules.conf: |
||||
; manager.conf |
||||
; cdr.conf |
||||
; rtp.conf |
||||
; |
||||
; Named ACLs specified in realtime also can not be used |
||||
; from manager.conf unless the storage driver is preloaded. |
||||
; Attempting to use a realtime stored named ACL before the |
||||
; driver is loaded will result in an invalid ACL which |
||||
; rejects all addresses. |
||||
; |
||||
; Realtime configuration engine |
||||
; |
||||
; maps a particular family of realtime |
||||
; configuration to a given database driver, |
||||
; database and table (or uses the name of |
||||
; the family if the table is not specified |
||||
; |
||||
;example => odbc,asterisk,alttable,1 |
||||
;example => mysql,asterisk,alttable,2 |
||||
;example2 => ldap,"dc=oxymium,dc=net",example2 |
||||
; |
||||
; Additionally, priorities are now supported for use as failover methods |
||||
; for retrieving realtime data. If one connection fails to retrieve any |
||||
; information, the next sequential priority will be tried next. This |
||||
; especially works well with ODBC connections, since res_odbc now caches |
||||
; when connection failures occur and prevents immediately retrying those |
||||
; connections until after a specified timeout. Note: priorities must |
||||
; start at 1 and be sequential (i.e. if you have only priorities 1, 2, |
||||
; and 4, then 4 will be ignored, because there is no 3). |
||||
; |
||||
; |
||||
; Possible driver backends: |
||||
; |
||||
; "odbc" is shown in the examples below, but is not the only valid realtime |
||||
; engine. Here are several of the possible options: |
||||
; odbc ... res_config_odbc |
||||
; sqlite ... res_config_sqlite |
||||
; sqlite3 ... res_config_sqlite3 |
||||
; pgsql ... res_config_pgsql |
||||
; curl ... res_config_curl |
||||
; ldap ... res_config_ldap |
||||
; mysql ... res_config_mysql (available via add-ons in menuselect) |
||||
; |
||||
; Note: The res_config_pgsql and res_config_sqlite backends configure the |
||||
; database used in their respective configuration files and ignore the |
||||
; database name configured in this file. |
||||
; |
||||
;iaxusers => odbc,asterisk |
||||
;iaxpeers => odbc,asterisk |
||||
;sippeers => odbc,asterisk |
||||
;sipregs => odbc,asterisk ; (avoid sipregs if possible, e.g. by using a view) |
||||
;ps_endpoints => odbc,asterisk |
||||
;ps_auths => odbc,asterisk |
||||
;ps_aors => odbc,asterisk |
||||
;ps_domain_aliases => odbc,asterisk |
||||
;ps_endpoint_id_ips => odbc,asterisk |
||||
;ps_outbound_publishes => odbc,asterisk |
||||
;ps_inbound_publications = odbc,asterisk |
||||
;ps_asterisk_publications = odbc,asterisk |
||||
;voicemail => odbc,asterisk |
||||
;extensions => odbc,asterisk |
||||
;meetme => mysql,general |
||||
;queues => odbc,asterisk |
||||
;queue_members => odbc,asterisk |
||||
;queue_rules => odbc,asterisk |
||||
;acls => odbc,asterisk |
||||
;musiconhold => mysql,general |
||||
;queue_log => mysql,general |
||||
; |
||||
; |
||||
; While most dynamic realtime engines are automatically used when defined in |
||||
; this file, 'extensions', distinctively, is not. To activate dynamic realtime |
||||
; extensions, you must turn them on in each respective context within |
||||
; extensions.conf with a switch statement. The syntax is: |
||||
; switch => Realtime/[[db_context@]tablename]/<opts> |
||||
; The only option available currently is the 'p' option, which disallows |
||||
; extension pattern queries to the database. If you have no patterns defined |
||||
; in a particular context, this will save quite a bit of CPU time. However, |
||||
; note that using dynamic realtime extensions is not recommended anymore as a |
||||
; best practice; instead, you should consider writing a static dialplan with |
||||
; proper data abstraction via a tool like func_odbc. |
@ -0,0 +1,456 @@
|
||||
// |
||||
// Example AEL config file |
||||
// |
||||
// |
||||
// Static extension configuration file, used by |
||||
// the pbx_ael module. This is where you configure all your |
||||
// inbound and outbound calls in Asterisk. |
||||
// |
||||
// This configuration file is reloaded |
||||
// - With the "ael reload" command in the CLI |
||||
// - With the "reload" command (that reloads everything) in the CLI |
||||
|
||||
// The "Globals" category contains global variables that can be referenced |
||||
// in the dialplan by using the GLOBAL dialplan function: |
||||
// ${GLOBAL(VARIABLE)} |
||||
// ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid |
||||
// Unix/Linux environmental variables are reached with the ENV dialplan |
||||
// function: ${ENV(VARIABLE)} |
||||
// |
||||
|
||||
// NOTE! NOTE! NOTE! |
||||
// Asterisk by default will load both extensions.conf and extensions.ael files. |
||||
// Upon loading these files the dialplans generated from both with be merged, |
||||
// so you must make sure that you don't have any overlapping contexts or global |
||||
// variables. If you do, then unexpected behavior may result when the data is |
||||
// merged. |
||||
// NOTE! NOTE! NOTE! |
||||
|
||||
globals { |
||||
CONSOLE-AEL="Console/dsp"; // Console interface for demo |
||||
//CONSOLE-AEL=Zap/1; |
||||
//CONSOLE-AEL=Phone/phone0; |
||||
IAXINFO-AEL=guest; // IAXtel username/password |
||||
//IAXINFO-AEL="myuser:mypass"; |
||||
OUTBOUND-TRUNK="Zap/g2"; // Trunk interface |
||||
// |
||||
// Note the 'g2' in the OUTBOUND-TRUNK variable above. It specifies which group (defined |
||||
// in chan_dahdi.conf) to dial, i.e. group 2, and how to choose a channel to use in |
||||
// the specified group. The four possible options are: |
||||
// |
||||
// g: select the lowest-numbered non-busy DAHDI channel |
||||
// (aka. ascending sequential hunt group). |
||||
// G: select the highest-numbered non-busy DAHDI channel |
||||
// (aka. descending sequential hunt group). |
||||
// r: use a round-robin search, starting at the next highest channel than last |
||||
// time (aka. ascending rotary hunt group). |
||||
// R: use a round-robin search, starting at the next lowest channel than last |
||||
// time (aka. descending rotary hunt group). |
||||
// |
||||
OUTBOUND-TRUNKMSD=1; // MSD digits to strip (usually 1 or 0) |
||||
//OUTBOUND-TRUNK2=IAX2/user:pass@provider; |
||||
}; |
||||
|
||||
// |
||||
// Any category other than "General" and "Globals" represent |
||||
// extension contexts, which are collections of extensions. |
||||
// |
||||
// Extension names may be numbers, letters, or combinations |
||||
// thereof. If an extension name is prefixed by a '_' |
||||
// character, it is interpreted as a pattern rather than a |
||||
// literal. In patterns, some characters have special meanings: |
||||
// |
||||
// X - any digit from 0-9 |
||||
// Z - any digit from 1-9 |
||||
// N - any digit from 2-9 |
||||
// [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9) |
||||
// . - wildcard, matches anything remaining (e.g. _9011. matches |
||||
// anything starting with 9011 excluding 9011 itself) |
||||
// ! - wildcard, causes the matching process to complete as soon as |
||||
// it can unambiguously determine that no other matches are possible |
||||
// |
||||
// For example the extension _NXXXXXX would match normal 7 digit dialings, |
||||
// while _1NXXNXXXXXX would represent an area code plus phone number |
||||
// preceded by a one. |
||||
// |
||||
// Each step of an extension is ordered by priority, which must |
||||
// always start with 1 to be considered a valid extension. The priority |
||||
// "next" or "n" means the previous priority plus one, regardless of whether |
||||
// the previous priority was associated with the current extension or not. |
||||
// The priority "same" or "s" means the same as the previously specified |
||||
// priority, again regardless of whether the previous entry was for the |
||||
// same extension. Priorities may be immediately followed by a plus sign |
||||
// and another integer to add that amount (most useful with 's' or 'n'). |
||||
// Priorities may then also have an alias, or label, in |
||||
// parenthesis after their name which can be used in goto situations |
||||
// |
||||
// Contexts contain several lines, one for each step of each |
||||
// extension, which can take one of two forms as listed below, |
||||
// with the first form being preferred. One may include another |
||||
// context in the current one as well, optionally with a |
||||
// date and time. Included contexts are included in the order |
||||
// they are listed. |
||||
// |
||||
//context name { |
||||
// exten-name => { |
||||
// application(arg1,arg2,...); |
||||
// |
||||
// Timing list for includes is |
||||
// |
||||
// <time range>|<days of week>|<days of month>|<months> |
||||
// |
||||
// includes { |
||||
// daytime|9:00-17:00|mon-fri|*|*; |
||||
// }; |
||||
// |
||||
// ignorepat can be used to instruct drivers to not cancel dialtone upon |
||||
// receipt of a particular pattern. The most commonly used example is |
||||
// of course '9' like this: |
||||
// |
||||
// ignorepat => 9; |
||||
// |
||||
// so that dialtone remains even after dialing a 9. |
||||
//}; |
||||
|
||||
|
||||
// |
||||
// Sample entries for extensions.conf |
||||
// |
||||
// |
||||
context ael-dundi-e164-canonical { |
||||
// |
||||
// List canonical entries here |
||||
// |
||||
// 12564286000 => &ael-std-exten(6000,IAX2/foo); |
||||
// _125642860XX => Dial(IAX2/otherbox/${EXTEN:7}); |
||||
}; |
||||
|
||||
context ael-dundi-e164-customers { |
||||
// |
||||
// If you are an ITSP or Reseller, list your customers here. |
||||
// |
||||
//_12564286000 => Dial(SIP/customer1); |
||||
//_12564286001 => Dial(IAX2/customer2); |
||||
}; |
||||
|
||||
context ael-dundi-e164-via-pstn { |
||||
// |
||||
// If you are freely delivering calls to the PSTN, list them here |
||||
// |
||||
//_1256428XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Expose all of 256-428 |
||||
//_1256325XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Ditto for 256-325 |
||||
}; |
||||
|
||||
context ael-dundi-e164-local { |
||||
// |
||||
// Context to put your dundi IAX2 or SIP user in for |
||||
// full access |
||||
// |
||||
includes { |
||||
ael-dundi-e164-canonical; |
||||
ael-dundi-e164-customers; |
||||
ael-dundi-e164-via-pstn; |
||||
}; |
||||
}; |
||||
|
||||
context ael-dundi-e164-switch { |
||||
// |
||||
// Just a wrapper for the switch |
||||
// |
||||
|
||||
switches { |
||||
DUNDi/e164; |
||||
}; |
||||
}; |
||||
|
||||
context ael-dundi-e164-lookup { |
||||
// |
||||
// Locally to lookup, try looking for a local E.164 solution |
||||
// then try DUNDi if we don't have one. |
||||
// |
||||
includes { |
||||
ael-dundi-e164-local; |
||||
ael-dundi-e164-switch; |
||||
}; |
||||
// |
||||
}; |
||||
|
||||
// |
||||
// DUNDi can also be implemented as a Macro instead of using |
||||
// the Local channel driver. |
||||
// |
||||
macro ael-dundi-e164(exten) { |
||||
// |
||||
// ARG1 is the extension to Dial |
||||
// |
||||
goto ${exten}|1; |
||||
return; |
||||
}; |
||||
|
||||
// |
||||
// Here are the entries you need to participate in the IAXTEL |
||||
// call routing system. Most IAXTEL numbers begin with 1-700, but |
||||
// there are exceptions. For more information, and to sign |
||||
// up, please go to www.gnophone.com or www.iaxtel.com |
||||
// |
||||
context ael-iaxtel700 { |
||||
_91700XXXXXXX => Dial(IAX2/${IAXINFO-AEL}@iaxtel.com/${EXTEN:1}@iaxtel); |
||||
}; |
||||
|
||||
// |
||||
// The SWITCH statement permits a server to share the dialplan with |
||||
// another server. Use with care: Reciprocal switch statements are not |
||||
// allowed (e.g. both A -> B and B -> A), and the switched server needs |
||||
// to be on-line or else dialing can be severly delayed. |
||||
// |
||||
context ael-iaxprovider { |
||||
switches { |
||||
// IAX2/user:[key]@myserver/mycontext; |
||||
}; |
||||
}; |
||||
|
||||
context ael-trunkint { |
||||
// |
||||
// International long distance through trunk |
||||
// |
||||
includes { |
||||
ael-dundi-e164-lookup; |
||||
}; |
||||
_9011. => { |
||||
&ael-dundi-e164(${EXTEN:4}); |
||||
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
}; |
||||
}; |
||||
|
||||
context ael-trunkld { |
||||
// |
||||
// Long distance context accessed through trunk |
||||
// |
||||
includes { |
||||
ael-dundi-e164-lookup; |
||||
}; |
||||
_91NXXNXXXXXX => { |
||||
&ael-dundi-e164(${EXTEN:1}); |
||||
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
}; |
||||
}; |
||||
|
||||
context ael-trunklocal { |
||||
// |
||||
// Local seven-digit dialing accessed through trunk interface |
||||
// |
||||
_9NXXXXXX => { |
||||
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
}; |
||||
}; |
||||
|
||||
context ael-trunktollfree { |
||||
// |
||||
// Long distance context accessed through trunk interface |
||||
// |
||||
|
||||
_91800NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
_91888NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
_91877NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
_91866NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}); |
||||
}; |
||||
|
||||
context ael-international { |
||||
// |
||||
// Master context for international long distance |
||||
// |
||||
ignorepat => 9; |
||||
includes { |
||||
ael-longdistance; |
||||
ael-trunkint; |
||||
}; |
||||
}; |
||||
|
||||
context ael-longdistance { |
||||
// |
||||
// Master context for long distance |
||||
// |
||||
ignorepat => 9; |
||||
includes { |
||||
ael-local; |
||||
ael-trunkld; |
||||
}; |
||||
}; |
||||
|
||||
context ael-local { |
||||
// |
||||
// Master context for local, toll-free, and iaxtel calls only |
||||
// |
||||
ignorepat => 9; |
||||
includes { |
||||
ael-default; |
||||
ael-trunklocal; |
||||
ael-iaxtel700; |
||||
ael-trunktollfree; |
||||
ael-iaxprovider; |
||||
}; |
||||
}; |
||||
|
||||
// |
||||
// You can use an alternative switch type as well, to resolve |
||||
// extensions that are not known here, for example with remote |
||||
// IAX switching you transparently get access to the remote |
||||
// Asterisk PBX |
||||
// |
||||
// switch => IAX2/user:password@bigserver/local |
||||
// |
||||
// An "lswitch" is like a switch but is literal, in that |
||||
// variable substitution is not performed at load time |
||||
// but is passed to the switch directly (presumably to |
||||
// be substituted in the switch routine itself) |
||||
// |
||||
// lswitch => Loopback/12${EXTEN}@othercontext |
||||
// |
||||
// An "eswitch" is like a switch but the evaluation of |
||||
// variable substitution is performed at runtime before |
||||
// being passed to the switch routine. |
||||
// |
||||
// eswitch => IAX2/context@${CURSERVER} |
||||
|
||||
|
||||
macro ael-std-exten-ael( ext , dev ) { |
||||
Dial(${dev}/${ext},20); |
||||
switch(${DIALSTATUS}) { |
||||
case BUSY: |
||||
Voicemail(${ext},b); |
||||
break; |
||||
default: |
||||
Voicemail(${ext},u); |
||||
}; |
||||
catch a { |
||||
VoiceMailMain(${ext}); |
||||
return; |
||||
}; |
||||
return; |
||||
}; |
||||
|
||||
context ael-demo { |
||||
s => { |
||||
Wait(1); |
||||
Answer(); |
||||
Set(TIMEOUT(digit)=5); |
||||
Set(TIMEOUT(response)=10); |
||||
restart: |
||||
Background(demo-congrats); |
||||
instructions: |
||||
for (x=0; ${x} < 3; x=${x} + 1) { |
||||
Background(demo-instruct); |
||||
WaitExten(); |
||||
}; |
||||
}; |
||||
2 => { |
||||
Background(demo-moreinfo); |
||||
goto s|instructions; |
||||
}; |
||||
3 => { |
||||
Set(LANGUAGE()=fr); |
||||
goto s|restart; |
||||
}; |
||||
1000 => { |
||||
goto ael-default|s|1; |
||||
}; |
||||
500 => { |
||||
Playback(demo-abouttotry); |
||||
Dial(IAX2/guest@misery.digium.com/s@default); |
||||
Playback(demo-nogo); |
||||
goto s|instructions; |
||||
}; |
||||
600 => { |
||||
Playback(demo-echotest); |
||||
Echo(); |
||||
Playback(demo-echodone); |
||||
goto s|instructions; |
||||
}; |
||||
_1234 => &ael-std-exten-ael(${EXTEN}, "IAX2"); |
||||
8500 => { |
||||
VoicemailMain(); |
||||
goto s|instructions; |
||||
}; |
||||
# => { |
||||
Playback(demo-thanks); |
||||
Hangup(); |
||||
}; |
||||
t => goto #|1; |
||||
i => Playback(invalid); |
||||
}; |
||||
|
||||
|
||||
// |
||||
// If you wish to use AEL for your default context, remove it |
||||
// from extensions.conf (or change its name or comment it out) |
||||
// and then uncomment the one here. |
||||
// |
||||
|
||||
context ael-default { |
||||
|
||||
// By default we include the demo. In a production system, you |
||||
// probably don't want to have the demo there. |
||||
|
||||
includes { |
||||
ael-demo; |
||||
}; |
||||
// |
||||
// Extensions like the two below can be used for FWD, Nikotel, sipgate etc. |
||||
// Note that you must have a [sipprovider] section in sip.conf whereas |
||||
// the otherprovider.net example does not require such a peer definition |
||||
// |
||||
//_41X. => Dial(SIP/${EXTEN:2}@sipprovider,,r); |
||||
//_42X. => Dial(SIP/user:passwd@${EXTEN:2}@otherprovider.net,30,rT); |
||||
|
||||
// Real extensions would go here. Generally you want real extensions to be |
||||
// 4 or 5 digits long (although there is no such requirement) and start with a |
||||
// single digit that is fairly large (like 6 or 7) so that you have plenty of |
||||
// room to overlap extensions and menu options without conflict. You can alias |
||||
// them with names, too, and use global variables |
||||
|
||||
// 6245 => { |
||||
// hint(SIP/Grandstream1&SIP/Xlite1,Joe Schmoe); // Channel hints for presence |
||||
// Dial(SIP/Grandstream1,20,rt); // permit transfer |
||||
// Dial(${HINT}/5245},20,rtT); // Use hint as listed |
||||
// switch(${DIALSTATUS}) { |
||||
// case BUSY: |
||||
// Voicemail(6245,b); |
||||
// return; |
||||
// default: |
||||
// Voicemail(6245,u); |
||||
// return; |
||||
// }; |
||||
// }; |
||||
|
||||
// 6361 => Dial(IAX2/JaneDoe,,rm); // ring without time limit |
||||
// 6389 => Dial(MGCP/aaln/1@192.168.0.14); |
||||
// 6394 => Dial(Local/6275/n); // this will dial ${MARK} |
||||
|
||||
// 6275 => &ael-stdexten(6275,${MARK}); // assuming ${MARK} is something like DAHDI/2 |
||||
// mark => goto 6275|1; // alias mark to 6275 |
||||
// 6536 => &ael-stdexten(6236,${WIL}); // Ditto for wil |
||||
// wil => goto 6236|1; |
||||
// |
||||
// Some other handy things are an extension for checking voicemail via |
||||
// voicemailmain |
||||
// |
||||
// 8500 => { |
||||
// VoicemailMain(); |
||||
// Hangup(); |
||||
// }; |
||||
// |
||||
// Or a conference room (you'll need to edit meetme.conf to enable this room) |
||||
// |
||||
// 8600 => Meetme(1234); |
||||
// |
||||
// Or playing an announcement to the called party, as soon it answers |
||||
// |
||||
// 8700 => Dial(${MARK},30,A(/path/to/my/announcemsg)) |
||||
// |
||||
// For more information on applications, just type "show applications" at your |
||||
// friendly Asterisk CLI prompt. |
||||
// |
||||
// 'show application <command>' will show details of how you |
||||
// use that particular application in this file, the dial plan. |
||||
// |
||||
} |
@ -0,0 +1,240 @@
|
||||
|
||||
|
||||
CONSOLE = "Console/dsp" -- Console interface for demo |
||||
--CONSOLE = "DAHDI/1" |
||||
--CONSOLE = "Phone/phone0" |
||||
|
||||
IAXINFO = "guest" -- IAXtel username/password |
||||
--IAXINFO = "myuser:mypass" |
||||
|
||||
TRUNK = "DAHDI/G2" |
||||
TRUNKMSD = 1 |
||||
-- TRUNK = "IAX2/user:pass@provider" |
||||
|
||||
|
||||
-- |
||||
-- Extensions are expected to be defined in a global table named 'extensions'. |
||||
-- The 'extensions' table should have a group of tables in it, each |
||||
-- representing a context. Extensions are defined in each context. See below |
||||
-- for examples. |
||||
-- |
||||
-- Extension names may be numbers, letters, or combinations thereof. If |
||||
-- an extension name is prefixed by a '_' character, it is interpreted as |
||||
-- a pattern rather than a literal. In patterns, some characters have |
||||
-- special meanings: |
||||
-- |
||||
-- X - any digit from 0-9 |
||||
-- Z - any digit from 1-9 |
||||
-- N - any digit from 2-9 |
||||
-- [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9) |
||||
-- . - wildcard, matches anything remaining (e.g. _9011. matches |
||||
-- anything starting with 9011 excluding 9011 itself) |
||||
-- ! - wildcard, causes the matching process to complete as soon as |
||||
-- it can unambiguously determine that no other matches are possible |
||||
-- |
||||
-- For example the extension _NXXXXXX would match normal 7 digit |
||||
-- dialings, while _1NXXNXXXXXX would represent an area code plus phone |
||||
-- number preceded by a one. |
||||
-- |
||||
-- If your extension has special characters in it such as '.' and '!' you must |
||||
-- explicitly make it a string in the tabale definition: |
||||
-- |
||||
-- ["_special."] = function; |
||||
-- ["_special!"] = function; |
||||
-- |
||||
-- There are no priorities. All extensions to asterisk appear to have a single |
||||
-- priority as if they consist of a single priority. |
||||
-- |
||||
-- Each context is defined as a table in the extensions table. The |
||||
-- context names should be strings. |
||||
-- |
||||
-- One context may be included in another context using the 'includes' |
||||
-- extension. This extension should be set to a table containing a list |
||||
-- of context names. Do not put references to tables in the includes |
||||
-- table. |
||||
-- |
||||
-- include = {"a", "b", "c"}; |
||||
-- |
||||
-- Channel variables can be accessed thorugh the global 'channel' table. |
||||
-- |
||||
-- v = channel.var_name |
||||
-- v = channel["var_name"] |
||||
-- v.value |
||||
-- v:get() |
||||
-- |
||||
-- channel.var_name = "value" |
||||
-- channel["var_name"] = "value" |
||||
-- v:set("value") |
||||
-- |
||||
-- channel.func_name(1,2,3):set("value") |
||||
-- value = channel.func_name(1,2,3):get() |
||||
-- |
||||
-- channel["func_name(1,2,3)"]:set("value") |
||||
-- channel["func_name(1,2,3)"] = "value" |
||||
-- value = channel["func_name(1,2,3)"]:get() |
||||
-- |
||||
-- Note the use of the ':' operator to access the get() and set() |
||||
-- methods. |
||||
-- |
||||
-- Also notice the absence of the following constructs from the examples above: |
||||
-- channel.func_name(1,2,3) = "value" -- this will NOT work |
||||
-- value = channel.func_name(1,2,3) -- this will NOT work as expected |
||||
-- |
||||
-- |
||||
-- Dialplan applications can be accessed through the global 'app' table. |
||||
-- |
||||
-- app.Dial("DAHDI/1") |
||||
-- app.dial("DAHDI/1") |
||||
-- app["dial"]("DAHDI/1") |
||||
-- |
||||
-- More examples can be found below. |
||||
-- |
||||
-- An autoservice is automatically run while lua code is executing. The |
||||
-- autoservice can be stopped and restarted using the autoservice_stop() and |
||||
-- autoservice_start() functions. The autservice should be running before |
||||
-- starting long running operations. The autoservice will automatically be |
||||
-- stopped before executing applications and dialplan functions and will be |
||||
-- restarted afterwards. The autoservice_status() function can be used to |
||||
-- check the current status of the autoservice and will return true if an |
||||
-- autoservice is currently running. |
||||
-- |
||||
-- Note about naming conflicts: |
||||
-- Lua allows you to refer to table entries using the '.' notation, |
||||
-- I.E. app.goto(something), only if the entry doesn't conflict with an Lua |
||||
-- reserved word. In the 'goto' example, with Lua 5.1 or earlier, 'goto' is |
||||
-- not a reserved word so you'd be calling the Asterisk dialplan application |
||||
-- 'goto'. Lua 5.2 however, introduced the 'goto' control statement which |
||||
-- makes 'goto' a reserved word. This casues the interpreter to fail parsing |
||||
-- the file and pbx_lua.so will fail to load. The same applies to any use of |
||||
-- Lua tables including extensions, channels and any tables you create. |
||||
-- |
||||
-- There are two ways around this: Since Lua is case-sensitive, you can use |
||||
-- capitalized names, I.E. app.Goto(something) to refer to the Asterisk apps, |
||||
-- functions, etc. Or you can use the full syntax, I.E. app["goto"](something). |
||||
-- Both syntaxes are backwards compatible with earlier Lua versions. To make |
||||
-- your Lua dialplans easier to maintain and to reduce the chance of future |
||||
-- conflicts you may want to use the app["goto"](something) syntax for all |
||||
-- table accesses. |
||||
-- |
||||
|
||||
function outgoing_local(c, e) |
||||
app.dial("DAHDI/1/" .. e, "", "") |
||||
end |
||||
|
||||
function demo_instruct() |
||||
app.background("demo-instruct") |
||||
app.waitexten() |
||||
end |
||||
|
||||
function demo_congrats() |
||||
app.background("demo-congrats") |
||||
demo_instruct() |
||||
end |
||||
|
||||
-- Answer the chanel and play the demo sound files |
||||
function demo_start(context, exten) |
||||
app.wait(1) |
||||
app.answer() |
||||
|
||||
channel.TIMEOUT("digit"):set(5) |
||||
channel.TIMEOUT("response"):set(10) |
||||
-- app.set("TIMEOUT(digit)=5") |
||||
-- app.set("TIMEOUT(response)=10") |
||||
|
||||
demo_congrats(context, exten) |
||||
end |
||||
|
||||
function demo_hangup() |
||||
app.playback("demo-thanks") |
||||
app.hangup() |
||||
end |
||||
|
||||
extensions = { |
||||
demo = { |
||||
s = demo_start; |
||||
|
||||
["2"] = function() |
||||
app.background("demo-moreinfo") |
||||
demo_instruct() |
||||
end; |
||||
["3"] = function () |
||||
channel.LANGUAGE():set("fr") -- set the language to french |
||||
demo_congrats() |
||||
end; |
||||
|
||||
["1000"] = function() |
||||
-- See the naming conflict note above. |
||||
app['goto']("default", "s", 1) |
||||
end; |
||||
|
||||
["1234"] = function() |
||||
app.playback("transfer", "skip") |
||||
-- do a dial here |
||||
end; |
||||
|
||||
["1235"] = function() |
||||
app.voicemail("1234", "u") |
||||
end; |
||||
|
||||
["1236"] = function() |
||||
app.dial("Console/dsp") |
||||
app.voicemail(1234, "b") |
||||
end; |
||||
|
||||
["#"] = demo_hangup; |
||||
t = demo_hangup; |
||||
i = function() |
||||
app.playback("invalid") |
||||
demo_instruct() |
||||
end; |
||||
|
||||
["500"] = function() |
||||
app.playback("demo-abouttotry") |
||||
app.dial("IAX2/guest@misery.digium.com/s@default") |
||||
app.playback("demo-nogo") |
||||
demo_instruct() |
||||
end; |
||||
|
||||
["600"] = function() |
||||
app.playback("demo-echotest") |
||||
app.echo() |
||||
app.playback("demo-echodone") |
||||
demo_instruct() |
||||
end; |
||||
|
||||
["8500"] = function() |
||||
app.voicemailmain() |
||||
demo_instruct() |
||||
end; |
||||
|
||||
}; |
||||
|
||||
default = { |
||||
-- by default, do the demo |
||||
include = {"demo"}; |
||||
}; |
||||
|
||||
public = { |
||||
-- ATTENTION: If your Asterisk is connected to the internet and you do |
||||
-- not have allowguest=no in sip.conf, everybody out there may use your |
||||
-- public context without authentication. In that case you want to |
||||
-- double check which services you offer to the world. |
||||
-- |
||||
include = {"demo"}; |
||||
}; |
||||
|
||||
["local"] = { |
||||
["_NXXXXXX"] = outgoing_local; |
||||
}; |
||||
} |
||||
|
||||
hints = { |
||||
demo = { |
||||
[1000] = "SIP/1000"; |
||||
[1001] = "SIP/1001"; |
||||
}; |
||||
|
||||
default = { |
||||
["1234"] = "SIP/1234"; |
||||
}; |
||||
} |
@ -0,0 +1,158 @@
|
||||
; MINI-VOICEMAIL dialplan example |
||||
; --------------------------------------------------------------------------------------- |
||||
; ASTERISK_FILE_VERSION(__FILE__, "$Revision$") |
||||
; |
||||
; |
||||
; This is an example on how to use the Mini-Voicemail system to build |
||||
; voicemail systems. |
||||
; |
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- |
||||
; A macro to test the MINIVMACCOUNT dialplan function |
||||
; Currently, accountcode and pincode is not used in the application |
||||
; They where added to be used in dialplan scripting |
||||
; |
||||
; |
||||
[macro-minivmfunctest] |
||||
exten => s,1,set(account=${ARGV1}) |
||||
exten => minivm,n,verbose(1,-------------------- Minivm Function test - Accoutn ${account} -------------) |
||||
exten => s,n,verbose(1,---- Has account: ${MINIVMACCOUNT(${account}:hasaccount)}) |
||||
exten => s,n,verbose(1,---- Fullname: ${MINIVMACCOUNT(${account}:fullname)}) |
||||
exten => s,n,verbose(1,---- Email: ${MINIVMACCOUNT(${account}:email)}) |
||||
exten => s,n,verbose(1,---- Pager: ${MINIVMACCOUNT(${account}:pager)}) |
||||
exten => s,n,verbose(1,---- E-mail template: ${MINIVMACCOUNT(${account}:etemplate)}) |
||||
exten => s,n,verbose(1,---- Pager template: ${MINIVMACCOUNT(${account}:ptemplate)}) |
||||
exten => s,n,verbose(1,---- Account code: ${MINIVMACCOUNT(${account}:accountcode)}) |
||||
exten => s,n,verbose(1,---- Path: ${MINIVMACCOUNT(${account}:path)}) |
||||
exten => s,n,verbose(1,---- Pincode: ${MINIVMACCOUNT(${account}:pincode)}) |
||||
exten => s,n,verbose(1,---- Time zone: ${MINIVMACCOUNT(${account}:timezone)}) |
||||
exten => s,n,verbose(1,---- Language: ${MINIVMACCOUNT(${account}:language)}) |
||||
; This requires setvar=customerclass=gold in the account configuration |
||||
exten => s,n,verbose(1,---- Var:customerclass: ${MINIVMACCOUNT(${account}:customerclass)}) |
||||
|
||||
[minivm-scenario1] |
||||
; minivmtest tests the dialplan function MINIVMACCOUNT |
||||
; Check the output in the console with verbose set |
||||
exten => minivmtest,1,answer |
||||
exten => minivmtest,n,wait(0.5) |
||||
exten => minivmtest,n,set(ACCOUNT=do-not-spam-me@example.com) |
||||
exten => minivmtest,n,macro(minivmfunctest, ${ACCOUNT}) |
||||
exten => minivmtest,n,playback(beep) |
||||
exten => minivmtest,n,hangup |
||||
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- |
||||
; "minivm" tests a full scenario |
||||
; Remember that users may hangup |
||||
; This works both for users with accounts in minivm.conf and by just giving an e-mail address |
||||
; without configuring an account |
||||
exten => minivm,1,answer |
||||
exten => minivm,n,wait(0.5) ; Wait for Voip channels to settle |
||||
exten => minivm,n,set(account=oej@example.com) |
||||
exten => minivm,n,noop(------------------------------------------- Minivm Greet -------------) |
||||
exten => minivm,n,minivmgreet(${account}) |
||||
exten => minivm,n,verbose(1,-- MINIVM_GREET_STATUS = ${MINIVM_GREET_STATUS} ) |
||||
exten => minivm,n,noop(------------------------------------------- Minivm Record -------------) |
||||
exten => minivm,n,minivmRecord(${account},b) |
||||
exten => minivm,n,goto(minivmcleanup,1) |
||||
|
||||
; Cleanup after recording or hangup |
||||
exten => minivmcleanup,1,noop(------------------------------------------- Minivm Notify -------------) |
||||
;Increment voicemail counter with 1. The counter will be used in the e-mail message |
||||
;and in the filename |
||||
exten => minivmcleanup,n,gotoif($[${MINIVM_RECORD_STATUS} != SUCCESS]?minivmrecordfailure,1) |
||||
exten => minivmcleanup,n,set(MINIVMCOUNTER(${account}:voicemailcounter:inc)=1) |
||||
exten => minivmcleanup,n,set(MVM_COUNTER = ${MINIVMCOUNTER(${account}:voicemailcounter)}) |
||||
exten => minivmcleanup,n,minivmNotify(${account}) |
||||
exten => minivmcleanup,n,verbose(1,-- MINIVM_NOTIFY_STATUS = ${MINIVM_NOTIFY_STATUS} ) |
||||
; Now, clean up after sending voicemail |
||||
exten => minivmcleanup,n,noop(------------------------------------------- Minivm Delete -------------) |
||||
exten => minivmcleanup,n,minivmdelete() |
||||
exten => minivmcleanup,n,verbose(1,-- MINIVM_DELETE_STATUS = ${MINIVM_DELETE_STATUS} ) |
||||
|
||||
;Recording failed |
||||
exten => minivmrecordfailure,1,playback(vm-sorry) |
||||
exten => minivmrecordfailure,n,wait(1) |
||||
exten => minivmrecordfailure,n,hangup |
||||
|
||||
; If the user hangs up during the recording, we need to clean up |
||||
; And send notifications |
||||
exten => h,1,gotoif($[x${MINIVM_DELETE_STATUS} != x] ?h,stop) |
||||
exten => h,n,noop(------------------------------------------- HANGUP during voicemail recording -------------) |
||||
exten => h,n,goto(minivmcleanup,1) |
||||
exten => h,n(stop),noop(---Minivm DONE----) |
||||
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- |
||||
; Extension to record a greeting message |
||||
; Call this like: |
||||
; macro(recordgreetings,alice@atlanta.example.com) |
||||
; |
||||
[macro-recordgreetings] |
||||
exten => s,1,answer |
||||
exten => s,n,wait(0.5) |
||||
exten => s,n,set(account=${ARGV1]) |
||||
; This file give extra options not available here, needs to be edited |
||||
; Change of password does not work |
||||
exten => s,n(menu),background(vm-options) |
||||
exten => 1,1,setvar(option=u) |
||||
exten => 1,n,macro(minivmrec,${account},${option}) |
||||
exten => 1,n,goto(menu) |
||||
exten => 2,1,setvar(option=b) |
||||
exten => 2,n,macro(minivmrec,${account},${option}) |
||||
exten => 2,n,goto(menu) |
||||
exten => 3,1,setvar(option=n) |
||||
exten => 3,n,macro(minivmrec,${account},${option}) |
||||
exten => 3,n,goto(menu) |
||||
exten => 4,1,setvar(option=t) |
||||
exten => 4,n,macro(minivmrec,${account},${option}) |
||||
exten => 4,n,goto(menu) |
||||
exten => *,1,playback(vm-thankyou) |
||||
exten => *,n,wait(1) |
||||
exten => *,n,hangup |
||||
|
||||
exten => i,1,playback(invalid) |
||||
exten => i,n,goto(menu) |
||||
|
||||
[macro-minivmrec] |
||||
exten => s,1,gotoif(${MINIVMACCOUNT(${account}:hasaccount)}?record) |
||||
; Account is not configured in minivm.conf or realtime |
||||
; Phony message, add something useful here |
||||
exten => s,n,playback(privacy-incorrect) |
||||
exten => s,n,macroreturn |
||||
exten => record,1,minivmappmess(${ARGV1},${ARGV2}) |
||||
exten => record,n,noop(Recording status: ${MINIVM_APPMESS_STATUS}) |
||||
exten => record,n,macroreturn |
||||
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- |
||||
; To set a counter and use a template for voicemail to users without acounts |
||||
; use something like this |
||||
; |
||||
; email address is in the "account" channel variable. Set from ast_db or a script |
||||
; based on called ID |
||||
|
||||
exten => sendvoicemail,1,answer |
||||
exten => sendvoicemail,n,wait(0.5) |
||||
exten => sendvoicemail,n,set(domain=${CUT(account,@,2)}) |
||||
exten => sendvoicemail,n,set(country=${CUT(domain,.,2)}) |
||||
exten => sendvoicemail,n,minivmgreet(${account}) |
||||
exten => sendvoicemail,n,minivmRecord(${account},b) |
||||
exten => sendvoicemail,n,goto(sendvmcleanup) |
||||
|
||||
exten => sendvmcleanup,1,gotoif($[${MINIVM_RECORD_STATUS} != SUCCESS]?done) |
||||
; The counter is set in the domain directory, so we don't create one directory per user |
||||
; The counter has the email in the name of the counter, increase it |
||||
; Set the MVM_COUNTER variable that we use in the template |
||||
exten => sendvmcleanup,n,set(MINIVMCOUNTER(${account}:voicemailcounter:inc)=1) |
||||
exten => sendvmcleanup,n,set(MVM_COUNTER = ${MINIVMCOUNTER(${account}:voicemailcounter)}) |
||||
; Increase a domain counter too, to see how many voicemails are sent to this domain |
||||
; This is just for statistics |
||||
exten => sendvmcleanup,n,set(MINIVMCOUNTER(${domain}:${domain}-all:inc) = 1) |
||||
|
||||
; Send voicemail in e-mail with country-specific template |
||||
; The template need to be defined in minivm.conf |
||||
; |
||||
exten => sendvmcleanup,n,minivmNotify(${account}, ${country}_email) |
||||
exten => sendvmcleanup,n,minivmDelete() |
||||
|
||||
exten => sendvmcleanup,n(done),wait(0.5) |
||||
exten => sendvmcleanup,n,hangup |
||||
|
||||
exten => h,1,gotoif($[${MINIVM_RECORD_STATUS} = SUCCESS]?sendvmcleanup,1)) |
@ -0,0 +1,34 @@
|
||||
; |
||||
; Festival Configuration |
||||
; |
||||
[general] |
||||
; |
||||
; Host which runs the festival server (default : localhost); |
||||
; |
||||
;host=localhost |
||||
; |
||||
; Port on host where the festival server runs (default : 1314) |
||||
; |
||||
;port=1314 |
||||
; |
||||
; Use cache (yes, no - defaults to no) |
||||
; |
||||
;usecache=yes |
||||
; |
||||
; If usecache=yes, a directory to store waveform cache files. |
||||
; The cache is never cleared (yet), so you must take care of cleaning it |
||||
; yourself (just delete any or all files from the cache). |
||||
; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process. |
||||
; Defaults to /tmp/ |
||||
; |
||||
;cachedir=/var/lib/asterisk/festivalcache/ |
||||
; |
||||
; Festival command to send to the server. |
||||
; Defaults to: (tts_textasterisk "%s" 'file)(quit)\n |
||||
; %s is replaced by the desired text to say. The command MUST end with a |
||||
; (quit) directive, or the cache handling mechanism will hang. Do not |
||||
; forget the \n at the end. |
||||
; |
||||
;festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n |
||||
; |
||||
; |
@ -0,0 +1,89 @@
|
||||
; Find-Me / Follow-Me Configuration File |
||||
[general] |
||||
; |
||||
featuredigittimeout=>5000 |
||||
; The number of ms to wait for a digit input for the callee on whether to take the call or |
||||
; not before we consider them "done" entering digits. |
||||
; |
||||
takecall=>1 |
||||
; The global default keypress for the callee to take taking the current call. This can be |
||||
; a single digit or multiple digits. Default is "1". |
||||
; Note this string must not be a substring of declinecall. |
||||
; |
||||
declinecall=>2 |
||||
; The global default keypress for the callee to decline taking the current call. This can |
||||
; be a single digit or multiple digits. Default is "2". |
||||
; Note this string must not be a substring of takecall. |
||||
; |
||||
call_from_prompt=>followme/call-from |
||||
; The global default for the 'Incoming call from' message. |
||||
; |
||||
norecording_prompt=>followme/no-recording |
||||
; The global default for the 'You have an incoming call' message when the caller elects |
||||
; not to leave their name or the option isn't set for them to do so. |
||||
; |
||||
options_prompt=>followme/options |
||||
; The global default for the 'Press 1 to accept this call or press 2 to decline it' message. |
||||
; |
||||
pls_hold_prompt=>followme/pls-hold-while-try |
||||
; The global default for 'Please hold while we try and connect your call' message. |
||||
; |
||||
status_prompt=>followme/status |
||||
; The global default for 'The party you're calling isn't at their desk' message. |
||||
; |
||||
sorry_prompt=>followme/sorry |
||||
; The global default for 'I'm sorry, but we were unable to locate your party' message. |
||||
; |
||||
; |
||||
[default] |
||||
musicclass=>default |
||||
; The moh class that should be used for the caller while they are waiting to be connected. |
||||
context=>default |
||||
; The context to dial the numbers from |
||||
number=>01233456,25 |
||||
; The a follow-me number to call. The format is: |
||||
; number=> <number to call[&2nd #[&...]]>[,<timeout value in seconds>[,<order in follow-me>]] |
||||
; You can specify as many of these numbers as you like. They will be dialed in the |
||||
; order that you specify them in the config file OR as specified with the order field |
||||
; on the number prompt. As you can see from the example, forked dialing of multiple |
||||
; numbers in the same step is supported with this application if you'd like to dial |
||||
; multiple numbers in the same followme step. |
||||
; |
||||
; The timeout value is the amount of time allowed between the time the dialing step |
||||
; starts and the callee answers. The callee then has until the timeout of the last |
||||
; step to make a choice on whether to take the call or not. That being the case, |
||||
; you may want to make the timeout on the last step longer to give enough time to |
||||
; make the choice to accept or not. |
||||
takecall=>1 |
||||
; The keypress for the callee to take taking the current call. This can be |
||||
; a single digit or multiple digits. Default is the global default. |
||||
; Note this string must not be a substring of declinecall. |
||||
; |
||||
declinecall=>2 |
||||
; The keypress for the callee to decline taking the current call. This can |
||||
; be a single digit or multiple digits. Default is the global default. |
||||
; Note this string must not be a substring of takecall. |
||||
; |
||||
call_from_prompt=>followme/call-from |
||||
; The 'Incoming call from' message prompt. Default is the global default. |
||||
; |
||||
norecording_prompt=>followme/no-recording |
||||
; The 'You have an incoming call' message prompt when the caller elects |
||||
; not to leave their name or the option isn't set for them to do so. Default |
||||
; is the global default. |
||||
; |
||||
options_prompt=>followme/options |
||||
; The 'Press 1 to accept this call or press 2 to decline it' message prompt. |
||||
; Default is the global default. |
||||
; |
||||
pls_hold_prompt=>followme/pls-hold-while-try |
||||
; The 'Please hold while we try and connect your call' message prompt. |
||||
; Default is the global default. |
||||
; |
||||
status_prompt=>followme/status |
||||
; The 'The party you're calling isn't at their desk' message prompt. |
||||
; Default is the global default. |
||||
; |
||||
sorry_prompt=>followme/sorry |
||||
; The 'I'm sorry, but we were unable to locate your party' message prompt. Default |
||||
; is the global default. |
@ -0,0 +1,109 @@
|
||||
; |
||||
; func_odbc.conf |
||||
; |
||||
[general] |
||||
; |
||||
; Asterisk uses separate connections for every database operation. |
||||
; If single_db_connection is enabled then func_odbc will use a single |
||||
; database connection per DSN. |
||||
; This option exists for those who expect that a second func_odbc call |
||||
; works on the same connection. That allows you to do a LAST_INSERT_ID() |
||||
; in a second func_odbc call. |
||||
; Note that you'll need additional dialplan locks for this behaviour to work. |
||||
; There are better ways: using stored procedures/functions instead. |
||||
; This option is enabled by default. |
||||
;single_db_connection=yes |
||||
; |
||||
; |
||||
; Each context is a separately defined function. By convention, all |
||||
; functions are entirely uppercase, so the defined contexts should also |
||||
; be all-uppercase, but there is nothing that enforces this. All functions |
||||
; are case-sensitive, however. |
||||
; |
||||
; For substitution, you have ${ARG1}, ${ARG2} ... ${ARGn} |
||||
; for the arguments to each SQL statement. |
||||
; |
||||
; In addition, for write statements, you have ${VAL1}, ${VAL2} ... ${VALn} |
||||
; parsed, just like arguments, for the values. In addition, if you want the |
||||
; whole value, never mind the parsing, you can get that with ${VALUE}. |
||||
; |
||||
; |
||||
; If you have data which may potentially contain single ticks, you may wish |
||||
; to use the dialplan function SQL_ESC() to escape the data prior to its |
||||
; inclusion in the SQL statement. |
||||
; |
||||
; |
||||
; The following options are available in this configuration file: |
||||
; |
||||
; readhandle A comma-separated list of DSNs (from res_odbc.conf) to use when |
||||
; executing the readsql statement. Each DSN is tried, in |
||||
; succession, until the statement succeeds. You may specify up to |
||||
; 5 DSNs per function class. If not specified, it will default to |
||||
; the value of writehandle or dsn, if specified. |
||||
; writehandle A comma-separated list of DSNs (from res_odbc.conf) to use when |
||||
; executing the writesql statement. The same rules apply as to |
||||
; readhandle. "dsn" is a synonym for "writehandle". |
||||
; readsql The statement to execute when reading from the function class. |
||||
; writesql The statement to execute when writing to the function class. |
||||
; insertsql The statement to execute when writing to the function class |
||||
; succeeds, but initially indicates that 0 rows were affected. |
||||
; prefix Normally, all function classes are prefixed with "ODBC" to keep |
||||
; them uniquely named. You may choose to change this prefix, which |
||||
; may be useful to segregate a collection of certain function |
||||
; classes from others. |
||||
; escapecommas This option may be used to turn off the default behavior of |
||||
; escaping commas which occur within a field. If commas are |
||||
; escaped (the default behavior), then fields containing commas |
||||
; will be treated as a single value when assigning to ARRAY() or |
||||
; HASH(). If commas are not escaped, then values will be separated |
||||
; at the comma within fields. Please note that turning this option |
||||
; off is incompatible with the functionality of HASH(). |
||||
; synopsis Appears in the synopsis field for the command |
||||
; 'core show function <function name>' |
||||
; mode This option may be set to 'multirow' to allow the function |
||||
; specified to return more than a single row. However, this |
||||
; changes the way that func_odbc normally works. Instead of the |
||||
; invocation of the function returning a row, it returns an opaque |
||||
; ID, which may be passed to ODBC_FETCH() to return each row in |
||||
; turn. ODBC_FETCH_STATUS returns SUCCESS or FAILURE, to indicate |
||||
; whether any results were stored, and you should call ODBC_Finish |
||||
; on the ID to clean up any remaining results when you are done |
||||
; with the query. Also, the variable ODBCROWS is set initially, |
||||
; which may be used in an iterative fashion to return each row in |
||||
; the result. |
||||
; Please note that multirow queries are isolated to the channel, |
||||
; and rows may not be fetched outside of the channel where the |
||||
; query was initially performed. Additionally, as the results are |
||||
; associated with a channel, mode=multirow is incompatible with |
||||
; the global space. |
||||
; rowlimit Rowlimit limits the total number of rows which can be stored for |
||||
; that query. For mode=multirow, otherwise, func_odbc will |
||||
; attempt to store all rows in the resultset, up to the maximum |
||||
; amount of memory. In normal mode, rowlimit can be set to allow |
||||
; additional rows to be fetched, rather than just the first one. |
||||
; These additional rows can be returned by using the name of the |
||||
; function which was called to retrieve the first row as an |
||||
; argument to ODBC_FETCH(). |
||||
|
||||
|
||||
; ODBC_SQL - Allow an SQL statement to be built entirely in the dialplan |
||||
[SQL] |
||||
dsn=mysql1 |
||||
readsql=${ARG1} |
||||
|
||||
; ODBC_ANTIGF - A blacklist. |
||||
[ANTIGF] |
||||
dsn=mysql1,mysql2 ; Use mysql1 as the primary handle, but fall back to mysql2 |
||||
; if mysql1 is down. Supports up to 5 comma-separated |
||||
; DSNs. "dsn" may also be specified as "readhandle" and |
||||
; "writehandle", if it is important to separate reads and |
||||
; writes to different databases. |
||||
readsql=SELECT COUNT(*) FROM exgirlfriends WHERE callerid='${SQL_ESC(${ARG1})}' |
||||
syntax=<callerid> |
||||
synopsis=Check if a specified callerid is contained in the ex-gf database |
||||
|
||||
; ODBC_PRESENCE - Retrieve and update presence |
||||
[PRESENCE] |
||||
dsn=mysql1 |
||||
readsql=SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}' |
||||
writesql=UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE id='${SQL_ESC(${ARG1})}' |
@ -0,0 +1,19 @@
|
||||
;[general] |
||||
;context=default ;;Context to dump call into |
||||
;allowguest=yes ;;Allow calls from people not in |
||||
;;list of peers |
||||
; |
||||
;[guest] ;;special account for options on guest account |
||||
;disallow=all |
||||
;allow=ulaw |
||||
;context=guest |
||||
; |
||||
;[ogorman] |
||||
;username=ogorman@gmail.com ;;username of the peer your |
||||
;;calling or accepting calls from |
||||
;disallow=all |
||||
;allow=ulaw |
||||
;context=default |
||||
;connection=asterisk ;;client or component in jabber.conf |
||||
;;for the call to leave on. |
||||
; |
@ -0,0 +1,21 @@
|
||||
;! |
||||
;! Automatically generated configuration file |
||||
;! Filename: guipreferences.conf (/etc/asterisk/guipreferences.conf) |
||||
;! Generator: Manager |
||||
;! Creation Date: Wed Oct 28 19:29:19 2009 |
||||
;! |
||||
[general] |
||||
ue_start = 6000 |
||||
ue_end = 6299 |
||||
mm_start = 6300 |
||||
mm_end = 6399 |
||||
vme_start = 7000 |
||||
vme_end = 7100 |
||||
rge_start = 6400 |
||||
rge_end = 6499 |
||||
qe_start = 6500 |
||||
qe_end = 6599 |
||||
vmg_start = 6600 |
||||
vmg_end = 6699 |
||||
config_upgraded = yes |
||||
config_gui_version = SVN-branch-2.0-r4991 |
@ -0,0 +1,193 @@
|
||||
; The NuFone Network's |
||||
; Open H.323 driver configuration |
||||
; |
||||
[general] |
||||
port = 1720 |
||||
;bindaddr = 1.2.3.4 ; this SHALL contain a single, valid IP address for this machine |
||||
;tos=lowdelay |
||||
; |
||||
; You may specify a global default AMA flag for iaxtel calls. It must be |
||||
; one of 'default', 'omit', 'billing', or 'documentation'. These flags |
||||
; are used in the generation of call detail records. |
||||
; |
||||
;amaflags = default |
||||
; |
||||
; You may specify a default account for Call Detail Records in addition |
||||
; to specifying on a per-user basis |
||||
; |
||||
;accountcode=lss0101 |
||||
; |
||||
; You can fine tune codecs here using "allow" and "disallow" clauses |
||||
; with specific codecs. Use "all" to represent all formats. |
||||
; |
||||
;disallow=all |
||||
;allow=all ; turns on all installed codecs |
||||
;disallow=g723.1 ; Hm... Proprietary, don't use it... |
||||
;allow=gsm ; Always allow GSM, it's cool :) |
||||
;allow=ulaw ; see doc/rtp-packetization for framing options |
||||
; |
||||
; User-Input Mode (DTMF) |
||||
; |
||||
; valid entries are: rfc2833, inband |
||||
; default is rfc2833 |
||||
;dtmfmode=rfc2833 |
||||
; |
||||
; Default RTP Payload to send RFC2833 DTMF on. This is used to |
||||
; interoperate with broken gateways which cannot successfully |
||||
; negotiate a RFC2833 payload type in the TerminalCapabilitySet. |
||||
; |
||||
; You may also specify on either a per-peer or per-user basis below. |
||||
;dtmfcodec=101 |
||||
; |
||||
; Set the gatekeeper |
||||
; DISCOVER - Find the Gk address using multicast |
||||
; DISABLE - Disable the use of a GK |
||||
; <IP address> or <Host name> - The acutal IP address or hostname of your GK |
||||
;gatekeeper = DISABLE |
||||
; |
||||
; |
||||
; Tell Asterisk whether or not to accept Gatekeeper |
||||
; routed calls or not. Normally this should always |
||||
; be set to yes, unless you want to have finer control |
||||
; over which users are allowed access to Asterisk. |
||||
; Default: YES |
||||
; |
||||
;AllowGKRouted = yes |
||||
; |
||||
; When the channel works without gatekeeper, there is possible to |
||||
; reject calls from anonymous (not listed in users) callers. |
||||
; Default is to allow anonymous calls. |
||||
; |
||||
;AcceptAnonymous = yes |
||||
; |
||||
; Optionally you can determine a user by Source IP versus its H.323 alias. |
||||
; Default behavour is to determine user by H.323 alias. |
||||
; |
||||
;UserByAlias=no |
||||
; |
||||
; Default context gets used in siutations where you are using |
||||
; the GK routed model or no type=user was found. This gives you |
||||
; the ability to either play an invalid message or to simply not |
||||
; use user authentication at all. |
||||
; |
||||
;context=default |
||||
; |
||||
; Use this option to help Cisco (or other) gateways to setup backward voice |
||||
; path to pass inband tones to calling user (see, for example, |
||||
; http://www.cisco.com/warp/public/788/voip/ringback.html) |
||||
; |
||||
; Add PROGRESS information element to SETUP message sent on outbound calls |
||||
; to notify about required backward voice path. Valid values are: |
||||
; 0 - don't add PROGRESS information element (default); |
||||
; 1 - call is not end-end ISDN, further call progress information can |
||||
; possibly be available in-band; |
||||
; 3 - origination address is non-ISDN (Cisco accepts this value only); |
||||
; 8 - in-band information or an appropriate pattern is now available; |
||||
;progress_setup = 3 |
||||
; |
||||
; Add PROGRESS information element (IE) to ALERT message sent on incoming |
||||
; calls to notify about required backwared voice path. Valid values are: |
||||
; 0 - don't add PROGRESS IE (default); |
||||
; 8 - in-band information or an appropriate pattern is now available; |
||||
;progress_alert = 8 |
||||
; |
||||
; Generate PROGRESS message when H.323 audio path has established to create |
||||
; backward audio path at other end of a call. |
||||
;progress_audio = yes |
||||
; |
||||
; Specify how to inject non-standard information into H.323 messages. When |
||||
; the channel receives messages with tunneled information, it automatically |
||||
; enables the same option for all further outgoing messages independedly on |
||||
; options has been set by the configuration. This behavior is required, for |
||||
; example, for Cisco CallManager when Q.SIG tunneling is enabled for a |
||||
; gateway where Asterisk lives. |
||||
; The option can be used multiple times, one option per line. |
||||
;tunneling=none ; Totally disable tunneling (default) |
||||
;tunneling=cisco ; Enable Cisco-specific tunneling |
||||
;tunneling=qsig ; Enable tunneling via Q.SIG messages |
||||
; |
||||
;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a |
||||
; H323 channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The H323 channel can accept jitter, |
||||
; thus an enabled jitterbuffer on the receive H323 side will only |
||||
; be used if the sending side can create jitter and jbforce is |
||||
; also set to yes. |
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a H323 |
||||
; channel. Defaults to "no". |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usualy sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a H323 |
||||
; channel. Two implementations are currenlty available - "fixed" |
||||
; (with size always equals to jbmax-size) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
;----------------------------------------------------------------------------------- |
||||
; |
||||
; H.323 Alias definitions |
||||
; |
||||
; Type 'h323' will register aliases to the endpoint |
||||
; and Gatekeeper, if there is one. |
||||
; |
||||
; Example: if someone calls time@your.asterisk.box.com |
||||
; Asterisk will send the call to the extension 'time' |
||||
; in the context default |
||||
; |
||||
; [default] |
||||
; exten => time,1,Answer |
||||
; exten => time,2,Playback,current-time |
||||
; |
||||
; Keyword's 'prefix' and 'e164' are only make sense when |
||||
; used with a gatekeeper. You can specify either a prefix |
||||
; or E.164 this endpoint is responsible for terminating. |
||||
; |
||||
; Example: The H.323 alias 'det-gw' will tell the gatekeeper |
||||
; to route any call with the prefix 1248 to this alias. Keyword |
||||
; e164 is used when you want to specifiy a full telephone |
||||
; number. So a call to the number 18102341212 would be |
||||
; routed to the H.323 alias 'time'. |
||||
; |
||||
;[time] |
||||
;type=h323 |
||||
;e164=18102341212 |
||||
;context=default |
||||
; |
||||
;[det-gw] |
||||
;type=h323 |
||||
;prefix=1248,1313 |
||||
;context=detroit |
||||
; |
||||
; |
||||
; Inbound H.323 calls from BillyBob would land in the incoming |
||||
; context with a maximum of 4 concurrent incoming calls |
||||
; |
||||
; |
||||
; Note: If keyword 'incominglimit' are omitted Asterisk will not |
||||
; enforce any maximum number of concurrent calls. |
||||
; |
||||
;[BillyBob] |
||||
;type=user |
||||
;host=192.168.1.1 |
||||
;context=incoming |
||||
;incominglimit=4 |
||||
;h245Tunneling=no |
||||
; |
||||
; |
||||
; Outbound H.323 call to Larry using SlowStart |
||||
; |
||||
;[Larry] |
||||
;type=peer |
||||
;host=192.168.2.1 |
||||
;fastStart=no |
||||
|
||||
|
||||
|
@ -0,0 +1,32 @@
|
||||
; |
||||
; res_hep Module configuration for Asterisk |
||||
; |
||||
|
||||
; |
||||
; Note that this configuration file is consumed by res_hep, which is responsible |
||||
; for the HEPv3 protocol manipulation and managing the connection to the Homer |
||||
; capture server. Additional modules provide specific messages to be sent to |
||||
; the Homer server: |
||||
; - res_hep_pjsip: Send SIP messages transmitted/received by the PJSIP stack |
||||
; - res_hep_rtcp: Send RTCP information (all channels) |
||||
; |
||||
|
||||
; All settings are currently set in the general section. |
||||
[general] |
||||
enabled = no ; Enable/disable forwarding of packets to a |
||||
; HEP server. Default is "yes". |
||||
capture_address = 192.168.1.1:9061 ; The address of the HEP capture server. |
||||
capture_password = foo ; If specified, the authorization passsword |
||||
; for the HEP server. If not specified, no |
||||
; authorization password will be sent. |
||||
capture_id = 1234 ; A unique integer identifier for this |
||||
; server. This ID will be embedded sent |
||||
; with each packet from this server. |
||||
uuid_type = call-id ; Specify the preferred source for the Homer |
||||
; correlation UUID. Valid options are: |
||||
; - 'call-id' for the PJSIP or chan_sip SIP |
||||
; Call-ID |
||||
; - 'channel' for the Asterisk channel name |
||||
; Note: If 'call-id' is specified but the |
||||
; channel is not PJSIP or chan_sip then the |
||||
; Asterisk channel name will be used instead. |
@ -0,0 +1,26 @@
|
||||
[hints] |
||||
exten => 1013,hint,SIP/1013 |
||||
exten => 6500,hint,IAX2/6500 |
||||
exten => 8085,hint,SIP/8085 |
||||
exten => 8088,hint,SIP/8088 |
||||
exten => 8185,hint,SIP/8185 |
||||
exten => 8263,hint,SIP/8263 |
||||
exten => 8265,hint,SIP/8265 |
||||
exten => 8272,hint,SIP/8272 |
||||
exten => 8273,hint,SIP/8273 |
||||
exten => 8284,hint,SIP/8284 |
||||
exten => 8285,hint,SIP/8285 |
||||
exten => 8286,hint,SIP/8286 |
||||
exten => 8287,hint,SIP/8287 |
||||
exten => 8288,hint,SIP/8288 |
||||
exten => 8289,hint,SIP/8289 |
||||
exten => 8290,hint,SIP/8290 |
||||
exten => 8291,hint,SIP/8291 |
||||
exten => 8292,hint,SIP/8292 |
||||
exten => 8295,hint,SIP/8295 |
||||
exten => 8298,hint,SIP/8298 |
||||
exten => 8299,hint,SIP/8299 |
||||
exten => 8382,hint,IAX2/SIMPLESIP_NUVEM/8382 |
||||
exten => 8385,hint,SIP/8385 |
||||
exten => 8389,hint,IAX2/SIMPLESIP_NUVEM/8389 |
||||
exten => 9998,hint,SIP/9998 |
@ -0,0 +1,126 @@
|
||||
; |
||||
; Asterisk Builtin mini-HTTP server |
||||
; |
||||
; |
||||
; Note about Asterisk documentation: |
||||
; If Asterisk was installed from a tarball, then the HTML documentation should |
||||
; be installed in the static-http/docs directory which is |
||||
; (/var/lib/asterisk/static-http/docs) on linux by default. If the Asterisk |
||||
; HTTP server is enabled in this file by setting the "enabled", "bindaddr", |
||||
; and "bindport" options, then you should be able to view the documentation |
||||
; remotely by browsing to: |
||||
; http://<server_ip>:<bindport>/static/docs/index.html |
||||
; |
||||
[general] |
||||
; |
||||
; The name of the server, advertised in both the Server field in HTTP |
||||
; response message headers, as well as the <address /> element in certain HTTP |
||||
; response message bodies. If not furnished here, "Asterisk/{version}" will be |
||||
; used as a default value for the Server header field and the <address /> |
||||
; element. Setting this property to a blank value will result in the omission |
||||
; of the Server header field from HTTP response message headers and the |
||||
; <address /> element from HTTP response message bodies. |
||||
; |
||||
;servername=Asterisk |
||||
; |
||||
; Whether HTTP/HTTPS interface is enabled or not. Default is no. |
||||
; This also affects manager/rawman/mxml access (see manager.conf) |
||||
; |
||||
;enabled=yes |
||||
; |
||||
; Address to bind to, both for HTTP and HTTPS. You MUST specify |
||||
; a bindaddr in order for the HTTP server to run. There is no |
||||
; default value. |
||||
; |
||||
bindaddr=127.0.0.1 |
||||
; |
||||
; Port to bind to for HTTP sessions (default is 8088) |
||||
; |
||||
;bindport=8088 |
||||
; |
||||
; Prefix allows you to specify a prefix for all requests |
||||
; to the server. The default is blank. If uncommented |
||||
; all requests must begin with /asterisk |
||||
; |
||||
;prefix=asterisk |
||||
; |
||||
; sessionlimit specifies the maximum number of httpsessions that will be |
||||
; allowed to exist at any given time. (default: 100) |
||||
; |
||||
;sessionlimit=100 |
||||
; |
||||
; session_inactivity specifies the number of milliseconds to wait for |
||||
; more data over the HTTP connection before closing it. |
||||
; |
||||
; Default: 30000 |
||||
;session_inactivity=30000 |
||||
; |
||||
; session_keep_alive specifies the number of milliseconds to wait for |
||||
; the next HTTP request over a persistent connection. |
||||
; |
||||
; Set to 0 to disable persistent HTTP connections. |
||||
; Default: 15000 |
||||
;session_keep_alive=15000 |
||||
; |
||||
; Whether Asterisk should serve static content from static-http |
||||
; Default is no. |
||||
; |
||||
;enablestatic=yes |
||||
; |
||||
; Redirect one URI to another. This is how you would set a |
||||
; default page. |
||||
; Syntax: redirect=<from here> <to there> |
||||
; For example, if you are using the Asterisk-gui, |
||||
; it is convenient to enable the following redirect: |
||||
; |
||||
;redirect = / /static/config/index.html |
||||
; |
||||
; HTTPS support. In addition to enabled=yes, you need to |
||||
; explicitly enable tls, define the port to use, |
||||
; and have a certificate somewhere. |
||||
;tlsenable=yes ; enable tls - default no. |
||||
;tlsbindaddr=0.0.0.0:8089 ; address and port to bind to - default is bindaddr and port 8089. |
||||
; |
||||
;tlscertfile=</path/to/certificate.pem> ; path to the certificate file (*.pem) only. |
||||
;tlsprivatekey=</path/to/private.pem> ; path to private key file (*.pem) only. |
||||
; If no path is given for tlscertfile or tlsprivatekey, default is to look in current |
||||
; directory. If no tlsprivatekey is given, default is to search tlscertfile for private key. |
||||
; |
||||
; To produce a certificate you can e.g. use openssl. This places both the cert and |
||||
; private in same .pem file. |
||||
; openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem |
||||
; |
||||
; tlscipher= ; The list of allowed ciphers |
||||
; ; if none are specified the following cipher |
||||
; ; list will be used instead: |
||||
; ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384: |
||||
; ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256: |
||||
; kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA: |
||||
; ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384: |
||||
; ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA: |
||||
; DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA: |
||||
; AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA: |
||||
; AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH: |
||||
; !EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA |
||||
; |
||||
; tlsdisablev1=yes ; Disable TLSv1 support - if not set this defaults to "yes" |
||||
; tlsdisablev11=yes ; Disable TLSv1.1 support - if not set this defaults to "no" |
||||
; tlsdisablev12=yes ; Disable TLSv1.2 support - if not set this defaults to "no" |
||||
; |
||||
; tlsservercipherorder=yes ; Use the server preference order instead of the client order |
||||
; ; Defaults to "yes" |
||||
; |
||||
; The post_mappings section maps URLs to real paths on the filesystem. If a |
||||
; POST is done from within an authenticated manager session to one of the |
||||
; configured POST mappings, then any files in the POST will be placed in the |
||||
; configured directory. |
||||
; |
||||
;[post_mappings] |
||||
; |
||||
; NOTE: You need a valid HTTP AMI mansession_id cookie with the manager |
||||
; config permission to POST files. |
||||
; |
||||
; In this example, if the prefix option is set to "asterisk", then using the |
||||
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/. |
||||
;uploads = /var/lib/asterisk/uploads/ |
||||
; |
@ -0,0 +1,80 @@
|
||||
; |
||||
; IAX2 Provisioning Information |
||||
; |
||||
; Contains provisioning information for templates and for specific service |
||||
; entries. |
||||
; |
||||
; Templates provide a group of settings from which provisioning takes place. |
||||
; A template may be based upon any template that has been specified before |
||||
; it. If the template that an entry is based on is not specified then it is |
||||
; presumed to be 'default' (unless it is the first of course). |
||||
; |
||||
; Templates which begin with 'si-' are used for provisioning units with |
||||
; specific service identifiers. For example the entry "si-000364000126" |
||||
; would be used when the device with the corresponding service identifier of |
||||
; "000364000126" attempts to register or make a call. |
||||
; |
||||
[default] |
||||
; |
||||
; The port number the device should use to bind to. The default is 4569. |
||||
; |
||||
;port=4569 |
||||
; |
||||
; server is our PRIMARY server for registration and placing calls |
||||
; |
||||
;server=192.168.69.3 |
||||
; |
||||
; altserver is the BACKUP server for registration and placing calls in the |
||||
; event the primary server is unavailable. |
||||
; |
||||
;altserver=192.168.69.4 |
||||
; |
||||
; port is the port number to use for IAX2 outbound. The connections to the |
||||
; server and altserver -- default is of course 4569. |
||||
;serverport=4569 |
||||
; |
||||
; language is the preferred language for the device |
||||
; |
||||
;language=en |
||||
; |
||||
; codec is the requested codec. The iaxy supports ulaw and adpcm |
||||
; |
||||
codec=ulaw |
||||
; |
||||
; flags is a comma separated list of flags which the device should |
||||
; use and may contain any of the following keywords: |
||||
; |
||||
; "register" - Register with server |
||||
; "secure" - Do not accept calls / provisioning not originated by the server |
||||
; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255 |
||||
; "debug" - Output extra debugging to port 9999 |
||||
; |
||||
; Note that use can use += and -= to adjust parameters |
||||
; |
||||
flags=register,heartbeat |
||||
; |
||||
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of this parameter. |
||||
;tos=ef |
||||
; |
||||
; Example iaxy provisioning |
||||
; |
||||
;[si-000364000126] |
||||
;user=iaxy |
||||
;pass=bitsy |
||||
;flags += debug |
||||
|
||||
;[si-000364000127] |
||||
;user=iaxy2 |
||||
;pass=bitsy2 |
||||
;template=si-000364000126 |
||||
;flags += debug |
||||
|
||||
; |
||||
;[*] |
||||
; |
||||
; If specified, the '*' provisioning is used for all devices which do not |
||||
; have another provisioning entry within the file. If unspecified, no |
||||
; provisioning will take place for devices which have no entry. DO NOT |
||||
; USE A '*' PROVISIONING ENTRY UNLESS YOU KNOW WHAT YOU'RE DOING. |
||||
; |
||||
;template=default |
@ -0,0 +1,736 @@
|
||||
; |
||||
; indications.conf |
||||
; |
||||
; Configuration file for location specific tone indications |
||||
; |
||||
|
||||
; |
||||
; NOTE: |
||||
; When adding countries to this file, please keep them in alphabetical |
||||
; order according to the 2-character country codes! |
||||
; |
||||
; The [general] category is for certain global variables. |
||||
; All other categories are interpreted as location specific indications |
||||
; |
||||
|
||||
[general] |
||||
country=us ; default location |
||||
|
||||
|
||||
; [example] |
||||
; description = string |
||||
; The full name of your country, in English. |
||||
; ringcadence = num[,num]* |
||||
; List of durations the physical bell rings. |
||||
; dial = tonelist |
||||
; Set of tones to be played when one picks up the hook. |
||||
; busy = tonelist |
||||
; Set of tones played when the receiving end is busy. |
||||
; congestion = tonelist |
||||
; Set of tones played when there is some congestion (on the network?) |
||||
; callwaiting = tonelist |
||||
; Set of tones played when there is a call waiting in the background. |
||||
; dialrecall = tonelist |
||||
; Not well defined; many phone systems play a recall dial tone after hook |
||||
; flash. |
||||
; record = tonelist |
||||
; Set of tones played when call recording is in progress. |
||||
; info = tonelist |
||||
; Set of tones played with special information messages (e.g., "number is |
||||
; out of service") |
||||
; 'name' = tonelist |
||||
; Every other variable will be available as a shortcut for the "PlayList" command |
||||
; but will not be used automatically by Asterisk. |
||||
; |
||||
; |
||||
; The tonelist itself is defined by a comma-separated sequence of elements. |
||||
; Each element consist of a frequency (f) with an optional duration (in ms) |
||||
; attached to it (f/duration). The frequency component may be a mixture of two |
||||
; frequencies (f1+f2) or a frequency modulated by another frequency (f1*f2). |
||||
; The implicit modulation depth is fixed at 90%, though. |
||||
; If the list element starts with a !, that element is NOT repeated, |
||||
; therefore, only if all elements start with !, the tonelist is time-limited, |
||||
; all others will repeat indefinitely. |
||||
; |
||||
; concisely: |
||||
; element = [!]freq[+|*freq2][/duration] |
||||
; tonelist = element[,element]* |
||||
; |
||||
|
||||
[at] |
||||
description = Austria |
||||
ringcadence = 1000,5000 |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
dial = 420 |
||||
busy = 420/400,0/400 |
||||
ring = 420/1000,0/5000 |
||||
congestion = 420/200,0/200 |
||||
callwaiting = 420/40,0/1960 |
||||
dialrecall = 420 |
||||
; RECORDTONE - not specified |
||||
record = 1400/80,0/14920 |
||||
info = 950/330,1450/330,1850/330,0/1000 |
||||
stutter = 380+420 |
||||
|
||||
[au] |
||||
description = Australia |
||||
; Reference http://www.acif.org.au/__data/page/3303/S002_2001.pdf |
||||
; Normal Ring |
||||
ringcadence = 400,200,400,2000 |
||||
; Distinctive Ring 1 - Forwarded Calls |
||||
; 400,400,200,200,400,1400 |
||||
; Distinctive Ring 2 - Selective Ring 2 + Operator + Recall |
||||
; 400,400,200,2000 |
||||
; Distinctive Ring 3 - Multiple Subscriber Number 1 |
||||
; 200,200,400,2200 |
||||
; Distinctive Ring 4 - Selective Ring 1 + Centrex |
||||
; 400,2600 |
||||
; Distinctive Ring 5 - Selective Ring 3 |
||||
; 400,400,200,400,200,1400 |
||||
; Distinctive Ring 6 - Multiple Subscriber Number 2 |
||||
; 200,400,200,200,400,1600 |
||||
; Distinctive Ring 7 - Multiple Subscriber Number 3 + Data Privacy |
||||
; 200,400,200,400,200,1600 |
||||
; Tones |
||||
dial = 413+438 |
||||
busy = 425/375,0/375 |
||||
ring = 413+438/400,0/200,413+438/400,0/2000 |
||||
; XXX Congestion: Should reduce by 10 db every other cadence XXX |
||||
congestion = 425/375,0/375,420/375,0/375 |
||||
callwaiting = 425/200,0/200,425/200,0/4400 |
||||
dialrecall = 413+438 |
||||
; Record tone used for Call Intrusion/Recording or Conference |
||||
record = !425/1000,!0/15000,425/360,0/15000 |
||||
info = 425/2500,0/500 |
||||
; Other Australian Tones |
||||
; The STD "pips" indicate the call is not an untimed local call |
||||
std = !525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100 |
||||
; Facility confirmation tone (eg. Call Forward Activated) |
||||
facility = 425 |
||||
; Message Waiting "stutter" dialtone |
||||
stutter = 413+438/100,0/40 |
||||
; Ringtone for calls to Telstra mobiles |
||||
ringmobile = 400+450/400,0/200,400+450/400,0/2000 |
||||
|
||||
[bg] |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
description = Bulgaria |
||||
ringcadence = 1000,4000 |
||||
; |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/250,0/250 |
||||
callwaiting = 425/150,0/150,425/150,0/4000 |
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
record = 1400/425,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
stutter = 425/1500,0/100 |
||||
|
||||
[br] |
||||
description = Brazil |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/250,0/250 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/250,0/250,425/750,0/250 |
||||
callwaiting = 425/50,0/1000 |
||||
; Dialrecall not used in Brazil standard (using UK standard) |
||||
dialrecall = 350+440 |
||||
; Record tone is not used in Brazil, use busy tone |
||||
record = 425/250,0/250 |
||||
; Info not used in Brazil standard (using UK standard) |
||||
info = 950/330,1400/330,1800/330 |
||||
stutter = 350+440 |
||||
|
||||
[be] |
||||
description = Belgium |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,3000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/3000 |
||||
congestion = 425/167,0/167 |
||||
callwaiting = 1400/175,0/175,1400/175,0/3500 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
info = 900/330,1400/330,1800/330,0/1000 |
||||
stutter = 425/1000,0/250 |
||||
|
||||
[ch] |
||||
description = Switzerland |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 425/200,0/200,425/200,0/4000 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
; RECORDTONE - not specified |
||||
record = 1400/80,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
stutter = 425+340/1100,0/1100 |
||||
|
||||
[cl] |
||||
description = Chile |
||||
; According to specs from Telefonica CTC Chile |
||||
ringcadence = 1000,3000 |
||||
dial = 400 |
||||
busy = 400/500,0/500 |
||||
ring = 400/1000,0/3000 |
||||
congestion = 400/200,0/200 |
||||
callwaiting = 400/250,0/8750 |
||||
dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 |
||||
record = 1400/500,0/15000 |
||||
info = 950/333,1400/333,1800/333,0/1000 |
||||
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 |
||||
|
||||
[cn] |
||||
description = China |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 450 |
||||
busy = 450/350,0/350 |
||||
ring = 450/1000,0/4000 |
||||
congestion = 450/700,0/700 |
||||
callwaiting = 450/400,0/4000 |
||||
dialrecall = 450 |
||||
record = 950/400,0/10000 |
||||
info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400 |
||||
; STUTTER - not specified |
||||
stutter = 450+425 |
||||
|
||||
[cz] |
||||
description = Czech Republic |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 425/330,0/330,425/660,0/660 |
||||
busy = 425/330,0/330 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/165,0/165 |
||||
callwaiting = 425/330,0/9000 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/14000 |
||||
info = 950/330,0/30,1400/330,0/30,1800/330,0/1000 |
||||
; STUTTER - not specified |
||||
stutter = 425/450,0/50 |
||||
|
||||
[de] |
||||
description = Germany |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/480,0/480 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/240,0/240 |
||||
callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
; RECORDTONE - not specified |
||||
record = 1400/80,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
stutter = 425+400 |
||||
|
||||
[dk] |
||||
description = Denmark |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
; RECORDTONE - not specified |
||||
record = 1400/80,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
; STUTTER - not specified |
||||
stutter = 425/450,0/50 |
||||
|
||||
[ee] |
||||
description = Estonia |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/300,0/300 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
; CALLWAIT not in accordance to ITU |
||||
callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600 |
||||
; DIALRECALL - not specified |
||||
dialrecall = 425/650,0/25 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
; INFO not in accordance to ITU |
||||
info = 950/650,0/325,950/325,0/30,1400/1300,0/2600 |
||||
; STUTTER not specified |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
[es] |
||||
description = Spain |
||||
ringcadence = 1500,3000 |
||||
dial = 425 |
||||
busy = 425/200,0/200 |
||||
ring = 425/1500,0/3000 |
||||
congestion = 425/200,0/200,425/200,0/200,425/200,0/600 |
||||
callwaiting = 425/175,0/175,425/175,0/3500 |
||||
dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425 |
||||
record = 1400/500,0/15000 |
||||
info = 950/330,0/1000 |
||||
dialout = 500 |
||||
; STUTTER not specified |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
|
||||
[fi] |
||||
description = Finland |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/300,0/300 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 425/150,0/150,425/150,0/8000 |
||||
dialrecall = 425/650,0/25 |
||||
record = 1400/500,0/15000 |
||||
info = 950/650,0/325,950/325,0/30,1400/1300,0/2600 |
||||
stutter = 425/650,0/25 |
||||
|
||||
[fr] |
||||
description = France |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1500,3500 |
||||
; Dialtone can also be 440+330 |
||||
dial = 440 |
||||
busy = 440/500,0/500 |
||||
ring = 440/1500,0/3500 |
||||
; CONGESTION - not specified |
||||
congestion = 440/250,0/250 |
||||
callwait = 440/300,0/10000 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330 |
||||
stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440 |
||||
|
||||
[gr] |
||||
description = Greece |
||||
ringcadence = 1000,4000 |
||||
dial = 425/200,0/300,425/700,0/800 |
||||
busy = 425/300,0/300 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 425/150,0/150,425/150,0/8000 |
||||
dialrecall = 425/650,0/25 |
||||
record = 1400/400,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 |
||||
stutter = 425/650,0/25 |
||||
|
||||
[hu] |
||||
description = Hungary |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1250,3750 |
||||
dial = 425 |
||||
busy = 425/300,0/300 |
||||
ring = 425/1250,0/3750 |
||||
congestion = 425/300,0/300 |
||||
callwaiting = 425/40,0/1960 |
||||
dialrecall = 425+450 |
||||
; RECORDTONE - not specified |
||||
record = 1400/400,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 |
||||
stutter = 350+375+400 |
||||
|
||||
[il] |
||||
description = Israel |
||||
ringcadence = 1000,3000 |
||||
dial = 414 |
||||
busy = 414/500,0/500 |
||||
ring = 414/1000,0/3000 |
||||
congestion = 414/250,0/250 |
||||
callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000 |
||||
dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414 |
||||
record = 1400/500,0/15000 |
||||
info = 1000/330,1400/330,1800/330,0/1000 |
||||
stutter = !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414 |
||||
|
||||
|
||||
[in] |
||||
description = India |
||||
ringcadence = 400,200,400,2000 |
||||
dial = 400*25 |
||||
busy = 400/750,0/750 |
||||
ring = 400*25/400,0/200,400*25/400,0/2000 |
||||
congestion = 400/250,0/250 |
||||
callwaiting = 400/200,0/100,400/200,0/7500 |
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,0/1000 |
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,400*25 |
||||
|
||||
[it] |
||||
description = Italy |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
dial = 425/200,0/200,425/600,0/1000 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000 |
||||
dialrecall = 470/400,425/400 |
||||
record = 1400/400,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 |
||||
stutter = 470/400,425/400 |
||||
|
||||
[lt] |
||||
description = Lithuania |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/350,0/350 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 425/150,0/150,425/150,0/4000 |
||||
; DIALRECALL - not specified |
||||
dialrecall = 425/500,0/50 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 |
||||
; STUTTER - not specified |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
[jp] |
||||
description = Japan |
||||
ringcadence = 1000,2000 |
||||
dial = 400 |
||||
busy = 400/500,0/500 |
||||
ring = 400+15/1000,0/2000 |
||||
congestion = 400/500,0/500 |
||||
callwaiting = 400+16/500,0/8000 |
||||
dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400 |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,0 |
||||
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 |
||||
|
||||
[mx] |
||||
description = Mexico |
||||
ringcadence = 2000,4000 |
||||
dial = 425 |
||||
busy = 425/250,0/250 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/250,0/250 |
||||
callwaiting = 425/200,0/600,425/200,0/10000 |
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
record = 1400/500,0/15000 |
||||
info = 950/330,0/30,1400/330,0/30,1800/330,0/1000 |
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,425 |
||||
|
||||
[my] |
||||
description = Malaysia |
||||
ringcadence = 2000,4000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/400,0/200,425/400,0/2000 |
||||
congestion = 425/500,0/500 |
||||
; STUTTER - not specified |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
[nl] |
||||
description = Netherlands |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
ringcadence = 1000,4000 |
||||
; Most of these 425's can also be 450's |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/250,0/250 |
||||
callwaiting = 425/500,0/9500 |
||||
; DIALRECALL - not specified |
||||
dialrecall = 425/500,0/50 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
stutter = 425/500,0/50 |
||||
|
||||
[no] |
||||
description = Norway |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 425/200,0/600,425/200,0/10000 |
||||
dialrecall = 470/400,425/400 |
||||
record = 1400/400,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 |
||||
stutter = 470/400,425/400 |
||||
|
||||
[nz] |
||||
description = New Zealand |
||||
; Reference = http://www.telepermit.co.nz/TNA102.pdf |
||||
ringcadence = 400,200,400,2000 |
||||
dial = 400 |
||||
busy = 400/500,0/500 |
||||
ring = 400+450/400,0/200,400+450/400,0/2000 |
||||
congestion = 400/250,0/250 |
||||
callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200 |
||||
dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 |
||||
record = 1400/425,0/15000 |
||||
info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400 |
||||
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 |
||||
unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400 |
||||
|
||||
[ph] |
||||
|
||||
; reference http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
|
||||
description = Philippines |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 480+620/500,0/500 |
||||
ring = 425+480/1000,0/4000 |
||||
congestion = 480+620/250,0/250 |
||||
callwaiting = 440/300,0/10000 |
||||
; DIALRECALL - not specified |
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
; INFO - not specified |
||||
info = !950/330,!1400/330,!1800/330,0 |
||||
; STUTTER - not specified |
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,425 |
||||
|
||||
|
||||
[pl] |
||||
description = Poland |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/500,0/500 |
||||
callwaiting = 425/150,0/150,425/150,0/4000 |
||||
; DIALRECALL - not specified |
||||
dialrecall = 425/500,0/50 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
; 950/1400/1800 3x0.33 on 1.0 off repeated 3 times |
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000 |
||||
; STUTTER - not specified |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
[pt] |
||||
description = Portugal |
||||
ringcadence = 1000,5000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/5000 |
||||
congestion = 425/200,0/200 |
||||
callwaiting = 440/300,0/10000 |
||||
dialrecall = 425/1000,0/200 |
||||
record = 1400/500,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
[ru] |
||||
; References: |
||||
; http://www.minsvyaz.ru/site.shtml?id=1806 |
||||
; http://www.aboutphone.info/lib/gost/45-223-2001.html |
||||
description = Russian Federation / ex Soviet Union |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/350,0/350 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/175,0/175 |
||||
callwaiting = 425/200,0/5000 |
||||
record = 1400/400,0/15000 |
||||
info = 950/330,1400/330,1800/330,0/1000 |
||||
dialrecall = 425/400,0/40 |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
[se] |
||||
description = Sweden |
||||
ringcadence = 1000,5000 |
||||
dial = 425 |
||||
busy = 425/250,0/250 |
||||
ring = 425/1000,0/5000 |
||||
congestion = 425/250,0/750 |
||||
callwaiting = 425/200,0/500,425/200,0/9100 |
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
record = 1400/500,0/15000 |
||||
info = !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0 |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
; stutter = 425/320,0/20 ; Real swedish standard, not used for now |
||||
|
||||
[sg] |
||||
description = Singapore |
||||
; Singapore |
||||
; Reference: http://www.ida.gov.sg/idaweb/doc/download/I397/ida_ts_pstn1_i4r2.pdf |
||||
; Frequency specs are: 425 Hz +/- 20Hz; 24 Hz +/- 2Hz; modulation depth 100%; SIT +/- 50Hz |
||||
ringcadence = 400,200,400,2000 |
||||
dial = 425 |
||||
ring = 425*24/400,0/200,425*24/400,0/2000 ; modulation should be 100%, not 90% |
||||
busy = 425/750,0/750 |
||||
congestion = 425/250,0/250 |
||||
callwaiting = 425*24/300,0/200,425*24/300,0/3200 |
||||
stutter = !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425 |
||||
info = 950/330,1400/330,1800/330,0/1000 ; not currently in use acc. to reference |
||||
dialrecall = 425*24/500,0/500,425/500,0/2500 ; unspecified in IDA reference, use repeating Holding Tone A,B |
||||
record = 1400/500,0/15000 ; unspecified in IDA reference, use 0.5s tone every 15s |
||||
; additionally defined in reference |
||||
nutone = 425/2500,0/500 |
||||
intrusion = 425/250,0/2000 |
||||
warning = 425/624,0/4376 ; end of period tone, warning |
||||
acceptance = 425/125,0/125 |
||||
holdinga = !425*24/500,!0/500 ; followed by holdingb |
||||
holdingb = !425/500,!0/2500 |
||||
|
||||
[th] |
||||
description = Thailand |
||||
ringcadence = 1000,4000 |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
dial = 400*50 |
||||
busy = 400/500,0/500 |
||||
ring = 420/1000,0/5000 |
||||
congestion = 400/300,0/300 |
||||
callwaiting = 1000/400,10000/400,1000/400 |
||||
; DIALRECALL - not specified - use special dial tone instead. |
||||
dialrecall = 400*50/400,0/100,400*50/400,0/100 |
||||
; RECORDTONE - not specified |
||||
record = 1400/500,0/15000 |
||||
; INFO - specified as an announcement - use special information tones instead |
||||
info = 950/330,1400/330,1800/330 |
||||
; STUTTER - not specified |
||||
stutter = !400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400 |
||||
|
||||
[uk] |
||||
description = United Kingdom |
||||
ringcadence = 400,200,400,2000 |
||||
; These are the official tones taken from BT SIN350. The actual tones |
||||
; used by BT include some volume differences so sound slightly different |
||||
; from Asterisk-generated ones. |
||||
dial = 350+440 |
||||
; Special dial is the intermittent dial tone heard when, for example, |
||||
; you have a divert active on the line |
||||
specialdial = 350+440/750,440/750 |
||||
; Busy is also called "Engaged" |
||||
busy = 400/375,0/375 |
||||
; "Congestion" is the Beep-bip engaged tone |
||||
congestion = 400/400,0/350,400/225,0/525 |
||||
; "Special Congestion" is not used by BT very often if at all |
||||
specialcongestion = 400/200,1004/300 |
||||
unobtainable = 400 |
||||
ring = 400+450/400,0/200,400+450/400,0/2000 |
||||
callwaiting = 400/100,0/4000 |
||||
; BT seem to use "Special Call Waiting" rather than just "Call Waiting" tones |
||||
specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000 |
||||
; "Pips" used by BT on payphones. (Sounds wrong, but this is what BT claim it |
||||
; is and I've not used a payphone for years) |
||||
creditexpired = 400/125,0/125 |
||||
; These two are used to confirm/reject service requests on exchanges that |
||||
; don't do voice announcements. |
||||
confirm = 1400 |
||||
switching = 400/200,0/400,400/2000,0/400 |
||||
; This is the three rising tones Doo-dah-dee "Special Information Tone", |
||||
; usually followed by the BT woman saying an appropriate message. |
||||
info = 950/330,0/15,1400/330,0/15,1800/330,0/1000 |
||||
; Not listed in SIN350 |
||||
record = 1400/500,0/60000 |
||||
stutter = 350+440/750,440/750 |
||||
|
||||
[us] |
||||
description = United States / North America |
||||
ringcadence = 2000,4000 |
||||
dial = 350+440 |
||||
busy = 480+620/500,0/500 |
||||
ring = 440+480/2000,0/4000 |
||||
congestion = 480+620/250,0/250 |
||||
callwaiting = 440/300,0/10000 |
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,0 |
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
|
||||
[us-old] |
||||
description = United States Circa 1950/ North America |
||||
ringcadence = 2000,4000 |
||||
dial = 600*120 |
||||
busy = 500*100/500,0/500 |
||||
ring = 420*40/2000,0/4000 |
||||
congestion = 500*100/250,0/250 |
||||
callwaiting = 440/300,0/10000 |
||||
dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120 |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,0 |
||||
stutter = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120 |
||||
|
||||
[tw] |
||||
description = Taiwan |
||||
; http://nemesis.lonestar.org/reference/telecom/signaling/dialtone.html |
||||
; http://nemesis.lonestar.org/reference/telecom/signaling/busy.html |
||||
; http://www.iproducts.com.tw/ee/kylink/06ky-1000a.htm |
||||
; http://www.pbx-manufacturer.com/ky120dx.htm |
||||
; http://www.nettwerked.net/tones.txt |
||||
; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/taiw_sup/taiw2.htm |
||||
; |
||||
; busy tone 480+620Hz 0.5 sec. on ,0.5 sec. off |
||||
; reorder tone 480+620Hz 0.25 sec. on,0.25 sec. off |
||||
; ringing tone 440+480Hz 1 sec. on ,2 sec. off |
||||
; |
||||
ringcadence = 1000,4000 |
||||
dial = 350+440 |
||||
busy = 480+620/500,0/500 |
||||
ring = 440+480/1000,0/2000 |
||||
congestion = 480+620/250,0/250 |
||||
callwaiting = 350+440/250,0/250,350+440/250,0/3250 |
||||
dialrecall = 300/1500,0/500 |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1400/330,!1800/330,0 |
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 |
||||
|
||||
[ve] |
||||
; Tone definition source for ve found on |
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf |
||||
description = Venezuela / South America |
||||
ringcadence = 1000,4000 |
||||
dial = 425 |
||||
busy = 425/500,0/500 |
||||
ring = 425/1000,0/4000 |
||||
congestion = 425/250,0/250 |
||||
callwaiting = 400+450/300,0/6000 |
||||
dialrecall = 425 |
||||
record = 1400/500,0/15000 |
||||
info = !950/330,!1440/330,!1800/330,0/1000 |
||||
; STUTTER - not specified |
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 |
||||
|
||||
|
||||
[za] |
||||
description = South Africa |
||||
; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/safr_sup/saf02.htm |
||||
; (definitions for other countries can also be found there) |
||||
; Note, though, that South Africa uses two switch types in their network -- |
||||
; Alcatel switches -- mainly in the Western Cape, and Siemens elsewhere. |
||||
; The former use 383+417 in dial, ringback etc. The latter use 400*33 |
||||
; I've provided both, uncomment the ones you prefer |
||||
ringcadence = 400,200,400,2000 |
||||
; dial/ring/callwaiting for the Siemens switches: |
||||
dial = 400*33 |
||||
ring = 400*33/400,0/200,400*33/400,0/2000 |
||||
callwaiting = 400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250 |
||||
; dial/ring/callwaiting for the Alcatel switches: |
||||
; dial = 383+417 |
||||
; ring = 383+417/400,0/200,383+417/400,0/2000 |
||||
; callwaiting = 383+417/250,0/250,383+417/250,0/250,383+417/250,0/250,383+417/250,0/250 |
||||
congestion = 400/250,0/250 |
||||
busy = 400/500,0/500 |
||||
dialrecall = 350+440 |
||||
; XXX Not sure about the RECORDTONE |
||||
record = 1400/500,0/10000 |
||||
info = 950/330,1400/330,1800/330,0/330 |
||||
stutter = !400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33 |
@ -0,0 +1,18 @@
|
||||
[general] |
||||
;debug=yes ;;Turn on debugging by default. |
||||
;autoprune=yes ;;Auto remove users from buddy list. |
||||
;autoregister=yes ;;Auto register users from buddy list. |
||||
|
||||
;[asterisk] ;;label |
||||
;type=client ;;Client or Component connection |
||||
;serverhost=astjab.org ;;Route to server for example, |
||||
;; talk.google.com |
||||
;username=asterisk@astjab.org/asterisk ;;Username with optional roster. |
||||
;secret=blah ;;Password |
||||
;port=5222 ;;Port to use defaults to 5222 |
||||
;usetls=yes ;;Use tls or not |
||||
;usesasl=yes ;;Use sasl or not |
||||
;buddy=mogorman@astjab.org ;;Manual addition of buddy to list. |
||||
;statusmessage="I am available" ;;Have custom status message for |
||||
;;Asterisk. |
||||
;timeout=100 ;;Timeout on the message stack. |
@ -0,0 +1,142 @@
|
||||
; |
||||
; MGCP Configuration for Asterisk |
||||
; |
||||
[general] |
||||
;port = 2427 |
||||
;bindaddr = 0.0.0.0 |
||||
|
||||
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of these parameters. |
||||
;tos=cs3 ; Sets TOS for signaling packets. |
||||
;tos_audio=ef ; Sets TOS for RTP audio packets. |
||||
;cos=3 ; Sets 802.1p priority for signaling packets. |
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. |
||||
|
||||
; --------------------- DIGIT TIMEOUTS ---------------------------- |
||||
firstdigittimeout = 30000 ; default 16000 = 16s |
||||
gendigittimeout = 10000 ; default 8000 = 8s |
||||
matchdigittimeout = 5000 ; defaults 3000 = 3s |
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a |
||||
; MGCP channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The MGCP channel can accept jitter, |
||||
; thus an enabled jitterbuffer on the receive MGCP side will only |
||||
; be used if the sending side can create jitter and jbforce is |
||||
; also set to yes. |
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a MGCP |
||||
; channel. Defaults to "no". |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a MGCP |
||||
; channel. Two implementations are currently available - "fixed" |
||||
; (with size always equals to jbmax-size) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. |
||||
; The option represents the number of milliseconds by which the new |
||||
; jitter buffer will pad its size. the default is 40, so without |
||||
; modification, the new jitter buffer will set its size to the jitter |
||||
; value plus 40 milliseconds. increasing this value may help if your |
||||
; network normally has low jitter, but occasionally has spikes. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
;[dlinkgw] |
||||
;host = 192.168.0.64 |
||||
;context = default |
||||
;directmedia = no |
||||
;line => aaln/2 |
||||
;line => aaln/1 |
||||
|
||||
;; The MGCP channel supports the following service codes: |
||||
;; # - Transfer |
||||
;; *67 - Calling Number Delivery Blocking |
||||
;; *70 - Cancel Call Waiting |
||||
;; *72 - Call Forwarding Activation |
||||
;; *73 - Call Forwarding Deactivation |
||||
;; *78 - Do Not Disturb Activation |
||||
;; *79 - Do Not Disturb Deactivation |
||||
;; *8 - Call pick-up |
||||
; |
||||
; known to work with Swissvoice IP10s |
||||
;[192.168.1.20] |
||||
;context=local |
||||
;host=192.168.1.20 |
||||
;callerid = "John Doe" <123> |
||||
;callgroup=0 ; in the range from 0 to 63 |
||||
;pickupgroup=0 ; in the range from 0 to 63 |
||||
;nat=no |
||||
;threewaycalling=yes |
||||
;transfer=yes ; transfer requires threewaycalling=yes. Use FLASH to transfer |
||||
;callwaiting=yes ; this might be a cause of trouble for ip10s |
||||
;cancallforward=yes |
||||
;line => aaln/1 |
||||
; |
||||
|
||||
;[dph100] |
||||
; |
||||
; Supporting the DPH100M requires defining DLINK_BUGGY_FIRMWARE in |
||||
; chan_mgcp.c in addition to enabling the slowsequence mode due to |
||||
; bugs in the D-Link firmware |
||||
; |
||||
;context=local |
||||
;host=dynamic |
||||
;dtmfmode=none ; DTMF Mode can be 'none', 'rfc2833', or 'inband' or |
||||
; 'hybrid' which starts in none and moves to inband. Default is none. |
||||
;slowsequence=yes ; The DPH100M does not follow MGCP standards for sequencing |
||||
;line => aaln/1 |
||||
|
||||
; known to work with wave7optics FTTH LMGs |
||||
;[192.168.1.20] |
||||
;accountcode = 1000 ; record this in cdr as account identification for billing |
||||
;amaflags = billing ; record this in cdr as flagged for 'billing', |
||||
; 'documentation', or 'omit' |
||||
;context = local |
||||
;host = 192.168.1.20 |
||||
;wcardep = aaln/* ; enables wildcard endpoint and sets it to 'aaln/*' |
||||
; another common format is '*' |
||||
;callerid = "Duane Cox" <123> ; now lets setup line 1 using per endpoint configuration... |
||||
;callwaiting = no |
||||
;callreturn = yes |
||||
;cancallforward = yes |
||||
;directmedia = no |
||||
;transfer = no |
||||
;dtmfmode = inband |
||||
;setvar=one=1 ; Set channel variables associated with this incoming line |
||||
;setvar=two=2 |
||||
;line => aaln/1 ; now lets save this config to line1 aka aaln/1 |
||||
;clearvars=all ; Reset list of variables back to none |
||||
;callerid = "Duane Cox" <456> ; now lets setup line 2 |
||||
;callwaiting = no |
||||
;callreturn = yes |
||||
;cancallforward = yes |
||||
;directmedia = no |
||||
;transfer = no |
||||
;dtmfmode = inband |
||||
;line => aaln/2 ; now lets save this config to line2 aka aaln/2 |
||||
|
||||
; PacketCable |
||||
;[sbv5121e-mta.test.local] |
||||
;host = 10.0.1.3 |
||||
;callwaiting = 1 |
||||
;canreinvite = 1 |
||||
;dtmfmode = rfc2833 |
||||
;amaflags = BILLING |
||||
;ncs = yes ; Use NCS 1.0 signalling |
||||
;pktcgatealloc = yes ; Allocate DQOS gate on CMTS |
||||
;hangupongateremove = yes ; Hangup the channel if the CMTS close the gate |
||||
;callerid = 3622622225 |
||||
;accountcode = test-3622622225 |
||||
;line = aaln/1 |
||||
;callerid = 3622622226 |
||||
;accountcode = test-3622622226 |
||||
;line = aaln/2 |
@ -0,0 +1,218 @@
|
||||
; |
||||
; Mini-Voicemail Configuration |
||||
; for the MiniVM set of applications |
||||
; |
||||
; MiniVM consists of the following dialplan applications |
||||
; MinivmGreet Play personal prompts for busy/unavailable/temporary messages or default prompts |
||||
; MinivmRecord Record voice prompts to account directory or default directory |
||||
; MinivmNotify Notify via e-mail or pager - with or without attachment |
||||
; MinivmDelete Delete voice prompt (filename as argument or channel variable set by MinivmRecord) |
||||
; |
||||
; MiniVM works without accounts (just give e-mail address as argument) or with accounts in |
||||
; this configuration file or realtime. The idea is to build voicemail as building blocks so that |
||||
; a complete and adaptive voicemail system can be built in the dialplan |
||||
; |
||||
; ----------------------------- Variables to use in subject, from and message body ------------------ |
||||
; Change the from, body and/or subject, variables: |
||||
; MVM_NAME, MVM_DUR, MVM_MSGNUM, VM_MAILBOX, MVM_CALLERID, MVM_CIDNUM, |
||||
; MVM_CIDNAME, MVM_DATE |
||||
; |
||||
; In addition to these, you can set the MVM_COUNTER channel variable in the |
||||
; dial plan and use that as a counter. It will also be used in the file name |
||||
; of the media file attached to the message |
||||
; |
||||
; Note: The emailbody config row can only be up to 512 characters due to a |
||||
; limitation in the Asterisk configuration subsystem. |
||||
; To create longer mails, use the templatefile option when creating the template |
||||
; --------------------------------------------------------------------------------------------------- |
||||
|
||||
[general] |
||||
; Default format for storing and sending voicemail |
||||
; (only one format. Can also be set on a per-mailbox level) |
||||
format=wav49 |
||||
;format=gsm |
||||
; |
||||
;Turn on logfile with the following syntax. One line per voicemail received |
||||
;with minivmRecord() |
||||
; Mailbox:domain:macrocontext:exten:priority:callerchan:callerid:origdate:origtime:duration:durationstatus:accountcode |
||||
;logfile=/var/log/asterisk/minivm.log |
||||
; Who the e-mail notification should appear to come from |
||||
serveremail=asterisk |
||||
;serveremail=asterisk@asterisk.example.com |
||||
; Minimum length of a voicemail message in seconds for the message to be kept |
||||
; The default is no minimum. |
||||
;minmessage=3 |
||||
; How many seconds of silence before we end the recording |
||||
maxsilence=10 |
||||
; Silence threshold (what we consider silence: the lower, the more sensitive) |
||||
silencethreshold=128 |
||||
; How long greeting messages (busy/unavailable/temp/name) are allowed to be, in seconds |
||||
;maxgreet=120 |
||||
; If you need to have an external program, i.e. /usr/bin/myapp called when a |
||||
; voicemail is received by the server. The arguments are |
||||
; |
||||
; <app> <username@domain> <callerid-name> <callerid-number> |
||||
; |
||||
;externnotify=/usr/bin/myapp |
||||
; The character set for voicemail messages can be specified here |
||||
;charset=ISO-8859-1 |
||||
; Skip the "[PBX]:" string from the message title |
||||
;pbxskip=yes |
||||
; Change the From: string |
||||
|
||||
; You can override the default program to send e-mail if you wish, too |
||||
; This is used both for e-mail and pager messages |
||||
;mailcmd=/usr/sbin/sendmail -t |
||||
; |
||||
; -------------Default e-mail message template (used if no templates are used) ------ |
||||
;fromstring=The Asterisk PBX |
||||
; |
||||
|
||||
;emailsubject=[PBX]: New message ${MVM_COUNER} in mailbox ${VM_MAILBOX} |
||||
; The following definition is very close to the default, but the default shows |
||||
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown |
||||
; caller", if they are both null. |
||||
;emailbody=Dear ${MVM_NAME}:\n\n\tjust wanted to let you know you were just left a ${MVM_DUR} long message (number ${MVM_COUNTER})\nin mailbox ${MVM_MAILBOX} from ${MVM_CALLERID}, on ${MVM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n |
||||
; |
||||
; Set the date format on outgoing mails. Valid arguments can be found on the |
||||
; strftime(3) man page |
||||
; |
||||
; Default |
||||
emaildateformat=%A, %B %d, %Y at %r |
||||
; 24h date format |
||||
;emaildateformat=%A, %d %B %Y at %H:%M:%S |
||||
; |
||||
; -------------Default pager message template (used if no templates are used) ------ |
||||
; You can also change the Pager From: string, the pager body and/or subject. |
||||
; The above defined variables also can be used here |
||||
;pagerfromstring=The Asterisk PBX |
||||
;pagersubject=New VM ${MVM_COUNTER} |
||||
;pagerbody=New ${MVM_DUR} long msg in box ${MVM_MAILBOX}\nfrom ${MVM_CALLERID}, on ${MVM_DATE} |
||||
; |
||||
; |
||||
; -------------Timezone definitions (used in voicemail accounts) ------------------- |
||||
; |
||||
; Users may be located in different timezones, or may have different |
||||
; message announcements for their introductory message when they enter |
||||
; the voicemail system. Set the message and the timezone each user |
||||
; hears here. Set the user into one of these zones with the tz= attribute |
||||
; in the options field of the mailbox. Of course, language substitution |
||||
; still applies here so you may have several directory trees that have |
||||
; alternate language choices. |
||||
; |
||||
; Look in /usr/share/zoneinfo/ for names of timezones. |
||||
; Look at the manual page for strftime for a quick tutorial on how the |
||||
; variable substitution is done on the values below. |
||||
; |
||||
; Supported values: |
||||
; 'filename' filename of a soundfile (single ticks around the filename |
||||
; required) |
||||
; ${VAR} variable substitution |
||||
; A or a Day of week (Saturday, Sunday, ...) |
||||
; B or b or h Month name (January, February, ...) |
||||
; d or e numeric day of month (first, second, ..., thirty-first) |
||||
; Y Year |
||||
; I or l Hour, 12 hour clock |
||||
; H Hour, 24 hour clock (single digit hours preceded by "oh") |
||||
; k Hour, 24 hour clock (single digit hours NOT preceded by "oh") |
||||
; M Minute, with 00 pronounced as "o'clock" |
||||
; N Minute, with 00 pronounced as "hundred" (US military time) |
||||
; P or p AM or PM |
||||
; Q "today", "yesterday" or ABdY |
||||
; (*note: not standard strftime value) |
||||
; q "" (for today), "yesterday", weekday, or ABdY |
||||
; (*note: not standard strftime value) |
||||
; R 24 hour time, including minute |
||||
; |
||||
; The message here is not used in mini-voicemail, but stays for |
||||
; backwards compatibility |
||||
|
||||
[zonemessages] |
||||
eastern=America/New_York|'vm-received' Q 'digits/at' IMp |
||||
central=America/Chicago|'vm-received' Q 'digits/at' IMp |
||||
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours' |
||||
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p' |
||||
|
||||
; ---------------------- Message body templates--------------------- |
||||
; [template-name] ; "template-" is a verbatim marker |
||||
; fromaddress = Your Friendly Asterisk Server |
||||
; fromemail = asteriskvm@digium.com |
||||
; subject = <string> |
||||
; attachmedia = yes | no ; Add media file as attachment? |
||||
; dateformat = <formatstring> ; See above |
||||
; charset = <charset> ; Mime charset definition for e-mail messages |
||||
; locale = <locale> ; Locale for LC_TIME - to get weekdays in local language |
||||
; ; See your O/S documentation for proper settings for setlocale() |
||||
; templatefile = <filename> ; File name (relative to Asterisk configuration directory, |
||||
; or absolute |
||||
; messagebody = Format ; Message body definition with variables |
||||
; |
||||
[template-sv_SE_email] |
||||
messagebody=Hej ${MVM_NAME}:\n\n\tDu har fått ett röstbrevlåde-meddelande från ${MVM_CALLERID}.\nLängd: ${MVM_DUR}\nMailbox ${MVM_MAILBOX}\nDatum: ${MVM_DATE}. \nMeddelandet bifogas det här brevet. Om du inte kan läsa det, kontakta intern support. \nHälsningar\n\n\t\t\t\t--Asterisk\n |
||||
subject = Du har fått röstmeddelande (se bilaga) |
||||
fromemail = swedish-voicemail-service@stockholm.example.com |
||||
fromaddress = Asterisk Röstbrevlåda |
||||
charset=iso-8859-1 |
||||
attachmedia=yes |
||||
dateformat=%A, %d %B %Y at %H:%M:%S |
||||
locale=sv_SE |
||||
|
||||
[template-en_US_email] |
||||
messagebody=Dear ${MVM_NAME}:\n\n\tjust wanted to let you know you were just left a ${MVM_DUR} long message \nin mailbox ${MVM_MAILBOX} from ${MVM_CALLERID}, on ${MVM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n |
||||
subject = New voicemail |
||||
charset=ascii |
||||
attachmedia=yes |
||||
dateformat=%A, %B %d, %Y at %r |
||||
|
||||
;[template-sv_SE_pager] |
||||
;templatefile = templates/pager_sv_se.txt |
||||
;subject = Du har fått voicemail |
||||
;charset=iso-8859-1 |
||||
;attachmedia=no |
||||
;locale=sv_SE |
||||
|
||||
;[template-nb_NO_email] |
||||
;templatefile = templates/email_nb_NO.txt |
||||
;subject = Du har fått voicemail |
||||
;charset=iso-8859-1 |
||||
;locale=nb_NO |
||||
|
||||
;[template-en_US_email_southern] |
||||
;templatefile = templates/email_en_US.txt |
||||
;subject = Y'all got voicemail, honey! |
||||
;charset=ascii |
||||
|
||||
;[template-en_UK_email] |
||||
;templatefile = templates/email_en_us.txt |
||||
;subject = Dear old chap, you've got an electronic communique |
||||
;charset=ascii |
||||
|
||||
; ---------------------- Mailbox accounts -------------------------- |
||||
;Template for mailbox definition - all options |
||||
; |
||||
; [username@domain] ; Has to be unique within domain (MWM_USERNAME, MWM_DOMAIN) |
||||
; etemplate = sv_SE ; Email template from [templates] |
||||
; ptemplate = en_US ; Pager template from [templates] |
||||
; email = userpart@domain ; Extra e-mail address (overrides mailbox name) |
||||
; pager = pageremail@domain ; E-mail address for pager messages |
||||
; fullname = Mark Spencer ; Full name (MWM_NAME) |
||||
; options = ; E-mail options, se below |
||||
; accountcode = ; Account code (read in dialplan function MINIVMACCOUNT) |
||||
; pincode = ; Numeric pin code (read in dialplan function MINIVMACCOUNT) |
||||
; timezone=se ; Time zone |
||||
; serveremail = asterisk@digium.com ; Who to send email from (overrides template if set) |
||||
; externnotify = <application> ; External application for this account |
||||
; volgain = ; Volume gain setting (requires "sox") |
||||
; setvar=SERVICENAME=Voop.com Networks ; Extra variables to use in template |
||||
|
||||
; Remember that you can use Asterisk Configuration Templates (ACT) |
||||
|
||||
; [template@example.com](!) ; Declare template |
||||
; setvar=customerdomain=example.com |
||||
; setvar=customerclass=gold |
||||
; etemplate = sv_se_email |
||||
; serveremail = voicemail@example.com |
||||
|
||||
; [user2@example.com](template@example.com) ; Declare user2 account using template |
||||
; fullname = Olle E. Johansson |
||||
; ; User inherits everything from template |
@ -0,0 +1,537 @@
|
||||
; |
||||
; chan_misdn sample config |
||||
; |
||||
|
||||
; general section: |
||||
; |
||||
; for debugging and general setup, things that are not bound to port groups |
||||
; |
||||
|
||||
[general] |
||||
; |
||||
; Sets the Path to the misdn-init.conf (for nt_ptp mode checking) |
||||
; |
||||
misdn_init=/etc/misdn-init.conf |
||||
|
||||
; set debugging flag: |
||||
; 0 - No Debug |
||||
; 1 - mISDN Messages and * - Messages, and * - State changes |
||||
; 2 - Messages + Message specific Informations (e.g. bearer capability) |
||||
; 3 - very Verbose, the above + lots of Driver specific infos |
||||
; 4 - even more Verbose than 3 |
||||
; |
||||
; default value: 0 |
||||
; |
||||
debug=0 |
||||
|
||||
|
||||
|
||||
; set debugging file and flags for mISDNuser (NT-Stack) |
||||
; |
||||
; flags can be or'ed with the following values: |
||||
; |
||||
; DBGM_NET 0x00000001 |
||||
; DBGM_MSG 0x00000002 |
||||
; DBGM_FSM 0x00000004 |
||||
; DBGM_TEI 0x00000010 |
||||
; DBGM_L2 0x00000020 |
||||
; DBGM_L3 0x00000040 |
||||
; DBGM_L3DATA 0x00000080 |
||||
; DBGM_BC 0x00000100 |
||||
; DBGM_TONE 0x00000200 |
||||
; DBGM_BCDATA 0x00000400 |
||||
; DBGM_MAN 0x00001000 |
||||
; DBGM_APPL 0x00002000 |
||||
; DBGM_ISDN 0x00004000 |
||||
; DBGM_SOCK 0x00010000 |
||||
; DBGM_CONN 0x00020000 |
||||
; DBGM_CDATA 0x00040000 |
||||
; DBGM_DDATA 0x00080000 |
||||
; DBGM_SOUND 0x00100000 |
||||
; DBGM_SDATA 0x00200000 |
||||
; DBGM_TOPLEVEL 0x40000000 |
||||
; DBGM_ALL 0xffffffff |
||||
; |
||||
|
||||
ntdebugflags=0 |
||||
ntdebugfile=/var/log/misdn-nt.log |
||||
|
||||
|
||||
; some pbx systems do cut the L1 for some milliseconds, to avoid |
||||
; dropping running calls, we can set this flag to yes and tell |
||||
; mISDNuser not to drop the calls on L2_RELEASE |
||||
ntkeepcalls=no |
||||
|
||||
; the big trace |
||||
; |
||||
; default value: [not set] |
||||
; |
||||
;tracefile=/var/log/asterisk/misdn.log |
||||
|
||||
|
||||
; set to yes if you want mISDN_dsp to bridge the calls in HW |
||||
; |
||||
; default value: yes |
||||
; |
||||
bridging=no |
||||
|
||||
|
||||
; stops dialtone after getting first digit on nt Port |
||||
; |
||||
; default value: yes |
||||
; |
||||
stop_tone_after_first_digit=yes |
||||
|
||||
; whether to append overlapdialed Digits to Extension or not |
||||
; |
||||
; default value: yes |
||||
; |
||||
append_digits2exten=yes |
||||
|
||||
;;; CRYPTION STUFF |
||||
|
||||
; Whether to look for dynamic crypting attempt |
||||
; |
||||
; default value: no |
||||
; |
||||
dynamic_crypt=no |
||||
|
||||
; crypt_prefix, what is used for crypting Protocol |
||||
; |
||||
; default value: [not set] |
||||
; |
||||
crypt_prefix=** |
||||
|
||||
; Keys for cryption, you reference them in the dialplan |
||||
; later also in dynamic encr. |
||||
; |
||||
; default value: [not set] |
||||
; |
||||
crypt_keys=test,muh |
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a |
||||
; SIP channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The SIP channel can accept jitter, |
||||
; thus a jitterbuffer on the receive SIP side will be used only |
||||
; if it is forced and enabled. |
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP |
||||
; channel. Defaults to "no". |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP |
||||
; channel. Two implementations are currently available - "fixed" |
||||
; (with size always equals to jbmaxsize) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. |
||||
; The option represents the number of milliseconds by which the new |
||||
; jitter buffer will pad its size. the default is 40, so without |
||||
; modification, the new jitter buffer will set its size to the jitter |
||||
; value plus 40 milliseconds. increasing this value may help if your |
||||
; network normally has low jitter, but occasionally has spikes. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
; users sections: |
||||
; |
||||
; name your sections as you wish but not "general" or "default" ! |
||||
; the sections are Groups, you can dial out in extensions.conf |
||||
; with Dial(mISDN/g:extern/101) where extern is a section name, |
||||
; chan_misdn tries every port in this section to find a |
||||
; new free channel |
||||
; |
||||
; The default section is not a group section, it just contains config elements |
||||
; which are inherited by group sections. |
||||
; |
||||
[default] |
||||
|
||||
; define your default context here |
||||
; |
||||
; default value: default |
||||
; |
||||
context=misdn |
||||
|
||||
; language |
||||
; |
||||
; default value: en |
||||
; |
||||
language=en |
||||
|
||||
; |
||||
; This option specifies a default music on hold class to |
||||
; use when put on hold if the channel's moh class was not |
||||
; explicitly set with Set(CHANNEL(musicclass)=whatever) and |
||||
; the peer channel did not suggest a class to use. |
||||
; |
||||
musicclass=default |
||||
|
||||
; |
||||
; Either if we should produce DTMF Tones ourselves |
||||
; |
||||
senddtmf=yes |
||||
|
||||
; |
||||
; If we should generate Ringing for chan_sip and others |
||||
; |
||||
far_alerting=no |
||||
|
||||
|
||||
; |
||||
; Here you can list which bearer capabilities should be allowed: |
||||
; all - allow any bearer capability |
||||
; speech - allow speech |
||||
; 3_1khz - allow 3.1KHz audio |
||||
; digital_unrestricted - allow unrestricted digital |
||||
; digital_restricted - allow restricted digital |
||||
; video - allow video |
||||
; |
||||
; Example: |
||||
; allowed_bearers=speech,3_1khz |
||||
; |
||||
allowed_bearers=all |
||||
|
||||
; Incoming number prefixes for the indicated Type-Of-Number. These are |
||||
; inserted before any number (caller, dialed, connected, redirecting, |
||||
; redirection) received from the ISDN link if that number has the |
||||
; corresponding Type-Of-Number. |
||||
; See the dialplan options. |
||||
; |
||||
; default values: |
||||
; unknownprefix= |
||||
; internationalprefix=00 |
||||
; nationalprefix=0 |
||||
; netspecificprefix= |
||||
; subscriberprefix= |
||||
; abbreviatedprefix= |
||||
; |
||||
;unknownprefix= |
||||
internationalprefix=00 |
||||
nationalprefix=0 |
||||
;netspecificprefix= |
||||
;subscriberprefix= |
||||
;abbreviatedprefix= |
||||
|
||||
; set rx/tx gains between -8 and 8 to change the RX/TX Gain |
||||
; |
||||
; default values: rxgain: 0 |
||||
; txgain: 0 |
||||
; |
||||
rxgain=0 |
||||
txgain=0 |
||||
|
||||
; some telcos especially in NL seem to need this set to yes, also in |
||||
; switzerland this seems to be important |
||||
; |
||||
; default value: no |
||||
; |
||||
te_choose_channel=no |
||||
|
||||
|
||||
|
||||
; |
||||
; Monitors L1 of the port. If L1 is down it tries |
||||
; to bring it up. The polling timeout is given in seconds. |
||||
; Setting the value to 0 disables monitoring L1 of the port. |
||||
; |
||||
; default value: 0 |
||||
; |
||||
; This option is only read at chan_misdn loading time. |
||||
; You need to unload and load chan_misdn to change the |
||||
; value. An asterisk restart will also do the trick. |
||||
; |
||||
l1watcher_timeout=0 |
||||
|
||||
; |
||||
; This option defines, if chan_misdn should check the L1 on a PMP |
||||
; before making a group call on it. The L1 may go down for PMP Ports |
||||
; so we might need this. |
||||
; But be aware! a broken or plugged off cable might be used for a group call |
||||
; as well, since chan_misdn has no chance to distinguish if the L1 is down |
||||
; because of a lost Link or because the Provider shut it down... |
||||
; |
||||
; default: no |
||||
; |
||||
pmp_l1_check=no |
||||
|
||||
|
||||
; |
||||
; in PMP this option defines which cause should be sent out to |
||||
; the 3. caller. chan_misdn does not support callwaiting on TE |
||||
; PMP side. This allows to modify the RELEASE_COMPLETE cause |
||||
; at least. |
||||
; |
||||
reject_cause=16 |
||||
|
||||
|
||||
; |
||||
; Send Setup_Acknowledge on incoming calls anyway (instead of PROCEEDING), |
||||
; this requests additional Infos, so we can waitfordigits |
||||
; without much issues. This works only for PTP Ports |
||||
; |
||||
; default value: no |
||||
; |
||||
need_more_infos=no |
||||
|
||||
|
||||
; |
||||
; set this to yes if you want to disconnect calls when a timeout occurs |
||||
; for example during the overlapdial phase |
||||
; |
||||
nttimeout=no |
||||
|
||||
; Set the method to use for channel selection: |
||||
; standard - Use the first free channel starting from the lowest number. |
||||
; standard_dec - Use the first free channel starting from the highest number. |
||||
; round_robin - Use the round robin algorithm to select a channel. Use this |
||||
; if you want to balance your load. |
||||
; |
||||
; default value: standard |
||||
; |
||||
method=standard |
||||
|
||||
|
||||
; specify if chan_misdn should collect digits before going into the |
||||
; dialplan, you can choose yes=4 Seconds, no, or specify the amount |
||||
; of seconds you need; |
||||
; |
||||
overlapdial=yes |
||||
|
||||
; |
||||
; dialplan means Type Of Number in ISDN Terms |
||||
; There are different types of the dialplan: |
||||
; |
||||
; dialplan -> for outgoing call's dialed number |
||||
; localdialplan -> for outgoing call's callerid |
||||
; (if -1 is set use the value from the asterisk channel) |
||||
; cpndialplan -> for incoming call's connected party number sent to caller |
||||
; (if -1 is set use the value from the asterisk channel) |
||||
; |
||||
; dialplan options: |
||||
; |
||||
; 0 - unknown |
||||
; 1 - International |
||||
; 2 - National |
||||
; 3 - Network-Specific |
||||
; 4 - Subscriber |
||||
; 5 - Abbreviated |
||||
; |
||||
; default value: 0 |
||||
; |
||||
dialplan=0 |
||||
localdialplan=0 |
||||
cpndialplan=0 |
||||
|
||||
|
||||
|
||||
; |
||||
; turn this to no if you don't mind correct handling of Progress Indicators |
||||
; |
||||
early_bconnect=yes |
||||
|
||||
|
||||
; |
||||
; turn this on if you like to send Tone Indications to a Incoming |
||||
; isdn channel on a TE Port. Rarely used, only if the Telco allows |
||||
; you to send indications by yourself, normally the Telco sends the |
||||
; indications to the remote party. |
||||
; |
||||
; default: no |
||||
; |
||||
incoming_early_audio=no |
||||
|
||||
; uncomment the following to get into s extension at extension conf |
||||
; there you can use DigitTimeout if you can't or don't want to use |
||||
; isdn overlap dial. |
||||
; note: This will jump into the s exten for every exten! |
||||
; |
||||
; default value: no |
||||
; |
||||
;always_immediate=no |
||||
|
||||
; |
||||
; set this to yes if you want to generate your own dialtone |
||||
; with always_immediate=yes, else chan_misdn generates the dialtone |
||||
; |
||||
; default value: no |
||||
; |
||||
nodialtone=no |
||||
|
||||
|
||||
; uncomment the following if you want callers which called exactly the |
||||
; base number (so no extension is set) jump to the s extension. |
||||
; if the user dials something more it jumps to the correct extension |
||||
; instead |
||||
; |
||||
; default value: no |
||||
; |
||||
;immediate=no |
||||
|
||||
; uncomment the following to have hold and retrieve support |
||||
; |
||||
; default value: no |
||||
; |
||||
;hold_allowed=yes |
||||
|
||||
; Pickup and Callgroup |
||||
; |
||||
; default values: not set = 0 |
||||
; range: 0-63 |
||||
; |
||||
;callgroup=1 |
||||
;pickupgroup=1 |
||||
|
||||
; Named pickup groups and named call groups |
||||
; |
||||
; give a name to groups and configure any number of groups |
||||
; |
||||
;namedcallgroup=engineering,sales,netgroup,protgroup |
||||
;namedpickupgroup=sales |
||||
|
||||
; Set the outgoing caller id to the value. |
||||
;callerid="name" <number> |
||||
|
||||
; |
||||
; these are the exact isdn screening and presentation indicators |
||||
; if -1 is given for either value the presentation indicators are used |
||||
; from asterisks CALLERPRES function. |
||||
; s=0, p=0 -> callerid presented |
||||
; s=1, p=1 -> callerid restricted (the remote end does not see it!) |
||||
; |
||||
; default values s=-1, p=-1 |
||||
presentation=-1 |
||||
screen=-1 |
||||
|
||||
; Incoming calls will have a caller ID tag set to this value |
||||
; |
||||
;incoming_cid_tag = "asterisk" |
||||
|
||||
; With this set, you can automatically append the MSN of a party |
||||
; to the cid_tag. Incoming calls have the dialed number appended |
||||
; to the tag, and outgoing calls have the caller number appended |
||||
; to the tag. An '_' is used to separate the tag from the |
||||
; MSN. |
||||
; Default is no. |
||||
; |
||||
;append_msn_to_cid_tag = no |
||||
|
||||
; Select what to do with outgoing COLP information on this port. |
||||
; |
||||
; 0 - Send out COLP information unaltered. (default) |
||||
; 1 - Force COLP to restricted on all outgoing COLP information. |
||||
; 2 - Do not send COLP information. |
||||
outgoing_colp=0 |
||||
|
||||
; Put a display ie in the CONNECT message containing the following |
||||
; information if it is available (nt port only): |
||||
; |
||||
; 0 - Do not put the connected line information in the display ie. |
||||
; 1 - Put the available connected line name in the display ie. |
||||
; 2 - Put the available connected line number in the display ie. |
||||
; 3 - Put the available connected line name and number in the display ie. |
||||
; |
||||
display_connected=0 |
||||
|
||||
; Put a display ie in the SETUP message containing the following |
||||
; information if it is available (nt port only): |
||||
; |
||||
; 0 - Do not put the caller information in the display ie. |
||||
; 1 - Put the available caller name in the display ie. |
||||
; 2 - Put the available caller number in the display ie. |
||||
; 3 - Put the available caller name and number in the display ie. |
||||
; |
||||
display_setup=0 |
||||
|
||||
; This enables echo cancellation with the given number of taps. |
||||
; Be aware: Move this setting only to outgoing portgroups! |
||||
; A value of zero turns echo cancellation off. |
||||
; |
||||
; possible values are: 0,32,64,128,256,yes(=128),no(=0) |
||||
; |
||||
; default value: no |
||||
; |
||||
;echocancel=no |
||||
|
||||
; |
||||
; chan_misdns jitterbuffer, default 4000 |
||||
; |
||||
jitterbuffer=4000 |
||||
|
||||
; |
||||
; change this threshold to enable dejitter functionality |
||||
; |
||||
jitterbuffer_upper_threshold=0 |
||||
|
||||
|
||||
; |
||||
; change this to yes, if you want to bridge a mISDN data channel to |
||||
; another channel type or to an application. |
||||
; |
||||
hdlc=no |
||||
|
||||
|
||||
; |
||||
; defines the maximum amount of incoming calls per port for |
||||
; this group. Calls which exceed the maximum will be marked with |
||||
; the channel variable MAX_OVERFLOW. It will contain the amount of |
||||
; overflowed calls |
||||
; |
||||
max_incoming=-1 |
||||
|
||||
; |
||||
; defines the maximum amount of outgoing calls per port for this group |
||||
; exceeding calls will be rejected |
||||
; |
||||
max_outgoing=-1 |
||||
|
||||
; |
||||
; Enable/disable the call-completion retention option support (ptp only). |
||||
; |
||||
; Note: To use the CCBS/CCNR supplementary service feature and other |
||||
; supplementary services using FACILITY messages requires a |
||||
; modified version of mISDN from: |
||||
; http://svn.digium.com/svn/thirdparty/mISDN/trunk |
||||
; http://svn.digium.com/svn/thirdparty/mISDNuser/trunk |
||||
; |
||||
cc_request_retention=yes |
||||
|
||||
[intern] |
||||
; define your ports, e.g. 1,2 (depends on mISDN-driver loading order) |
||||
ports=1,2 |
||||
; context where to go to when incoming Call on one of the above ports |
||||
context=Intern |
||||
|
||||
[internPP] |
||||
; |
||||
; adding the postfix 'ptp' to a port number is obsolete now, chan_misdn |
||||
; parses /etc/misdn-init.conf and sets the ptp mode to the corresponding |
||||
; configs. For backwards compatibility you can still set ptp here. |
||||
; |
||||
ports=3 |
||||
|
||||
[first_extern] |
||||
; again port defs |
||||
ports=4 |
||||
; again a context for incoming calls |
||||
context=Extern1 |
||||
; msns for te ports, listen on those numbers on the above ports, and |
||||
; indicate the incoming calls to asterisk |
||||
; here you can give a comma separated list or simply an '*' for |
||||
; any msn. |
||||
msns=* |
||||
|
||||
; here an example with given msns |
||||
[second_extern] |
||||
ports=5 |
||||
context=Extern2 |
||||
callerid="Asterisk" <1234> |
||||
msns=102,144,101,104 |
@ -0,0 +1,99 @@
|
||||
; Sample configuration file for chan_motif |
||||
|
||||
; Transports |
||||
; |
||||
; There are three different transports and protocol derivatives supported by chan_motif. They are in order of preference: |
||||
; Jingle using ICE-UDP, Google Jingle, and Google-V1. |
||||
; |
||||
; Jingle as defined in XEP-0166 supports the widest range of features. It is referred to as "ice-udp" in this file. This is |
||||
; the specification that Jingle clients implement. |
||||
; |
||||
; Google Jingle follows the Jingle specification for signaling but uses a custom transport for media. It is supported |
||||
; by the Google Talk Plug-in in Gmail and by some other Jingle clients. It is referred to as "google" in this file. |
||||
; |
||||
; Google-V1 is the original Google Talk signaling protocol which uses an initial preliminary version of Jingle. |
||||
; It also uses the same custom transport as Google Jingle for media. It is supported by Google Voice, some other Jingle |
||||
; clients, and the Windows Google Talk client. It is referred to as "google-v1" in this file. |
||||
; |
||||
; Incoming sessions will automatically switch to the correct transport once it has been determined. |
||||
; |
||||
; Outgoing sessions are capable of determining if the target is capable of Jingle or a Google transport if the target is |
||||
; in the roster. Unfortunately it is not possible to differentiate between a Google Jingle or Google-V1 capable resource |
||||
; until a session initiate attempt occurs. If a resource is determined to use a Google transport it will initially use |
||||
; Google Jingle but will fall back to Google-V1 if required. |
||||
; |
||||
; If an outgoing session attempt fails due to failure to support the given transport chan_motif will fall back in preference |
||||
; order listed at the beginning of this document until all transports have been exhausted. |
||||
; |
||||
|
||||
; Dialing and Resource Selection Strategy |
||||
; |
||||
; Placing a call through an endpoint can be accomplished using the following dial string: |
||||
; |
||||
; Motif/<endpoint name>/<target> |
||||
; |
||||
; When placing an outgoing call through an endpoint the requested target is searched for in the roster list. If present |
||||
; the first Jingle or Google Jingle capable resource is specifically targetted. Since the capabilities of the resource are |
||||
; known the outgoing session initation will disregard the configured transport and use the determined one. |
||||
; |
||||
; If the target is not found in the roster the target will be used as-is and a session will be initiated using the |
||||
; transport specified in this configuration file. If no transport has been specified the endpoint defaults to ice-udp. |
||||
; |
||||
|
||||
; Video Support |
||||
; |
||||
; Support for video does not need to be explicitly enabled. Configuring any video codec on your endpoint will |
||||
; automatically enable it. |
||||
|
||||
; DTMF |
||||
; |
||||
; The only supported method for DTMF is RFC2833. This is always enabled on audio streams and negotiated if possible. |
||||
|
||||
; Incoming Calls |
||||
; |
||||
; Incoming calls will first look for the extension matching the name of the endpoint in the configured context. If |
||||
; no such extension exists the call will automatically fall back to the "s" extension. |
||||
|
||||
; CallerID |
||||
; |
||||
; The incoming caller id number is populated with the username of the caller and the name is populated with the full |
||||
; identity of the caller. If you would like to perform authentication or filtering of incoming calls it is recommended |
||||
; that you use these fields to do so. |
||||
; |
||||
; Outgoing caller id can *not* be set. |
||||
; |
||||
; IMPORTANT: Multiple endpoints using the same connection is *NOT* supported. Doing so may result in broken calls. |
||||
|
||||
; Default template for endpoints, to be included in their definition |
||||
[default](!) |
||||
disallow=all |
||||
allow=ulaw |
||||
allow=h264 |
||||
context=incoming-motif ; Default context that incoming sessions will land in |
||||
|
||||
;maxicecandidates = 10 ; Maximum number of ICE candidates we will offer |
||||
;maxpayloads = 30 ; Maximum number of payloads we will offer |
||||
|
||||
; Sample configuration entry for Jingle |
||||
;[jingle-endpoint](default) |
||||
;transport=ice-udp ; Change the default protocol of outgoing sessions to Jingle ICE-UDP |
||||
;allow=g722 ; Add G.722 as an allowed format since the other side may support it |
||||
;connection=local-jabber-account ; Connection to accept traffic on and send traffic out |
||||
;accountcode=jingle ; Account code for CDR purposes |
||||
|
||||
; Sample configuration entry for Google Talk |
||||
[gtalk-endpoint](default) |
||||
;transport=google ; Since this is a Google Talk endpoint we want to offer Google Jingle for outgoing sessions |
||||
;connection=gtalk-account |
||||
|
||||
; Sample configuration entry for Google Voice |
||||
;[gvoice](default) |
||||
;transport=google-v1 ; Google Voice uses the original Google Talk protocol |
||||
;connection=gvoice-account |
||||
|
||||
; Additional options |
||||
; callgroup |
||||
; pickupgroup |
||||
; language |
||||
; musicclass |
||||
; parkinglot |
@ -0,0 +1,39 @@
|
||||
# |
||||
# Sample muted configuration file |
||||
# |
||||
# Copyright (C) 2004 Digium, Inc. |
||||
# |
||||
# First you have the host, username, and password |
||||
# we use to connect to the asterisk system |
||||
# |
||||
# What is this? Well, haven't you ever wished you could automatically |
||||
# turn down the volume on your stereo, CDPlayer, etc, when a call comes in, |
||||
# and then return it to normal when the call ends? Well, this is a possible |
||||
# mechanism to make this happen! |
||||
# You have to fire up the new utils/muted, which runs as a daemon in the |
||||
# background. This daemon connects to asterisk via a manager interface, and |
||||
# also reads this config file from /etc/muted.conf. when the channels mentioned |
||||
# are activated, it tweaks the sound levels on the sound card(s). |
||||
# So, depending on the sound card, you may be able to run all your sound |
||||
# generating devices thru your sound card, and use this mechanism to quiet |
||||
# them down while you are on the phone. If anyone figures out how to make |
||||
# this work with kids, please inform!! |
||||
# |
||||
host localhost |
||||
user user |
||||
pass pass |
||||
# |
||||
# List each channel we're supposed to watch |
||||
# |
||||
channel DAHDI/1 |
||||
channel DAHDI/2 |
||||
channel SIP/mark |
||||
# |
||||
# Mute level is the percentage of the current volume we should |
||||
# lower the music to. |
||||
# |
||||
mutelevel 20 |
||||
# |
||||
# Smooth fade makes the fadein/fadeout nicer sounding |
||||
# |
||||
smoothfade |
@ -0,0 +1,203 @@
|
||||
; --------------------------------------------------------------------------------- |
||||
; --- ******* IMPORTANT NOTE *********** |
||||
; --- |
||||
; --- This module is currently unsupported. Use it at your own risk. |
||||
; --- |
||||
; --------------------------------------------------------------------------------- |
||||
|
||||
; Objective System's H323 Configuration example for Asterisk |
||||
; ooh323c driver configuration |
||||
; |
||||
; [general] section defines global parameters |
||||
; |
||||
; This is followed by profiles which can be of three types - user/peer/friend |
||||
; Name of the user profile should match with the h323id of the user device. |
||||
; For peer/friend profiles, host ip address must be provided as "dynamic" is |
||||
; not supported as of now. |
||||
; |
||||
; Syntax for specifying a H323 device in extensions.conf is |
||||
; For Registered peers/friends profiles: |
||||
; OOH323/name where name is the name of the peer/friend profile. |
||||
; |
||||
; For unregistered H.323 phones: |
||||
; OOH323/ip[:port] OR if gk is used OOH323/alias where alias can be any H323 |
||||
; alias |
||||
; |
||||
; For dialing into another asterisk peer at a specific exten |
||||
; OOH323/exten/peer OR OOH323/exten@ip |
||||
; |
||||
; Domain name resolution is not yet supported. |
||||
; |
||||
; When a H.323 user calls into asterisk, his H323ID is matched with the profile |
||||
; name and context is determined to route the call |
||||
; |
||||
; The channel driver will register all global aliases and aliases defined in |
||||
; peer profiles with the gatekeeper, if one exists. So, that when someone |
||||
; outside our pbx (non-user) calls an extension, gatekeeper will route that |
||||
; call to our asterisk box, from where it will be routed as per dial plan. |
||||
|
||||
|
||||
[general] |
||||
;Define the asetrisk server h323 endpoint |
||||
|
||||
;The port asterisk should listen for incoming H323 connections. |
||||
;Default - 1720 |
||||
;port=1720 |
||||
|
||||
;The dotted IP address asterisk should listen on for incoming H323 |
||||
;connections |
||||
;Default - tries to find out local ip address on it's own |
||||
bindaddr=0.0.0.0 |
||||
|
||||
;This parameter indicates whether channel driver should register with |
||||
;gatekeeper as a gateway or an endpoint. |
||||
;Default - no |
||||
;gateway=no |
||||
|
||||
;Whether asterisk should use fast-start and tunneling for H323 connections. |
||||
;Default - yes |
||||
;faststart=no |
||||
;h245tunneling=no |
||||
|
||||
;Whether media wait for connect |
||||
;Default - No |
||||
;mediawaitforconnect=yes |
||||
|
||||
;H323-ID to be used for asterisk server |
||||
;Default - Asterisk PBX |
||||
h323id=ObjSysAsterisk |
||||
e164=100 |
||||
|
||||
;CallerID to use for calls |
||||
;Default - Same as h323id |
||||
callerid=asterisk |
||||
|
||||
; Whether asterisk send back to caller own connected line id on incoming call as called number |
||||
; Default - no |
||||
aniasdni=no |
||||
|
||||
;Whether this asterisk server will use gatekeeper. |
||||
;Default - DISABLE |
||||
;gatekeeper = DISCOVER |
||||
;gatekeeper = a.b.c.d |
||||
gatekeeper = DISABLE |
||||
|
||||
;Location for H323 log file |
||||
;Default - /var/log/asterisk/h323_log |
||||
;logfile=/var/log/asterisk/h323_log |
||||
|
||||
|
||||
;Following values apply to all users/peers/friends defined below, unless |
||||
;overridden within their client definition |
||||
|
||||
;Sets default context all clients will be placed in. |
||||
;Default - default |
||||
context=default |
||||
|
||||
;Sets rtptimeout for all clients, unless overridden |
||||
;Default - 60 seconds |
||||
;rtptimeout=60 ; Terminate call if 60 seconds of no RTP activity |
||||
; when we're not on hold |
||||
|
||||
;Type of Service |
||||
;Default - none (lowdelay, thoughput, reliability, mincost, none) |
||||
;tos=lowdelay |
||||
|
||||
;amaflags = default |
||||
|
||||
;The account code used by default for all clients. |
||||
;accountcode=h3230101 |
||||
|
||||
;The codecs to be used for all clients.Only ulaw and gsm supported as of now. |
||||
;Default - ulaw |
||||
; ONLY ulaw, gsm, g729 and g7231 supported as of now |
||||
disallow=all ;Note order of disallow/allow is important. |
||||
allow=gsm |
||||
allow=ulaw |
||||
|
||||
|
||||
; dtmf mode to be used by default for all clients. Supports rfc2833, q931keypad |
||||
; h245alphanumeric, h245signal. |
||||
;Default - rfc 2833 |
||||
dtmfmode=rfc2833 |
||||
; |
||||
; round trip delay request, default = 0,0 (not send) |
||||
; x - count of unreplied requests before hangup, y - interval in sec between requests |
||||
; |
||||
;roundtrip=x,y |
||||
|
||||
; |
||||
; FAX detection will cause the OOH323 channel to jump to the 'fax' extension (if it exists) |
||||
; based one or more events being detected. The events that can be detected are an incoming |
||||
; CNG tone or an incoming T.38 RequestMode packet |
||||
; |
||||
; yes - enable both detection (CNG & T.38) |
||||
; no - disable both |
||||
; cng - enable CNG detection (default) |
||||
; t38 - enable T.38 request detection |
||||
; |
||||
faxdetect = cng |
||||
|
||||
; User/peer/friend definitions: |
||||
; User config options Peer config options |
||||
; ------------------ ------------------- |
||||
; context |
||||
; disallow disallow |
||||
; allow allow |
||||
; accountcode accountcode |
||||
; amaflags amaflags |
||||
; dtmfmode dtmfmode |
||||
; rtptimeout ip |
||||
; port |
||||
; h323id |
||||
; email |
||||
; url |
||||
; e164 |
||||
; rtptimeout |
||||
|
||||
; |
||||
|
||||
; |
||||
; direct rtp between two remote peers, disabled by default |
||||
; can be specified globally or per peer/user section |
||||
; |
||||
directmedia=no |
||||
; |
||||
; early direct rtp (try to establish direct rtp before asnwer) |
||||
; disabled by default, auto enabled by directmedia is enabled |
||||
; can be disabled escpecially if directmedia is enabled. |
||||
; can be specified globally or per peer/user section |
||||
; |
||||
; |
||||
directrtpsetup=no |
||||
|
||||
;Define users here |
||||
;Section header is extension |
||||
[myuser1] |
||||
type=user |
||||
context=context1 |
||||
disallow=all |
||||
allow=gsm |
||||
allow=ulaw |
||||
|
||||
|
||||
|
||||
[mypeer1] |
||||
type=peer |
||||
context=context2 |
||||
ip=a.b.c.d ; UPDATE with appropriate ip address |
||||
port=1720 ; UPDATE with appropriate port |
||||
e164=101 |
||||
|
||||
|
||||
|
||||
[myfriend1] |
||||
type=friend |
||||
context=default |
||||
ip=10.0.0.82 ; UPDATE with appropriate ip address |
||||
port=1820 ; UPDATE with appropriate port |
||||
disallow=all |
||||
allow=ulaw |
||||
e164=12345 |
||||
rtptimeout=60 |
||||
dtmfmode=rfc2833 |
@ -0,0 +1,117 @@
|
||||
; |
||||
; Open Settlement Protocol Sample Configuration File |
||||
; |
||||
; This file contains configuration of OSP server providers that are used by the |
||||
; Asterisk OSP module. The section "general" is reserved for global options. |
||||
; All other sections describe specific OSP Providers. The provider "default" |
||||
; is used when no provider is otherwise specified. |
||||
; |
||||
; The "servicepoint" and "source" parameters must be configured. For most |
||||
; implementations the other parameters in this file can be left unchanged. |
||||
; |
||||
[general] |
||||
; |
||||
; Enable cryptographic acceleration hardware. |
||||
; The default value is no. |
||||
; |
||||
;accelerate=no |
||||
; |
||||
; Enable security features. |
||||
; If security features are disabled, Asterisk cannot validate signed tokens and |
||||
; all certificate file name parameters are ignored. |
||||
; The default value is no. |
||||
; |
||||
;securityfeatures=no |
||||
; |
||||
; Defines the status of tokens that Asterisk will validate. |
||||
; 0 - signed tokens only |
||||
; 1 - unsigned tokens only |
||||
; 2 - both signed and unsigned |
||||
; The default value is 0, i.e. the Asterisk will only validate signed tokens. |
||||
; If securityfeatures are disabled, Asterisk cannot validate signed tokens. |
||||
; |
||||
;tokenformat=0 |
||||
; |
||||
;[default] |
||||
; |
||||
; List all service points (OSP servers) for this provider. |
||||
; Use either domain name or IP address. Most OSP servers use port 5045. |
||||
; |
||||
;servicepoint=http://osptestserver.transnexus.com:5045/osp |
||||
; |
||||
; Define the "source" device for requesting OSP authorization. |
||||
; This value is usually the domain name or IP address of the the Asterisk server. |
||||
; |
||||
;source=domain name or [IP address in brackets] |
||||
; |
||||
; Define path and file name of crypto files. |
||||
; The default path for crypto file is /var/lib/asterisk/keys. If no path is |
||||
; defined, crypto files will in /var/lib/asterisk/keys directory. |
||||
; |
||||
; Specify the private key file name. |
||||
; If this parameter is unspecified or not present, the default name will be the |
||||
; osp.conf section name followed by "-privatekey.pem" (for example: |
||||
; default-privatekey.pem) |
||||
; If securityfeatures are disabled, this parameter is ignored. |
||||
; |
||||
;privatekey=pkey.pem |
||||
; |
||||
; Specify the local certificate file. |
||||
; If this parameter is unspecified or not present, the default name will be the |
||||
; osp.conf section name followed by "- localcert.pem " (for example: |
||||
; default-localcert.pem) |
||||
; If securityfeatures are disabled, this parameter is ignored. |
||||
; |
||||
;localcert=localcert.pem |
||||
; |
||||
; Specify one or more Certificate Authority key file names. If none are listed, |
||||
; a single Certificate Authority key file name is added with the default name of |
||||
; the osp.conf section name followed by "-cacert_0.pem " (for example: |
||||
; default-cacert_0.pem) |
||||
; If securityfeatures are disabled, this parameter is ignored. |
||||
; |
||||
;cacert=cacert_0.pem |
||||
; |
||||
; Configure parameters for OSP communication between Asterisk OSP client and OSP |
||||
; servers. |
||||
; |
||||
; maxconnections: Max number of simultaneous connections to the provider OSP |
||||
; server (default=20) |
||||
; retrydelay: Extra delay between retries (default=0) |
||||
; retrylimit: Max number of retries before giving up (default=2) |
||||
; timeout: Timeout for response in milliseconds (default=500) |
||||
; |
||||
;maxconnections=20 |
||||
;retrydelay=0 |
||||
;retrylimit=2 |
||||
;timeout=500 |
||||
; |
||||
; Set the authentication policy. |
||||
; 0 - NO - Accept all calls. |
||||
; 1 - YES - Accept calls with valid token or no token. Block calls with |
||||
; invalid token. |
||||
; 2 - EXCLUSIVE - Accept calls with valid token. Block calls with invalid token |
||||
; or no token. |
||||
; Default is 1, |
||||
; If securityfeatures are disabled, Asterisk cannot validate signed tokens. |
||||
; |
||||
;authpolicy=1 |
||||
; |
||||
; Set the default destination protocol. The OSP module supports SIP, H323, and |
||||
; IAX protocols. The default protocol is set to SIP. |
||||
; |
||||
;defaultprotocol=SIP |
||||
; |
||||
; Set the work mode. |
||||
; 0 - Direct |
||||
; 1 - Indirect |
||||
; Default is 0, |
||||
; |
||||
;workmode=0 |
||||
; |
||||
; Set the service type. |
||||
; 0 - Normal voice service |
||||
; 1 - Ported number query service |
||||
; Default is 0, |
||||
; |
||||
;servicetype=0 |
@ -0,0 +1,152 @@
|
||||
; |
||||
; Automatically generated from ../channels/chan_oss.c |
||||
; |
||||
|
||||
[general] |
||||
; General config options, with default values shown. |
||||
; You should use one section per device, with [general] being used |
||||
; for the first device and also as a template for other devices. |
||||
; |
||||
; All but 'debug' can go also in the device-specific sections. |
||||
; |
||||
; debug = 0x0 ; misc debug flags, default is 0 |
||||
|
||||
; Set the device to use for I/O |
||||
; device = /dev/dsp |
||||
|
||||
; Optional mixer command to run upon startup (e.g. to set |
||||
; volume levels, mutes, etc. |
||||
; mixer = |
||||
|
||||
; Software mic volume booster (or attenuator), useful for sound |
||||
; cards or microphones with poor sensitivity. The volume level |
||||
; is in dB, ranging from -20.0 to +20.0 |
||||
; boost = n ; mic volume boost in dB |
||||
|
||||
; Set the callerid for outgoing calls |
||||
; callerid = John Doe <555-1234> |
||||
|
||||
; autoanswer = no ; no autoanswer on call |
||||
; autohangup = yes ; hangup when other party closes |
||||
; extension = s ; default extension to call |
||||
; context = default ; default context for outgoing calls |
||||
; language = "" ; default language |
||||
|
||||
; If you set overridecontext to 'yes', then the whole dial string |
||||
; will be interpreted as an extension, which is extremely useful |
||||
; to dial SIP, IAX and other extensions which use the '@' character. |
||||
; The default is 'no' just for backward compatibility, but the |
||||
; suggestion is to change it. |
||||
; overridecontext = no ; if 'no', the last @ will start the context |
||||
; if 'yes' the whole string is an extension. |
||||
|
||||
; low level device parameters in case you have problems with the |
||||
; device driver on your operating system. You should not touch these |
||||
; unless you know what you are doing. |
||||
; queuesize = 10 ; frames in device driver |
||||
; frags = 8 ; argument to SETFRAGMENT |
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an |
||||
; OSS channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The OSS channel can't accept jitter, |
||||
; thus an enabled jitterbuffer on the receive OSS side will always |
||||
; be used if the sending side can create jitter. |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of an OSS |
||||
; channel. Two implementations are currently available - "fixed" |
||||
; (with size always equals to jbmax-size) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. |
||||
; The option represents the number of milliseconds by which the new |
||||
; jitter buffer will pad its size. the default is 40, so without |
||||
; modification, the new jitter buffer will set its size to the jitter |
||||
; value plus 40 milliseconds. increasing this value may help if your |
||||
; network normally has low jitter, but occasionally has spikes. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
; below is an entry for a second console channel |
||||
; [card1] |
||||
; device = /dev/dsp1 ; alternate device |
||||
|
||||
; Below are the settings to support video. You can include them |
||||
; in your general configuration as [general](+,video) |
||||
; The parameters are all available through the CLI as "console name value" |
||||
; Section names used here are only examples. |
||||
|
||||
[my_video](!) ; you can just include in your config |
||||
videodevice = /dev/video0 ; uses your V4L webcam as video source |
||||
videodevice = X11 ; X11 grabber. Dragging on the local display moves the origin. |
||||
videocodec = h263 ; also h261, h263p, h264, mpeg4, ... |
||||
|
||||
; video_size is the geometry used by the encoder. |
||||
; Depending on the codec your choice is restricted. |
||||
video_size = 352x288 ; the format WIDTHxHEIGHT is also ok |
||||
video_size = cif ; sqcif, qcif, cif, qvga, vga, ... |
||||
|
||||
; You can also set the geometry used for the camera, local display and remote display. |
||||
; The local window is on the right, the remote window is on the left. |
||||
; Right clicking with the mouse on a video window increases the size, |
||||
; center-clicking reduces the size. |
||||
camera_size = cif |
||||
remote_size = cif |
||||
local_size = qcif |
||||
|
||||
bitrate = 60000 ; rate told to ffmpeg. |
||||
fps = 5 ; frames per second from the source. |
||||
; qmin = 3 ; quantizer value passed to the encoder. |
||||
|
||||
; The keypad is made of an image (in any format supported by SDL_image) |
||||
; and some configuration entries indicating the location and function of buttons. |
||||
; These entries can also be contained in the comment field of the image, |
||||
; which is a lot more convenient to manage. |
||||
; E.g. for jpeg you can write them with wrjpgcom (part of libjpeg). |
||||
; The format to define keys is |
||||
; region = <event> <shape> x0 y0 x1 y1 h |
||||
; where <event> is the event to be generated (a digit, pickup, hangup,...) |
||||
; <shape> is the shape of the region (currently 'rect' and 'circle' are |
||||
; supported, the latter is really an ellipse), x0 y0 x1 y1 are the |
||||
; coordinates of the base of the rectangle or main diameter of the ellipse, |
||||
; (they can be rotated) while h is the height of the rectangle or the other |
||||
; diameter of the ellipse. |
||||
; |
||||
[my_skin](!) |
||||
keypad = /tmp/keypad.jpg |
||||
region = 1 rect 19 18 67 18 28 |
||||
region = 2 rect 84 18 133 18 28 |
||||
region = 3 rect 152 18 201 18 28 |
||||
region = 4 rect 19 60 67 60 28 |
||||
region = 5 rect 84 60 133 60 28 |
||||
region = 6 rect 152 60 201 60 28 |
||||
region = 7 rect 19 103 67 103 28 |
||||
region = 8 rect 84 103 133 103 28 |
||||
region = 9 rect 152 103 201 103 28 |
||||
region = * rect 19 146 67 146 28 |
||||
region = 0 rect 84 146 133 146 28 |
||||
region = # rect 152 146 201 146 28 |
||||
region = pickup rect 229 15 267 15 40 |
||||
region = hangup rect 230 66 270 64 40 |
||||
region = mute circle 232 141 264 141 33 |
||||
region = sendvideo circle 235 185 266 185 33 |
||||
region = autoanswer rect 228 212 275 212 50 |
||||
|
||||
; another skin with entries for the keypad and a small font |
||||
; to write to the message boards in the skin. |
||||
[skin2](!) |
||||
keypad = /tmp/kpad2.jpg |
||||
keypad_font = /tmp/font.png |
||||
|
||||
; to add video support, uncomment this and remember to install |
||||
; the keypad and keypad_font files to the right place |
||||
; [general](+,my_video,skin2) |
@ -0,0 +1,51 @@
|
||||
; |
||||
; Linux Telephony Interface |
||||
; |
||||
; Configuration file |
||||
; |
||||
[interfaces] |
||||
; |
||||
; Select a mode, either the phone jack provides dialtone, reads digits, |
||||
; then starts PBX with the given extension (dialtone mode), or |
||||
; immediately provides the PBX without reading any digits or providing |
||||
; any dialtone (this is the immediate mode, the default). Also, you |
||||
; can set the mode to "fxo" if you have a linejack to make it operate |
||||
; properly. If you are using a Sigma Designs board you may set this to |
||||
; "sig". |
||||
; |
||||
mode=immediate |
||||
;mode=dialtone |
||||
;mode=fxo |
||||
;mode=sig |
||||
; |
||||
; You can decide which format to use by default, "g723.1", "g729", or "slinear". |
||||
; Note that g729 is only supported for Sigma Designs boards. |
||||
; XXX Be careful, sometimes the card causes kernel panics when running |
||||
; in signed linear mode for some reason... XXX |
||||
; |
||||
format=slinear |
||||
;format=g723.1 |
||||
;format=g729 |
||||
; |
||||
; And set the echo cancellation to "off", "low", "medium", and "high". |
||||
; This is not supported on all phones. |
||||
; |
||||
echocancel=medium |
||||
; |
||||
; You can optionally use VAD/CNG silence suppression |
||||
; |
||||
;silencesupression=yes |
||||
; |
||||
; List all devices we can use. Contexts may also be specified |
||||
; |
||||
;context=local |
||||
; |
||||
; You can set txgain and rxgain for each device in the same way as context. |
||||
; If you want to change default gain value (1.0 =~ 100%) for device, simple |
||||
; add txgain or rxgain line before device line. But remember, if you change |
||||
; volume all cards listed below will be affected by these values. You can |
||||
; use float values (1.0, 0.5, 2.0) or percentage values (100%, 150%, 50%). |
||||
; |
||||
;txgain=100% |
||||
;rxgain=1.0 |
||||
;device => /dev/phone0 |
@ -0,0 +1,142 @@
|
||||
[general] |
||||
; This section applies only to the default sip.conf/users.conf config provider |
||||
; embedded in res_phoneprov. Other providers may provide their own default settings. |
||||
|
||||
; The default behavior of res_phoneprov will be to set the SERVER template variable to |
||||
; the IP address that the phone uses to contact the provisioning server and the |
||||
; SERVER_PORT variable to the bindport setting in sip.conf. Unless you have a very |
||||
; unusual setup, you should not need to set serveraddr, serveriface, or serverport. |
||||
|
||||
;serveraddr=192.168.1.1 ; Override address to send to the phone to use as server address. |
||||
;serveriface=eth0 ; Same as above, except an ethernet interface. |
||||
; Useful for when the interface uses DHCP and the asterisk http |
||||
; server listens on a different IP than chan_sip. |
||||
;serverport=5060 ; Override port to send to the phone to use as server port. |
||||
default_profile=polycom ; The default profile to use if none specified in users.conf |
||||
|
||||
; You can define profiles for different phones specifying what files to register |
||||
; with the provisioning server. You can define either static files, or dynamically |
||||
; generated files that can have dynamic names and point to templates that variables |
||||
; can be substituted into. You can also set arbitrary variables for the profiles |
||||
; templates to have access to. Profiles are shared across all config providers. |
||||
; Example: |
||||
|
||||
;[example] |
||||
;mime_type => application/octet-stream |
||||
;static_file => example/firmware |
||||
;static_file => example/default.cfg,text/xml |
||||
;${TOUPPER(${MAC})}.cfg => templates/example-mac.cfg |
||||
;setvar => DB_CIDNAME=${ODBC_CID_NAME_LOOKUP(${USERNAME})} |
||||
|
||||
; Dynamically generated files have a filename registered with variable substitution |
||||
; with variables obtained from various config providers. The default provider |
||||
; embedded in res_phoneprov reads users.conf. Other providers will have their own |
||||
; sources for the variables and may provide additional variables not listed here. |
||||
|
||||
; Built in variables and the options in users.conf that they come from |
||||
; MAC (macaddress) |
||||
; USERNAME (username) |
||||
; DISPLAY_NAME (fullname) |
||||
; SECRET (secret) |
||||
; LABEL (label) |
||||
; CALLERID (cid_number) |
||||
; VOCIEMAIL_EXTEN (vmexten) |
||||
; EXTENSION_LENGTH (localextenlength) |
||||
; LINE |
||||
; LINEKEYS |
||||
|
||||
; Built-in variables and the options in phoneprov.conf that they come from |
||||
; SERVER (server) |
||||
; SERVER_PORT (serverport) |
||||
|
||||
|
||||
; Built-in variables for managing timezones and daylight savings time. |
||||
; TZOFFSET |
||||
; DST_ENABLE |
||||
; DST_START_MONTH |
||||
; DST_START_MDAY |
||||
; DST_START_HOUR |
||||
; DST_END_MONTH |
||||
; DST_END_MDAY |
||||
; DST_END_HOUR |
||||
; TIMEZONE |
||||
|
||||
[polycom] |
||||
staticdir => configs/ ; Sub directory of AST_DATA_DIR/phoneprov that static files reside |
||||
; in. This allows a request to /phoneprov/sip.cfg to pull the file |
||||
; from /phoneprov/configs/sip.cfg |
||||
mime_type => text/xml ; Default mime type to use if one isn't specified or the |
||||
; extension isn't recognized |
||||
static_file => bootrom.ld,application/octet-stream ; Static files the phone will download |
||||
static_file => bootrom.ver,plain/text ; static_file => filename,mime-type |
||||
static_file => sip.ld,application/octet-stream |
||||
static_file => sip.ver,plain/text |
||||
static_file => sip.cfg |
||||
static_file => custom.cfg |
||||
static_file => 2201-06642-001.bootrom.ld,application/octet-stream |
||||
static_file => 2201-06642-001.sip.ld,application/octet-stream |
||||
static_file => 2345-11000-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11300-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11300-010.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11300-010.sip.ld,application/octet-stream |
||||
static_file => 2345-11402-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11402-001.sip.ld,application/octet-stream |
||||
static_file => 2345-11500-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11500-010.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11500-020.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11500-030.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11500-030.sip.ld,application/octet-stream |
||||
static_file => 2345-11500-040.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11500-040.sip.ld,application/octet-stream |
||||
static_file => 2345-11600-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11600-001.sip.ld,application/octet-stream |
||||
static_file => 2345-11605-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-11605-001.sip.ld,application/octet-stream |
||||
static_file => 2345-12200-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12200-001.sip.ld,application/octet-stream |
||||
static_file => 2345-12200-002.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12200-002.sip.ld,application/octet-stream |
||||
static_file => 2345-12200-004.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12200-004.sip.ld,application/octet-stream |
||||
static_file => 2345-12200-005.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12200-005.sip.ld,application/octet-stream |
||||
static_file => 2345-12365-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12365-001.sip.ld,application/octet-stream |
||||
static_file => 2345-12500-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12500-001.sip.ld,application/octet-stream |
||||
static_file => 2345-12560-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12560-001.sip.ld,application/octet-stream |
||||
static_file => 2345-12600-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12600-001.sip.ld,application/octet-stream |
||||
static_file => 2345-12670-001.bootrom.ld,application/octet-stream |
||||
static_file => 2345-12670-001.sip.ld,application/octet-stream |
||||
static_file => 3111-15600-001.bootrom.ld,application/octet-stream |
||||
static_file => 3111-15600-001.sip.ld,application/octet-stream |
||||
static_file => 3111-40000-001.bootrom.ld,application/octet-stream |
||||
static_file => 3111-40000-001.sip.ld,application/octet-stream |
||||
static_file => SoundPointIPWelcome.wav,application/octet-stream |
||||
static_file => SoundPointIPLocalization/Japanese_Japan/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Norwegian_Norway/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Spanish_Spain/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Portuguese_Portugal/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/English_United_Kingdom/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/English_United_States/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Russian_Russia/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Italian_Italy/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Chinese_China/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Swedish_Sweden/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/English_Canada/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/German_Germany/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/French_France/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Danish_Denmark/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Dutch_Netherlands/SoundPointIP-dictionary.xml |
||||
static_file => SoundPointIPLocalization/Korean_Korea/SoundPointIP-dictionary.xml |
||||
|
||||
${MAC}.cfg => 000000000000.cfg ; Dynamically generated files. |
||||
${MAC}-phone.cfg => 000000000000-phone.cfg ; (relative to AST_DATA_DIR/phoneprov) |
||||
config/${MAC} => polycom.xml ; Dynamic Filename => template file |
||||
${MAC}-directory.xml => 000000000000-directory.xml |
||||
setvar => CUSTOM_CONFIG=/var/lib/asterisk/phoneprov/configs/custom.cfg ; Custom variable |
||||
|
||||
;snom 300, 320, 360, 370, 820, 821, 870 support |
||||
snom-${MAC}.xml => snom-mac.xml |
@ -0,0 +1,49 @@
|
||||
; Common pjproject options |
||||
; |
||||
|
||||
;[startup] |
||||
; NOTES: The name of this section in the pjproject.conf configuration file must |
||||
; remain startup or the configuration will not be applied. |
||||
; |
||||
;log_level=default ; Initial maximum pjproject logging level to log |
||||
; Valid values are: 0-6, and default |
||||
; |
||||
; Note: This option is needed very early in the startup |
||||
; process so it can only be read from config files because |
||||
; the modules for other methods have not been loaded yet. |
||||
;type= ; Must be of type startup (default: "") |
||||
|
||||
;========================LOG_MAPPINGS SECTION OPTIONS=============================== |
||||
;[log_mappings] |
||||
; SYNOPSIS: Provides pjproject to Asterisk log level mappings. |
||||
; NOTES: The name of this section in the pjproject.conf configuration file must |
||||
; remain log_mappings or the configuration will not be applied. |
||||
; The defaults mentioned below only apply if this file or the 'log_mappings' |
||||
; object can't be found. If the object is found, there are no defaults. If |
||||
; you don't specify an entry, nothing will be logged for that level. |
||||
; |
||||
; These logging level meanings are typically used by pjproject: |
||||
; - 0: fatal error |
||||
; - 1: error |
||||
; - 2: warning |
||||
; - 3: info |
||||
; - 4: debug |
||||
; - 5: trace |
||||
; - 6: more detailed trace |
||||
; |
||||
;asterisk_error = ; A comma separated list of pjproject log levels to map to |
||||
; Asterisk errors. |
||||
; (default: "0,1") |
||||
;asterisk_warning = ; A comma separated list of pjproject log levels to map to |
||||
; Asterisk warnings. |
||||
; (default: "2") |
||||
;asterisk_notice = ; A comma separated list of pjproject log levels to map to |
||||
; Asterisk notices. |
||||
; (default: "") |
||||
;asterisk_verbose = ; A comma separated list of pjproject log levels to map to |
||||
; Asterisk verbose. |
||||
; (default: "") |
||||
;asterisk_debug = ; A comma separated list of pjproject log levels to map to |
||||
; Asterisk debug |
||||
; (default: "3,4,5,6") |
||||
;type= ; Must be of type log_mappings (default: "") |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,57 @@
|
||||
; rfc3842 |
||||
; put empty "Content=>" at the end to have CRLF after last body line |
||||
|
||||
[clear-mwi] |
||||
Event=>message-summary |
||||
Content-type=>application/simple-message-summary |
||||
Content=>Messages-Waiting: no |
||||
Content=>Message-Account: sip:asterisk@127.0.0.1 |
||||
Content=>Voice-Message: 0/0 (0/0) |
||||
Content=> |
||||
|
||||
; Aastra |
||||
|
||||
[aastra-check-cfg] |
||||
Event=>check-sync |
||||
|
||||
[aastra-xml] |
||||
Event=>aastra-xml |
||||
|
||||
; Digium |
||||
|
||||
[digium-check-cfg] |
||||
Event=>check-sync |
||||
|
||||
; Linksys |
||||
|
||||
[linksys-cold-restart] |
||||
Event=>reboot_now |
||||
|
||||
[linksys-warm-restart] |
||||
Event=>restart_now |
||||
|
||||
; Polycom |
||||
|
||||
[polycom-check-cfg] |
||||
Event=>check-sync |
||||
|
||||
; Sipura |
||||
|
||||
[sipura-check-cfg] |
||||
Event=>resync |
||||
|
||||
[sipura-get-report] |
||||
Event=>report |
||||
|
||||
; snom |
||||
|
||||
[snom-check-cfg] |
||||
Event=>check-sync\;reboot=false |
||||
|
||||
[snom-reboot] |
||||
Event=>check-sync\;reboot=true |
||||
|
||||
; Cisco |
||||
|
||||
[cisco-check-cfg] |
||||
Event=>check-sync |
@ -0,0 +1,159 @@
|
||||
; PJSIP Wizard Configuration Samples and Quick Reference |
||||
; |
||||
; This file has several very basic configuration examples, to serve as a quick |
||||
; reference to jog your memory when you need to write up a new configuration. |
||||
; It is not intended to teach PJSIP configuration or serve as an exhaustive |
||||
; reference of options and potential scenarios. |
||||
; |
||||
; This file has two main sections. |
||||
; First, manually written examples to serve as a handy reference. |
||||
; Second, a list of all possible PJSIP config options by section. This is |
||||
; pulled from the XML config help. It only shows the synopsis for every item. |
||||
; If you want to see more detail please check the documentation sources |
||||
; mentioned at the top of this file. |
||||
|
||||
; Documentation |
||||
; |
||||
; The official documentation is at http://wiki.asterisk.org |
||||
; You can read the XML configuration help via Asterisk command line with |
||||
; "config show help res_pjsip_config_wizard", then you can drill down through |
||||
; the various sections and their options. |
||||
; |
||||
|
||||
|
||||
;============EXAMPLE WIZARD CONFIGURATION FOR A PHONE======================= |
||||
|
||||
; This config would create an endpoint, aor with dynamic contact, inbound |
||||
; auth, a phoneprov object and a dialplan hint for extension 1000. |
||||
|
||||
;[myphone] |
||||
;type = wizard |
||||
;accepts_auth = yes |
||||
;accepts_registrations = yes |
||||
;has_phoneprov = yes |
||||
;transport = ipv4 |
||||
;has_hint = yes |
||||
;hint_exten = 1000 |
||||
;inbound_auth/username = testname |
||||
;inbound_auth/password = test password |
||||
;endpoint/allow = ulaw |
||||
;endpoint/context = default |
||||
;phoneprov/MAC = 001122aa4455 |
||||
;phoneprov/PROFILE = profile1 |
||||
|
||||
|
||||
;============EXAMPLE WIZARD CONFIGURATION FOR AN ITSP TRUNK================= |
||||
|
||||
; This ITSP has 2 servers available and requires registration. |
||||
|
||||
; This config would create an endpoint, an aor with 2 static contacts, an |
||||
; outbound auth, an identify with 2 matches, and 2 registrations. |
||||
|
||||
;[mytrunk] |
||||
;type = wizard |
||||
;sends_auth = yes |
||||
;sends_registrations = yes |
||||
;transport = ipv4 |
||||
;remote_hosts = sip1.myitsp.com:5060,sip2.myitsp.com:5060 |
||||
;outbound_auth/username = testname |
||||
;outbound_auth/password = test password |
||||
;endpoint/allow = ulaw |
||||
;endpoint/context = default |
||||
|
||||
|
||||
;========================WIZARD SECTION OPTIONS=============================== |
||||
;[wizard] |
||||
; SYNOPSIS: Provides configuration wizard for common scenarios. |
||||
;sends_auth= ; Will create an outbound auth object for the endpoint and |
||||
; registration. |
||||
; If yes, outbound/username must be specified. |
||||
; (default = "no") |
||||
|
||||
;accepts_auth= ; Will create an inbound auth object for the endpoint. |
||||
; If yes, inbound/username must be specified. |
||||
; (default = "no") |
||||
|
||||
;sends_registrations= ; Will create an outbound registration object and an |
||||
; identify match for each host in remote_hosts (which |
||||
; must be specified). |
||||
; sends_auth must also be specified. |
||||
; (default: "no") |
||||
|
||||
;sends_line_with_registrations= ; Setting this to true will cause the wizard to |
||||
; skip the creation of an identify object to match |
||||
; incoming requests to the endpoint and instead add the |
||||
; line and endpoint parameters to the outbound |
||||
; registration object. |
||||
; (default: "no") |
||||
|
||||
;accepts_registrations= ; Will create an aor with dynamic contacts which will |
||||
; accept registrations. |
||||
; accepts_auth must also be specified. |
||||
; (default: "no") |
||||
|
||||
;remote_hosts= ; A comma separated list of remote hosts in the form of |
||||
; <ipaddress | hostname>[:port] [,<ipaddress | hostname>[:port] ] ... |
||||
; If specified, a static contact for each host will be created |
||||
; in the aor. If accepts_registrations is no, an identify |
||||
; object is also created with a match line for each remote host. |
||||
; If an aor/contact or match/identify is explicitly supplied, |
||||
; remote_hosts will not be used to automatically create contacts |
||||
; or matches respectively. |
||||
; Hostnames must resolve to A, AAAA or CNAME records. |
||||
; SRV records are not currently supported. |
||||
; (default: "") |
||||
|
||||
;outbound_proxy= ; Setting this is a shortcut for setting |
||||
; endpoint/outbound_proxy |
||||
; aor/outbound_proxy |
||||
; registration/outbound_proxy |
||||
|
||||
;transport= ; The transport to use for the endpoint and registrations |
||||
; (default: the pjsip default) |
||||
|
||||
;server_uri_pattern= ; The pattern used to construct the registration |
||||
; server_uri. The replaceable parameter ${REMOTE_HOST} isa |
||||
; available for use. |
||||
; (default: "sip:${REMOTE_HOST}") |
||||
|
||||
;client_uri_pattern= ; The pattern used to construct the registration client_uri. |
||||
; The replaceable parameters ${REMOTE_HOST} and ${USERNAME} |
||||
; are available for use. |
||||
; (default: "sip:${USERNAME}@${REMOTE_HOST}") |
||||
|
||||
;contact_pattern= ; The pattern used to construct the aor contact. |
||||
; The replaceable parameter ${REMOTE_HOST} is available |
||||
; for use. |
||||
; (default: "sip:${REMOTE_HOST}") |
||||
|
||||
;has_phoneprov= ; Will create a phoneprov object. |
||||
; If yes, phoneprov/MAC must be specified. |
||||
; (default: "no") |
||||
|
||||
;has_hint= ; Create hint and optionally a default application. |
||||
; (default: "no") |
||||
|
||||
;hint_context ; Any hints created for this wizard will be placed in this |
||||
; context. |
||||
; (default: endpoint/context) |
||||
|
||||
;hint_exten ; If specified, a PJSIP/<wizard_id> hint will be created |
||||
; for this extension in 'hint_context'. |
||||
; context. |
||||
; (default: none) |
||||
|
||||
;hint_application ; If specified, an extension will be placed in 'hint_context' |
||||
; at priority 1 that calls this application. Could be any |
||||
; valid dialplan expression like |
||||
; "Gosub(stdexten,${EXTEN},1(${HINT}))" |
||||
; (default: "Dial(${HINT})") |
||||
|
||||
;endpoint/<param> ; Any parameters to be passed directly to and validated |
||||
;aor/<param> ; by their respective objects. |
||||
;inbound_auth/<param> |
||||
;outbound_auth/<param> |
||||
;identify/<param> |
||||
;registration/<param> |
||||
;phoneprov/<param> |
||||
|
||||
;type= ; Must be of type wizard (default: "") |
@ -0,0 +1,3 @@
|
||||
[general] |
||||
|
||||
maxretries = 2 ;How many chances the caller has to enter their number |
@ -0,0 +1,154 @@
|
||||
# Asterisk SSL configuration |
||||
# |
||||
# OpenSSL configuration file for custom Certificate Authority. Use a |
||||
# different openssl.cnf file to generate certificate signing requests; |
||||
# this one is for use only in Certificate Authority operations (csr -> |
||||
# cert, cert revocation, revocation list generation). |
||||
# |
||||
# Be sure to customize this file prior to use, e.g. the commonName and |
||||
# other options under the root_ca_distinguished_name section. |
||||
|
||||
HOME = . |
||||
RANDFILE = $ENV::HOME/.rnd |
||||
|
||||
[ ca ] |
||||
default_ca = MyAsteriskCA |
||||
|
||||
[ MyAsteriskCA ] |
||||
dir = . |
||||
# unsed at present, and my limited certs can be kept in current dir |
||||
#certs = $dir/certs |
||||
new_certs_dir = $dir/newcerts |
||||
crl_dir = $dir/crl |
||||
database = $dir/index |
||||
|
||||
certificate = $dir/ca-cert.pem |
||||
serial = $dir/serial |
||||
crl = $dir/ca-crl.pem |
||||
private_key = $dir/private/ca-key.pem |
||||
RANDFILE = $dir/private/.rand |
||||
|
||||
x509_extensions = usr_cert |
||||
|
||||
# Comment out the following two lines for the "traditional" |
||||
# (and highly broken) format. |
||||
name_opt = ca_default |
||||
cert_opt = ca_default |
||||
|
||||
default_crl_days= 30 |
||||
default_days = 7300 |
||||
# if need to be compatible with older software, use weaker md5 |
||||
default_md = sha1 |
||||
# MSIE may need following set to yes? |
||||
preserve = no |
||||
|
||||
# A few difference way of specifying how similar the request should look |
||||
# For type CA, the listed attributes must be the same, and the optional |
||||
# and supplied fields are just that :-) |
||||
policy = policy_match |
||||
|
||||
# For the CA policy |
||||
[ policy_match ] |
||||
countryName = US |
||||
stateOrProvinceName = CA |
||||
organizationName = XYZ |
||||
organizationalUnitName = XYZ |
||||
commonName = asterisk |
||||
emailAddress = root@localhost |
||||
|
||||
# For the 'anything' policy |
||||
# At this point in time, you must list all acceptable 'object' |
||||
# types. |
||||
[ policy_anything ] |
||||
countryName = optional |
||||
stateOrProvinceName = optional |
||||
localityName = optional |
||||
organizationName = optional |
||||
organizationalUnitName = optional |
||||
commonName = supplied |
||||
emailAddress = optional |
||||
|
||||
#################################################################### |
||||
[ req ] |
||||
default_bits = 2048 |
||||
default_keyfile = ./private/ca-key.pem |
||||
default_md = sha1 |
||||
|
||||
prompt = no |
||||
distinguished_name = root_ca_distinguished_name |
||||
|
||||
x509_extensions = v3_ca |
||||
|
||||
# Passwords for private keys if not present they will be prompted for |
||||
# input_password = secret |
||||
# output_password = secret |
||||
|
||||
# This sets a mask for permitted string types. There are several options. |
||||
# default: PrintableString, T61String, BMPString. |
||||
# pkix : PrintableString, BMPString. |
||||
# utf8only: only UTF8Strings. |
||||
# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). |
||||
# MASK:XXXX a literal mask value. |
||||
# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings |
||||
# so use this option with caution! |
||||
string_mask = nombstr |
||||
|
||||
# req_extensions = v3_req |
||||
|
||||
[ root_ca_distinguished_name ] |
||||
commonName = NoSuchCA CA |
||||
countryName = US |
||||
stateOrProvinceName = California |
||||
localityName = San Mateo |
||||
0.organizationName = domain.net |
||||
emailAddress = nobody@localhost |
||||
|
||||
[ usr_cert ] |
||||
|
||||
# These extensions are added when 'ca' signs a request. |
||||
|
||||
# This goes against PKIX guidelines but some CAs do it and some software |
||||
# requires this to avoid interpreting an end user certificate as a CA. |
||||
|
||||
basicConstraints=CA:FALSE |
||||
|
||||
# PKIX recommendations harmless if included in all certificates. |
||||
subjectKeyIdentifier=hash |
||||
authorityKeyIdentifier=keyid,issuer:always |
||||
|
||||
nsCaRevocationUrl = https://www.sial.org/ca-crl.pem |
||||
#nsBaseUrl |
||||
#nsRevocationUrl |
||||
#nsRenewalUrl |
||||
#nsCaPolicyUrl |
||||
#nsSslServerName |
||||
|
||||
[ v3_req ] |
||||
|
||||
# Extensions to add to a certificate request |
||||
|
||||
basicConstraints = CA:FALSE |
||||
keyUsage = nonRepudiation, digitalSignature, keyEncipherment |
||||
|
||||
[ v3_ca ] |
||||
|
||||
|
||||
# Extensions for a typical CA |
||||
|
||||
# PKIX recommendation. |
||||
subjectKeyIdentifier=hash |
||||
authorityKeyIdentifier=keyid:always,issuer:always |
||||
|
||||
# This is what PKIX recommends but some broken software chokes on critical |
||||
# extensions. |
||||
#basicConstraints = critical,CA:true |
||||
# So we do this instead. |
||||
basicConstraints = CA:true |
||||
|
||||
[ crl_ext ] |
||||
|
||||
# CRL extensions. |
||||
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. |
||||
|
||||
# issuerAltName=issuer:copy |
||||
authorityKeyIdentifier=keyid:always,issuer:always |
@ -0,0 +1,30 @@
|
||||
|
||||
[general] |
||||
|
||||
; Look for queue rules in the queue_rules database table through RealTime. Note |
||||
; that this option is not strictly "RealTime", in the sense that the queue |
||||
; rules are only loaded and parsed during module load/reload. Queue rules |
||||
; must have a unique rule name and support relative min/max penalties. |
||||
; |
||||
; realtime_rules = yes |
||||
; |
||||
|
||||
; It is possible to change the value of the QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY |
||||
; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for |
||||
; a call to be opened to more members or potentially a different set of members. |
||||
; The advantage to changing members this way as opposed to inserting the caller into a |
||||
; different queue with more members or reinserting the caller into the same queue with a different |
||||
; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue. |
||||
; |
||||
; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for |
||||
; the queue that were defined at the time the caller entered the queue. If an update to the rules is |
||||
; made during the caller's stay in the queue, these will not be reflected for that caller. |
||||
; |
||||
; The syntax for these rules is |
||||
; penaltychange => <number of seconds into the call>,<absolute or relative change to QUEUE_MAX_PENALTY>[,absolute or relative change to QUEUE_MIN_PENALTY] |
||||
; |
||||
; Example: |
||||
; [myrule] |
||||
; penaltychange => 30,+3 ; 30 seconds into the call increase the QUEUE_MAX_PENALTY by 3, no change to QUEUE_MIN_PENALTY |
||||
; penaltychange => 60,10,5 ; 60 seconds into the call increase the QUEUE_MAX_PENALTY to 10 and increase the QUEUE_MIN_PENALTY to 5 |
||||
; penaltychange => 75,,7 ; 75 seconds into the call keep the QUEUE_MAX_PENALTY the same and increase the QUEUE_MIN_PENALTY to 7 |
@ -0,0 +1,43 @@
|
||||
; |
||||
; Sample configuration for res_config_mysql.c |
||||
; |
||||
; The value of dbhost may be either a hostname or an IP address. |
||||
; If dbhost is commented out or the string "localhost", a connection |
||||
; to the local host is assumed and dbsock is used instead of TCP/IP |
||||
; to connect to the server. If no dbcharset is specified, the connection |
||||
; is made with no extra charset configurations sent to MySQL, leaving all |
||||
; configured MySQL charset options and defaults untouched. |
||||
; |
||||
; Multiple database contexts may be configured, with the caveat that |
||||
; all context names should be unique and must not contain the slash ('/') |
||||
; character. If you wish to separate reads from writes in your database |
||||
; configuration, you specify the database (NOT HERE, in other files) |
||||
; separated by a slash, read database first. If your database |
||||
; specification does not contain a slash, the implication is that reads |
||||
; and writes should be performed to the same database. |
||||
; |
||||
; For example, in extconfig.conf, you could specify a line like: |
||||
; sippeers => mysql,readhost.asterisk/writehost.asterisk,sippeers |
||||
; and then define the contexts [readhost.asterisk] and [writehost.asterisk] |
||||
; below. |
||||
; |
||||
; The requirements parameter is available only in Asterisk 1.6.1 and |
||||
; later and must be present in all contexts. It specifies the behavior |
||||
; when a column name is required by the system. The default behavior is |
||||
; "warn" and simply sends a warning to the logger that the column does |
||||
; not exist (or is of the wrong type or precision). The other two |
||||
; possibilities are "createclose", which adds the column with the right |
||||
; type and length, and "createchar", which adds the column as a char |
||||
; type, with the appropriate length to accept the data. Note that with |
||||
; the MySQL driver, both "createclose" and "createchar" will, on occasion, |
||||
; widen a table column width to meet the requirements specified. |
||||
; |
||||
[general] |
||||
;dbhost = 127.0.0.1 |
||||
;dbname = asterisk |
||||
;dbuser = myuser |
||||
;dbpass = mypass |
||||
;dbport = 3306 |
||||
;dbsock = /tmp/mysql.sock |
||||
;dbcharset = latin1 |
||||
;requirements=warn ; or createclose or createchar |
@ -0,0 +1,11 @@
|
||||
[general] |
||||
|
||||
; The database file. |
||||
dbfile => /var/lib/asterisk/sqlite.db |
||||
|
||||
; Both config_table and cdr_table are optional. If config_table is omitted, |
||||
; you must specify it in extconfig.conf. If it is both provided here and in |
||||
; extconfig.conf, the value given here is used. If cdr_table is omitted, CDR |
||||
; support is simply disabled. |
||||
config_table => ast_config |
||||
; cdr_table => ast_cdr |
@ -0,0 +1,30 @@
|
||||
; Define a realtime database name to use in extconfig.conf |
||||
; |
||||
;[asterisk] |
||||
;dbfile => /var/lib/asterisk/realtime.sqlite3 |
||||
; |
||||
; debug - Turn on debugging information |
||||
;debug=yes |
||||
; |
||||
; requirements - At startup, each realtime family will make requirements |
||||
; on the backend. There are several strategies for handling requirements: |
||||
; warn - Warn if the required column does not exist. |
||||
; createclose - Create columns as close to the requirements as possible. |
||||
; createchar - Create char columns only |
||||
; |
||||
;requirements=warn |
||||
; |
||||
; batch - SQLite 3 write performance can be greatly improved by wrapping |
||||
; multiple writes in transactions. This option specifies the duration in |
||||
; milliseconds of auto-generated transactions. Any changes made during an |
||||
; unfinished transaction will be immediately available to the same database |
||||
; connection, but any external connections could see a delay up to the value |
||||
; of this setting. It is also possible that if asterisk crashes, any changes |
||||
; made during this time could be lost. Due to the nearly 100x performance |
||||
; benefit, the default is 100 ms. Set to 0 to disable batching. |
||||
; |
||||
; PLEASE NOTE: If you need to write to the database from another connection |
||||
; you will need to set batch=0 as the transactions will cause the database |
||||
; to lock for writing. |
||||
; |
||||
;batch=1000 |
@ -0,0 +1,31 @@
|
||||
; |
||||
; Sample configuration file for res_corosync. |
||||
; |
||||
; This module allows events to be shared amongst a local cluster of |
||||
; Asterisk servers. Specifically, the types of events that may be |
||||
; shared include: |
||||
; |
||||
; - Device State (for shared presence information) |
||||
; |
||||
; - Message Waiting Indication, or MWI (to allow Voicemail to live on |
||||
; a server that is different from where the phones are registered) |
||||
; |
||||
; For more information about Corosync, see: http://www.corosync.org/ |
||||
; |
||||
|
||||
[general] |
||||
|
||||
; |
||||
; Publish Message Waiting Indication (MWI) events from this server to the |
||||
; cluster. |
||||
;publish_event = mwi |
||||
; |
||||
; Subscribe to MWI events from the cluster. |
||||
;subscribe_event = mwi |
||||
; |
||||
; Publish Device State (presence) events from this server to the cluster. |
||||
;publish_event = device_state |
||||
; |
||||
; Subscribe to Device State (presence) events from the cluster. |
||||
;subscribe_event = device_state |
||||
; |
@ -0,0 +1,8 @@
|
||||
; |
||||
; CURLOPT global settings (mostly set for realtime) |
||||
; |
||||
[globals] |
||||
;proxy=myproxy.example.com |
||||
proxytype=http |
||||
proxyport=8001 |
||||
;proxyuserpwd=asterisk:asteriskrocks |
@ -0,0 +1,32 @@
|
||||
; Generic Fax Application configuration |
||||
|
||||
[general] |
||||
; Maximum Transmission Rate |
||||
; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } |
||||
; Set this value to the maximum desired transfer rate. Default: 14400 |
||||
;maxrate=14400 |
||||
|
||||
; Minimum Transmission Rate |
||||
; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } |
||||
; Set this value to the minimum desired transfer rate. Default: 4800 |
||||
;minrate=4800 |
||||
|
||||
; Send Progress/Status events to manager session |
||||
; Manager events with 'call' class permissions will receive events indicating the |
||||
; steps to initiate a fax session. Fax completion events are always sent to manager |
||||
; sessions with 'call' class permissions, regardless of the value of this option. |
||||
; Default: no |
||||
statusevents=yes |
||||
|
||||
; modem capabilities |
||||
; Possible values are { v17 | v27 | v29 } |
||||
; Set this value to modify the default modem options. Default: v17,v27,v29 |
||||
;modems=v17,v27,v29 |
||||
|
||||
; Enable/disable T.30 ECM (error correction mode) by default. |
||||
; Default: Enabled |
||||
;ecm=yes |
||||
|
||||
; T.38 Negotiation Timeout in milliseconds |
||||
; Default: 5000 |
||||
t38timeout=5000 |
@ -0,0 +1,198 @@
|
||||
; |
||||
; Configuration file for res_config_ldap |
||||
; |
||||
|
||||
; Realtime configuration |
||||
; ---------------------- |
||||
; In order to use this module, you start |
||||
; in extconfig.conf with a configuration like this: |
||||
; |
||||
; sippeers = ldap,"dc=myDomain,dc=myDomainExt",sip |
||||
; extensions = ldap,"dc=myDomain,dc=myDomainExt",extensions |
||||
; sip.conf = ldap,"dc=myDomain,dc=myDomainExt",config |
||||
; |
||||
; In the case of LDAP the last keyword in each line above specifies |
||||
; a section in this file. |
||||
; |
||||
; LDAP schema and ldif files can be located in contrib/scripts. |
||||
|
||||
; TLS support |
||||
; ----------- |
||||
; Note that you can configure an ldaps: url here to get TLS support. |
||||
; Detailed configuration of certificates and supported CAs is done in your |
||||
; ldap.conf file for OpenLDAP clients on your system. |
||||
; This requires that you have OpenLDAP libraries compiled with TLS support |
||||
|
||||
; ********************************************************************************* |
||||
; NOTE: res_ldap.conf should be chmod 600 because it contains the plain-text LDAP |
||||
; password to an account with WRITE access to the asterisk configuration. |
||||
; ********************************************************************************* |
||||
|
||||
[_general] |
||||
; |
||||
; Specify one of either host and port OR url. URL is preferred, as you can |
||||
; use more options. |
||||
;host=192.168.1.1 ; LDAP host |
||||
;port=389 |
||||
;url=ldap://ldap3.mydomain.com:3890 |
||||
;protocol=3 ; Version of the LDAP protocol to use; default is 3. |
||||
;basedn=dc=example,dc=tld ; Base DN |
||||
;user=cn=asterisk,dc=example,dc=tld ; Bind DN |
||||
;pass=MyPassword ; Bind password |
||||
|
||||
; Configuration Table |
||||
[config] |
||||
; |
||||
; additionalFilter - This specifies an additional set of criteria to be used |
||||
; when querying the LDAP server. |
||||
; |
||||
additionalFilter=(objectClass=AstConfig) |
||||
; |
||||
; Attributes mapping (asterisk variable name = ldap attribute name) |
||||
; When Asterisk requests the variable by the name of the value on the left, |
||||
; this module will look up the attribute listed on the right. |
||||
; |
||||
filename = AstConfigFilename |
||||
category = AstConfigCategory |
||||
variable_name = AstConfigVariableName |
||||
variable_value = AstConfigVariableValue |
||||
cat_metric = AstConfigCategoryMetric |
||||
commented = AstConfigCommented |
||||
|
||||
; |
||||
; Extensions Table |
||||
; |
||||
[extensions] |
||||
context = AstExtensionContext |
||||
exten = AstExtensionExten |
||||
priority = AstExtensionPriority |
||||
app = AstExtensionApplication |
||||
appdata = AstExtensionApplicationData |
||||
additionalFilter=(objectClass=AstExtension) |
||||
|
||||
; |
||||
; Sip Users Table |
||||
; |
||||
[sip] |
||||
name = cn ; We use the "cn" as the default value for name on the line above |
||||
; because objectClass=AsteriskSIPUser does not include a uid as an allowed field |
||||
; If your entry combines other objectClasses and uid is available, you may |
||||
; prefer to change the line to be name = uid, especially if your LDAP entries |
||||
; contain spaces in the cn field. |
||||
; You may also find it appropriate to use something completely different. |
||||
; This is possible by changing the line above to name = AstAccountName (or whatever you |
||||
; prefer). |
||||
; |
||||
amaflags = AstAccountAMAFlags |
||||
callgroup = AstAccountCallGroup |
||||
callerid = AstAccountCallerID |
||||
directmedia = AstAccountDirectMedia |
||||
context = AstAccountContext |
||||
dtmfmode = AstAccountDTMFMode |
||||
fromuser = AstAccountFromUser |
||||
fromdomain = AstAccountFromDomain |
||||
fullcontact = AstAccountFullContact |
||||
fullcontact = gecos |
||||
host = AstAccountHost |
||||
insecure = AstAccountInsecure |
||||
mailbox = AstAccountMailbox |
||||
md5secret = AstAccountRealmedPassword ; Must be an MD5 hash. Field value can start with |
||||
; {md5} but it is not required. |
||||
; Generate the password via the md5sum command, e.g. |
||||
; echo "my_password" | md5sum |
||||
nat = AstAccountNAT |
||||
deny = AstAccountDeny |
||||
permit = AstAccountPermit |
||||
pickupgroup = AstAccountPickupGroup |
||||
port = AstAccountPort |
||||
qualify = AstAccountQualify |
||||
restrictcid = AstAccountRestrictCID |
||||
rtptimeout = AstAccountRTPTimeout |
||||
rtpholdtimeout = AstAccountRTPHoldTimeout |
||||
type = AstAccountType |
||||
disallow = AstAccountDisallowedCodec |
||||
allow = AstAccountAllowedCodec |
||||
MusicOnHold = AstAccountMusicOnHold |
||||
regseconds = AstAccountExpirationTimestamp |
||||
regcontext = AstAccountRegistrationContext |
||||
regexten = AstAccountRegistrationExten |
||||
CanCallForward = AstAccountCanCallForward |
||||
ipaddr = AstAccountIPAddress |
||||
defaultuser = AstAccountDefaultUser |
||||
regserver = AstAccountRegistrationServer |
||||
lastms = AstAccountLastQualifyMilliseconds |
||||
supportpath = AstAccountPathSupport |
||||
additionalFilter=(objectClass=AsteriskSIPUser) |
||||
|
||||
; |
||||
; IAX Users Table |
||||
; |
||||
[iax] |
||||
amaflags = AstAccountAMAFlags |
||||
callerid = AstAccountCallerID |
||||
context = AstAccountContext |
||||
fullcontact = AstAccountFullContact |
||||
fullcontact = gecos |
||||
host = AstAccountHost |
||||
mailbox = AstAccountMailbox |
||||
md5secret = AstAccountRealmedPassword ; Must be an MD5 hash. Field value can start with |
||||
; {md5} but it is not required. |
||||
; Generate the password via the md5sum command, e.g. |
||||
; echo "my_password" | md5sum |
||||
deny = AstAccountDeny |
||||
permit = AstAccountPermit |
||||
port = AstAccountPort |
||||
qualify = AstAccountQualify |
||||
type = AstAccountType |
||||
disallow = AstAccountDisallowedCodec |
||||
allow = AstAccountAllowedCodec |
||||
regseconds = AstAccountExpirationTimestamp |
||||
regcontext = AstAccountRegistrationContext |
||||
regexten = AstAccountRegistrationExten |
||||
notransfer = AstAccountNoTransfer |
||||
lastms = AstAccountLastQualifyMilliseconds |
||||
additionalFilter=(objectClass=AstAccountIAX) |
||||
|
||||
; |
||||
; A Test Family |
||||
; |
||||
[testfamily] |
||||
MyUSERID = uid |
||||
additionalFilter=(objectClass=*) |
||||
|
||||
[accounts] |
||||
amaflags = AstAccountAMAFlags |
||||
callgroup = AstAccountCallGroup |
||||
callerid = AstAccountCallerID |
||||
directmedia = AstAccountDirectMedia |
||||
context = AstAccountContext |
||||
dtmfmode = AstAccountDTMFMode |
||||
fromuser = AstAccountFromUser |
||||
fromdomain = AstAccountFromDomain |
||||
fullcontact = AstAccountFullContact |
||||
fullcontact = gecos |
||||
host = AstAccountHost |
||||
insecure = AstAccountInsecure |
||||
mailbox = AstAccountMailbox |
||||
md5secret = AstAccountRealmedPassword ; Must be an MD5 hash. Field value can start with |
||||
; {md5} but it is not required. |
||||
; Generate the password via the md5sum command, e.g. |
||||
; echo "my_password" | md5sum |
||||
nat = AstAccountNAT |
||||
deny = AstAccountDeny |
||||
permit = AstAccountPermit |
||||
pickupgroup = AstAccountPickupGroup |
||||
port = AstAccountPort |
||||
qualify = AstAccountQualify |
||||
restrictcid = AstAccountRestrictCID |
||||
rtptimeout = AstAccountRTPTimeout |
||||
rtpholdtimeout = AstAccountRTPHoldTimeout |
||||
type = AstAccountType |
||||
disallow = AstAccountDisallowedCodec |
||||
allow = AstAccountAllowedCodec |
||||
MusicOnHold = AstAccountMusicOnHold |
||||
regseconds = AstAccountExpirationTimestamp |
||||
regcontext = AstAccountRegistrationContext |
||||
regexten = AstAccountRegistrationExten |
||||
CanCallForward = AstAccountCanCallForward |
||||
additionalFilter=(objectClass=AstAccount) |
@ -0,0 +1,15 @@
|
||||
; |
||||
; Sample configuration for res_config_mysql.c |
||||
; |
||||
; The value of dbhost may be either a hostname or an IP address. |
||||
; If dbhost is commented out or the string "localhost", a connection |
||||
; to the local host is assumed and dbsock is used instead of TCP/IP |
||||
; to connect to the server. |
||||
; |
||||
[general] |
||||
;dbhost = 127.0.0.1 |
||||
;dbname = asterisk |
||||
;dbuser = myuser |
||||
;dbpass = mypass |
||||
;dbport = 3306 |
||||
;dbsock = /tmp/mysql.sock |
@ -0,0 +1,111 @@
|
||||
;;; odbc setup file |
||||
|
||||
; ENV is a global set of environmental variables that will get set. |
||||
; Note that all environmental variables can be seen by all connections, |
||||
; so you can't have different values for different connections. |
||||
[ENV] |
||||
;INFORMIXSERVER => my_special_database |
||||
;INFORMIXDIR => /opt/informix |
||||
;ORACLE_HOME => /home/oracle |
||||
|
||||
; All other sections are arbitrary names for database connections. |
||||
|
||||
; |
||||
; The context name is what will be used in other configuration files, such |
||||
; as extconfig.conf and func_odbc.conf, to reference this connection. |
||||
[asterisk] |
||||
; |
||||
; Permit disabling sections without needing to comment them out. |
||||
; If not specified, it is assumed the section is enabled. |
||||
enabled => no |
||||
; |
||||
; This value should match an entry in /etc/odbc.ini |
||||
; (or /usr/local/etc/odbc.ini, on FreeBSD and similar systems). |
||||
dsn => asterisk |
||||
; |
||||
; Username for connecting to the database. The user defaults to the context name if unspecified. |
||||
;username => myuser |
||||
; |
||||
; Password for authenticating the user to the database. The default |
||||
; password is blank. |
||||
;password => mypass |
||||
; |
||||
; Build a connection at startup? |
||||
pre-connect => yes |
||||
; |
||||
; What should we execute to ensure that our connection is still alive? The |
||||
; statement should return a non-zero value in the first field of its first |
||||
; record. The default is "select 1". |
||||
;sanitysql => select 1 |
||||
; |
||||
; The maximum number of connections to have open at any given time. |
||||
; This defaults to 1 and it is highly recommended to only set this higher |
||||
; if using a version of UnixODBC greater than 2.3.1. |
||||
;max_connections => 20 |
||||
; |
||||
; When the channel is destroyed, should any uncommitted open transactions |
||||
; automatically be committed? |
||||
;forcecommit => no |
||||
; |
||||
; How should we perceive data in other transactions within the database? |
||||
; Possible values are read_uncommitted, read_committed, repeatable_read, |
||||
; and serializable. The default is read_committed. |
||||
;isolation => repeatable_read |
||||
; |
||||
; Is the backslash a native escape character? The default is yes, but for |
||||
; MS SQL Server, the answer is no. |
||||
;backslash_is_escape => yes |
||||
; |
||||
; How long (in seconds) should we attempt to connect before considering the |
||||
; connection dead? The default is 10 seconds, but you may wish to reduce it, |
||||
; to increase responsiveness. |
||||
;connect_timeout => 10 |
||||
; |
||||
; When a connection fails, how long (in seconds) should we cache that |
||||
; information before we attempt another connection? This increases |
||||
; responsiveness, when a database resource is not working. |
||||
;negative_connection_cache => 300 |
||||
|
||||
[mysql2] |
||||
enabled => no |
||||
dsn => MySQL-asterisk |
||||
username => myuser |
||||
password => mypass |
||||
pre-connect => yes |
||||
|
||||
; Certain servers, such as MS SQL Server and Sybase use the TDS protocol, which |
||||
; limits the number of active queries per connection to 1. |
||||
[sqlserver] |
||||
enabled => no |
||||
dsn => mickeysoft |
||||
max_connections => 5 |
||||
username => oscar |
||||
password => thegrouch |
||||
pre-connect => yes |
||||
sanitysql => select count(*) from systables |
||||
; forcecommit => no ; Default to committing uncommitted transactions? |
||||
; Note: this is NOT the autocommit flag; this |
||||
; determines the end result of transactions which |
||||
; are not explicitly committed or rolled back. By |
||||
; default, such transactions are rolled back if the |
||||
; call ends without an explicit commit. |
||||
; isolation => read_committed ; Isolation level; supported levels are: |
||||
; read_uncommitted, read_committed, repeatable_read, |
||||
; serializable. Note that not all databases support |
||||
; all isolation levels (e.g. Postgres only supports |
||||
; repeatable_read and serializable). See database |
||||
; documentation for further information. |
||||
; |
||||
; Many databases have a default of '\' to escape special characters. MS SQL |
||||
; Server does not. |
||||
backslash_is_escape => no |
||||
|
||||
; |
||||
; If you are having problems with concurrency, please read this note from the |
||||
; mailing lists, regarding UnixODBC: |
||||
; |
||||
; http://lists.digium.com/pipermail/asterisk-dev/2009-February/036539.html |
||||
; |
||||
; In summary, try setting "Threading=2" in the relevant section within your |
||||
; odbcinst.ini. |
||||
; |
@ -0,0 +1,30 @@
|
||||
; |
||||
; Sample configuration for res_config_pgsql |
||||
; |
||||
; The value of dbhost may be either a hostname or an IP address. |
||||
; If dbhost is commented out or the string "localhost", a connection |
||||
; to the local host is assumed and dbsock is used instead of TCP/IP |
||||
; to connect to the server. |
||||
; |
||||
[general] |
||||
dbhost=127.0.0.1 |
||||
dbport=5432 |
||||
dbname=asterisk |
||||
dbuser=asterisk |
||||
dbpass=password |
||||
;dbappname=asterisk ; Postgres application_name support (optional). Whitespace not allowed. |
||||
; |
||||
; dbsock is specified as the directory where the socket file may be found. The |
||||
; actual socket is constructed as a combination of dbsock and dbport. For |
||||
; example, the values of '/tmp' and '5432', respectively, will specify a socket |
||||
; file of '/tmp/.s.PGSQL.5432'. |
||||
; |
||||
;dbsock=/tmp |
||||
; |
||||
; requirements - At startup, each realtime family will make requirements |
||||
; on the backend. There are several strategies for handling requirements: |
||||
; warn - Warn if the required column does not exist. |
||||
; createclose - Create columns as close to the requirements as possible. |
||||
; createchar - Create char columns only |
||||
; |
||||
requirements=warn |
@ -0,0 +1,32 @@
|
||||
;; Sample res_pktccops.conf |
||||
; |
||||
;[general] |
||||
;gateinfoperiod => 60 ; default 60s |
||||
;gatetimeout = 150 ; default 150 |
||||
;t1 => 250 ; default 250s |
||||
;t7 => 200 ; default 200s |
||||
;t8 => 300 ; default 300s |
||||
;keepalive => 60 ; default 60s |
||||
; |
||||
;[teszt] |
||||
;host => 192.168.0.24 |
||||
;pool => 10.0.1.0 10.0.1.255 |
||||
;pool => 10.0.3.0 10.0.3.255 |
||||
;pool => 10.0.7.0 10.0.8.255 |
||||
;pool => 10.0.10.0 10.0.11.255 |
||||
; |
||||
;[general] |
||||
;gateinfoperiod => 60 ; default 60s |
||||
;gatetimeout = 150 ; default 150 |
||||
;t1 => 250 ; default 250s |
||||
;t7 => 200 ; default 200s |
||||
;t8 => 300 ; default 300s |
||||
;keepalive => 60 ; default 60s |
||||
; |
||||
;[test] |
||||
;host => 192.168.0.24 |
||||
;pool => 10.0.1.0 10.0.1.255 |
||||
;pool => 10.0.3.0 10.0.3.255 |
||||
;pool => 10.0.7.0 10.0.8.255 |
||||
;pool => 10.0.10.0 10.0.11.255 |
||||
; |
@ -0,0 +1,22 @@
|
||||
; |
||||
; Configuration file for res_snmp |
||||
; -------------------------------- |
||||
; |
||||
; Res_snmp can run as a subagent or standalone SNMP agent. The standalone snmp |
||||
; agent is based on net-snmp and will read a configuration file called |
||||
; asterisk.conf in the net-snmp configuration file path, starting with |
||||
; /etc/snmp on many systems. |
||||
; |
||||
; If you use the subagent model, you need to enable agentx in snmpd.conf |
||||
; Note that you can only run one Asterisk on the system in this case. |
||||
; |
||||
; See https://wiki.asterisk.org/wiki/display/AST/Simple+Network+Management+Protocol+(SNMP)+Support |
||||
; to get more information about |
||||
; snmp support in Asterisk |
||||
|
||||
[general] |
||||
; We run as a subagent per default -- to run as a full agent |
||||
; we must run as root (to be able to bind to port 161) |
||||
;subagent = yes |
||||
; SNMP must be explicitly enabled to be active |
||||
;enabled = yes |
@ -0,0 +1,27 @@
|
||||
; |
||||
; Configuration file for the res_stun_monitor module |
||||
; |
||||
; The res_stun_monitor module sends STUN requests to a configured STUN server |
||||
; periodically. If the monitor detects a change in the external IP address or port |
||||
; provided by the STUN server an event is sent out internally within Asterisk |
||||
; to alert all listeners to that event of the change. |
||||
|
||||
; The current default listeners for the network change event include chan_sip |
||||
; and chan_iax. Both of these channel drivers by default react to this event |
||||
; by renewing all outbound registrations. This allows the endpoints Asterisk |
||||
; is registering with to become aware of the address change and know the new |
||||
; location. |
||||
; |
||||
[general] |
||||
; |
||||
; ---- STUN Server configuration --- |
||||
; Setting the 'stunaddr' option to a valid address enables the STUN monitor. |
||||
; |
||||
;stunaddr = mystunserver.com ; Address of the STUN server to query. |
||||
; Valid form: |
||||
; [(hostname | IP-address) [':' port]] |
||||
; The port defaults to the standard STUN port (3478). |
||||
; Set to an empty value to disable STUN monitoring. |
||||
; Default is disabled. |
||||
;stunrefresh = 30 ; Number of seconds between STUN refreshes. |
||||
; Default is 30. |
@ -0,0 +1,383 @@
|
||||
; |
||||
; language configuration |
||||
; |
||||
|
||||
[general] |
||||
mode=old ; method for playing numbers and dates |
||||
; old - using asterisk core function |
||||
; new - using this configuration file |
||||
|
||||
; The new language routines produce strings of the form |
||||
; prefix:[format:]data |
||||
; that are matched against the rules in this file to produce |
||||
; an output. |
||||
; |
||||
; The data is generally the string to be spelled (either a number, |
||||
; an ascii string or a date/time in the format specified below). |
||||
; It is available, in the right hand side of a rule, as variable ${SAY}. |
||||
; |
||||
; The format is optional and normally used only for date/time. |
||||
; The prefix is used to select the pronunciation - standard |
||||
; prefixes are |
||||
; num used for numbers |
||||
; enum used for enumerations |
||||
; date for dates |
||||
; time for times |
||||
; datetime for dates and times |
||||
; char for character strings |
||||
; phonetic for phonetic strings |
||||
; digit for digit strings |
||||
; |
||||
; but others can be used at will. |
||||
; |
||||
; Processing occurs as follows: |
||||
; If the format is empty, or there is no format, the entire |
||||
; string is matched against one of the pattern on the left hand side. |
||||
; On the first match, the various comma-separated components on the right |
||||
; hand side are pronounced, as follows: |
||||
; + a component starting with a prefix: (i.e. with a ':' in it) |
||||
; is re-processed according to these rules; |
||||
; + a component without a ':' in it is considered a filename and |
||||
; the corresponding file is played. |
||||
; |
||||
; If the format is non-empty, the format is split into its components |
||||
; (individual characters, or filenames in single quotes), and then |
||||
; filenames are played, whereas single characters are used to |
||||
; generate a new string format:pat:data to be processed. |
||||
; |
||||
; DATES/AND TIMES assume that the date info is available in |
||||
; the form YYYYMMDDHHmm.ss-dow-doy |
||||
; with 4 digits for the year, 2 for month, day, hour, minutes, seconds, |
||||
; one digit for the day-of-week, and 3 digits for the day-of-year. |
||||
; |
||||
; Example: |
||||
; datetime::200604172030.00-4-102 |
||||
; (typical format for a date) is first matched against the line |
||||
; datetime::. => date:AdBY 'digits/at' IMp:${SAY} |
||||
; which is normally present with the default format for dates. |
||||
; In turn, the format string "AdBY 'digits/at' IMp" results in |
||||
; the sequence |
||||
; date:A:200604172030.00-4-102 |
||||
; date:d:200604172030.00-4-102 |
||||
; date:B:200604172030.00-4-102 |
||||
; date:Y:200604172030.00-4-102 |
||||
; digits/at |
||||
; date:I:200604172030.00-4-102 |
||||
; date:M:200604172030.00-4-102 |
||||
; date:p:200604172030.00-4-102 |
||||
; |
||||
; |
||||
; Remember, normally X Z N are special, and the search is |
||||
; case insensitive, so you must use [X] [N] [Z] .. if you |
||||
; want exact match. |
||||
|
||||
; We start with the basic rules that might be more-or-less |
||||
; language-independent |
||||
|
||||
[digit-base](!) ; base rule for digit strings |
||||
; XXX incomplete yet |
||||
_digit:[0-9] => digits/${SAY} |
||||
_digit:[-] => letters/dash |
||||
_digit:[*] => letters/star |
||||
_digit:[@] => letters/at |
||||
_digit:[0-9]. => digit:${SAY:0:1}, digit:${SAY:1} |
||||
|
||||
[date-base](!) ; base rules for dates and times |
||||
; the 'SAY' variable contains YYYYMMDDHHmm.ss-dow-doy |
||||
; these rule map the strftime attributes. |
||||
_date:Y:. => num:${SAY:0:4} ; year, 19xx |
||||
_date:[Bbh]:. => digits/mon-$[${SAY:4:2}-1] ; month name, 0..11 |
||||
_date:[Aa]:. => digits/day-${SAY:16:1} ; day of week |
||||
_date:[de]:. => num:${SAY:6:2} ; day of month |
||||
_date:[H]:. => digits/oh, num:${SAY:8:2} ; hour (oh one, oh two, ..., oh nine, ten, eleven, ..., twenty-three) |
||||
_date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12 |
||||
_date:[M]:. => num:${SAY:10:2} ; minute |
||||
; XXX too bad the '?' function does not remove the quotes |
||||
; _date:[pP]:. => digits/$[ ${SAY:10:2} > 12 ? "p-m" :: "a-m"] ; am pm |
||||
_date:[pP]:. => digits/p-m ; am pm |
||||
_date:[S]:. => num:${SAY:13:2} ; seconds |
||||
_date:[Ii]:. => num:$[${SAY:8:2} % 12] ; hour 0-12 |
||||
_date:[k]:. => num:${SAY:8:2} ; hour (one, two. three, ...,twenty three |
||||
_date:[m]:. => num:${SAY:4:2} ; month number |
||||
_date:[Q]:. => date:dby ;incompleat ; "today", "yesterday" or ABdY |
||||
_date:[q]:. => date:dby ;incompleat ; "" (for today), "yesterday", weekday, or ABdY |
||||
_date:[R]:. => date:HM${SAY} ; 24 hour time, including minute |
||||
_date:[T]:. => date:HMS${SAY} ; 24 hour, minure, seconds |
||||
|
||||
[en-base](!) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1X => digits/${SAY} |
||||
_[n]um:[2-9]0 => digits/${SAY} |
||||
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1} |
||||
_[n]um:X00 => num:${SAY:0:1}, digits/hundred |
||||
_[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1} |
||||
|
||||
_[n]um:X000 => num:${SAY:0:1}, digits/thousand |
||||
_[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} |
||||
|
||||
_[n]um:X000000 => num:${SAY:0:1}, digits/million |
||||
_[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/million |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/million |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} |
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion |
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} |
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion |
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} |
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion |
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3} |
||||
|
||||
; enumeration |
||||
_e[n]um:X => digits/h-${SAY} |
||||
_e[n]um:1X => digits/h-${SAY} |
||||
_e[n]um:[2-9]0 => digits/h-${SAY} |
||||
_e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1} |
||||
_e[n]um:[1-9]00 => num:${SAY:0:1}, digits/h-hundred |
||||
_e[n]um:[1-9]XX => num:${SAY:0:1}, digits/h-hundred, enum:${SAY:1} |
||||
|
||||
[en_GB](date-base,digit-base,en-base) |
||||
_[n]um:XXX => num:${SAY:0:1}, digits/hundred, vm-and, num:${SAY:1} |
||||
|
||||
[it](digit-base,date-base) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1X => digits/${SAY} |
||||
_[n]um:[2-9]0 => digits/${SAY} |
||||
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1} |
||||
_[n]um:100 => digits/hundred |
||||
_[n]um:1XX => digits/hundred, num:${SAY:1} |
||||
_[n]um:[2-9]00 => num:${SAY:0:1}, digits/hundred |
||||
_[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1} |
||||
|
||||
_[n]um:1000 => digits/thousand |
||||
_[n]um:1XXX => digits/thousand, num:${SAY:1} |
||||
_[n]um:[2-9]000 => num:${SAY:0:1}, digits/thousands |
||||
_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousands |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousands |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3} |
||||
|
||||
_[n]um:1000000 => num:${SAY:0:1}, digits/million |
||||
_[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} |
||||
_[n]um:[2-9]000000 => num:${SAY:0:1}, digits/millions |
||||
_[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3} |
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion |
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} |
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion |
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} |
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion |
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3} |
||||
|
||||
_datetime::. => date:AdBY 'digits/at' IMp:${SAY} |
||||
_date::. => date:AdBY:${SAY} |
||||
_time::. => date:IMp:${SAY} |
||||
|
||||
[en](en-base,date-base,digit-base) |
||||
_datetime::. => date:AdBY 'digits/at' IMp:${SAY} |
||||
_date::. => date:AdBY:${SAY} |
||||
_time::. => date:IMp:${SAY} |
||||
|
||||
[de](date-base,digit-base) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1X => digits/${SAY} |
||||
_[n]um:[2-9]0 => digits/${SAY} |
||||
_[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/${SAY:0:1}0 |
||||
_[n]um:100 => digits/ein, digits/hundred |
||||
_[n]um:1XX => digits/ein, digits/hundred, num:${SAY:1} |
||||
_[n]um:[2-9]00 => digits/${SAY:0:1}, digits/hundred |
||||
_[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1} |
||||
|
||||
_[n]um:1000 => digits/ein, digits/thousand |
||||
_[n]um:1XXX => digits/ein, digits/thousand, num:${SAY:1} |
||||
_[n]um:[2-9]000 => digits/${SAY:0:1}, digits/thousand |
||||
_[n]um:[2-9]XXX => digits/${SAY:0:1}, digits/thousand, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:1} |
||||
|
||||
_[n]um:1000000 => digits/eine, digits/million |
||||
_[n]um:1XXXXXX => digits/eine, digits/million, num:${SAY:1} |
||||
_[n]um:[2-9]000000 => digits/${SAY:0:1}, digits/millions |
||||
_[n]um:[2-9]XXXXXX => digits/${SAY:0:1}, digits/millions, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3} |
||||
|
||||
_datetime::. => date:AdBY 'digits/at' IMp:${SAY} |
||||
_date::. => date:AdBY:${SAY} |
||||
_time::. => date:IMp:${SAY} |
||||
|
||||
[hu](digit-base,date-base) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1[1-9] => digits/10en, digits/${SAY:1} |
||||
_[n]um:2[1-9] => digits/20on, digits/${SAY:1} |
||||
_[n]um:[1-9]0 => digits/${SAY} |
||||
_[n]um:[3-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1} |
||||
_[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1} |
||||
|
||||
_[n]um:X000 => num:${SAY:0:1}, digits/thousand |
||||
_[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} |
||||
|
||||
_[n]um:X000000 => num:${SAY:0:1}, digits/million |
||||
_[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/million |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/million |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} |
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion |
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} |
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion |
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} |
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion |
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3} |
||||
|
||||
_datetime::. => date:YBdA k 'ora' M 'perc':${SAY} |
||||
_date::. => date:YBdA:${SAY} |
||||
_time::. => date:k 'ora' M 'perc':${SAY} |
||||
|
||||
[fr](date-base,digit-base) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1X => digits/${SAY} |
||||
_[n]um:[2-9]0 => digits/${SAY} |
||||
_[n]um:[2-6]1 => digits/${SAY:0:1}0, vm-and, digits/${SAY:1} |
||||
_[n]um:71 => digits/60, vm-and, num:1${SAY:1} |
||||
_[n]um:7X => digits/60, num:1${SAY:1} |
||||
_[n]um:9X => digits/80, num:1${SAY:1} |
||||
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1} |
||||
_[n]um:100 => digits/hundred |
||||
_[n]um:1XX => digits/hundred, num:${SAY:1} |
||||
_[n]um:[2-9]00 => num:${SAY:0:1}, digits/hundred |
||||
_[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1} |
||||
|
||||
_[n]um:1000 => digits/thousand |
||||
_[n]um:1XXX => digits/thousand, num:${SAY:1} |
||||
_[n]um:[2-9]000 => num:${SAY:0:1}, digits/thousand |
||||
_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} |
||||
|
||||
_[n]um:1000000 => num:${SAY:0:1}, digits/million |
||||
_[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} |
||||
_[n]um:[2-9]000000 => num:${SAY:0:1}, digits/million |
||||
_[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/million |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/million |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} |
||||
|
||||
_datetime::. => date:AdBY 'digits/at' H 'hours' M 'perc':${SAY} |
||||
_date::. => date:AdBY:${SAY} |
||||
_time::. => date:H 'hours' M 'perc':${SAY} |
||||
|
||||
_pho[n]e:XXXX => num:${SAY:0:2}, num:${SAY:2:2} |
||||
_pho[n]e:0[1-9]XXXXXXXX => num:${SAY:0:1}, num:${SAY:1:1}, num:${SAY:2:2}, num:${SAY:4:2}, num:${SAY:6:2}, num:${SAY:8:2} |
||||
_pho[n]e:. => digit:${SAY} |
||||
|
||||
[es](date-base,digit-base) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1X => digits/${SAY} |
||||
_[n]um:[2-9]0 => digits/${SAY} |
||||
_[n]um:2[1-9] => digits/20-and, digits/${SAY:1} |
||||
_[n]um:[3-9][1-9] => digits/${SAY:0:1}0, vm-and, digits/${SAY:1} |
||||
_[n]um:100 => digits/hundred |
||||
_[n]um:1XX => digits/100-and, num:${SAY:1} |
||||
_[n]um:[2-9]00 => digits/${SAY} |
||||
_[n]um:[2-9]XX => digits/${SAY:0:1}00, num:${SAY:1} |
||||
|
||||
_[n]um:1000 => digits/thousand |
||||
_[n]um:1XXX => digits/thousand, num:${SAY:1} |
||||
_[n]um:[2-9]000 => num:${SAY:0:1}, digits/thousand |
||||
_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} |
||||
|
||||
_[n]um:1000000 => digits/1M, digits/million |
||||
_[n]um:1XXXXXX => digits/1M, digits/million, num:${SAY:1} |
||||
_[n]um:[2-9]000000 => num:${SAY:0:1}, digits/millions |
||||
_[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3} |
||||
_[n]um:XXXX000000 => num:${SAY:0:4}, digits/millions |
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:4}, digits/millions, num:${SAY:4} |
||||
|
||||
_datetime::. => date:Ad 'letters/d' B 'letters/d' Y 'digits/at' HMp:${SAY} |
||||
_date::. => date:Ad 'letters/d' B 'letters/d' Y:${SAY} |
||||
_time::. => date:HMp:${SAY} |
||||
|
||||
[da](date-base,digit-base) |
||||
_[n]um:0. => num:${SAY:1} |
||||
_[n]um:X => digits/${SAY} |
||||
_[n]um:1X => digits/${SAY} |
||||
_[n]um:[2-9]0 => digits/${SAY} |
||||
_[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/${SAY:0:1}0 |
||||
_[n]um:100 => digits/1N, digits/hundred |
||||
_[n]um:1XX => digits/1N, digits/hundred, num:${SAY:1} |
||||
_[n]um:[2-9]00 => digits/${SAY:0:1}, digits/hundred |
||||
_[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1} |
||||
|
||||
_[n]um:1000 => digits/1N, digits/thousand |
||||
_[n]um:1XXX => digits/1N, digits/thousand, num:${SAY:1} |
||||
_[n]um:[2-9]000 => digits/${SAY:0:1}, digits/thousand |
||||
_[n]um:[2-9]XXX => digits/${SAY:0:1}, digits/thousand, num:${SAY:1} |
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand |
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} |
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand |
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} |
||||
|
||||
_[n]um:X000000 => digits/${SAY:0:1}, digits/million |
||||
_[n]um:XXXXXXX => digits/${SAY:0:1}, digits/million, num:${SAY:1} |
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions |
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} |
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions |
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3} |
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion |
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} |
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion |
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} |
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion |
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3} |
||||
|
||||
_datetime::. => date:AdBY 'digits/at' kM:${SAY} |
||||
_date::. => date:AdBY:${SAY} |
||||
_time::. => date:HM:${SAY} |
||||
|
||||
; enumeration |
||||
_e[n]um:X => digits/h-${SAY} |
||||
_e[n]um:1X => digits/h-${SAY} |
||||
_e[n]um:[2-9]0 => digits/h-${SAY} |
||||
_e[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/h-${SAY:0:1}0 |
||||
_e[n]um:100 => digits/1N, digits/h-hundred |
||||
_e[n]um:1XX => digits/1N, digits/h-hundred, enum:${SAY:1} |
||||
_e[n]um:[2-9]00 => num:${SAY:0:1}, digits/h-hundred |
||||
_e[n]um:[2-9]XX => num:${SAY:0:1}, digits/h-hundred, enum:${SAY:1} |
@ -0,0 +1,57 @@
|
||||
; rfc3842 |
||||
; put empty "Content=>" at the end to have CRLF after last body line |
||||
|
||||
[clear-mwi] |
||||
Event=>message-summary |
||||
Content-type=>application/simple-message-summary |
||||
Content=>Messages-Waiting: no |
||||
Content=>Message-Account: sip:asterisk@127.0.0.1 |
||||
Content=>Voice-Message: 0/0 (0/0) |
||||
Content=> |
||||
|
||||
; Aastra |
||||
|
||||
[aastra-check-cfg] |
||||
Event=>check-sync |
||||
|
||||
[aastra-xml] |
||||
Event=>aastra-xml |
||||
|
||||
; Digium |
||||
|
||||
[digium-check-cfg] |
||||
Event=>check-sync |
||||
|
||||
; Linksys |
||||
|
||||
[linksys-cold-restart] |
||||
Event=>reboot_now |
||||
|
||||
[linksys-warm-restart] |
||||
Event=>restart_now |
||||
|
||||
; Polycom |
||||
|
||||
[polycom-check-cfg] |
||||
Event=>check-sync |
||||
|
||||
; Sipura |
||||
|
||||
[sipura-check-cfg] |
||||
Event=>resync |
||||
|
||||
[sipura-get-report] |
||||
Event=>report |
||||
|
||||
; snom |
||||
|
||||
[snom-check-cfg] |
||||
Event=>check-sync\;reboot=false |
||||
|
||||
[snom-reboot] |
||||
Event=>check-sync\;reboot=true |
||||
|
||||
; Cisco |
||||
|
||||
[cisco-check-cfg] |
||||
Event=>check-sync |
@ -0,0 +1,207 @@
|
||||
; |
||||
; Skinny Configuration for Asterisk |
||||
; |
||||
[general] |
||||
bindaddr=0.0.0.0 ; Address to bind to |
||||
bindport=2000 ; Port to bind to, default tcp/2000 |
||||
dateformat=M-D-Y ; M,D,Y in any order (6 chars max) |
||||
; "A" may also be used, but it must be at the end. |
||||
; Use M for month, D for day, Y for year, A for 12-hour time. |
||||
keepalive=120 |
||||
|
||||
;authtimeout = 30 ; authtimeout specifies the maximum number of seconds a |
||||
; client has to authenticate. If the client does not |
||||
; authenticate beofre this timeout expires, the client |
||||
; will be disconnected. (default: 30 seconds) |
||||
|
||||
;authlimit = 50 ; authlimit specifies the maximum number of |
||||
; unauthenticated sessions that will be allowed to |
||||
; connect at any given time. (default: 50) |
||||
|
||||
;vmexten=8500 ; Systemwide voicemailmain pilot number |
||||
; It must be in the same context as the calling |
||||
; device/line |
||||
|
||||
; If regcontext is specified, Asterisk will dynamically create and destroy a |
||||
; NoOp priority 1 extension for a given line which registers or unregisters with |
||||
; us and have a "regexten=" configuration item. |
||||
; Multiple contexts may be specified by separating them with '&'. The |
||||
; actual extension is the 'regexten' parameter of the registering line or its |
||||
; name if 'regexten' is not provided. If more than one context is provided, |
||||
; the context must be specified within regexten by appending the desired |
||||
; context after '@'. More than one regexten may be supplied if they are |
||||
; separated by '&'. Patterns may be used in regexten. |
||||
; |
||||
;regcontext=skinnyregistrations |
||||
|
||||
;allow=all ; see https://wiki.asterisk.org/wiki/display/AST/RTP+Packetization |
||||
; for framing options |
||||
;disallow= |
||||
|
||||
; The imeddialkey option allows for a key to be used to immediately dial the already |
||||
; entered number. This is useful where the dialplan includes variable length pattern |
||||
; matching. Valid options are '#' and '*'. On devices with soft buttons, a button will |
||||
; be available to immediately dial when a pattern than can be dialed has been entered. |
||||
; Default is unset, that is no immediated dial key (softbutton still exists). |
||||
; |
||||
;immeddialkey=# |
||||
|
||||
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of these parameters. |
||||
;tos=cs3 ; Sets TOS for signaling packets. |
||||
;tos_audio=ef ; Sets TOS for RTP audio packets. |
||||
;tos_video=af41 ; Sets TOS for RTP video packets. |
||||
;cos=3 ; Sets 802.1p priority for signaling packets. |
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. |
||||
;cos_video=4 ; Sets 802.1p priority for RTP video packets. |
||||
|
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
;jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a |
||||
; skinny channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The skinny channel can accept |
||||
; jitter, thus a jitterbuffer on the receive skinny side will be |
||||
; used only if it is forced and enabled. |
||||
|
||||
;jbforce = no ; Forces the use of a jitterbuffer on the receive side of a skinny |
||||
; channel. Defaults to "no". |
||||
|
||||
;jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
;jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
;jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a |
||||
; skinny channel. Two implementations are currently available |
||||
; - "fixed" (with size always equals to jbmaxsize) |
||||
; - "adaptive" (with variable size, actually the new jb of IAX2). |
||||
; Defaults to fixed. |
||||
|
||||
;jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
[lines] |
||||
; ---------------------------------- LINES SECTION -------------------------------- |
||||
; Options set under [lines] apply to all lines unless explicitly set for a particular |
||||
; device. The options that can be set under lines are specified in GENERAL LINE OPTIONS. |
||||
; These options can also be set for each individual device as well as those under SPECIFIC |
||||
; LINE OPTIONS. |
||||
; |
||||
; Each label below [lines] in [] is a new line with the specific options specified below |
||||
; it. Config stops reading new lines when one of the following is found: [general], [devices] |
||||
; or the end of skinny.conf. |
||||
; |
||||
; Where options are common to both lines and devices, the results typically take that of |
||||
; the least permission. ie if a no is set for either line or device, the call will not be |
||||
; able to use that permission |
||||
; ------------------------------- GENERAL LINE OPTIONS ----------------------------- |
||||
;earlyrtp=1 ; whether audio signalling should be provided by asterisk |
||||
; ; (earlyrtp=1) or device generated (earlyrtp=0). default=yes |
||||
;transfer=1 ; whether the device is allowed to transfer. default=yes |
||||
;context=default ; context to use for this line. |
||||
;callfwdtimeout=20000 ; ms before cfwd_noans occurs (default 20 secs) |
||||
; ------------------------------ SPECIFIC LINE OPTIONS ----------------------------- |
||||
;setvar= ; allows for the setting of chanvars. |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
;[100] |
||||
;nat=yes |
||||
;callerid="Customer Support" <810-234-1212> |
||||
; Note: app_voicemail mailboxes must be in the form of mailbox@context. |
||||
;mailbox=100 |
||||
;vmexten=8500 ; Device level voicemailmain pilot number |
||||
;regexten=100 |
||||
;context=inbound |
||||
;linelabel="Support Line" ; Displays next to the line |
||||
; button on 7940's and 7960s |
||||
;[110] |
||||
;callerid="John Chambers" <408-526-4000> |
||||
;context=did |
||||
;regexten=110 |
||||
;linelabel="John" |
||||
;mailbox=110 |
||||
|
||||
;[120] |
||||
;Nothing set, so all the defaults are used |
||||
|
||||
;[500] |
||||
;nat=yes |
||||
;callerid="George W. Bush" <202-456-1414> |
||||
;setvar=CUSTID=5678 ; Channel variable to be set for all calls from this device |
||||
;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will |
||||
; cause the given audio file to |
||||
; be played upon completion of |
||||
; an attended transfer to the |
||||
; target of the transfer. |
||||
;mailbox=500 |
||||
;callwaiting=yes |
||||
;transfer=yes |
||||
;threewaycalling=yes |
||||
;context=default |
||||
;mohinterpret=default ; This option specifies a default music on hold class to |
||||
; use when put on hold if the channel's moh class was not |
||||
; explicitly set with Set(CHANNEL(musicclass)=whatever) and |
||||
; the peer channel did not suggest a class to use. |
||||
;mohsuggest=default ; This option specifies which music on hold class to suggest to the peer channel |
||||
; when this channel places the peer on hold. It may be specified globally or on |
||||
; a per-user or per-peer basis. |
||||
|
||||
|
||||
[devices] |
||||
; --------------------------------- DEVICES SECTION ------------------------------- |
||||
; Options set under [devices] apply to all devices unless explicitly set for a particular |
||||
; device. The options that can be set under devices are specified in GENERAL DEVICE OPTIONS. |
||||
; These options can also be set for each individual device as well as those under SPECIFIC |
||||
; DEVICE OPTIONS. |
||||
; |
||||
; Each label below [devices] in [] is a new device with the specific options specified below |
||||
; it. Config stop reading new devices when one of the following is found: [general], [lines] |
||||
; or the end of skinny.conf. |
||||
; |
||||
; Where options are common to both lines and devices, the results typically take that of |
||||
; the least permission. ie if a no is set for either line or device, the call will not be |
||||
; able to use that permission |
||||
; ------------------------------ GENERAL DEVICE OPTIONS ---------------------------- |
||||
;earlyrtp=1 ; whether audio signalling should be provided by asterisk |
||||
; ; (earlyrtp=1) or device generated (earlyrtp=0). default=yes |
||||
;transfer=1 ; whether the device is allowed to transfer. default=yes |
||||
; ----------------------------- SPECIFIC DEVICE OPTIONS ---------------------------- |
||||
;device="SEPxxxxxxxxxxxx ; id of the device. Must be set. |
||||
;version=P002G204 ; firmware version to be loaded. If this version is different |
||||
; ; to the one on the device, the device will try to load this |
||||
; ; version from the tftp server. Set to device firmware version. |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
; Typical config for 12SP+ |
||||
;[florian] |
||||
;device=SEP00D0BA847E6B |
||||
;version=P002G204 ; Thanks critch |
||||
;context=did |
||||
;directmedia=yes ; Allow media to go directly between two RTP endpoints. |
||||
;line=120 ; Dial(Skinny/120@florian) |
||||
|
||||
; Service URLs attached to line buttons (eg phone directory) |
||||
; See http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services |
||||
; for intro to xml structure. |
||||
;serviceurl=Directory,http://host/file.xml |
||||
|
||||
|
||||
; Typical config for a 7910 |
||||
;[duba] ; Device name |
||||
;device=SEP0007EB463101 ; Official identifier |
||||
;version=P002F202 ; Firmware version identifier |
||||
;host=192.168.1.144 |
||||
;permit=192.168.0/24 ; Optional, used for authentication |
||||
;line=500 |
||||
|
||||
|
||||
; Typical config for a 7940 with dual 7914s |
||||
;[support] |
||||
;device=SEP0007EB463121 |
||||
;line=100 |
||||
;line=110 |
||||
;speeddial => 111,Jack Smith ; Adds a speeddial button to a device. |
||||
;speeddial => 112@hints,Bob Peterson ; When a context is specified, the speeddial watches a dialplan hint. |
||||
;addon => 7914 |
||||
;addon => 7914 |
@ -0,0 +1,150 @@
|
||||
; |
||||
; Configuration for Shared Line Appearances (SLA). |
||||
; |
||||
; See http://wiki.asterisk.org or doc/AST.pdf for more information. |
||||
; |
||||
|
||||
; ---- General Options ---------------- |
||||
[general] |
||||
|
||||
;attemptcallerid=no ; Attempt CallerID handling. The default value for this |
||||
; is "no" because CallerID handling with an SLA setup is |
||||
; known to not work properly in some situations. However, |
||||
; feel free to enable it if you would like. If you do, and |
||||
; you find problems, please do not report them. |
||||
; ------------------------------------- |
||||
|
||||
|
||||
; ******************************** |
||||
; **** Configuration Ordering **** |
||||
; ******************************** |
||||
|
||||
; Note that SLA configuration processing assumes that *all* trunk declarations are |
||||
; listed in the configuration file before any stations. |
||||
|
||||
; ******************************** |
||||
; ******************************** |
||||
|
||||
|
||||
; ---- Trunk Declarations ------------- |
||||
; |
||||
;[line1] ; Provide a name for this trunk. |
||||
|
||||
;type=trunk ; This line is what marks this entry as a trunk. |
||||
|
||||
;device=DAHDI/3 ; Map this trunk declaration to a specific device. |
||||
; NOTE: You can not just put any type of channel here. |
||||
; DAHDI channels can be directly used. IP trunks |
||||
; require some indirect configuration which is |
||||
; described in |
||||
; https://wiki.asterisk.org/wiki/display/AST/SLA+Trunk+Configuration |
||||
|
||||
;autocontext=line1 ; This supports automatic generation of the dialplan entries |
||||
; if the autocontext option is used. Each trunk should have |
||||
; a unique context name. Then, in chan_dahdi.conf, this device |
||||
; should be configured to have incoming calls go to this context. |
||||
|
||||
;ringtimeout=30 ; Set how long to allow this trunk to ring on an inbound call before hanging |
||||
; it up as an unanswered call. The value is in seconds. |
||||
|
||||
;barge=no ; If this option is set to "no", then no station will be |
||||
; allowed to join a call that is in progress. The default |
||||
; value is "yes". |
||||
|
||||
;hold=private ; This option configure hold permissions for this trunk. |
||||
; "open" - This means that any station can put this trunk |
||||
; on hold, and any station can retrieve it from |
||||
; hold. This is the default. |
||||
; "private" - This means that once a station puts the |
||||
; trunk on hold, no other station will be |
||||
; allowed to retrieve the call from hold. |
||||
|
||||
;[line2] |
||||
;type=trunk |
||||
;device=DAHDI/4 |
||||
;autocontext=line2 |
||||
|
||||
;[line3] |
||||
;type=trunk |
||||
;device=DAHDI/3 |
||||
;autocontext=line3 |
||||
|
||||
;[line4] |
||||
;type=trunk |
||||
;device=Local/disa@line4_outbound ; A Local channel in combination with the Disa |
||||
; application can be used to support IP trunks. |
||||
; See https://wiki.asterisk.org/wiki/display/AST/SLA+Trunk+Configuration |
||||
;autocontext=line4 |
||||
; -------------------------------------- |
||||
|
||||
|
||||
; ---- Station Declarations ------------ |
||||
|
||||
;[station1] ; Define a name for this station. |
||||
|
||||
;type=station ; This line indicates that this entry is a station. |
||||
|
||||
;device=SIP/station1 ; Each station must be mapped to a device. |
||||
|
||||
;autocontext=sla_stations ; This supports automatic generation of the dialplan entries if |
||||
; the autocontext option is used. All stations can use the same |
||||
; context without conflict. The device for this station should |
||||
; have its context configured to the same one listed here. |
||||
|
||||
;ringtimeout=10 ; Set a timeout for how long to allow the station to ring for an |
||||
; incoming call, in seconds. |
||||
|
||||
;ringdelay=10 ; Set a time for how long to wait before beginning to ring this station |
||||
; once there is an incoming call, in seconds. |
||||
|
||||
;hold=private ; This option configure hold permissions for this station. Note |
||||
; that if private hold is set in the trunk entry, that will override |
||||
; anything here. However, if a trunk has open hold access, but this |
||||
; station is set to private hold, then the private hold will be in |
||||
; effect. |
||||
; "open" - This means that once this station puts a call |
||||
; on hold, any other station is allowed to retrieve |
||||
; it. This is the default. |
||||
; "private" - This means that once this station puts a |
||||
; call on hold, no other station will be |
||||
; allowed to retrieve the call from hold. |
||||
|
||||
|
||||
;trunk=line1 ; Individually list all of the trunks that will appear on this station. This |
||||
; order is significant. It should be the same order as they appear on the |
||||
; phone. The order here defines the order of preference that the trunks will |
||||
; be used. |
||||
;trunk=line2 |
||||
;trunk=line3,ringdelay=5 ; A ring delay for the station can also be specified for a specific trunk. |
||||
; If a ring delay is specified both for the whole station and for a specific |
||||
; trunk on a station, the setting for the specific trunk will take priority. |
||||
; This value is in seconds. |
||||
|
||||
;trunk=line4,ringtimeout=5 ; A ring timeout for the station can also be specified for a specific trunk. |
||||
; If a ring timeout is specified both for the whole station and for a specific |
||||
; trunk on a station, the setting for the specific trunk will take priority. |
||||
; This value is in seconds. |
||||
|
||||
|
||||
;[station](!) ; When there are a lot of stations that are configured the same way, |
||||
; it is convenient to use a configuration template like this so that |
||||
; the common settings stay in one place. |
||||
;type=station |
||||
;autocontext=sla_stations |
||||
;trunk=line1 |
||||
;trunk=line2 |
||||
;trunk=line3 |
||||
;trunk=line4 |
||||
|
||||
;[station2](station) ; Define a station that uses the configuration from the template "station". |
||||
;device=SIP/station2 |
||||
; |
||||
;[station3](station) |
||||
;device=SIP/station3 |
||||
; |
||||
;[station4](station) |
||||
;device=SIP/station4 |
||||
; |
||||
;[station5](station) |
||||
;device=SIP/station5 |
||||
; -------------------------------------- |
@ -0,0 +1,78 @@
|
||||
; Sample configuration file for Sorcery Data Access Layer |
||||
|
||||
; |
||||
; Wizards |
||||
; |
||||
; Wizards are the persistence mechanism for objects. They are loaded as Asterisk modules and register |
||||
; themselves with the sorcery core. All implementation specific details of how objects are persisted is isolated |
||||
; within wizards. |
||||
; |
||||
|
||||
; |
||||
; Caching |
||||
; |
||||
; A wizard can optionally be marked as an object cache by adding "/cache" to the object type within the mapping. |
||||
; If an object is returned from a non-object cache it is immediately given to the cache to be created. Multiple |
||||
; object caches can be configured for a single object type. |
||||
; |
||||
|
||||
; |
||||
; Object Type Mappings |
||||
; |
||||
; To allow configuration of where and how an object is persisted object mappings can be defined within this file |
||||
; on a per-module basis. The mapping consists of the object type, options, wizard name, and wizard configuration |
||||
; data. This has the following format: |
||||
; |
||||
; object type [/options] = wizard name, wizard configuration data |
||||
; |
||||
; For example to configure an in-memory wizard for the 'bob' object type: |
||||
; |
||||
; bob = memory |
||||
; |
||||
; Or to configure the object type 'joe' from a configuration file: |
||||
; |
||||
; joe = config,joe.conf |
||||
; |
||||
; Note that an object type can have multiple mappings defined. Each mapping will be consulted in the order in which |
||||
; it appears within the configuration file. This means that if you are configuring a wizard as a cache it should |
||||
; appear as the first mapping so the cache is consulted before all other mappings. |
||||
; |
||||
|
||||
; |
||||
; The following object mappings are used by the unit test to test certain functionality of sorcery. |
||||
; |
||||
[test_sorcery_section] |
||||
test=memory |
||||
|
||||
[test_sorcery_cache] |
||||
test/cache=test |
||||
test=memory |
||||
|
||||
; |
||||
; The following object mapping is the default mapping of external MWI mailbox |
||||
; objects to give persistence to the message counts. |
||||
; |
||||
;[res_mwi_external] |
||||
;mailboxes=astdb,mwi_external |
||||
|
||||
; |
||||
; The following object mappings set PJSIP objects to use realtime database mappings from extconfig |
||||
; with the table names used when automatically generating configuration from the alembic script. |
||||
; |
||||
;[res_pjsip] |
||||
;endpoint=realtime,ps_endpoints |
||||
;auth=realtime,ps_auths |
||||
;aor=realtime,ps_aors |
||||
;domain_alias=realtime,ps_domain_aliases |
||||
|
||||
;[res_pjsip_endpoint_identifier_ip] |
||||
;identify=realtime,ps_endpoint_id_ips |
||||
|
||||
;[res_pjsip_outbound_publish] |
||||
;outbound-publish=realtime,ps_outbound_publishes |
||||
|
||||
;[res_pjsip_pubsub] |
||||
;inbound-publication=realtime,ps_inbound_publications |
||||
|
||||
;[res_pjsip_publish_asterisk] |
||||
;asterisk-publication=realtime,ps_asterisk_publications |
@ -0,0 +1,65 @@
|
||||
;;;;; ITU-T Q.707 timers |
||||
|
||||
;mtp3_timer.q707_t1 = 4000 |
||||
;mtp3_timer.q707_t2 = 30000 |
||||
|
||||
;;;;; MTP3 timers as specified in ITU-T Q.704 or ANSI T1.111-2001 |
||||
|
||||
mtp3_timer.t1 = 500 |
||||
mtp3_timer.t2 = 700 |
||||
mtp3_timer.t3 = 500 |
||||
mtp3_timer.t4 = 500 |
||||
mtp3_timer.t5 = 500 |
||||
mtp3_timer.t6 = 500 |
||||
mtp3_timer.t7 = 1000 |
||||
|
||||
mtp3_timer.t10 = 60000 |
||||
|
||||
mtp3_timer.t12 = 800 |
||||
mtp3_timer.t13 = 800 |
||||
mtp3_timer.t14 = 2000 |
||||
|
||||
; enable for ITU only. Timers after T17 are defined differently for ANSI |
||||
;mtp3_timer.t19 = 67000 |
||||
;mtp3_timer.t21 = 63000 |
||||
; |
||||
;mtp3_timer.t22 = 300000 |
||||
;mtp3_timer.t23 = 300000 |
||||
|
||||
|
||||
;;;;; ISUP timers as specified in ITU-T Q.764 or ANSI T1.113-2000 |
||||
|
||||
isup_timer.t1 = 15000 |
||||
;isup_timer.t2 = 180000 ; ITU only |
||||
|
||||
;isup_timer.t5 = 300000 ; for ITU |
||||
;isup_timer.t5 = 60000 ; for ANSI |
||||
isup_timer.t6 = 30000 |
||||
isup_timer.t7 = 20000 |
||||
isup_timer.t8 = 10000 |
||||
|
||||
;isup_timer.t10 = 4000 ; ITU only |
||||
|
||||
isup_timer.t12 = 15000 |
||||
;isup_timer.t13 = 300000 ; for ITU |
||||
;isup_timer.t13 = 60000 ; for ANSI |
||||
isup_timer.t14 = 15000 |
||||
;isup_timer.t15 = 300000 ; for ITU |
||||
;isup_timer.t15 = 60000 ; for ANSI |
||||
isup_timer.t16 = 15000 |
||||
;isup_timer.t17 = 300000 ; for ITU |
||||
;isup_timer.t17 = 60000 ; for ANSI |
||||
isup_timer.t18 = 15000 |
||||
;isup_timer.t19 = 300000 ; for ITU |
||||
;isup_timer.t19 = 60000 ; for ANSI |
||||
isup_timer.t20 = 15000 |
||||
;isup_timer.t21 = 300000 ; for ITU |
||||
;isup_timer.t21 = 60000 ; for ANSI |
||||
isup_timer.t22 = 15000 |
||||
;isup_timer.t23 = 300000 ; for ITU |
||||
;isup_timer.t23 = 60000 ; for ANSI |
||||
|
||||
isup_timer.t27 = 240000 |
||||
|
||||
isup_timer.t33 = 12000 |
||||
;isup_timer.t35 = 15000 ; ITU only |
@ -0,0 +1,132 @@
|
||||
[threadpool] |
||||
;initial_size = 5 ; Initial size of the threadpool. |
||||
; ; 0 means the threadpool has no threads initially |
||||
; ; until a task needs a thread. |
||||
;idle_timeout_sec = 20 ; Number of seconds a thread should be idle before |
||||
; ; dying. 0 means threads never time out. |
||||
;max_size = 50 ; Maximum number of threads in the Stasis threadpool. |
||||
; ; 0 means no limit to the number of threads in the |
||||
; ; threadpool. |
||||
|
||||
[declined_message_types] |
||||
; This config section contains the names of message types that should be prevented |
||||
; from being created. By default, all message types are allowed to be created. |
||||
; |
||||
; Using this functionality requires knowledge of the names of internal stasis |
||||
; message types which is generally the same as the name of the accessor function. |
||||
; |
||||
; Use of this functionality may break more complex functionality in Asterisk |
||||
; such as CEL, CDR, transfers, etc. and will likely cause related messages in ARI |
||||
; and AMI to go missing. |
||||
; decline=stasis_app_recording_snapshot_type |
||||
; decline=stasis_app_playback_snapshot_type |
||||
; decline=stasis_test_message_type |
||||
; decline=confbridge_start_type |
||||
; decline=confbridge_end_type |
||||
; decline=confbridge_join_type |
||||
; decline=confbridge_leave_type |
||||
; decline=confbridge_start_record_type |
||||
; decline=confbridge_stop_record_type |
||||
; decline=confbridge_mute_type |
||||
; decline=confbridge_unmute_type |
||||
; decline=confbridge_talking_type |
||||
; decline=cel_generic_type |
||||
; decline=ast_bridge_snapshot_type |
||||
; decline=ast_bridge_merge_message_type |
||||
; decline=ast_channel_entered_bridge_type |
||||
; decline=ast_channel_left_bridge_type |
||||
; decline=ast_blind_transfer_type |
||||
; decline=ast_attended_transfer_type |
||||
; decline=ast_endpoint_snapshot_type |
||||
; decline=ast_endpoint_state_type |
||||
; decline=ast_device_state_message_type |
||||
; decline=ast_test_suite_message_type |
||||
; decline=ast_mwi_state_type |
||||
; decline=ast_mwi_vm_app_type |
||||
; decline=ast_format_register_type |
||||
; decline=ast_format_unregister_type |
||||
; decline=ast_manager_get_generic_type |
||||
; decline=ast_parked_call_type |
||||
; decline=ast_channel_snapshot_type |
||||
; decline=ast_channel_dial_type |
||||
; decline=ast_channel_varset_type |
||||
; decline=ast_channel_hangup_request_type |
||||
; decline=ast_channel_dtmf_begin_type |
||||
; decline=ast_channel_dtmf_end_type |
||||
; decline=ast_channel_hold_type |
||||
; decline=ast_channel_unhold_type |
||||
; decline=ast_channel_chanspy_start_type |
||||
; decline=ast_channel_chanspy_stop_type |
||||
; decline=ast_channel_fax_type |
||||
; decline=ast_channel_hangup_handler_type |
||||
; decline=ast_channel_moh_start_type |
||||
; decline=ast_channel_moh_stop_type |
||||
; decline=ast_channel_monitor_start_type |
||||
; decline=ast_channel_monitor_stop_type |
||||
; decline=ast_channel_agent_login_type |
||||
; decline=ast_channel_agent_logoff_type |
||||
; decline=ast_channel_talking_start |
||||
; decline=ast_channel_talking_stop |
||||
; decline=ast_security_event_type |
||||
; decline=ast_named_acl_change_type |
||||
; decline=ast_local_bridge_type |
||||
; decline=ast_local_optimization_begin_type |
||||
; decline=ast_local_optimization_end_type |
||||
; decline=stasis_subscription_change_type |
||||
; decline=ast_multi_user_event_type |
||||
; decline=stasis_cache_clear_type |
||||
; decline=stasis_cache_update_type |
||||
; decline=ast_network_change_type |
||||
; decline=ast_system_registry_type |
||||
; decline=ast_cc_available_type |
||||
; decline=ast_cc_offertimerstart_type |
||||
; decline=ast_cc_requested_type |
||||
; decline=ast_cc_requestacknowledged_type |
||||
; decline=ast_cc_callerstopmonitoring_type |
||||
; decline=ast_cc_callerstartmonitoring_type |
||||
; decline=ast_cc_callerrecalling_type |
||||
; decline=ast_cc_recallcomplete_type |
||||
; decline=ast_cc_failure_type |
||||
; decline=ast_cc_monitorfailed_type |
||||
; decline=ast_presence_state_message_type |
||||
; decline=ast_rtp_rtcp_sent_type |
||||
; decline=ast_rtp_rtcp_received_type |
||||
; decline=ast_call_pickup_type |
||||
; decline=aoc_s_type |
||||
; decline=aoc_d_type |
||||
; decline=aoc_e_type |
||||
; decline=dahdichannel_type |
||||
; decline=mcid_type |
||||
; decline=session_timeout_type |
||||
; decline=cdr_read_message_type |
||||
; decline=cdr_write_message_type |
||||
; decline=cdr_prop_write_message_type |
||||
; decline=corosync_ping_message_type |
||||
; decline=agi_exec_start_type |
||||
; decline=agi_exec_end_type |
||||
; decline=agi_async_start_type |
||||
; decline=agi_async_exec_type |
||||
; decline=agi_async_end_type |
||||
; decline=queue_caller_join_type |
||||
; decline=queue_caller_leave_type |
||||
; decline=queue_caller_abandon_type |
||||
; decline=queue_member_status_type |
||||
; decline=queue_member_added_type |
||||
; decline=queue_member_removed_type |
||||
; decline=queue_member_pause_type |
||||
; decline=queue_member_penalty_type |
||||
; decline=queue_member_ringinuse_type |
||||
; decline=queue_agent_called_type |
||||
; decline=queue_agent_connect_type |
||||
; decline=queue_agent_complete_type |
||||
; decline=queue_agent_dump_type |
||||
; decline=queue_agent_ringnoanswer_type |
||||
; decline=meetme_join_type |
||||
; decline=meetme_leave_type |
||||
; decline=meetme_end_type |
||||
; decline=meetme_mute_type |
||||
; decline=meetme_talking_type |
||||
; decline=meetme_talk_request_type |
||||
; decline=appcdr_message_type |
||||
; decline=forkcdr_message_type |
||||
; decline=cdr_sync_message_type |
@ -0,0 +1,8 @@
|
||||
[general] |
||||
;enabled = yes ; When set to yes, statsd support is enabled |
||||
;server = 127.0.0.1 ; server[:port] of statsd server to use. |
||||
; If not specified, the port is 8125 |
||||
;prefix = ; Prefix to prepend to all metrics |
||||
;add_newline = no ; Append a newline to every event. This is |
||||
; useful if you want to run a fake statsd |
||||
; server using netcat (nc -lu 8125) |
@ -0,0 +1,83 @@
|
||||
; |
||||
; Asterisk default ADSI script |
||||
; |
||||
; |
||||
; Begin with the preamble requirements |
||||
; |
||||
DESCRIPTION "Telcordia Demo" ; Name of vendor |
||||
VERSION 0x02 ; Version of stuff |
||||
;SECURITY "_AST" ; Security code |
||||
SECURITY 0x0000 ; Security code |
||||
FDN 0x0000000f ; Descriptor number |
||||
|
||||
; |
||||
; Predefined strings |
||||
; |
||||
DISPLAY "talkingto" IS "Talking To" "$Call1p" WRAP |
||||
DISPLAY "titles" IS "20th Century IQ Svc" |
||||
DISPLAY "newcall" IS "New Call From" "$Call1p" WRAP |
||||
DISPLAY "ringing" IS "Ringing" |
||||
|
||||
; |
||||
; Begin state definitions |
||||
; |
||||
STATE "callup" ; Call is currently up |
||||
STATE "inactive" ; No active call |
||||
|
||||
; |
||||
; Begin soft key definitions |
||||
; |
||||
KEY "CB_OH" IS "Block" OR "Call Block" |
||||
OFFHOOK |
||||
VOICEMODE |
||||
WAITDIALTONE |
||||
SENDDTMF "*60" |
||||
SUBSCRIPT "offHook" |
||||
ENDKEY |
||||
|
||||
KEY "CB" IS "Block" OR "Call Block" |
||||
SENDDTMF "*60" |
||||
ENDKEY |
||||
|
||||
; |
||||
; Begin main subroutine |
||||
; |
||||
|
||||
SUB "main" IS |
||||
IFEVENT NEARANSWER THEN |
||||
CLEAR |
||||
SHOWDISPLAY "talkingto" AT 1 |
||||
GOTO "stableCall" |
||||
ENDIF |
||||
IFEVENT OFFHOOK THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 |
||||
SHOWKEYS "CB" |
||||
GOTO "offHook" |
||||
ENDIF |
||||
IFEVENT IDLE THEN |
||||
CLEAR |
||||
SHOWDISPLAY "titles" AT 1 |
||||
SHOWKEYS "CB_OH" |
||||
ENDIF |
||||
IFEVENT CALLERID THEN |
||||
CLEAR |
||||
SHOWDISPLAY "newcall" AT 1 |
||||
ENDIF |
||||
ENDSUB |
||||
|
||||
SUB "offHook" IS |
||||
IFEVENT FARRING THEN |
||||
CLEAR |
||||
SHOWDISPLAY "ringing" AT 1 |
||||
ENDIF |
||||
IFEVENT FARANSWER THEN |
||||
CLEAR |
||||
SHOWDISPLAY "talkingto" AT 1 |
||||
GOTO "stableCall" |
||||
ENDIF |
||||
ENDSUB |
||||
|
||||
SUB "stableCall" IS |
||||
|
||||
ENDSUB |
@ -0,0 +1,14 @@
|
||||
; This is a res_sorcery_config compatible file for the sorcery unit tests |
||||
|
||||
[hey] |
||||
bob=98 |
||||
joe=41 |
||||
|
||||
[hey2] |
||||
type=zombies |
||||
bob=97 |
||||
joe=40 |
||||
|
||||
[hey3] |
||||
bob=96 |
||||
joe=39 |
@ -0,0 +1,88 @@
|
||||
; |
||||
; chan_unistim configuration file. |
||||
; |
||||
|
||||
[general] |
||||
port=5000 ; UDP port |
||||
; |
||||
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of these parameters. |
||||
;tos=cs3 ; Sets TOS for signaling packets. |
||||
;tos_audio=ef ; Sets TOS for RTP audio packets. |
||||
;cos=3 ; Sets 802.1p priority for signaling packets. |
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. |
||||
; |
||||
;debug=yes ; Enable debug (default no) |
||||
;keepalive=120 ; in seconds, default = 120 |
||||
;public_ip= ; if asterisk is behind a nat, specify your public IP |
||||
;autoprovisioning=no ; Allow undeclared phones to register an extension. See README for important |
||||
; informations. no (default), yes, tn. |
||||
;mohsuggest=default |
||||
; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- |
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a |
||||
; SIP channel. Defaults to "no". An enabled jitterbuffer will |
||||
; be used only if the sending side can create and the receiving |
||||
; side can not accept jitter. The SIP channel can accept jitter, |
||||
; thus a jitterbuffer on the receive SIP side will be used only |
||||
; if it is forced and enabled. |
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP |
||||
; channel. Defaults to "no". |
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. |
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is |
||||
; resynchronized. Useful to improve the quality of the voice, with |
||||
; big jumps in/broken timestamps, usually sent from exotic devices |
||||
; and programs. Defaults to 1000. |
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP |
||||
; channel. Two implementations are currently available - "fixed" |
||||
; (with size always equals to jbmaxsize) and "adaptive" (with |
||||
; variable size, actually the new jb of IAX2). Defaults to fixed. |
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". |
||||
; ---------------------------------------------------------------------------------- |
||||
|
||||
|
||||
;[black] ; name of the device |
||||
;device=000ae4012345 ; mac address of the phone |
||||
;rtp_port=10000 ; RTP port used by the phone, default = 10000. RTCP = rtp_port+1 |
||||
;rtp_method=0 ; If you don't have sound, you can try 1, 2 or 3, default = 0 |
||||
; value 3 works on newer i2004, 1120E and 1140E |
||||
;status_method=0 ; If you don't see status text, try 1, default = 0 |
||||
; value 1 works on 1120E and 1140E |
||||
;titledefault=Asterisk ; default = "TimeZone (your time zone)". 12 characters max |
||||
;height=3 ; default = 3, the number of display lines the device can show |
||||
; For example on a Nortel I2001 or I2002, set this to 1 |
||||
;maintext0="you can insert" ; default = "Welcome", 24 characters max |
||||
;maintext1="a custom text" ; default = the name of the device, 24 characters max |
||||
;maintext2="(main page)" ; default = the public IP of the phone, 24 characters max |
||||
;dateformat=0 ; 0 (default) = 31Jan, 1 = Jan31, 2 = month/day, 3 = day/month |
||||
;timeformat=1 ; 0 = 0:00am ; 1 (default) = 0h00, 2 = 0:00 |
||||
;contrast=8 ; define the contrast of the LCD. From 0 to 15. Default = 8 |
||||
;country=us ; country (ccTLD) for dial tone frequency. See README, default = us |
||||
;language=ru ; language used for audio files and onscreen messages translate |
||||
;ringvolume=2 ; ring volume : 0,1,2,3, can be overrided by Dial(), default = 2 |
||||
;ringstyle=3 ; ring style : 0 to 7, can be overrided by Dial(), default = 3 |
||||
;cwvolume=2 ; ring volume : 0,1,2,3, default = 0 |
||||
;cwstyle=3 ; ring style : 0 to 7, default = 2 |
||||
;sharpdial=1 ; dial number by pressing #, default = 0 |
||||
;dtmf_duration=0 ; DTMF playback duration (in milliseconds) 0..150 (0 = off (default), 150 = maximum) |
||||
;interdigit_timer=4000 ; timer for automatic dial after several digits of number entered (in ms, 0 is off) |
||||
;callhistory=1 ; 0 = disable, 1 = enable call history, default = 1 |
||||
;callerid="Customer Support" <555-234-5678> |
||||
;context=default ; context, default="default" |
||||
;mailbox=1234 ; Specify the mailbox number. Used by Message Waiting Indication |
||||
;linelabel="Support" ; Softkey label for the next line=> entry, 9 char max. |
||||
;extension=none ; Add an extension into the dialplan. Only valid in context specified previously. |
||||
; none=don't add (default), ask=prompt user, line=use the line number |
||||
;line => 100 ; Any number of lines can be defined in any order with bookmarks |
||||
;line => 200 ; After line defined it placed in next available slot |
||||
;bookmark=Hans C.@123 ; Use a softkey to dial 123. Name : 9 char max |
||||
;bookmark=Mailbox@011@54 ; 54 shows a mailbox icon. See #define FAV_ICON_ for other values (32 to 63) |
||||
;bookmark=Test@*@USTM/violet ; Display an icon if violet is connected (dynamic), only for unistim device |
||||
;bookmark=4@Pager@54321@51 ; Display a pager icon and dial 54321 when softkey 4 is pressed |
||||
|
||||
;[violet] |
||||
;device=006038abcdef |
||||
;line => 102 |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue