⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textops_user.sgml

📁 性能优秀的SIP Proxy
💻 SGML
📖 第 1 页 / 共 2 页
字号:
<!-- Module User's Guide --><chapter>	<chapterinfo>	<revhistory>		<revision>		<revnumber>$Revision: 1.14 $</revnumber>		<date>$Date: 2006/05/03 18:46:33 $</date>		</revision>	</revhistory>	</chapterinfo>	<title>User's Guide</title>		<section>	<title>Overview</title>	<para>		This is mostly an example module. It implements text based operation 		(search, replace, append a.s.o).	</para>	<section>		<title>Known Limitations</title>		<para>		search ignores folded lines. For example, 		search(<quote>(From|f):.*@foo.bar</quote>)		doesn't match the following From header field:		</para>		<programlisting format="linespecific">From: medabeda  &lt;sip:medameda@foo.bar&gt;;tag=1234</programlisting>	</section>	</section>	<section>	<title>Dependencies</title>	<section>		<title>&ser; Modules</title>		<para>		The following modules must be loaded before this module:			<itemizedlist>			<listitem>			<para>				<emphasis>No dependencies on other &ser; modules</emphasis>.			</para>			</listitem>			</itemizedlist>		</para>	</section>	<section>		<title>External Libraries or Applications</title>		<para>		The following libraries or applications must be installed before 		running &ser; with this module loaded:			<itemizedlist>			<listitem>			<para>				<emphasis>None</emphasis>.			</para>			</listitem>			</itemizedlist>		</para>	</section>	</section>	<section>	<title>Exported Functions</title>	<section>		<title>		<function moreinfo="none">search(re)</function>		</title>		<para>		Searches for the re in the message.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>search</function> usage</title>		<programlisting format="linespecific">...if ( search("[Ss][Ii][Pp]" ) { /*....*/ };...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">search_body(re)</function>		</title>		<para>		Searches for the re in the body of the message.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>search_body</function> usage</title>		<programlisting format="linespecific">...if ( search_body("[Ss][Ii][Pp]" ) { /*....*/ };...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">search_append(re, txt)</function>		</title>		<para>		Searches for the first match of re and appends txt after it.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		<listitem>			<para><emphasis>txt</emphasis> - String to be appended.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>search_append</function> usage</title>		<programlisting format="linespecific">...search_append("[Oo]pen[Ss]er", " SIP Proxy");...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">search_append_body(re, txt)</function>		</title>		<para>		Searches for the first match of re in the body of the message		and appends txt after it.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		<listitem>			<para><emphasis>txt</emphasis> - String to be appended.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>search_append_body</function> usage</title>		<programlisting format="linespecific">...search_append_body("[Oo]pen[Ss]er", " SIP Proxy");...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">replace(re, txt)</function>		</title>		<para>		Replaces the first occurrence of re with txt.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		<listitem>			<para><emphasis>txt</emphasis> - String.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>replace</function> usage</title>		<programlisting format="linespecific">...replace("openser", "OpenSER SIP Proxy");...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">replace_body(re, txt)</function>		</title>		<para>		Replaces the first occurrence of re in the body of the message		with txt.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		<listitem>			<para><emphasis>txt</emphasis> - String.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>replace_body</function> usage</title>		<programlisting format="linespecific">...replace_body("openser", "OpenSER SIP Proxy");...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">replace_all(re, txt)</function>		</title>		<para>		Replaces all occurrence of re with txt.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		<listitem>			<para><emphasis>txt</emphasis> - String.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>replace_all</function> usage</title>		<programlisting format="linespecific">...replace_all("openser", "OpenSER SIP Proxy");...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">replace_body_all(re, txt)</function>		</title>		<para>		Replaces all occurrence of re in the body of the message		with txt.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>re</emphasis> - Regular expression.			</para>		</listitem>		<listitem>			<para><emphasis>txt</emphasis> - String.			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>replace_body_all</function> usage</title>		<programlisting format="linespecific">...replace_body_all("openser", "OpenSER SIP Proxy");...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">subst('/re/repl/flags')</function>		</title>		<para>		Replaces re with repl (sed or perl like).		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>'/re/repl/flags'</emphasis> - sed like regular 				expression. flags can be a combination of i (case insensitive),				g (global) or s (match newline don't treat it as end of line).			</para>			<para>			're' - is regular expresion			</para>			<para>			'repl' - is replacement string - may contain pseudo-varibales			</para>			<para>			'flags' - substitution flags (i - ignore case, g - global)			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>subst</function> usage</title>		<programlisting format="linespecific">...# replace the uri in to: with the message uri (just an example)if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1\u\2/ig') ) {};# replace the uri in to: with the value of avp sip_address (just an example)if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:\1$avp(sip_address)\2/ig') ) {};...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">subst_uri('/re/repl/flags')</function>		</title>		<para>		Runs the re substitution on the message uri (like subst but works		 only on the uri)		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>'/re/repl/flags'</emphasis> - sed like regular 				expression. flags can be a combination of i (case insensitive),				g (global) or s (match newline don't treat it as end of line).			</para>			<para>			're' - is regular expresion			</para>			<para>			'repl' - is replacement string - may contain pseudo-varibales			</para>			<para>			'flags' - substitution flags (i - ignore case, g - global)			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>subst_uri</function> usage</title>		<programlisting format="linespecific">...# adds 3463 prefix to numeric uris, and save the original uri (\0 match)# as a parameter: orig_uri (just an example)if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:3463\1@\2;orig_uri=\0/i')){$# adds the avp 'uri_prefix' as prefix to numeric uris, and save the original# uri (\0 match) as a parameter: orig_uri (just an example)if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)\1@\2;orig_uri=\0/i')){$...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">subst_user('/re/repl/flags')</function>		</title>		<para>		Runs the re substitution on the message uri (like subst_uri but works		 only on the user portion of the uri)		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>'/re/repl/flags'</emphasis> - sed like regular				expression. flags can be a combination of i (case insensitive),				g (global) or s (match newline don't treat it as end of line).			</para>			<para>			're' - is regular expresion			</para>			<para>			'repl' - is replacement string - may contain pseudo-varibales			</para>			<para>			'flags' - substitution flags (i - ignore case, g - global)			</para>		</listitem>		</itemizedlist>		<para>		This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, 		FAILURE_ROUTE, BRANCH_ROUTE.		</para>		<example>		<title><function>subst</function> usage</title>		<programlisting format="linespecific">...# adds 3463 prefix to uris ending with 3642 (just an example)if (subst_user('/3642$/36423463/')){$...# adds avp 'user_prefix' as prefix to username in r-uri ending with 3642if (subst_user('/(.*)3642$/$avp(user_prefix)\13642/')){$...</programlisting>		</example>	</section>	<section>		<title>		<function moreinfo="none">subst_body('/re/repl/flags')</function>		</title>		<para>		Replaces re with repl (sed or perl like) in the body of the message.		</para>		<para>Meaning of the parameters is as follows:</para>		<itemizedlist>		<listitem>			<para><emphasis>'/re/repl/flags'</emphasis> - sed like regular 				expression. flags can be a combination of i (case insensitive),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -