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

De opensipsbrasil - wiki
Ir para navegação Ir para pesquisar
(Criou página com 'Esta sessão lista todos os parametros globais exportados pelo core do '''OpenSIPS''' para utilização do script (para usar no opensips.cfg) ---- ==Keywords== Nota: Keyword...')
 
Linha 352: Linha 352:
  
  
!!!!check_via
+
====check_via====
  
Check if the address in top most via of replies is local. Default value is 0 (check disabled).
+
Verifica se o endereço de VIA nos replys é local. Default é 0 (desabilitado)
  
Example of usage:
+
 
 +
 
 +
Exemplo de uso:
  
 
     check_via=1  
 
     check_via=1  
  
!!!!children
+
====children====
 +
 
 +
Número de processos filho a ser executado para '''cada''' interface UDP ou SCTP que você tenha definido, o valor default é 8.
  
Number of children to fork for '''each''' UDP or SCTP interface you have defined. Default value is 8.
 
  
Example of usage:
+
Exemplo de uso:
[@
+
 
 
     children=16
 
     children=16
@]
 
  
%blue%NOTE%%: this global value (applicable for all UDP/SCTP interfaces) can be override if you set a different number of children in the definition of a specific interface - so actually you can define a different number of children for each interface (see the "listen" parameter for syntax).
+
<font color="blue">
 +
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 ).
 +
</font>
  
!!!!chroot
 
  
The value must be a valid path in the system. If set, '''OpenSIPS''' will chroot (change root directory) to its value.
+
====chroot====
  
Example of usage:
+
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
 
     chroot=/other/fakeroot
  
!!!!db_version_table
+
====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"'''
  
The name of the table version to be used by the DB API to check the version of the used tables.\\
 
Default value is '''"version"'''
 
  
Example of usage:
+
Exemplo de uso:
  
 
     db_version_table="version_1_8"
 
     db_version_table="version_1_8"
  
  
!!!!db_default_url
+
====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)
  
The default DB URL to be used by modules if no per-module URL is given. Default is NULL (not defined)
 
  
Example of usage:
+
Exemplos de uso:
  
 
     db_default_url="mysql://opensips:opensipsrw@localhost/opensips"
 
     db_default_url="mysql://opensips:opensipsrw@localhost/opensips"
  
  
!!!!debug
+
====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
  
Set the debug level. Higher values make '''OpenSIPS''' to print more debug messages.
+
    debug=4 -- Exibe um monte de mensagens - use apenas se você estiver realizando um debug realmente.
  
Examples of usage:
 
  
[@
+
Valores atuais:
    debug=1 -- print only important messages (like errors or more critical situations)
+
* -3 - Alerta
    - recommended for running proxy as daemon
+
* -2 - Critico
 +
* -1 - Erro
 +
*  1 - Aviso
 +
*  2 - Noticia
 +
*  3 - Info
 +
*  4 - Debug
  
    debug=4 -- print a lot of debug messages - use it only when doing debugging sessions
 
@]
 
  
Actual values are:
+
O parametro 'debug' é utilizado junto com 'log_stderror'
* -3 - Alert level
 
* -2 - Critical level
 
* -1 - Error level
 
*  1 - Warning level
 
*  2 - Notice level
 
*  3 - Info level
 
*  4 - Debug level
 
  
 +
O valor de 'debug' pode também ser verificado e definido dinamicamente utilizando a função MI 'debug'
  
  
The 'debug' parameter is usually used in concordance with 'log_stderror' parameter.
 
  
Value of 'debug' parameter can also be get and set dynamically using 'debug' Core MI function.
+
===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).
  
!!!!disable_503_translation
+
Valor default é 'no' (executa a transformação).
  
If 'yes', OpenSIPS will not translate the received 503 replies into 500 replies (RFC 3261 clearly states that a proxy should never relay a 503 response, but instead it must transform it into a 500).
 
  
Default value is 'no' (do translation).
+
====disable_core_dump====
  
!!!!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 ).
  
Can be 'yes' or 'no'. By default core dump limits are set to unlimited or
+
Valor default é 'no'
a high enough value. Set this config variable to 'yes' to disable core dump-ing
 
