Mudanças entre as edições de "Parâmetros globais"

De opensipsbrasil - wiki
Ir para navegação Ir para pesquisar
Linha 1 030: Linha 1 030:
 
     tcp_threshold = 60000
 
     tcp_threshold = 60000
  
!!!!tcp_keepalive
+
====tcp_keepalive====
  
Enable / disable TCP keepalive
+
Ativa ou Desativa keepalive no TCP
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     tcp_keepalive = 1
 
     tcp_keepalive = 1
  
!!!!tcp_keepcount
+
====tcp_keepcount====
  
Number of keepalives to send before closing the connection (Linux only)
+
Número de keepalives para enviar antes de encerrar a conexão (válido apenas no linux)
  
Example of usage:
+
 
 +
Exemplo de uso
  
 
     tcp_keepcount = 5
 
     tcp_keepcount = 5
  
!!!!tcp_keepidle
+
====tcp_keepidle====
  
Amount of time before OpenSIPS will start to send keepalives if the connection is idle (Linux only)
+
Quantidade de tempo antes que o OpenSIPS comece a enviar os keepalive se a conexão estiver idle (válido apenas no linux)
  
Example of usage:
+
Exemplo de uso:
  
 
     tcp_keepidle = 30
 
     tcp_keepidle = 30
  
!!!!tcp_keepinterval
+
====tcp_keepinterval====
 +
Intervalo entre testes de keepalive se o teste anterior falhou (válido apenas no linux)
  
Interval between keepalive probes, if the previous one failed (Linux only)
 
  
Example of usage:
+
Exemplo de uso:
  
 
     tcp_keepinterval = 10
 
     tcp_keepinterval = 10
  
!!!!tls_ca_list
+
====tls_ca_list====
  
  
!!!!tls_certificate
+
====tls_certificate====
  
  
!!!!tls_ciphers_list
+
====tls_ciphers_list====
  
  
!!!!tls_domain
+
====tls_domain====
  
  
!!!!tls_handshake_timeout
+
====tls_handshake_timeout====
  
  
!!!!tls_log
+
====tls_log====
  
  
!!!!tls_method
+
====tls_method====
  
  
!!!!tls_port_no
+
====tls_port_no====
  
  
!!!!tls_private_key
+
====tls_private_key====
  
  
!!!!tls_require_certificate
+
====tls_require_certificate====
  
  
!!!!tls_send_timeout
+
====tls_send_timeout====
  
  
!!!!tls_verify
+
====tls_verify====
  
  
!!!!tos
+
====tos====
  
The TOS (Type Of Service) to be used for the sent IP packages (both TCP and UDP).
+
O TOS (Tipo de serviço) para ser utilizado nos pacotes enviados (válido para TCP e UDP)
 +
 
 +
 
 +
Exemplo de uso:
  
Example of usage:
 
  
[@
 
 
     tos=IPTOS_LOWDELAY
 
     tos=IPTOS_LOWDELAY
 
     tos=0x10
 
     tos=0x10
 
     tos=IPTOS_RELIABILITY
 
     tos=IPTOS_RELIABILITY
@]
 
  
  
  
!!!!user uid
 
  
The user id to run '''OpenSIPS''' (OpenSIPS will suid to it).
+
====user uid====
  
Example of usage:
+
O ID do usuário que vai rodar o '''OpenSIPS'''
 +
 
 +
 
 +
Exemplo de uso
  
 
     user="opensips"
 
     user="opensips"
  
  
!!!!user_agent_header
+
====user_agent_header====
  
The body of User-Agent header field generated by '''OpenSIPS''' when it sends a request as UAC. It defaults to "OpenSIPS (<version> (<arch>/<os>))".  
+
O corpo do cabeçalho User-Agent gerado pelo '''OpenSIPS''' quando ele envia um request como UAC. O default é 'OpenSIPS (<version> (<arch>/<os>))'.
 +
 
   
 
   
Example of usage:
+
Exemplo de uso:
 +
 
 +
 
 +
user_agent_header="User-Agent: My Company SIP Proxy"
  
[@
+
Observe que você deve incluir a string 'User-Agent:' ou o OpenSIPS irá gerar apenas um header como 'My Company SIP Proxy'
user_agent_header="User-Agent: My Company SIP Proxy"
 
@]
 
  
Please note that you have to include the header name "User-Agent:" as '''OpenSIPS''' does not add it and you will get an erroneous header like:
+
====wdir====
[@
 
My Company SIP Proxy
 
@]
 
  
 +
O diretório usado pelo '''OpenSIPS''' durante a execução, você achará útil quando começar a gerar arquivos de core.
  
!!!!wdir
 
  
The working directory used by '''OpenSIPS''' at runtime. You might find it usefull when come to generating core files :)
+
Exemplos de uso:
  
Example of usage:
 
[@
 
 
     wdir="/usr/local/opensips"
 
     wdir="/usr/local/opensips"
    or
+
ou
 
     wdir=/usr/opensips_wd
 
     wdir=/usr/opensips_wd
@]
 

Edição das 23h49min de 5 de outubro de 2013

Esta sessão lista todos os parametros globais exportados pelo core do OpenSIPS para utilização do script (para usar no opensips.cfg)



Índice

Keywords

Nota: Keywords aqui são palavras chaves que são usadas pelo core, basicamente, funções do sistema

Keywords do core

Keywords especificadas para uma mensagem SIP que pode ser utilizada dentro de um 'if'


af

Familia do endereço recebido na mensagem SIP, este será INET se for recebido uma mensagem sobre IPv4 ou INET6 se a mesma foi recebida sobre IPv6


Exemplo de uso:


   if(af==INET6) {
       log("Message received over IPv6 link\n");
   };


dst_ip

O ip da interface local onde a mensagem foi recebida, quando o proxy aceita requisições em várias interfaces de rede esta função torna possivel detectar qual foi a interface que recebeu o pacote.


Exemplo de uso:

  if(dst_ip==127.0.0.1) {
     log("message received on loopback interface\n");
  };


dst_port

A porta local onde o pacote foi recebido, quando o OpenSIPS está habilitado para responder em mais de uma porta esta função é util para que se possa saber por ende exatamente o pacote esta chegando.

Exemplo de uso:

  if(dst_port==5061)
  {
      log("message was received on port 5061\n");
  };

from_uri

Esta variavel é uma referencia a URI do cabeçalho 'From'. Pode ser utilizada para tetar o valor do 'From'.


Exemplo de uso:

   if(is_method("INVITE") && from_uri=~".*@opensips.org")
   {
       log("the caller is from opensips.org\n");
   };


method

Esta variavel referencia o método SIP da mensagem que está sendo manipulada.


Exemplo de uso:

   if(method=="REGISTER")
   {
      log("this SIP request is a REGISTER message\n");
   };

msg:len

Esta variável referencia o tamanho da mensagem , pode ser utilizada em 'if' para testar o tamanho de pacotes .


Exemplo de uso:

   if(msg:len>2048)
   {
       sl_send_reply("413", "message too large");
       exit;
   };


$retcode

Representa o valor retornado da ultima função executada (similar ao $? no bash -- você também pode usar $? no OpenSIPs, os dois nomes '$retcode' e '$?' são suportados). Se o valor for verificado após a chamada de uma rota o valor será o retorno daquela rota.

Exemplo de uso:

  route {
      route(1);
      if($retcode==1)
      {
          log("The request is an INVITE\n");
      };
  }
 
  
  route[1] {
      if(is_method("INVITE"))
          return(1);
      return(2);
  }


proto

Esta variável pode ser utilizada para verificar qual o tipo de protocolo de transporte está sendo utilizado.


Exemplo de uso:

   if(proto==UDP)
   {
       log("SIP message received over UDP\n");
   };


status

Se utilizanda em onreply_route esta variavel é uma referencia ao código do reply, se utilizada em um bloco de rota normal a vriavel é uma referencia ao status do ultimo reply enviado para fora pela requisição atual.


Exemplos de uso:

   if(status=="200")
   {
       log("this is a 200 OK reply\n");
   };

src_ip

Referencia ao IP de origem da mensagem SIP.


Exemplo de uso:

   if(src_ip==127.0.0.1)
   {
       log("the message was sent from localhost!\n");
   };


src_port

Referencia ao porta de origem da mensagem (de que porta o pacote saiu pra ser entregue para o OpenSIPS).


Exemplo de uso:

   if(src_port==5061)
   {
       log("message sent from port 5061\n");
   }


to_uri

Esta variavel pode ser utilizada para testar o valor da URI pelo cabeçalho to (to hader ).


Exemplo de uso:

 if(to_uri=~"sip:.+@opensips.org")
 {
     log("this is a request for opensips.org users\n");
 };


uri

Esta variável pode ser utilizada para testar os parametros da URI requisitada.


Exemplo de uso:

   if(uri=~"sip:.+@opensips.org")
   {
       log("this is a request for opensips.org users\n");
   };


valores

Valores do core

Valores podem ser utilizados nos if's para realizar os testes das keywords do core

INET

Esta keyword é utilizada para testar se um pacote foi recebido atraés de uma conexão IPv4


