<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://opensips.com.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Formato_do_script</id>
	<title>Formato do script - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="http://opensips.com.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Formato_do_script"/>
	<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Formato_do_script&amp;action=history"/>
	<updated>2026-05-12T23:47:23Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://opensips.com.br/wiki/index.php?title=Formato_do_script&amp;diff=1439&amp;oldid=prev</id>
		<title>Mike: Criou página com 'O script de configuração do OpenSIPs possui três partes logicas:  * Parametros globais * Sessão de módulos  * lógica de roteamento   ---- ==Parametros Globais==  Normalm...'</title>
		<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Formato_do_script&amp;diff=1439&amp;oldid=prev"/>
		<updated>2013-10-05T18:58:21Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;O script de configuração do OpenSIPs possui três partes logicas:  * Parametros globais * Sessão de módulos  * lógica de roteamento   ---- ==Parametros Globais==  Normalm...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;O script de configuração do OpenSIPs possui três partes logicas:&lt;br /&gt;
&lt;br /&gt;
* Parametros globais&lt;br /&gt;
* Sessão de módulos &lt;br /&gt;
* lógica de roteamento&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Parametros Globais==&lt;br /&gt;
&lt;br /&gt;
Normalmente é a primeira parte do script, neste você declara os [[Parâmetros Globais]] - estes parametros ou parametros de core afetão o core do OpenSIPS e possivelmente os módulos.&lt;br /&gt;
&lt;br /&gt;
É possível configurar os endereços para aceitar requisição, protocolos de transporte disponiveis, forking (número de processos) , log's e outras coisas que são providas por estes parametros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
disable_tcp = yes&lt;br /&gt;
listen = udp:192.168.2.10:5060&lt;br /&gt;
listen = udp:192.168.2.10:5070&lt;br /&gt;
fork = yes&lt;br /&gt;
children = 4&lt;br /&gt;
log_stderror = no&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Sessão de módulos==&lt;br /&gt;
&lt;br /&gt;
Em relação aos módulos do OpenSIPS, os módulos que são para serem carregados (nenhum módulo é carregado por default) são especificados utilizando a diretiva '''loadmoule'''. Os módulos devem ser especificados pelo nome e opcionalmente o caminho (para o arquivo ''.so'' ). Se não é informado o caminho (e apenas o nome do módulo) , o caminho padrão será assumido para localização e carregamento destes módulos (o caminho padrão é ''/usr/lib/opensips/modules''' se outro não foi configurado durante [[Compilando_e_instalando_o_OpenSIPS|a compilação]] , ai neste caso deve ser utilizado o caminho completo , ou você pode definir de forma global (para todos os módulos) através da diretiva ''mpath'' nos parametros globais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uma vez que os módulos são carregados, os paramaetros para os módulos devem ser definidos utilizando a diretiva '''modparam''' , para verificar os parametros de cada módulo e os tipos de valores você pode verificar na documentação do módulo em especifico na sessão '''Parametros'''.&lt;br /&gt;
&lt;br /&gt;
Exemplos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
loadmodule &amp;quot;modules/mi_datagram/mi_datagram.so&amp;quot;&lt;br /&gt;
modparam(&amp;quot;mi_datagram&amp;quot;, &amp;quot;socket_name&amp;quot;, &amp;quot;udp:127.0.0.1:4343&amp;quot;)&lt;br /&gt;
modparam(&amp;quot;mi_datagram&amp;quot;, &amp;quot;children_count&amp;quot;, 3)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mpath=&amp;quot;/usr/local/opensips_proxy/lib/modules&amp;quot;&lt;br /&gt;
loadmodule &amp;quot;mi_datagram.so&amp;quot;&lt;br /&gt;
modparam(&amp;quot;mi_datagram&amp;quot;, &amp;quot;socket_name&amp;quot;, &amp;quot;udp:127.0.0.1:4343&amp;quot;)&lt;br /&gt;
modparam(&amp;quot;mi_datagram&amp;quot;, &amp;quot;children_count&amp;quot;, 3)&lt;br /&gt;
loadmodule &amp;quot;mi_fifo.so&amp;quot;&lt;br /&gt;
modparam(&amp;quot;mi_fifo&amp;quot;, &amp;quot;fifo_name&amp;quot;, &amp;quot;/tmp/opensips_fifo&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Lógica de Roteamento==&lt;br /&gt;
&lt;br /&gt;
A lógica de roteamente é atualmente a soma das rotas que contem no arquivo para o roteamento do trafego SIP. A descrição de '''oque o OpenSIPS deve fazer relacionado ao trafego SIP''' é feita atraves destas rotas.&lt;br /&gt;
&lt;br /&gt;
Existem diferentes tipos de rota:&lt;br /&gt;
&lt;br /&gt;
===top routes===&lt;br /&gt;
Rotas que são executadas diretamente pelo OpenSIPS quando alguns eventos acontecem (Como requisições recebidas, um SIP reply recebido ou uma falha de transação entre outras).&lt;br /&gt;
&lt;br /&gt;
===sub routes===&lt;br /&gt;
Rotas que são executadas/utilizadas por outras rotas do script&lt;br /&gt;
&lt;br /&gt;
Quais são as '''top routes''', quando elas são chamadas , que tipo de mensagem SIP elas manipulam, que operações SIP são permitidas e outras estão documentadas em [[Tipos de Rotas]].&lt;br /&gt;
&lt;br /&gt;
As '''sub-routes''' possuem nomes e devem ser chamadas por outras rotas ( top ou sub ) por seus nomes. As '''sub-routes''' podem ter parametros (quando chamadas) ou retornarem um código numero (evite retornar 0 pois isso irá terminar o script todo), as '''sub-routes''' são similares a funções ou procedures de qualquer linguagem de programação.&lt;br /&gt;
&lt;br /&gt;
Veja em [[Funções Core|Funções do Core]] a descrição da diretiva ''route'' para mais detalhes&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route { # top-route cahamada pela requisição que chegou&lt;br /&gt;
   if ( route(src_ip_is_gw) ) {&lt;br /&gt;
      xlog(&amp;quot;request $rm comes from GW\n&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
onreply_route { # top-route chamada pelo reply da requisição&lt;br /&gt;
   if ( route(src_ip_is_gw) ) {&lt;br /&gt;
      xlog(&amp;quot;reply $rc comes from GW\n&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
route[src_ip_is_gw] { # sub-route chamadas pelas top-route anteriores&lt;br /&gt;
   if ($si=='11.22.33.44' || $si=='11.22.33.45')&lt;br /&gt;
      return 1;&lt;br /&gt;
   return -1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OpenSIPS_1.9_Manual|Voltar]]&lt;/div&gt;</summary>
		<author><name>Mike</name></author>
		
	</entry>
</feed>