(will set core limits to 0).
 
  
Default value is 'no'.
 
  
Example of usage:
+
Exemplo de uso:
  
 
     disable_core_dump=yes
 
     disable_core_dump=yes
  
!!!!disable_dns_blacklist
+
====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 .
  
The DNS resolver, when configured with failover, can automatically store in a temporary blacklist the failed destinations. This will prevent (for a limited period of time) '''OpenSIPS''' to send requests to destination known as failed. So, the blacklist can be used as a memory for the DNS resolver.
+
Pode ser setado para 'yes' ou 'no', por padrão é desativo ('yes')
  
The temporary blacklist created by DNS resolver is named "dns" and it is by default selected for usage (no need use the use_blacklist()) function. The rules from this list have a life time of 4 minutes - you can change it at compile time, from blacklists.h .
 
  
Can be 'yes' or 'no'. By default the blacklist is disabled (Default value is 'yes').
 
  
Example of usage:
+
Exemplos de uso:
  
 
     disable_dns_blacklist=no
 
     disable_dns_blacklist=no
  
  
!!!!disable_dns_failover
+
====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'
  
Can be 'yes' or 'no'. By default DNS-based failover is enabled. Set this config variable to 'yes' to disable the DNS-based failover. This is a global option, affecting the core and the modules also.
+
Exemplo de uso:
  
Default value is 'no'.
+
    disable_dns_failover=yes
  
Example of usage:
 
  
     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
  
!!!!disable_stateless_fwd
+
Valor default é 'yes'
  
Can be 'yes' or 'no'. This parameter controls the handling of stateless replies:
+
====disable_tcp=====
[@
 
    yes - drop stateless replies if stateless fwd functions (like forward) are not used in script
 
    no - forward stateless replies
 
@]
 
Default value is 'yes'.
 
  
!!!!disable_tcp
+
Parametro global para desativar o suporte a TCP no servidor SIP, valor padrão é 'no'.
  
Global parameter to disable TCP support in the SIP server. Default value is 'no'.
 
  
Example of usage:
+
Exemplo de uso:
  
 
     disable_tcp=yes
 
     disable_tcp=yes
  
!!!!disable_tls
+
====disable_tls====
 +
 
 +
Parametro global para desativar o suporte a TLS no servidor SIP, valor padrão é 'yes'.
  
Global parameter to disable TLS support in the SIP server. Default value is 'yes'.
 
  
Example of usage:
+
Exemplo de uso:
  
 
     disable_tcp=no
 
     disable_tcp=no
  
!!!!dns
+
====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.
 +
 
  
This parameter controls if the SIP server should attempt to lookup its own domain name in DNS. If this parameter is set to yes and the domain name is not in DNS a warning is printed on syslog and a "received=" field is added to the via header.
+
Valor default é 'no'
  
Default is no.
+
====dns_retr_time====
  
!!!!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).
  
Time in seconds before retrying a dns request. Default value is system specific,
 
depends also on the '/etc/resolv.conf' content (usually 5s).
 
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     dns_retr_time=3
 
     dns_retr_time=3
  
!!!!dns_retr_no
+
====dns_retr_no====
  
Number of dns retransmissions before giving up. Default value is system specific,
+
Número de retransmissão de dns antes de desistir. O valor default é definido pelo sistema, depende também,  
depends also on the '/etc/resolv.conf' content (usually 4).
+
do conteúdo do '/etc/resolv.conf' (normalmente 4).
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     dns_retr_no=3
 
     dns_retr_no=3
  
!!!!dns_servers_no
+
====dns_servers_no====
  
How many dns servers from the ones defined in '/etc/resolv.conf' will be used.  
+
Quantos servidores dns dos definidos em '/etc/resolv.conf' serão utilizados.
Default value is to use all of them.
+
O valor default é usar todos.
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     dns_servers_no=2
 
     dns_servers_no=2
  
!!!!dns_try_ipv6
+
====dns_try_ipv6====
  
Can be 'yes' or 'no'. If it is set to 'yes' and a DNS lookup fails, it will retry it
+
Pode ser definido para 'yes' ou 'no'. Se definido para 'yes' e uma verificação falhar será verificado
for ipv6 (AAAA record). Default value is 'no'.
+
por um endereço ipv6 (registro AAAA no dns). Valor default é 'no'.
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     dns_try_ipv6=yes
 
     dns_try_ipv6=yes
  
!!!!dns_use_search_list
+
====dns_use_search_list====
  
Can be 'yes' or 'no'. If set to 'no', the search list in '/etc/resolv.conf'
+
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'.
will be ignored (=> fewer lookups => gives up faster). Default value is 'yes'.
 
  
HINT: even if you don't have a search list defined, setting this option
+
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+" "+"." )
to 'no' will still be "faster", because an empty search list is in
 
fact search "" (so even if the search list is empty/missing there will
 
still be 2 dns queries, eg. foo+'.' and foo+""+'.')
 
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     dns_use_search_list=no
 
     dns_use_search_list=no
  
!!!!dst_blacklist
+
====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)
  
Definition of a static (read-only) IP/destination blacklist. These lists can be selected from script (at runtime) to filter  the outgoing requests, based on IP, protocol, port, etc.
 
  
Its primary purposes will be to prevent sending requests to critical IPs (like GWs) due DNS or to avoid sending to destinations that are known to be unavailable (temporary or permanent).
+
Exemplo de uso
  
Example of usage:
 
  
[@
+
   # filtra requisições saintes indo para ips de meus gateways
   # filter out requests going to ips of my gws
 
 
   dst_blacklist = gw:{( tcp , 192.168.2.100 , 5060 , "" ),( any , 192.168.2.101 , 0 , "" )}
 
   dst_blacklist = gw:{( tcp , 192.168.2.100 , 5060 , "" ),( any , 192.168.2.101 , 0 , "" )}
   # block requests going to "evil" networks
+
 
 +
   # bloqueia requisições para redes malignas
 
   dst_blacklist = net_filter:{ ( any , 192.168.1.100/255.255.255.0 , 0 , "" )}
 
   dst_blacklist = net_filter:{ ( any , 192.168.1.100/255.255.255.0 , 0 , "" )}
   # block message requests with nasty words
+
 
 +
   # bloqueia requisições com palavras sujas
 
   dst_blacklist = msg_filter:{ ( any , 192.168.20.0/255.255.255.0 , 0 , "MESSAGE*ugly_word" )}
 
   dst_blacklist = msg_filter:{ ( any , 192.168.20.0/255.255.255.0 , 0 , "MESSAGE*ugly_word" )}
   # block requests not going to a specific subnet
+
 
 +
   # 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 , "" )}
 
   dst_blacklist = net_filter2:{ !( any , 192.168.30.0/255.255.255.0 , 0 , "" )}
@]
 
  
  
Each rule is defined by:
+
Cada regra é definida por:
*protocol : TCP, UDP, TLS or "any" for anything
+
*protocol : TCP, UDP, TLS ou "any" para todos
*port : number or 0 for any
+
*port : numero 0 para todas
*ip/mask
+
*ip/mask : ip ou ip e mascara de rede
*test patter - is a filename like matching (see "man 3 fnmatch") applied on the outgoing request buffer (first_line+hdrs+body)  
+
*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.
  
!!!!event_pkg_threshold
 
  
A number representing the percentage threshold above which the E_CORE_PKG_THRESHOLD event is raised, warning about low amount of free private memory. It accepts integer values between 0 and 100.
+
Valor default é 0 (evento desativado).
  
Default value is 0 ( event disabled ).
 
  
Example of usage:
+
Exemplo de uso:
  
 
     event_pkg_threshold = 90
 
     event_pkg_threshold = 90
  
!!!!event_shm_threshold
+
====event_shm_threshold====
  
A number representing the percentage threshold above which the E_CORE_SHM_THRESHOLD event is raised, warning about low amount of free shared memory. It accepts integer values between 0 and 100.
+
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.
  
Default value is 0 ( event disabled ).
+
Valor default é 0 (evento desativado).
  
Example of usage:
+
Exemplo de uso:
  
 
     event_shm_threshold = 90
 
     event_shm_threshold = 90
  
!!!!exec_dns_threshold
+
====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.
 +
 
  
A number representing the maximum number of microseconds a DNS query is expected to last. Anything above the set number will trigger a warning message to the logging facility.
+
Valor default é 0 ( log desativado )
  
Default value is 0 ( logging disabled ).
 
  
Example of usage:
+
Exemplo de uso:
  
 
     exec_dns_threshold = 60000
 
     exec_dns_threshold = 60000
  
!!!!exec_msg_threshold
 
  
A number representing the maximum number of microseconds the processing of a SIP msg is expected to last. Anything above the set number will trigger a warning message to the logging facility.
+
====exec_msg_threshold====
Aside from the message and the processing time, the most time consuming function calls from the script will also be logged.
 
  
Default value is 0 ( logging disabled ).
+
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.
  
Example of usage:
+
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
 
     exec_msg_threshold = 60000
  
!!!!fork
+
====fork====
  
If set to 'yes' the proxy will fork and run in daemon mode - one process will be created for each network interface the proxy listens to and for each protocol (TCP/UDP), multiplied with the value of 'children' parameter.
+
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'.
  
When set to 'no', the proxy will stay bound to the terminal and runs as single process. First interface is used for listening to. OpenSIPS will only listen on UDP. Since the process is attached to the controlling terminal, not PID file will be created even if the -P command line option was specified.
+
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.
  
Default value is 'yes'.
+
Valor default é 'yes'
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
     fork=no
 
     fork=no
  
!!!!group gid
+
====group gid====
  
The group id to run '''OpenSIPS'''.
+
ID do grupo que irá executar o '''OpenSIPS'''.
  
Example of usage:
+
 
 +
Exemplo de uso:
  
 
   group="opensips"
 
   group="opensips"
  
!!!!include_file
+
====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.
 +
 
  
Can be called from outside route blocks to load additional routes/blocks or from inside them to simply preform more functions. The file path can be relative or absolute. If it is not an absolute path, first attempt is to locate it relative to current directory. If that fails, second try is relative to directory of the file that includes it. Will throw an error if file is not found.
+
Exemplos de uso:
  
Example of usage:
 
  
[@
 
 
     include_file "proxy_regs.cfg"
 
     include_file "proxy_regs.cfg"
@]
 
  
!!!!import_file
 
  
Same as include_file but will not throw an error if file is not found.
+
====import_file====
 +
 
 +
Mesma situação de include_file mas não irá exibir mensagem se o arquivo não for encontrado.
 +
 
 +
 
 +
 
 +
Exemplo de uso:
  
Example of usage:
 
  
[@
 
 
     import_file "proxy_regs.cfg"
 
     import_file "proxy_regs.cfg"
@]
 
  
!!!!listen
 
  
Set the network addresses the SIP server should listen to. It can be an IP address, hostname or network interface id or combination of protocol:address:port (e.g., udp:10.10.10.10:5060). This parameter can be set multiple times in same configuration file, the server listening on all addresses specified.
+
====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:
 
The listen definition may accept several optional parameters for:
* configuring an advertise IP and port only for this interface. Syntax "AS 11.22.33.44:5060"
+
* Configurando um ip de advertise e porta apenas para esta interface. Syntax "AS 11.22.33.44:5060"
* setting a different number of children for this interface only (for UDP and SCTP interfaces only). This will override the global "children" parameter. Syntax "use_children 5"
+
* 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'
Remember that this parameters have affect only for the interface they are configured for; if not defined per interface, the global values will be used.
+
 
 +
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:
  
Example of usage:
 
  
[@
 
 
     listen=10.10.10.10
 
     listen=10.10.10.10
 
     listen=eth1:5062
 
     listen=eth1:5062
Linha 674: Linha 711:
 
     listen=udp:127.0.0.1:5060 as 99.88.44.33:5060 use_children 3
 
     listen=udp:127.0.0.1:5060 as 99.88.44.33:5060 use_children 3
 
     listen=127.0.0.1 use_children 3
 
     listen=127.0.0.1 use_children 3
@]
 
  
If you omit this directive then the SIP server will listen on all interfaces. On start the SIP server reports all the interfaces that it is listening on. Even if you specify only UDP interfaces here, the server will start the TCP engine too. If you don't want this, you need to disable the TCP support completely with the core parameter disable_tcp.
+
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
 
!!!!log_facility

Edição das 20h38min 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)



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

If OpenSIPS logs to syslog, you can control the facility for logging. Very useful when you want to divert all OpenSIPS logs to a different log file. See the man page syslog(3) for more details.