Exemplo de uso:

   if(af==INET)
   {
       log("the SIP message was received over IPv4\n");
   };

INET6

Esta keyword é utilizada para testar se um pacote foi recebido atraés de uma conexão IPv6

Exemplo de uso:

 if(af==INET6)
 {
     log("the SIP message was received over IPv6\n");
 };

TCP

Esta keyword é utilizada para verificar o valor de 'proto' e saber assim se o pacote é TCP ou não.


Exemplo de uso:

 if(proto==TCP)
 {
     log("the SIP message was received over TCP\n");
 };

UDP

Esta keyword é utilizada para verificar o valor de 'proto' e saber assim se o pacote é UDP ou não.


Exemplo de uso:

 if(proto==UDP)
 {
     log("the SIP message was received over UDP\n");
 };

max_len

Esta keyword é definida para o valor maximo de um pacote UDP e pode ser utilizada para testar o tamanho da mensagem recebida.


Exemplo de uso:

   if(msg:len>max_len)
   {
       sl_send_reply("413", "message too large to be forwarded over UDP without fragmentation");
       exit;
   }


myself

Esta é uma referencia para a lista de endereços IP , hostname e alias que estão sendo utilizados pelo OpenSIPS em seu arquivo de configuração, a lista contém os dominios que o OpenSIPS está servindo

A variável pode ser utilizada para testar se o host na URI está na lista, o maior uso desta função é para saber se a mensagem deve ser processada localmente ou ser enviada para outro servidor.


Veja sobre "alias" para adicionar hostname, outros ip's e aliases para a lista


Exemplo de uso:

   if(uri==myself) {
       log("the request is for local processing\n");
   };

null

Pode ser utilizado para reiniciar o valor de uma variavel ou para deletar um avp


Exemplo de uso:

   $avp(i:12) = null;
   $var(x) = null;


Parametros

Parametros do core

Parametros globais que podem ser definidos no arquivo de configuração. Valores aceitos são dependendo de qual parametro, string, numeros ou yes/no. Se você precisa especificar yes ou no como parte de uma string faça isso utilizando aspas duplas.


advertised_address

Pode ser um endereço IP ou uma string e respresenta o endereço anunciado no cabeçalho Via e em outros pontos (como cabeçalho RR), se for vazio ou não definido (valor default) o endereço do socket de onde a requisição é enviada será utilizado.

AVISO:

 - não defina este parametro a menos que você saiba exatamente oque está fazendo 
 - você pode definir qualquer coisa aqui, nenhuma checagem é realizada (ex: foo.bar será aceito mesmo que não exista)


Exemplo de uso

   advertised_address="opensips.org"

Além deste parametro é possivel definir o IP e porta por interface , veja o parametro 'listen'. Quando são definidos valores estes serão utilizados apenas para o tráfego que sai da interface.


advertised_port

A porta que será anunciada no cabeçalho VIA e outros. Se vazio ou não definido (valor padrão) a porta por onde a mensagem está sendo enviada será utilizada, atente-se para os mesmos aviso do 'advertised_address'.


Exemplos de uso:

   advertised_port=5080


Além deste parametro é possivel definir o IP e porta por interface , veja o parametro 'listen'. Quando são definidos valores estes serão utilizados apenas para o tráfego que sai da interface.

alias

Parametro para definir outros hostname para o servidor. Este parametro pode ser utilizado quantas vezes necessário, cada valor será adicionado a uma lista e poderá ser utilizado quando a variavel 'myself' for verificada

É necessário incluir a porta (o valor de porta utilizado em 'port=' ou 'listen=') na definição do aliás, caso contrário a função loose_route() não irá funcionar como esperado para encaminhamentos locais.


Exemplos de uso:


   alias=other.domain.com:5060
   alias=another.domain.com:5060


auto_aliases

Este parametro controla se o alias deve ser 'descoberto' automaticamente e adicionado aos valores de listening. A auto descoberta são resutados de checagens de DNS (se o valor é um nome e não um ip), ou em uma checagem de DNS reverso se for um IP.


Por questões de compatibilidade o valor default é "on".


Exemplo de uso:

   auto_aliases=no
   auto_aliases=0


check_via

Verifica se o endereço de VIA nos replys é local. Default é 0 (desabilitado)


Exemplo de uso:

   check_via=1 

children

Número de processos filho a ser executado para cada interface UDP ou SCTP que você tenha definido, o valor default é 8.


Exemplo de uso:

   children=16

Este valor global (aplicado para todas as interfaces UDP/SCTP) pode ser sobrescrito se você definir um numero diferente na definição de um interface especifica - então atualmente você pode definir um numero diferente de processos para cada interface ( veja o parametro 'Listen' para conhecer a syntaxe ).


chroot

O valor deve ser um caminho valido no sistema. Se definido o OpenSIPS irá rodar nesta estrutura (diretório).


Exemplo de uso:

   chroot=/other/fakeroot

db_version_table

Nome da versão de tabela que deve ser utilizada pela API para chegar a versão das tabelas utilizadas.

O valor padrão é "version"


Exemplo de uso:

   db_version_table="version_1_8"


db_default_url

A URL default para acesso ao banco usado pelos módulos se não for definido em cada um. Valor default é NULL (não definido)


Exemplos de uso:

   db_default_url="mysql://opensips:opensipsrw@localhost/opensips"


debug

Define o nível de debug. Quanto maior, mais mensagens de debug o OpenSIPS irá exibir.


Exemplo de uso:


   debug=1 -- Exibe apenas informações importantes ( como erros ou situações mais criticas) 
   - recomendado quando opensips está rodando em daemon
   debug=4 -- Exibe um monte de mensagens - use apenas se você estiver realizando um debug realmente.


Valores atuais:

  • -3 - Alerta
  • -2 - Critico
  • -1 - Erro
  • 1 - Aviso
  • 2 - Noticia
  • 3 - Info
  • 4 - Debug


O parametro 'debug' é utilizado junto com 'log_stderror'

O valor de 'debug' pode também ser verificado e definido dinamicamente utilizando a função MI 'debug'


disable_503_translation

Se definido para 'yes' o OpenSIPS não irá traduzir os replies 503 em 500 (RFC 3261 define que um proxy nunca deve fazer relay de mensagens 503, mas sim transformar em 500).

Valor default é 'no' (executa a transformação).


disable_core_dump

Pode ser definido como 'yes' ou 'no', por padrão os limites do core dump são definidos para ilimitados, ou um valor grande. Defina esta configuração para 'yes' para desativar o core dump-ing ( o valor sera alterado para 0 neste caso ).

Valor default é 'no'


Exemplo de uso:

   disable_core_dump=yes

disable_dns_blacklist

O DNS resolver, quando configurado com failover pode automaticamente armazenar uma blacklist com os destinos que falharam. Isso irá previnir (por um periodo limitado de tempo) o OpenSIPS de enviar requisições para destinos que estão em estado de falha, desta forma a blacklist pode ser utilizado como uma memoria para o DNS resolver.

A blacklist temporaria criada pelo DNS resolver é chamada 'dns' e é por default selecionada para uso (não precisa utilizar a função use_blacklist() ). As regras para esta lista duram por 4 minutos - você pode alterar este valor durante a compilação no arquivo blacklist.h .

Pode ser setado para 'yes' ou 'no', por padrão é desativo ('yes')


Exemplos de uso:

   disable_dns_blacklist=no


disable_dns_failover

Pode ser definido para 'yes' ou 'no', por default failover baseado em DNS é ativado, defina para 'yes' se você quiser desativar o failover baseado em DNS. Este é um parametro global, e afeta o core os módulos também.

Valor default é 'no'

Exemplo de uso:

   disable_dns_failover=yes


disable_stateless_fwd

Pode ser definido para 'yes' ou 'no' , este parametro controla a manipulação de relies stateless.


   yes - derruba replies stateless se um encaminhamento statelss nao for utilizado (como um forward) 
   no - encaminha replies stateless

Valor default é 'yes'

disable_tcp=

Parametro global para desativar o suporte a TCP no servidor SIP, valor padrão é 'no'.


Exemplo de uso:

   disable_tcp=yes

disable_tls

Parametro global para desativar o suporte a TLS no servidor SIP, valor padrão é 'yes'.


Exemplo de uso:

   disable_tcp=no

dns

Este parametro controla de o servidor SIP irá tentar verificar seu proprio dominio no DNS, se o parametro for setado para 'yes' e o nome de dominio não está no DNS um warning será exibido no syslog e um campo 'received=' será adicionado no cabeçalho via.


Valor default é 'no'

dns_retr_time

Tempo em segundos antes de tentar uma requisição de dns novamente, o valor default é definido pelo sistema, e depende também do conteúdo do '/etc/resolv.conf' (normalmente 5s).


Exemplo de uso:

   dns_retr_time=3

dns_retr_no

Número de retransmissão de dns antes de desistir. O valor default é definido pelo sistema, depende também, do conteúdo do '/etc/resolv.conf' (normalmente 4).


Exemplo de uso:

   dns_retr_no=3

dns_servers_no

Quantos servidores dns dos definidos em '/etc/resolv.conf' serão utilizados. O valor default é usar todos.


