root 3 years ago
parent
commit
ab10e78802
  1. 1
      .gitignore
  2. BIN
      admin/images/ico/ico-breezy.gif
  3. 104
      agendaRamais/depto/dptoRamais.php
  4. 63
      agendaRamais/depto/dptoRamaisInsert.php
  5. 125
      agendaRamais/depto/dptoRamaisRelaciona.php
  6. 79
      agendaRamais/depto/dptoRamaisUpdate.php
  7. 107
      agendaRamais/ramais/ramais.php
  8. 37
      agendaRamais/ramais/ramaisDelete.php
  9. 109
      agendaRamais/ramais/ramaisInsert.php
  10. 249
      agendaRamais/ramais/ramaisUpdate.php
  11. 80
      asterisk/etc_asterisk/default_asterisk/acl.conf
  12. 8
      asterisk/etc_asterisk/default_asterisk/adsi.conf
  13. 39
      asterisk/etc_asterisk/default_asterisk/adtranvofr.conf
  14. 91
      asterisk/etc_asterisk/default_asterisk/alarmreceiver.conf
  15. 77
      asterisk/etc_asterisk/default_asterisk/alsa.conf
  16. 31
      asterisk/etc_asterisk/default_asterisk/amd.conf
  17. 0
      asterisk/etc_asterisk/default_asterisk/applyzap.conf
  18. 158
      asterisk/etc_asterisk/default_asterisk/asterisk.adsi
  19. 109
      asterisk/etc_asterisk/default_asterisk/calendar.conf
  20. 205
      asterisk/etc_asterisk/default_asterisk/ccss.conf
  21. 59
      asterisk/etc_asterisk/default_asterisk/cdr_adaptive_odbc.conf
  22. 62
      asterisk/etc_asterisk/default_asterisk/cdr_mysql.conf
  23. 12
      asterisk/etc_asterisk/default_asterisk/cdr_odbc.conf
  24. 10
      asterisk/etc_asterisk/default_asterisk/cdr_sqlite3_custom.conf
  25. 83
      asterisk/etc_asterisk/default_asterisk/cdr_syslog.conf
  26. 77
      asterisk/etc_asterisk/default_asterisk/cdr_tds.conf
  27. 108
      asterisk/etc_asterisk/default_asterisk/cel_odbc.conf
  28. 24
      asterisk/etc_asterisk/default_asterisk/cel_sqlite3_custom.conf
  29. 69
      asterisk/etc_asterisk/default_asterisk/cel_tds.conf
  30. 69
      asterisk/etc_asterisk/default_asterisk/chan_mobile.conf
  31. 12
      asterisk/etc_asterisk/default_asterisk/cli.conf
  32. 203
      asterisk/etc_asterisk/default_asterisk/cli_aliases.conf
  33. 82
      asterisk/etc_asterisk/default_asterisk/cli_permissions.conf
  34. 206
      asterisk/etc_asterisk/default_asterisk/codecs.conf
  35. 46
      asterisk/etc_asterisk/default_asterisk/config_test.conf
  36. 97
      asterisk/etc_asterisk/default_asterisk/console.conf
  37. 5
      asterisk/etc_asterisk/default_asterisk/dahdi_guiread.conf
  38. 11
      asterisk/etc_asterisk/default_asterisk/dahdi_scan.conf
  39. 34
      asterisk/etc_asterisk/default_asterisk/dbsep.conf
  40. 42
      asterisk/etc_asterisk/default_asterisk/dsp.conf
  41. 268
      asterisk/etc_asterisk/default_asterisk/dundi.conf
  42. 22
      asterisk/etc_asterisk/default_asterisk/enum.conf
  43. 111
      asterisk/etc_asterisk/default_asterisk/extconfig.conf
  44. 456
      asterisk/etc_asterisk/default_asterisk/extensions.ael
  45. 240
      asterisk/etc_asterisk/default_asterisk/extensions.lua
  46. 158
      asterisk/etc_asterisk/default_asterisk/extensions_minivm.conf
  47. 34
      asterisk/etc_asterisk/default_asterisk/festival.conf
  48. 89
      asterisk/etc_asterisk/default_asterisk/followme.conf
  49. 109
      asterisk/etc_asterisk/default_asterisk/func_odbc.conf
  50. 19
      asterisk/etc_asterisk/default_asterisk/gtalk.conf
  51. 21
      asterisk/etc_asterisk/default_asterisk/guipreferences.conf
  52. 193
      asterisk/etc_asterisk/default_asterisk/h323.conf
  53. 32
      asterisk/etc_asterisk/default_asterisk/hep.conf
  54. 26
      asterisk/etc_asterisk/default_asterisk/hints.conf
  55. 126
      asterisk/etc_asterisk/default_asterisk/http.conf
  56. 80
      asterisk/etc_asterisk/default_asterisk/iaxprov.conf
  57. 736
      asterisk/etc_asterisk/default_asterisk/indications.conf
  58. 18
      asterisk/etc_asterisk/default_asterisk/jabber.conf
  59. 142
      asterisk/etc_asterisk/default_asterisk/mgcp.conf
  60. 218
      asterisk/etc_asterisk/default_asterisk/minivm.conf
  61. 537
      asterisk/etc_asterisk/default_asterisk/misdn.conf
  62. 0
      asterisk/etc_asterisk/default_asterisk/modprobe_default
  63. 99
      asterisk/etc_asterisk/default_asterisk/motif.conf
  64. 39
      asterisk/etc_asterisk/default_asterisk/muted.conf
  65. 203
      asterisk/etc_asterisk/default_asterisk/ooh323.conf
  66. 117
      asterisk/etc_asterisk/default_asterisk/osp.conf
  67. 152
      asterisk/etc_asterisk/default_asterisk/oss.conf
  68. 51
      asterisk/etc_asterisk/default_asterisk/phone.conf
  69. 142
      asterisk/etc_asterisk/default_asterisk/phoneprov.conf
  70. 49
      asterisk/etc_asterisk/default_asterisk/pjproject.conf
  71. 1266
      asterisk/etc_asterisk/default_asterisk/pjsip.conf
  72. 57
      asterisk/etc_asterisk/default_asterisk/pjsip_notify.conf
  73. 159
      asterisk/etc_asterisk/default_asterisk/pjsip_wizard.conf
  74. 3
      asterisk/etc_asterisk/default_asterisk/privacy.conf
  75. 154
      asterisk/etc_asterisk/default_asterisk/proxy-ssl.conf
  76. 30
      asterisk/etc_asterisk/default_asterisk/queuerules.conf
  77. 43
      asterisk/etc_asterisk/default_asterisk/res_config_mysql.conf
  78. 11
      asterisk/etc_asterisk/default_asterisk/res_config_sqlite.conf
  79. 30
      asterisk/etc_asterisk/default_asterisk/res_config_sqlite3.conf
  80. 31
      asterisk/etc_asterisk/default_asterisk/res_corosync.conf
  81. 8
      asterisk/etc_asterisk/default_asterisk/res_curl.conf
  82. 32
      asterisk/etc_asterisk/default_asterisk/res_fax.conf
  83. 198
      asterisk/etc_asterisk/default_asterisk/res_ldap.conf
  84. 15
      asterisk/etc_asterisk/default_asterisk/res_mysql.conf
  85. 111
      asterisk/etc_asterisk/default_asterisk/res_odbc.conf
  86. 30
      asterisk/etc_asterisk/default_asterisk/res_pgsql.conf
  87. 32
      asterisk/etc_asterisk/default_asterisk/res_pktccops.conf
  88. 22
      asterisk/etc_asterisk/default_asterisk/res_snmp.conf
  89. 27
      asterisk/etc_asterisk/default_asterisk/res_stun_monitor.conf
  90. 383
      asterisk/etc_asterisk/default_asterisk/say.conf
  91. 57
      asterisk/etc_asterisk/default_asterisk/sip_notify.conf
  92. 207
      asterisk/etc_asterisk/default_asterisk/skinny.conf
  93. 150
      asterisk/etc_asterisk/default_asterisk/sla.conf
  94. 78
      asterisk/etc_asterisk/default_asterisk/sorcery.conf
  95. 65
      asterisk/etc_asterisk/default_asterisk/ss7.timers
  96. 132
      asterisk/etc_asterisk/default_asterisk/stasis.conf
  97. 8
      asterisk/etc_asterisk/default_asterisk/statsd.conf
  98. 83
      asterisk/etc_asterisk/default_asterisk/telcordia-1.adsi
  99. 14
      asterisk/etc_asterisk/default_asterisk/test_sorcery.conf
  100. 88
      asterisk/etc_asterisk/default_asterisk/unistim.conf
  101. Some files were not shown because too many files have changed in this diff Show More