For more see: http://www.voice-system.ro/docs/ser-syslog/

Default value is LOG_DAEMON.

Example of usage:

   log_facility=LOG_LOCAL0


!!!!log_name

Set the id to be printed in syslog. The value must be a string and has effect only when OpenSIPS runs in daemon mode (fork=yes), after daemonize. Default value is argv[0].

Example of usage:

   log_name="osips-5070"


!!!!log_stderror

With this parameter you can make OpenSIPS to write log and debug messages to standard error. Possible values are:

- "yes" - write the messages to standard error

- "no" - write the messages to syslog

Default value is "no".

For more see: http://www.voice-system.ro/docs/ser-syslog/

Example of usage:

   log_stderror=yes

!!!!max_while_loops

The parameters set the value of maximum loops that can be done within a "while". Comes as a protection to avoid infinite loops in config file execution. Default is 100.

Example of usage:

   max_while_loops=200


!!!!maxbuffer

The size in bytes not to be exceeded during the auto-probing procedure of discovering the maximum buffer size for receiving UDP messages. Default value is 262144.

Example of usage:

   maxbuffer=65536


!!!!memdump | mem_dump

Log level to print memory status information (runtime and shutdown). It has to be less than the value of 'debug' parameter if you want memory info to be logged. Default: memdump=L_DBG (4)

Example of usage:

   memdump=2

NOTE that setting memlog (see below), will also set the memdump parameter - if you want different values for memlog and memdump, you need to first set memlog and then memdump.


!!!!memlog | mem_log

Log level to print memory debug info. It has to be less than the value of 'debug' parameter if you want memory info to be logged. Default: memlog=L_DBG (4)

Example of usage:

   memlog=2

NOTE: by setting memlog parameter, the memdump will automatically be set to the same value (see memdump docs).

!!!!mcast_loopback

It can be 'yes' or 'no'. If set to 'yes', multicast datagram are sent over loopback. Default value is 'no'.

Example of usage:

   mcast_loopback=yes

!!!!mcast_ttl

Set the value for multicast ttl. Default value is OS specific (usually 1).

Example of usage:

   mcast_ttl=32

!!!!mhomed

Set the server to try to locate outbound interface on multihomed host. By default is not (0) - it is rather time consuming.

Example of usage:

   mhomed=1

!!!!mpath

Set the module search path. This can be used to simplify the loadmodule parameter

Example of usage:

[@

   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

If set and bigger than the current open file limit, OpenSIPS will try to increase its open file limit to this number. Note: OpenSIPS must be started as root to be able to increase a limit past the hard limit (which, for open files, is 1024 on most systems).

Example of usage:

   open_files_limit=2048

!!!!port

The port the SIP server listens to. The default value for it is 5060.

Example of usage:

   port=5080

!!!!reply_to_via

If it is set to 1, any local reply is sent to the address advertised in top most Via of the request. Default value is 0 (off).

Example of usage:

   reply_to_via=0

!!!!query_buffer_size

If set to a value greater than 1, inserts to DB will not be flushed one by one. Rows to be inserted will be kept in memory until until they gather up to query_buffer_size rows, and only then they will be flushed to the database.

Example of usage:

   query_buffer_size=5

!!!!query_flush_time

If query_buffer_size is set to a value greater than 1, a timer will trigger once every query_flush_time seconds, ensuring that no row will be kept for too long in memory.

Example of usage:

    query_flush_time=10

!!!!rev_dns

This parameter controls if the SIP server should attempt to lookup its own IP address in DNS. If this parameter is set to yes and the IP address is not in DNS a warning is printed on syslog and a "received=" field is added to the via header.

Default is no.


!!!!server_header

The body of Server header field generated by OpenSIPS when it sends a request as UAS. It defaults to "OpenSIPS (<version> (<arch>/<os>))".


Example of usage:

[@ server_header="Server: My Company SIP Proxy" @]

Please note that you have to add the header name "Server:", otherwise OpenSIPS will just write a header like:

[@ My Company SIP Proxy @]


!!!!server_signature

This parameter controls the "Server" header in any locally generated message.

Example of usage:

    server_signature=no

If it is enabled (default=yes) a header is generated as in the following example:

    Server: OpenSIPS (0.9.5 (i386/linux))

!!!!sip_warning

Can be 0 or 1. If set to 1 (default value is 0) a 'Warning' header is added to each reply generated by OpenSIPS. The header contains several details that help troubleshooting using the network traffic dumps.

Example of usage:

   sip_warning=0

!!!!tcp_children

Number of children processes to be created for reading from TCP connections. If no value is explicitly set, the same number of TCP children as UDP children (see "children" parameter) will be used.

Example of usage:

   tcp_children=4

!!!!tcp_accept_aliases


!!!!tcp_listen_backlog

The backlog argument defines the maximum length to which the queue of pending connections for the TCP listeners may grow. If a connection request arrives when the queue is full, the client may receive an error with an indication of ECONNREFUSED or, if the underlying protocol supports retransmission, the request may be ignored so that a later reattempt at connection succeeds.

Default configured value is 10.

!!!!tcp_send_timeout

Time in seconds after a TCP connection will be closed if it is not available for writing in this interval (and OpenSIPS wants to send something on it).

Example of usage:

   tcp_send_timeout=3

!!!!tcp_connect_timeout

Time in seconds before an ongoing attempt to connect will be aborted.

Example of usage:

   tcp_connect_timeout=5


!!!!tcp_connection_lifetime!!!!

Lifetime in seconds for TCP sessions. TCP sessions which are inactive for >tcp_connection_lifetime will be closed by OpenSIPS. Default value is defined in tcp_conn.h: #define DEFAULT_TCP_CONNECTION_LIFETIME 120. Setting this value to 0 will close the TCP connection pretty quick ;-). You can also set the TCP lifetime to the expire value of the REGISTER by using the tcp_persistent_flag parameter of the registrar module.

Example of usage:

   tcp_connection_lifetime=3600

!!!!tcp_max_connections

maximum number of tcp connections (if the number is exceeded no new tcp connections will be accepted). Default is defined in tcp_conn.h: #define DEFAULT_TCP_MAX_CONNECTIONS 2048

Example of usage:

   tcp_max_connections=4096

!!!!tcp_poll_method

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

Example of usage:

   tcp_poll_method=select

!!!!tcp_no_new_conn_bflag

A branch flag to be used as marker to instruct OpenSIPS not to attempt to open a new TCP connection when delivering a request, but only to reuse an existing one (if available). If no existing conn, a generic send error will be returned.

This is intended to be used in NAT scenarios, where makes no sense to open a TCP connection towards a destination behind a NAT (like TCP connection created during registration was lost, so there is no way to contact the device until it re-REGISTER). Also this can be used to detect when a NATed registered user lost his TCP connection, so that opensips can disable his registration as useless.

Example of usage:

    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 A number representing the maximum number of microseconds sending of a TCP request is expected to last. Anything above the set number will trigger a warning message to the logging facility.

Default value is 0 ( logging disabled ).

Example of usage:

   tcp_threshold = 60000

!!!!tcp_keepalive

Enable / disable TCP keepalive

Example of usage:

   tcp_keepalive = 1

!!!!tcp_keepcount

Number of keepalives to send before closing the connection (Linux only)

Example of usage:

   tcp_keepcount = 5

!!!!tcp_keepidle

Amount of time before OpenSIPS will start to send keepalives if the connection is idle (Linux only)

Example of usage:

   tcp_keepidle = 30

!!!!tcp_keepinterval

Interval between keepalive probes, if the previous one failed (Linux only)

Example of usage:

   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

The TOS (Type Of Service) to be used for the sent IP packages (both TCP and UDP).

Example of usage:

[@

   tos=IPTOS_LOWDELAY
   tos=0x10
   tos=IPTOS_RELIABILITY

@]


!!!!user uid

The user id to run OpenSIPS (OpenSIPS will suid to it).

Example of usage:

   user="opensips"


!!!!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>))".

Example of usage:

[@ 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: [@ My Company SIP Proxy @]


!!!!wdir

The working directory used by OpenSIPS at runtime. You might find it usefull when come to generating core files :)

Example of usage: [@

    wdir="/usr/local/opensips"
    or
    wdir=/usr/opensips_wd

@]