Exemplo de uso:

   dns_servers_no=2

dns_try_ipv6

Pode ser definido para 'yes' ou 'no'. Se definido para 'yes' e uma verificação falhar será verificado por um endereço ipv6 (registro AAAA no dns). Valor default é 'no'.


Exemplo de uso:

   dns_try_ipv6=yes

dns_use_search_list

Pode ser 'yes' ou 'no', se setado para 'no' a lista de pesquisa em '/etc/resolv.conf' será ignorada ( menos lookups, desiste mais rapido ). Valor default é 'yes'.

NOTA: mesmo que você não tenha uma lista definida, setando este parametro para 'no' continuará sendo mais rapido que uma lista vazia "" (então mesmo que que a lista esteja vazia haverá 2 requisições de dns sendo um para foot+'.' e outra para foo+" "+"." )


Exemplo de uso:

   dns_use_search_list=no

dst_blacklist

Definição de uma blacklista statica (read-only) de IP/destino. Esta lista pode ser selecionado do script (durante a execução) para filtrar requisições de saída baseado em IP, protocolo, porta e etc..

Seu proposito primário é prevenir o envio de requisições para IPs criticos (como gateways) através de dns ou para evitar enviar para destinos que estão indisponiveis (temporaria ou permanentemente)


Exemplo de uso


  # filtra requisições saintes indo para ips de meus gateways
  dst_blacklist = gw:{( tcp , 192.168.2.100 , 5060 , "" ),( any , 192.168.2.101 , 0 , "" )}
  # bloqueia requisições para redes malignas
  dst_blacklist = net_filter:{ ( any , 192.168.1.100/255.255.255.0 , 0 , "" )}
  # bloqueia requisições com palavras sujas
  dst_blacklist = msg_filter:{ ( any , 192.168.20.0/255.255.255.0 , 0 , "MESSAGE*ugly_word" )}
  # bloqueia requisições que não vão para uma rede especifica
  dst_blacklist = net_filter2:{ !( any , 192.168.30.0/255.255.255.0 , 0 , "" )}


Cada regra é definida por:

  • protocol : TCP, UDP, TLS ou "any" para todos
  • port : numero 0 para todas
  • ip/mask : ip ou ip e mascara de rede
  • test patter - um arquivo para verificar (veja "man 3 fnmatch" para conhecer o formato) que será aplicado no buffer de requisições de saida (first_line+hdrs+body)

event_pkg_threshold

Um numero representando a porcentagem limiar onde o evento E_CORE_PKG_THRESHOLD será disparado, avisos sobre baixo volume de memoria privada disponivel. Este parametro aceita um valor inteiro entre 0 e 100.


Valor default é 0 (evento desativado).


Exemplo de uso:

   event_pkg_threshold = 90

event_shm_threshold

Um numero representando a porcentagem limiar onde o evento E_CORE_SHM_THRESHOLD será disparado, avisos sobre baixo volume de memoria compartilhada disponivel. Este parametro aceita um valor inteiro entre 0 e 100.

Valor default é 0 (evento desativado).

Exemplo de uso:

   event_shm_threshold = 90

exec_dns_threshold

Um número representando o maximo em microsegundos que uma consulta de DNS será aguardada. Qualquer coisa acima deste número irá gerar um mensagem de warning no sistema de log.


Valor default é 0 ( log desativado )


Exemplo de uso:

   exec_dns_threshold = 60000


exec_msg_threshold

Um número representando o maximo em microsegundos que o processamento de uma mensagem SIP será aguardado. Qualquer coisa acima deste tempo irá gerar uma mensagem de warning no sistema de log.

Independente da mensagem e tempo de processamento um maior tempo consumido em funções do sistema pelo script também será logado.

Valor default é 0 (log desativado)


Exemplo de uso

   exec_msg_threshold = 60000

fork

Se definido para 'yes' o proxy irá gerar 'forks' e rodará em modo daemon, um processo será criado para cada interface de rede onde o proxy escuta e para cada protocolo (TCP/UDP), multiplicado pelo valor do parametro 'children'.

Quando definido para 'no' o proxy irá continuar no terminal e utilizará apenas um processo, a primeira interface é utilizada para o listening e o OpenSIPS irá executar apenas em UDP, como o processo é anexado ao terminal de execução não é gerado um arquivo de PID mesmo que seja utilizando na linha de comando o parametro -P.

Valor default é 'yes'


Exemplo de uso:

   fork=no

group gid

ID do grupo que irá executar o OpenSIPS.


Exemplo de uso:

 group="opensips"

include_file