1
.gitignore vendored

@ -425,7 +425,6 @@ local.properties
# DW Dreamweaver added files
_notes
_compareTemp
configs/
dwsync.xml
dw_php_codehinting.config
*.mno

BIN
admin/images/ico/ico-breezy.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

104
agendaRamais/depto/dptoRamais.php

@ -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("&paramPesquisa%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 = "&paramPesquisa=$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;
}
}
?>

63
agendaRamais/depto/dptoRamaisInsert.php

@ -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");
?>

125
agendaRamais/depto/dptoRamaisRelaciona.php

@ -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;
}
?>

79
agendaRamais/depto/dptoRamaisUpdate.php

@ -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");
?>

107
agendaRamais/ramais/ramais.php

@ -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("&paramPesquisa%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 = "&paramPesquisa=$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);
?>

37
agendaRamais/ramais/ramaisDelete.php

@ -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");
?>

109
agendaRamais/ramais/ramaisInsert.php

@ -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;
}
}
?>

249
agendaRamais/ramais/ramaisUpdate.php

@ -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);
}
?>

80
asterisk/etc_asterisk/default_asterisk/acl.conf

@ -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

8
asterisk/etc_asterisk/default_asterisk/adsi.conf

@ -0,0 +1,8 @@
;
; Sample ADSI Configuration file
;
[intro]
alignment = center
greeting => Welcome to the
greeting => Asterisk
greeting => Open Source PBX

39
asterisk/etc_asterisk/default_asterisk/adtranvofr.conf

@ -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

91
asterisk/etc_asterisk/default_asterisk/alarmreceiver.conf

@ -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
;

77
asterisk/etc_asterisk/default_asterisk/alsa.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".
; ----------------------------------------------------------------------------------

31
asterisk/etc_asterisk/default_asterisk/amd.conf

@ -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
asterisk/etc_asterisk/default_asterisk/applyzap.conf

158
asterisk/etc_asterisk/default_asterisk/asterisk.adsi

@ -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

109
asterisk/etc_asterisk/default_asterisk/calendar.conf

@ -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

205
asterisk/etc_asterisk/default_asterisk/ccss.conf

@ -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=

59
asterisk/etc_asterisk/default_asterisk/cdr_adaptive_odbc.conf

@ -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

62
asterisk/etc_asterisk/default_asterisk/cdr_mysql.conf

@ -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>

12
asterisk/etc_asterisk/default_asterisk/cdr_odbc.conf

@ -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)

10
asterisk/etc_asterisk/default_asterisk/cdr_sqlite3_custom.conf

@ -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)}'

83
asterisk/etc_asterisk/default_asterisk/cdr_syslog.conf

@ -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)}"

77
asterisk/etc_asterisk/default_asterisk/cdr_tds.conf

@ -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

108
asterisk/etc_asterisk/default_asterisk/cel_odbc.conf

@ -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

24
asterisk/etc_asterisk/default_asterisk/cel_sqlite3_custom.conf

@ -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}'

69
asterisk/etc_asterisk/default_asterisk/cel_tds.conf

@ -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

69
asterisk/etc_asterisk/default_asterisk/chan_mobile.conf

@ -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

12
asterisk/etc_asterisk/default_asterisk/cli.conf

@ -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

203
asterisk/etc_asterisk/default_asterisk/cli_aliases.conf

@ -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.

82
asterisk/etc_asterisk/default_asterisk/cli_permissions.conf

@ -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
;
;

206
asterisk/etc_asterisk/default_asterisk/codecs.conf

@ -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)

46
asterisk/etc_asterisk/default_asterisk/config_test.conf

@ -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]

97
asterisk/etc_asterisk/default_asterisk/console.conf

@ -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.

5
asterisk/etc_asterisk/default_asterisk/dahdi_guiread.conf

@ -0,0 +1,5 @@
[general]
#include "../zaptel.conf"

11
asterisk/etc_asterisk/default_asterisk/dahdi_scan.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

34
asterisk/etc_asterisk/default_asterisk/dbsep.conf

@ -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

42
asterisk/etc_asterisk/default_asterisk/dsp.conf

@ -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

268
asterisk/etc_asterisk/default_asterisk/dundi.conf

@ -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
;[*]
;

22
asterisk/etc_asterisk/default_asterisk/enum.conf

@ -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

111
asterisk/etc_asterisk/default_asterisk/extconfig.conf

@ -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.

456
asterisk/etc_asterisk/default_asterisk/extensions.ael

@ -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.
//
}

240
asterisk/etc_asterisk/default_asterisk/extensions.lua

@ -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";
};
}

158
asterisk/etc_asterisk/default_asterisk/extensions_minivm.conf

@ -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))

34
asterisk/etc_asterisk/default_asterisk/festival.conf

@ -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
;
;

89
asterisk/etc_asterisk/default_asterisk/followme.conf

@ -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.

109
asterisk/etc_asterisk/default_asterisk/func_odbc.conf

@ -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})}'

19
asterisk/etc_asterisk/default_asterisk/gtalk.conf

@ -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.
;

21
asterisk/etc_asterisk/default_asterisk/guipreferences.conf

@ -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

193
asterisk/etc_asterisk/default_asterisk/h323.conf

@ -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

