<?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=Transforma%C3%A7%C3%B5es</id>
	<title>Transformações - 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=Transforma%C3%A7%C3%B5es"/>
	<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;action=history"/>
	<updated>2026-04-14T22:14:01Z</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=Transforma%C3%A7%C3%B5es&amp;diff=1488&amp;oldid=prev</id>
		<title>Mike em 18h23min de 23 de abril de 2014</title>
		<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1488&amp;oldid=prev"/>
		<updated>2014-04-23T18:23:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Edição das 18h23min de 23 de abril de 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l590&quot; &gt;Linha 590:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 590:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Opensips_1&lt;/del&gt;.9_Manual|Voltar]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;OpenSIPS_1&lt;/ins&gt;.9_Manual|Voltar]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mike</name></author>
		
	</entry>
	<entry>
		<id>http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1487&amp;oldid=prev</id>
		<title>Mike em 18h22min de 23 de abril de 2014</title>
		<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1487&amp;oldid=prev"/>
		<updated>2014-04-23T18:22:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Edição das 18h22min de 23 de abril de 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l497&quot; &gt;Linha 497:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 497:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==={csv.count}===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==={csv.count}===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Returns the number of entries in the provided &lt;/del&gt;CSV.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Retorna o número de entradas no &lt;/ins&gt;CSV &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;provido&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Example:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[@&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;a,b,c&amp;quot; {csv.count} = 3&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;@]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;!!!!{csv.value}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Exemplo&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Returns the entry at the specified positions. Indexing starts from 0.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;quot;a,b,c&amp;quot; {csv.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;count&lt;/ins&gt;} = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;3&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Example&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[@&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;a,b,c&amp;quot; {csv.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;value,2&lt;/del&gt;} = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;c&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;@]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!!!SDP Transformations&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The name of the transformation starts with &amp;quot;sdp&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;. The &lt;/del&gt;value &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;of the variable is considered to be a valid SDP body. The transformation returns &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;specific line in the SDP body&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==={csv&lt;/ins&gt;.value&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Retorna &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;entrada na posição especifica&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Index inicia em 0&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Available transformations in this class&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Exemplo&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;!!!!&lt;/del&gt;{sdp.line}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;quot;a,b,c&amp;quot; {csv.value,2} = c&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Returns the specified line in the &lt;/del&gt;SDP &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;body&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The transformations also accepts a second parameter&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;that specifies the line number of the first parameter's type to get from the &lt;/del&gt;SDP &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;body&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Indexing starts from &lt;/del&gt;0. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If the second parameter is missing, it is assumed to be &lt;/del&gt;0.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Example:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[@&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==SDP Transformations==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;O nome da transformação inica com &amp;quot;sdp.&amp;quot;. O valor da variaável é considerado ser um body SDP válido. A transformação retorna uma linha especifica no body SDP.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Transformações disponiveis para esta classe:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;===&lt;/ins&gt;{sdp.line}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Retorna a linha especifica do body &lt;/ins&gt;SDP. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;A transformação também aceita um segundo parametro&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;este especificado é o número da linha do primeiro parametro para pegar do body &lt;/ins&gt;SDP. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Index inicia em &lt;/ins&gt;0. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Se o segundo parametro estiver faltando ele assume &lt;/ins&gt;0.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Exemplo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if (is_method(&amp;quot;INVITE&amp;quot;))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if (is_method(&amp;quot;INVITE&amp;quot;))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l531&quot; &gt;Linha 531:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 535:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       xlog(&amp;quot;The first m line in the SDP body is $var(mline)\n&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       xlog(&amp;quot;The first m line in the SDP body is $var(mline)\n&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;@]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Regular Expression Transformations==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;O nome da trasnformação inicia-se com &amp;quot;re.&amp;quot; . O valor de entrada pode ser qualquer string.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;!!!Regular Expression Transformations&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==={re.subst,reg_exp}===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The name of the transformation starts with &amp;quot;re.&amp;quot;. The input can be any &lt;/del&gt;string.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;O parametro reg_exp pode ser tanto uma &lt;/ins&gt;string &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;quanto uma variável&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;!!!!{re.subst,&lt;/del&gt;reg_exp&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;O formato da &lt;/ins&gt;reg_exp &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;é:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The reg_exp parameter can either be a plain string or a variable.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The format of the reg_exp is :&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     /posix_match_expression/replacement_expression/flags&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     /posix_match_expression/replacement_expression/flags&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;flags &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;can be&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;As &lt;/ins&gt;flags &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;podem ser:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     i - match ignore case&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     i - match ignore case&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     s - match within multi-lines strings&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     s - match within multi-lines strings&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     g - replace all matches&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     g - replace all matches&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Example&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Exemplo&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[@&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$var(reg_input)=&amp;quot;abc&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$var(reg_input)=&amp;quot;abc&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$var(reg) = &amp;quot;/a/A/g&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$var(reg) = &amp;quot;/a/A/g&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l557&quot; &gt;Linha 557:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 564:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;xlog(&amp;quot;Applying reg /b/B/g to $var(reg_input) : $(var(reg_input){re.subst,/b/B/g})\n&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;xlog(&amp;quot;Applying reg /b/B/g to $var(reg_input) : $(var(reg_input){re.subst,/b/B/g})\n&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;@]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Exemplos==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;!!!Examples&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Em uma variável, muitas trasnformações podem ser aplicadas, começando da esquerda para a direita.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Within &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;variable&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;many transformation can be applied, being executed from left to right.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* O tamanho do valor da variavel do parametro na posição 1 (lembre-se que 0 é &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;primeira posição&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1 é a segunda)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* The length of the value of parameter at postion 1 (remember 0 is first position, 1 is second position)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[@&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$var(x) = &amp;quot;a=1;b=22;c=333&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$var(x) = &amp;quot;a=1;b=22;c=333&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$(var(x){param.value,$(var(x){param.name,1})}{s.len}) = 2&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$(var(x){param.value,$(var(x){param.name,1})}{s.len}) = 2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;@]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Testa se é des-registro ou não&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Test if whether is un-registration or not&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[@&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if(is_method(&amp;quot;REGISTER&amp;quot;) &amp;amp;&amp;amp; is_present_hf(&amp;quot;Expires&amp;quot;) &amp;amp;&amp;amp; $(hdr(Expires){s.int})==0)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if(is_method(&amp;quot;REGISTER&amp;quot;) &amp;amp;&amp;amp; is_present_hf(&amp;quot;Expires&amp;quot;) &amp;amp;&amp;amp; $(hdr(Expires){s.int})==0)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     xlog(&amp;quot;This is an un-registrationn&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     xlog(&amp;quot;This is an un-registrationn&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;@&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Opensips_1.9_Manual|Voltar]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mike</name></author>
		
	</entry>
	<entry>
		<id>http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1486&amp;oldid=prev</id>
		<title>Mike em 18h08min de 23 de abril de 2014</title>
		<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1486&amp;oldid=prev"/>
		<updated>2014-04-23T18:08:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;amp;diff=1486&amp;amp;oldid=1485&quot;&gt;Mostrar alterações&lt;/a&gt;</summary>
		<author><name>Mike</name></author>
		
	</entry>
	<entry>
		<id>http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1485&amp;oldid=prev</id>
		<title>Mike em 17h15min de 23 de abril de 2014</title>
		<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1485&amp;oldid=prev"/>
		<updated>2014-04-23T17:15:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;amp;diff=1485&amp;amp;oldid=1484&quot;&gt;Mostrar alterações&lt;/a&gt;</summary>
		<author><name>Mike</name></author>
		
	</entry>
	<entry>
		<id>http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1484&amp;oldid=prev</id>
		<title>Mike: Criou página com ''''Transformação''' é basicamente a função que é aplicada a uma variável (variavel de script, pseudo-variavel, AVPS, strings staticas), para pegar um valor especial, o ...'</title>
		<link rel="alternate" type="text/html" href="http://opensips.com.br/wiki/index.php?title=Transforma%C3%A7%C3%B5es&amp;diff=1484&amp;oldid=prev"/>
		<updated>2014-04-23T16:29:46Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&amp;#039;&amp;#039;&amp;#039;Transformação&amp;#039;&amp;#039;&amp;#039; é basicamente a função que é aplicada a uma variável (variavel de script, pseudo-variavel, AVPS, strings staticas), para pegar um valor especial, o ...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Transformação''' é basicamente a função que é aplicada a uma variável (variavel de script, pseudo-variavel, AVPS, strings staticas), para pegar um valor especial, o valor da variável horiginal não é alterado.&lt;br /&gt;
&lt;br /&gt;
Exemplo utilizando diferentes tipos de variáveis em no '''script OpenSIPS'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# verificando se o usuário no cabeçalho From é igual ao usuário no cabeçalho To &lt;br /&gt;
&lt;br /&gt;
if($fU==$tU) {&lt;br /&gt;
   ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# checagem de usuário baseado em r-uri &lt;br /&gt;
&lt;br /&gt;
switch($ruri.user) {&lt;br /&gt;
   case &amp;quot;1234&amp;quot;:&lt;br /&gt;
      ...&lt;br /&gt;
   break;&lt;br /&gt;
   case &amp;quot;5678&amp;quot;:&lt;br /&gt;
      ...&lt;br /&gt;
   break;&lt;br /&gt;
   default:&lt;br /&gt;
     ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# definindo um valor inteiro para um AVP &lt;br /&gt;
$avp(i:11) = 1;&lt;br /&gt;
&lt;br /&gt;
#assing string value to an AVP&lt;br /&gt;
$avp(i:22) = &amp;quot;opensips&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# write ruri in an AVP&lt;br /&gt;
$avp(i:33) = $ruri;&lt;br /&gt;
&lt;br /&gt;
# concat &amp;quot;sip:&amp;quot; + From username + &amp;quot;@&amp;quot; + To domain in a script variable x&lt;br /&gt;
$var(x) = &amp;quot;sip:&amp;quot; + $fU +&amp;quot;@&amp;quot; + $td;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transformations are intended to facilitate access to different attributes of variables (like strlen of value, parts of value, substrings) or complete different value of variables (encoded in hexa, md5 value, escape/unescape value for DB operations...).&lt;br /&gt;
&lt;br /&gt;
A transformation is represented in between ''''{'''' and ''''}'''' and follows the name of a variable. When using transformations, the variable name and transformations '''must''' be enclosed in between ''''('''' and '''')''''.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
# the length of From URI ($fu is pseudo-variable for From URI)&lt;br /&gt;
&lt;br /&gt;
$(fu{s.len})&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
Many transformations can be applied in the same time to a variable.&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
# the length of escaped 'Test' header body&lt;br /&gt;
&lt;br /&gt;
$(hdr(Test){s.escape.common}{s.len})&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
The transformations can be used anywhere, being considered parts of script variables support -- in xlog, avpops or other modules' functions and parameters, in right side assignment expressions or in comparisons.&lt;br /&gt;
&lt;br /&gt;
%red%IMPORTANT%%: To learn what variables can be used with transformations see [[Documentation.Script-CoreVar-1-9|Scripting variables list]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!String Transformations&lt;br /&gt;
The name of these transformation starts with 's.'. They are intended to apply string operations to variables.&lt;br /&gt;
&lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.len}&lt;br /&gt;
&lt;br /&gt;
Return strlen of variable value&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
$var(x) = &amp;quot;abc&amp;quot;;&lt;br /&gt;
if($(var(x){s.len}) == 3)&lt;br /&gt;
{&lt;br /&gt;
   ...&lt;br /&gt;
}&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{s.int}&lt;br /&gt;
&lt;br /&gt;
Return integer value of a string-represented number&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
$var(x) = &amp;quot;1234&amp;quot;;&lt;br /&gt;
if($(var(x){s.int})==1234) {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{s.md5}&lt;br /&gt;
&lt;br /&gt;
Return md5 over variable value&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
xlog(&amp;quot;MD4 over From username: $(fU{s.md5})&amp;quot;);&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{s.substr,offset,length}&lt;br /&gt;
&lt;br /&gt;
Return substring starting at offset having size of 'length'. If offset is negative, then it is counted from the end of the value, -1 being the last char. In case of positive value, 0 is first char. Length must be positive, in case of 0, substring to the end of variable value is returned. offset and length can be a varibale as well.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
$var(x) = &amp;quot;abcd&amp;quot;;&lt;br /&gt;
$(var(x){s.substr,1,0}) = &amp;quot;bcd&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{s.select,index,separator}&lt;br /&gt;
&lt;br /&gt;
Return a field from the value of a variable. The field is selected based on separator and index. The separator must be a character used to identify the fields. Index must be a integer value or a variable. If index is negative, the count of fields starts from end of value, -1 being last field. If index is positive, 0 is the first field.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
$var(x) = &amp;quot;12,34,56&amp;quot;;&lt;br /&gt;
$(var(x){s.select,1,,}) =&amp;gt; &amp;quot;34&amp;quot; ;&lt;br /&gt;
&lt;br /&gt;
$var(x) = &amp;quot;12,34,56&amp;quot;;&lt;br /&gt;
$(var(x){s.select,-2,,}) =&amp;gt; &amp;quot;34&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{s.encode.hexa}&lt;br /&gt;
&lt;br /&gt;
Return encoding in hexa of variable's value&lt;br /&gt;
&lt;br /&gt;
!!!!{s.decode.hexa}&lt;br /&gt;
&lt;br /&gt;
Return decoding from hexa of variable's value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.escape.common}&lt;br /&gt;
&lt;br /&gt;
Return escaped string of variable's value. Characters escaped are ', &amp;quot;,  and 0. Useful when doing DB queries (care should be taken for non Latin character set).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.unescape.common}&lt;br /&gt;
&lt;br /&gt;
Return unescaped string of variable's value. Reverse of above transformation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.escape.user}&lt;br /&gt;
&lt;br /&gt;
Return escaped string of variable's value, changing to '%hexa' the characters that are not allowed in user part of SIP URI following RFC requirements.&lt;br /&gt;
&lt;br /&gt;
!!!!{s.unescape.user}&lt;br /&gt;
&lt;br /&gt;
Return unescaped string of variable's value, changing '%hexa' to character code. Reverse of above transformation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.escape.param}&lt;br /&gt;
&lt;br /&gt;
Return escaped string of variable's value, changing to '%hexa' the characters that are not allowed in the param part of SIP URI following RFC requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.unescape.param}&lt;br /&gt;
&lt;br /&gt;
Return unescaped string of variable's value, changing '%hexa' to character code. Reverse of above transformation.&lt;br /&gt;
&lt;br /&gt;
!!!!{s.tolower}&lt;br /&gt;
&lt;br /&gt;
Return string with lower case ASCII letters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{s.toupper}&lt;br /&gt;
&lt;br /&gt;
Return string with upper case ASCII letters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!URI Transformations&lt;br /&gt;
&lt;br /&gt;
The name of transformation starts with 'uri.'. The value of the variable is considered to be a SIP URI. This transformation returns parts of SIP URI (see struct sip_uri). If that part is missing, the returned value is an empty string.&lt;br /&gt;
&lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.user}&lt;br /&gt;
&lt;br /&gt;
Returns the user part of the URI schema.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.host}&lt;br /&gt;
&lt;br /&gt;
(same as '''{uri.domain}''')&lt;br /&gt;
&lt;br /&gt;
Returns the domain part of the URI schema.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.passwd}&lt;br /&gt;
&lt;br /&gt;
Returns the password part of the URI schema.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.port}&lt;br /&gt;
&lt;br /&gt;
Returns the port of the URI schema.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.params}&lt;br /&gt;
&lt;br /&gt;
Returns all the URI parameters into a single string.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.param,name}&lt;br /&gt;
&lt;br /&gt;
Returns the value of URI parameter with name &amp;quot;name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.headers}&lt;br /&gt;
&lt;br /&gt;
Returns URI headers.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.transport}&lt;br /&gt;
&lt;br /&gt;
Returns the value of transport URI parameter.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.ttl}&lt;br /&gt;
&lt;br /&gt;
Returns the value of ttl URI parameter.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.uparam}&lt;br /&gt;
&lt;br /&gt;
Returns the value of user URI parameter&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.maddr}&lt;br /&gt;
&lt;br /&gt;
Returns the value of maddr URI parameter.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.method}&lt;br /&gt;
&lt;br /&gt;
Returns the value of method URI parameter.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.lr}&lt;br /&gt;
&lt;br /&gt;
Returns the value of lr URI parameter.&lt;br /&gt;
&lt;br /&gt;
!!!!{uri.r2}&lt;br /&gt;
&lt;br /&gt;
Returns the value of r2 URI parameter.&lt;br /&gt;
&lt;br /&gt;
!!!VIA Transformations&lt;br /&gt;
&lt;br /&gt;
These transformations parse Via headers and all starts with @@via.@@. The value of the variable is considered to be a SIP Via header. This transformation returns parts of the via header (see struct via_body). If the requested part is missing, the returned value is an empty string. Transformation will fail (with script error) if variable holding the Via header is empty. Unless otherwise specified in descriptions below, the result of transform is a string (not an integer).&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
    $var(upstreamtransport) = $(hdr(Via)[1]{via.transport}{s.tolower});&lt;br /&gt;
    $var(upstreamip) = $(hdr(Via)[1]{via.param,received});&lt;br /&gt;
    $var(clientport) = $(hdr(Via)[-1]{via.param,rport});&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
!!!!{via.name}&lt;br /&gt;
&lt;br /&gt;
Returns the @@protocol-name@@ (of RFC3261 BNF), generally @@SIP@@.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.version}&lt;br /&gt;
&lt;br /&gt;
Returns the @@protocol-version@@ (of RFC3261 BNF), generally @@2.0@@.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.transport}&lt;br /&gt;
&lt;br /&gt;
Returns the @@transport@@ (of RFC3261 BNF), e.g., @@UDP@@, @@TCP@@, @@TLS@@. This is the transport protocol used to send the request message.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.host}&lt;br /&gt;
&lt;br /&gt;
(same as @@{via.domain}@@)&lt;br /&gt;
&lt;br /&gt;
Returns the @@host@@ portion of the @@sent-by@@ (of RFC3261 BNF). Typically this is the IP address of the sender of the request message, and is the address to which the response will be sent.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.port}&lt;br /&gt;
&lt;br /&gt;
Returns the @@port@@ portion of the @@sent-by@@ (of RFC3261 BNF). Typically this is the IP port of the sender of the request message, and is the address to which the response will be sent. Result of transform is valid as both integer and string.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.comment}&lt;br /&gt;
&lt;br /&gt;
The comment associated with the via header. The @@struct via_body@@ contains this field, but it isn't clear that RFC3261 allows Via headers to have comments (see text at top of page 221, and the BNF doesn't explicit allow comment within Via). The comment is the text enclosed within parens.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.params}&lt;br /&gt;
&lt;br /&gt;
Returns all the Via headers parameters (@@via-param@@ of RFC3261 BNF) as single string. Result can be processed using the @@{param.*}@@ transforms. This is essentially everything after the host and port.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.param,name}&lt;br /&gt;
&lt;br /&gt;
Returns the value of Via header parameter with name @@name@@. Typical parameters include @@branch@@, @@rport@@ and @@received@@.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.branch}&lt;br /&gt;
&lt;br /&gt;
Returns the value of the branch parameter in the VIA header.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.received}&lt;br /&gt;
&lt;br /&gt;
Returns the value of the received parameter in the VIA header, if any.&lt;br /&gt;
&lt;br /&gt;
!!!!{via.rport}&lt;br /&gt;
&lt;br /&gt;
Returns the value of the rport parameter in the VIA header, if any.&lt;br /&gt;
&lt;br /&gt;
!!!Parameters List Transformations&lt;br /&gt;
&lt;br /&gt;
The name of the transformation starts with &amp;quot;param.&amp;quot;. The value of the variable is considered to be a string like name1=value1;name2=value2;...&amp;quot;. The transformations returns the value for a specific parameter, or the name of a parameter at a specific index.&lt;br /&gt;
&lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{param.value,name}&lt;br /&gt;
&lt;br /&gt;
Returns the value of parameter 'name'&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a=1;b=2;c=3&amp;quot;{param.value,c} = &amp;quot;3&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
'name' can be a variable&lt;br /&gt;
&lt;br /&gt;
!!!!{param.exist,name}&lt;br /&gt;
&lt;br /&gt;
Returns 1 if the parameter @@name@@ exists (with or without value), else 0. Returned value is both string and integer. @@name@@ can be variable. This can be used to test existence of parameters that do not have values.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a=0;b=2;ob;c=3&amp;quot;{param.exist,ob};         # returns 1&lt;br /&gt;
&amp;quot;a=0;b=2;ob;c=3&amp;quot;{param.exist,a};          # returns 1&lt;br /&gt;
&amp;quot;a=0;b=2;ob;c=3&amp;quot;{param.exist,foo};        # returns 0&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{param.valueat,index}&lt;br /&gt;
&lt;br /&gt;
Returns the value of parameter at position give by 'index' (0-based index)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a=1;b=2;c=3&amp;quot;{param.valueat,1} = &amp;quot;2&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
'index' can be a variable&lt;br /&gt;
&lt;br /&gt;
!!!!{param.name,index}&lt;br /&gt;
&lt;br /&gt;
Returns the name of parameter at position 'index'.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a=1;b=2;c=3&amp;quot;{param.name,1} = &amp;quot;b&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{param.count}&lt;br /&gt;
&lt;br /&gt;
Returns the number of parameters in the list.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a=1;b=2;c=3&amp;quot;{param.count} = 3&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!Name-address Transformations&lt;br /&gt;
&lt;br /&gt;
The name of the transformation starts with 'nameaddr.'. The value of the variable is considered to be a string like '[display_name] uri'. The transformations returns the value for a specific field.&lt;br /&gt;
&lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{nameaddr.name}&lt;br /&gt;
&lt;br /&gt;
Returns the value of display name&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
'&amp;quot;test&amp;quot; &amp;lt;sip:test@opensips.org&amp;gt;' {nameaddr.name} = &amp;quot;test&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{nameaddr.uri}&lt;br /&gt;
&lt;br /&gt;
Returns the value of URI&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
'&amp;quot;test&amp;quot; &amp;lt;sip:test@opensips.org&amp;gt;' {nameaddr.uri} = sip:test@opensips.org&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{nameaddr.len}&lt;br /&gt;
&lt;br /&gt;
Returns the length of the entire name-addr part from the value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!!{nameaddr.param,param_name}&lt;br /&gt;
&lt;br /&gt;
Returns the value of the parameter with name param_name.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
'&amp;quot;test&amp;quot; &amp;lt;sip:test@opensips.org&amp;gt;;tag=dat43h' {nameaddr.param,tag} = dat43h&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{nameaddr.params}&lt;br /&gt;
&lt;br /&gt;
Returns all the parameters and their corresponding values.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
'&amp;quot;test&amp;quot; &amp;lt;sip:test@opensips.org&amp;gt;;tag=dat43h;private=yes' {nameaddr.params} = &amp;quot;tag=dat43h;private=yes&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!IP Transformations&lt;br /&gt;
&lt;br /&gt;
The name of the transformation starts with 'ip.'. Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
!!!!{ip.pton}&lt;br /&gt;
&lt;br /&gt;
Returns a binary representation of a string represented IP.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;192.168.2.134&amp;quot; {ip.pton} returns a 4 byte binary representation of the IP provided&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{ip.ntop}&lt;br /&gt;
&lt;br /&gt;
Returns a string representation of the binary IP provided&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;192.168.2.134&amp;quot;{ip.pton}{ip.ntop} = &amp;quot;192.168.2.134&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{ip.isip}&lt;br /&gt;
&lt;br /&gt;
Returns 1 or 0, if the string provided is a valid IP or not.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;192.168.2.134&amp;quot; {ip.isip} = 1&lt;br /&gt;
&amp;quot;192.168.2.134.1&amp;quot; {ip.isip} = 0&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{ip.family}&lt;br /&gt;
Returns INET or INET6 if the binary IP representation provided is IPv4 or IPv6.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;192.168.2.134&amp;quot; {ip.pton}{ip.family} = &amp;quot;INET&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{ip.resolve}&lt;br /&gt;
Returns the resolved IP address coresponding to the string domain provided. Transformation has no effect if a string IP is provided.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;opensips.org&amp;quot; {ip.resolve} = &amp;quot;78.46.64.50&amp;quot;&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!CSV Transformations&lt;br /&gt;
&lt;br /&gt;
The name of the transformation starts with &amp;quot;csv.&amp;quot;. The value of the variable is considered to be a string like &amp;quot;field1,field2,...&amp;quot;. The transformations return the number of entries in the provided CSV, or the field at a specified position in the CSV.&lt;br /&gt;
&lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
!!!!{csv.count}&lt;br /&gt;
Returns the number of entries in the provided CSV.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a,b,c&amp;quot; {csv.count} = 3&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!!{csv.value}&lt;br /&gt;
Returns the entry at the specified positions. Indexing starts from 0.&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
&amp;quot;a,b,c&amp;quot; {csv.value,2} = c&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!SDP Transformations&lt;br /&gt;
&lt;br /&gt;
The name of the transformation starts with &amp;quot;sdp.&amp;quot;. The value of the variable is considered to be a valid SDP body. The transformation returns a specific line in the SDP body.&lt;br /&gt;
&lt;br /&gt;
Available transformations in this class:&lt;br /&gt;
&lt;br /&gt;
!!!!{sdp.line}&lt;br /&gt;
Returns the specified line in the SDP body. The transformations also accepts a second parameter, that specifies the line number of the first parameter's type to get from the SDP body. Indexing starts from 0. If the second parameter is missing, it is assumed to be 0. &lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
if (is_method(&amp;quot;INVITE&amp;quot;))&lt;br /&gt;
   {&lt;br /&gt;
      $var(aline) = $(rb{sdp.line,a,1});&lt;br /&gt;
      xlog(&amp;quot;The second a line in the SDP body is $var(aline)\n&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
if (is_method(&amp;quot;INVITE&amp;quot;))&lt;br /&gt;
   {&lt;br /&gt;
      $var(mline) = $(rb{sdp.line,m});&lt;br /&gt;
      xlog(&amp;quot;The first m line in the SDP body is $var(mline)\n&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
!!!Regular Expression Transformations&lt;br /&gt;
&lt;br /&gt;
The name of the transformation starts with &amp;quot;re.&amp;quot;. The input can be any string.&lt;br /&gt;
&lt;br /&gt;
!!!!{re.subst,reg_exp}&lt;br /&gt;
&lt;br /&gt;
The reg_exp parameter can either be a plain string or a variable.&lt;br /&gt;
The format of the reg_exp is :&lt;br /&gt;
    /posix_match_expression/replacement_expression/flags&lt;br /&gt;
&lt;br /&gt;
The flags can be&lt;br /&gt;
    i - match ignore case&lt;br /&gt;
    s - match within multi-lines strings&lt;br /&gt;
    g - replace all matches&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
[@&lt;br /&gt;
$var(reg_input)=&amp;quot;abc&amp;quot;;&lt;br /&gt;
$var(reg) = &amp;quot;/a/A/g&amp;quot;;&lt;br /&gt;
xlog(&amp;quot;Applying reg exp $var(reg) to $var(reg_input) : $(var(reg_input){re.subst,$var(reg)})\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
xlog(&amp;quot;Applying reg /b/B/g to $var(reg_input) : $(var(reg_input){re.subst,/b/B/g})\n&amp;quot;);&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!!!Examples&lt;br /&gt;
&lt;br /&gt;
Within a variable, many transformation can be applied, being executed from left to right.&lt;br /&gt;
&lt;br /&gt;
* The length of the value of parameter at postion 1 (remember 0 is first position, 1 is second position)&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
$var(x) = &amp;quot;a=1;b=22;c=333&amp;quot;;&lt;br /&gt;
$(var(x){param.value,$(var(x){param.name,1})}{s.len}) = 2&lt;br /&gt;
@]&lt;br /&gt;
&lt;br /&gt;
* Test if whether is un-registration or not&lt;br /&gt;
&lt;br /&gt;
[@&lt;br /&gt;
if(is_method(&amp;quot;REGISTER&amp;quot;) &amp;amp;&amp;amp; is_present_hf(&amp;quot;Expires&amp;quot;) &amp;amp;&amp;amp; $(hdr(Expires){s.int})==0)&lt;br /&gt;
    xlog(&amp;quot;This is an un-registrationn&amp;quot;);&lt;br /&gt;
@]&lt;/div&gt;</summary>
		<author><name>Mike</name></author>
		
	</entry>
</feed>