Pode ser chamada de fora dos blocos de roteamento para carregar rotas ou blocos adicionais , ou dentro dos blocos para simplesmente executar algumas funções extras, o caminho para o arquivo pode ser relativo ou absoluto, se não for absoluto primeiro tenta localizar o mesmo relativo ao diretório atual, se falhar, a segunda tentativa será relativa ao diretório que o arquivo é incluido, será exibido um erro se o arquivo não for encontrado.


Exemplos de uso:


   include_file "proxy_regs.cfg"


import_file

Mesma situação de include_file mas não irá exibir mensagem se o arquivo não for encontrado.


Exemplo de uso:


   import_file "proxy_regs.cfg"


listen

Define o endereço de rede que o servidor SIP irá aguardar por requisições , pode ser um endereço IP, um hostname, ou o id de uma interface de rede ou ainda uma combinação de protocolo:endereço:porta (ex: udp:10.10.10.10:5060 ). Este parametro pode ser definido várias vezes no mesmo arquivo de configuração e o servidor irá aceitar requisições em todos os endereços especificados.

A definição do listen pode aceitar alguns parametros, veja abaixo:

The listen definition may accept several optional parameters for:

  • Configurando um ip de advertise e porta apenas para esta interface. Syntax "AS 11.22.33.44:5060"
  • Configurando um numero diferente de children para esta interface apenas (para UDP e SCTP). esta opção irá sobrescrever o parametro global 'children'. Syntax 'use_children 5'

Lembre-se que este parametros tem efeito apenas para a interface onde são configurados, se não definido por interface o parametro global será utilizado.


Exemplo de uso:


   listen=10.10.10.10
   listen=eth1:5062
   listen=udp:10.10.10.10:5064
   listen=udp:127.0.0.1:5060 use_children 5
   listen=udp:127.0.0.1:5060 as 99.88.44.33:5060 use_children 3
   listen=127.0.0.1 use_children 3

Se você não especificar este parametro o servidor SIP irá aceitar requisições em todas as interfaces, ao iniciar o servidor você verá a informação sobre todas as interfaces que o servidor esta utilizando. Mesmo se você definir apenas a interface UDP aqui o servidor irá iniciar a engine de TCP também, se você não quer isso desative o suporte a TCP com o parametro do core disable_tcp


log_facility

Se o OpenSIPS está utilizando o syslog você pode controlar os recursos para log. Muito útil quando você quer separar os logs do OpenSIPS em um arquivo diferente, para mais detalhes veja a man page do syslog(3).

Veja também: http://www.voice-system.ro/docs/ser-syslog/

Valor default é LOG_DAEMON

Exemplo de uso:

   log_facility=LOG_LOCAL0


log_name

Define o id para ser exibido no syslog. Este valor deve ser uma string and tem efeito apenas quando o OpenSIPS é executado em modo daemon (fork=yes).

Valor default é argv[0]

Exemplo de uso:

   log_name="osips-5070"


log_stderror

Com este parametro você pode fazer com que o OpenSIPSescreva os logs e mensagens de debug no saida padrão, possiveis valores são:


- "yes" - escreve as mensagens na saída padrão

- "no" - escreve as mensagens no syslog

Valor default é 'no'

Para mais informações veja: http://www.voice-system.ro/docs/ser-syslog/

Exemplos de uso:

   log_stderror=yes

max_while_loops

Este parametro define o valor maximo de vezes que um loop pode ser executando em uma função while, esta função existe para proteger o sistema de loop infinito, valor default é 100.

Exemplo de uso:

   max_while_loops=200


maxbuffer

O valor em bytes para que não seja excedido durante um procedimento de auto-probing para descoberta the tamanho maximo de buffer de um pacote UDP, valor default é 262144.

Exemplo de uso:

   maxbuffer=65536

memdump | mem_dump=

Nivel de log para exibir informações de memoria (execução e shutdown), precisa ser menor que o valor de debug se você desejar que as informações de memória sejam logadas, valor default é 'memdump=L_DBG' (4)

Exemplo de uso:

   memdump=2

Veja que definindo o memlog (abaixo), irá também definir o parametro memdump, se você quer valores diferentes você primeiro precisa definir o memlog e então o memdump.

memlog | mem_log

Nivel de log para exibição de informações sobre memoria, necessita ser um valor menor que o de 'debug' se você deseja que a informação seja logada, o valor default é 'memlog=L_DBG' (4)

Exemplo de uso

   memlog=2

Nota: definindo o parametro memlog o memdump será automaticamente definido para o mesmo valor (veja a documentação do memdump).


mcast_loopback

Pode ser definido como 'yes' ou 'no', se definido para 'yes' os datagramas multicast serão enviado através da interface loopback, o valor default é 'no'.