32
asterisk/etc_asterisk/default_asterisk/hep.conf

@ -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.

26
asterisk/etc_asterisk/default_asterisk/hints.conf

@ -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

126
asterisk/etc_asterisk/default_asterisk/http.conf

@ -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/
;

80
asterisk/etc_asterisk/default_asterisk/iaxprov.conf

@ -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

736
asterisk/etc_asterisk/default_asterisk/indications.conf

@ -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

18
asterisk/etc_asterisk/default_asterisk/jabber.conf

@ -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.

142
asterisk/etc_asterisk/default_asterisk/mgcp.conf

@ -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

218
asterisk/etc_asterisk/default_asterisk/minivm.conf

@ -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

537
asterisk/etc_asterisk/default_asterisk/misdn.conf

@ -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
asterisk/etc_asterisk/default_asterisk/modprobe_default

99
asterisk/etc_asterisk/default_asterisk/motif.conf

@ -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

39
asterisk/etc_asterisk/default_asterisk/muted.conf

@ -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

203
asterisk/etc_asterisk/default_asterisk/ooh323.conf

@ -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

117
asterisk/etc_asterisk/default_asterisk/osp.conf

@ -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

152
asterisk/etc_asterisk/default_asterisk/oss.conf

@ -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)

51
asterisk/etc_asterisk/default_asterisk/phone.conf

@ -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

142
asterisk/etc_asterisk/default_asterisk/phoneprov.conf

@ -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

49
asterisk/etc_asterisk/default_asterisk/pjproject.conf

@ -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: "")

1266
asterisk/etc_asterisk/default_asterisk/pjsip.conf

File diff suppressed because it is too large Load Diff

57
asterisk/etc_asterisk/default_asterisk/pjsip_notify.conf

@ -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

159
asterisk/etc_asterisk/default_asterisk/pjsip_wizard.conf

@ -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: "")

3
asterisk/etc_asterisk/default_asterisk/privacy.conf

@ -0,0 +1,3 @@
[general]
maxretries = 2 ;How many chances the caller has to enter their number

154
asterisk/etc_asterisk/default_asterisk/proxy-ssl.conf

@ -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

30
asterisk/etc_asterisk/default_asterisk/queuerules.conf

@ -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

43
asterisk/etc_asterisk/default_asterisk/res_config_mysql.conf

@ -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

11
asterisk/etc_asterisk/default_asterisk/res_config_sqlite.conf

@ -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

30
asterisk/etc_asterisk/default_asterisk/res_config_sqlite3.conf

@ -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

31
asterisk/etc_asterisk/default_asterisk/res_corosync.conf

@ -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
;

8
asterisk/etc_asterisk/default_asterisk/res_curl.conf

@ -0,0 +1,8 @@
;
; CURLOPT global settings (mostly set for realtime)
;
[globals]
;proxy=myproxy.example.com
proxytype=http
proxyport=8001
;proxyuserpwd=asterisk:asteriskrocks

32
asterisk/etc_asterisk/default_asterisk/res_fax.conf

@ -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

198
asterisk/etc_asterisk/default_asterisk/res_ldap.conf

@ -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)

15
asterisk/etc_asterisk/default_asterisk/res_mysql.conf

@ -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

111
asterisk/etc_asterisk/default_asterisk/res_odbc.conf

@ -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.
;

30
asterisk/etc_asterisk/default_asterisk/res_pgsql.conf

@ -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

32
asterisk/etc_asterisk/default_asterisk/res_pktccops.conf

@ -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
;

22
asterisk/etc_asterisk/default_asterisk/res_snmp.conf

@ -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

27
asterisk/etc_asterisk/default_asterisk/res_stun_monitor.conf

@ -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.

383
asterisk/etc_asterisk/default_asterisk/say.conf

@ -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}

57
asterisk/etc_asterisk/default_asterisk/sip_notify.conf

@ -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

207
asterisk/etc_asterisk/default_asterisk/skinny.conf

@ -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

150
asterisk/etc_asterisk/default_asterisk/sla.conf

@ -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
; --------------------------------------

78
asterisk/etc_asterisk/default_asterisk/sorcery.conf

@ -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

65
asterisk/etc_asterisk/default_asterisk/ss7.timers

@ -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

132
asterisk/etc_asterisk/default_asterisk/stasis.conf

@ -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

8
asterisk/etc_asterisk/default_asterisk/statsd.conf

@ -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)

83
asterisk/etc_asterisk/default_asterisk/telcordia-1.adsi

@ -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

14
asterisk/etc_asterisk/default_asterisk/test_sorcery.conf

@ -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

88
asterisk/etc_asterisk/default_asterisk/unistim.conf

@ -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…
Cancel
Save