Exemplo de uso

   mcast_loopback=yes

mcast_ttl

Define o valor do ttl para multicast, valor default é relativo ao sistema operacional (normalmente 1)


Exemplo de uso:

   mcast_ttl=32

mhomed

Define o servidor para tentar localizar a interface de saída em host multihomed, o valor default é 0 (sem multihomed)


Exemplo de uso:

   mhomed=1

mpath

Define o caminho para procura de módulos, pode ser utilizado para simplificar os parametros de carregamento de módulo.


Exemplo de uso:


   mpath="/usr/local/lib/opensips/modules"
   loadmodule "mysql.so"
   loadmodule "uri.so"
   loadmodule "uri_db.so"
   loadmodule "sl.so"
   loadmodule "tm.so"
   ...


open_files_limit

Se definido para um valor maior que o limite de arquivos abertos atual o OpenSIPS irá tentar aumentar este valor para o número definido.

Nota: OpenSIPS deve ser iniciado como para ser capaz de aumentar o limit além do hard limit ( que normalmente é de 1024 na maioria dos sistemas )

Exemplo de uso:

   open_files_limit=2048


port

A porta que o servidor SIP irá utilizar, o valor padrão é 5060.

Exemplo de uso:

   port=5080

reply_to_via

Se definido para 1, todo reply local será enviado para o endereço anunciado no topo da requsição (Via). O varlor default é 0 (off)


Exemplo de uso

   reply_to_via=0

query_buffer_size

Se definido para um valor maior que 1 os inserts par ao banco de dados não serão enviados um a um, as linhas ficarão armazenadas na memória até que atinjam o número definido em query_buffer_size e apenas ai serão enviadas para o banco de dados.

Exemplo de uso:

   query_buffer_size=5

query_flush_time

Se o query_buffer_size é definido para um valor maior que 1 um timer será disparado cada query_flush_time (segundos), assegurando que aquela linha não fique na memória por muito tempo.

Exemplo de uso:

    query_flush_time=10

rev_dns

Este parametro controla se o servidor SIP deve tentar verificar o proprio IP no DNS, se o parametro for definido para 'yes' e o IP não está no DNS um warning será exibido no syslog e o campo 'received=' será adicionado ao campo via do cabeçalho.

Valor default é 'no'


server_header

O corpo do campo server no cabeçalho gerado pelo OpenSIPS quando ele envia um request como UAS, o valor default é 'OpenSIPS (<version>(<arch>/<os>))'.


Exemplo de uso:


server_header="Server: My Company SIP Proxy"

Veja que você deve adicionar o nome "Server: ", do contrário o OpenSIPS irá escrever um cabeçalho como o abaixo.

My Company SIP Proxy


server_signature

Este parametro controla o cabeçalho 'Server' em qualquer mensagem localmente gerada.


Exemplo de uso:

    server_signature=no

Se ativo (default=yes) o cabeçalho é gerado como no exemplo abaixo.

    Server: OpenSIPS (0.9.5 (i386/linux))

sip_warning

Pode ser definido como 0 ou 1, se definido para 1 (valor default é 0) um cabeçalho 'Warning' é adicionado a cada reply gerado pelo OpenSIPS, o cabeçalho contem vários detalhes para auxiliar na solução de problemas usando dumps de trafego de rede.

Exemplo de uso:

   sip_warning=0

tcp_children

Número de processos filho que serão criados para aceitar conexões TCP, se nenhum valor for explicitamente setado, o mesmo valor séra utilizado para TCP e UDP ( baseado no parametro 'children')

Exemplo de uso:

   tcp_children=4

tcp_accept_aliases

- Nao existe definição para esta função na documentação


tcp_listen_backlog

O argumento de backlog define o tamanho maximo onde a fila de conexoões pendentes para TCP deverá crescer, se uma requisição chega quando a fila está cheia o cliente deve receber um erro com a indicação de ECONNREFUSED ou se o protocolo suportar retransmissão o request será ignorado e então tentará novamente até que a conexão complete.

O valor default é 10

tcp_send_timeout

Tempo em segundos para uma conexão TCP ser fechada se não está disponivel para escrita neste intervalo (e o OpenSIPS precisa enviar alguma coisa para esta)

Exemplo de uso:

   tcp_send_timeout=3

tcp_connect_timeout

Tempo em segundos antes que uma tentativa de conexão (de saída) seja abortada.


Exemplo de uso:

   tcp_connect_timeout=5


tcp_connection_lifetime

Tempo de vida em segundos para uma sessão TCP, uma conexão que esteja inativa por > tcp_connection_lifetime será fecada pelo OpenSIPS, o valor default é definido no arquivo tcp_conn.h ( #define DEFAULT_TCP_CONNECTION_LIFETIME 120 ), definir este valor para 0 fechará as conexões TCP de forma muito rapida, você pode também definir o valor para expirar de acordo com o valor do REGISTER (expire) utilizando o parametro tcp_persistent_flag no módulo registrar.


Exemplo de uso:

   tcp_connection_lifetime=3600

tcp_max_connections

Número maximo de conexões tcp (se o número for excedido nenhuma nova conexão será aceita), o valor default é definido em tcp_conn.h ( #define DEFAULT_TCP_MAX_CONNECTIONS 2048)

Exemplo de uso

   tcp_max_connections=4096

tcp_poll_method

Método eleito para uso (por default a melhor opção para o sistema operacional é definida), para os tipos disponiveis veja os arquivos io_wait.c e poll_types.h: none, poll, epoll_lt, epoll_et, sigio_rt, select, kqueue, /dev/poll

poll method used (by default the best one for the current OS is selected). For available types see io_wait.c and poll_types.h: none, poll, epoll_lt, epoll_et, sigio_rt, select, kqueue, /dev/poll

Exemplo de uso:

   tcp_poll_method=select

tcp_no_new_conn_bflag

Uma flag para ser utilizada pela perna (branch) como marca para instruir o OpenSIPS para não abrir uma nova conexão TCP enquanto entrega uma requisição mas apenas reusar uma (se disponivel), se não existir uma conexão um erro genérico será retornado.

Isso foi feito para ser utilizado em cenários de NAT onde não faz sentido abrir uma conexão TCP já que o destino está atrás de NAT ( como quando uma conexão TCP criada durante o registro é perdida, neste caso não há como contactar o dispositivo até que ele se re-REGISTRE) , além disso, esta função pode ser utilizada para detectar quando um usuário registrado atrás de NAT perde sua conexão TCP, então o opensips pode desativar seu registro por desuso.


Exemplo de uso:

    tcp_no_new_conn_bflag = 6
    ....
    route{
        ....
        if( destination_behin_nat && proto==TCP )
           setbflag(6);
        ....
        t_relay("0x02"); # no auto error reply
        $var(retcode) = $rc;
        if ($var(retcode)==-6) {
            #send error
            xlog("unable to send request to destination");
            send_reply("404","Not found");
            exit;
        } else if ($var(retcode)<0) {
            sl_reply_error();
            exit;
        }
        ....
    }

tcp_threshold

Um número representando o maximo em microsegundos para se aguardar resposta de uma conexão TCP, qualquer coisa acima deste valor irá disparar um mensagem de aviso no log.

Valor default é 0 (log desativado)


Exemplo de uso

   tcp_threshold = 60000

tcp_keepalive

Ativa ou Desativa keepalive no TCP


Exemplo de uso:

   tcp_keepalive = 1

tcp_keepcount

Número de keepalives para enviar antes de encerrar a conexão (válido apenas no linux)


Exemplo de uso

   tcp_keepcount = 5

tcp_keepidle

Quantidade de tempo antes que o OpenSIPS comece a enviar os keepalive se a conexão estiver idle (válido apenas no linux)

Exemplo de uso:

   tcp_keepidle = 30

tcp_keepinterval

Intervalo entre testes de keepalive se o teste anterior falhou (válido apenas no linux)


Exemplo de uso:

   tcp_keepinterval = 10

tls_ca_list

tls_certificate

tls_ciphers_list

tls_domain

tls_handshake_timeout

tls_log

tls_method

tls_port_no

tls_private_key

tls_require_certificate

tls_send_timeout

tls_verify

tos

O TOS (Tipo de serviço) para ser utilizado nos pacotes enviados (válido para TCP e UDP)


Exemplo de uso:


   tos=IPTOS_LOWDELAY
   tos=0x10
   tos=IPTOS_RELIABILITY



user uid

O ID do usuário que vai rodar o OpenSIPS


Exemplo de uso

   user="opensips"


user_agent_header

O corpo do cabeçalho User-Agent gerado pelo OpenSIPS quando ele envia um request como UAC. O default é 'OpenSIPS (<version> (<arch>/<os>))'.


Exemplo de uso:


user_agent_header="User-Agent: My Company SIP Proxy"

Observe que você deve incluir a string 'User-Agent:' ou o OpenSIPS irá gerar apenas um header como 'My Company SIP Proxy'

wdir

O diretório usado pelo OpenSIPS durante a execução, você achará útil quando começar a gerar arquivos de core.


Exemplos de uso:

    wdir="/usr/local/opensips"

ou

    wdir=/usr/opensips_wd