Merge remote branch 'origin/sr_3.0'
[sip-router] / modules / sanity / doc / sanity.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 
3    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5 <section id="options" xmlns:xi="http://www.w3.org/2001/XInclude">
6     <sectioninfo>
7         <authorgroup>
8             <author>
9                 <firstname>Nils</firstname>
10                 <surname>Ohlmeier</surname>
11                 <affiliation><orgname>iptelorg GmbH</orgname></affiliation>
12                 <address>
13                     <email>nils@iptel.org</email>
14                 </address>
15             </author>
16         </authorgroup>
17         <copyright>
18             <year>2006</year>
19             <holder>iptelorg GmbH</holder>
20         </copyright>
21         <revhistory>
22             <revision>
23                 <revnumber>$Revision$</revnumber>
24                 <date>$Date$</date>
25             </revision>
26         </revhistory>
27     </sectioninfo>
28
29     <title>Sanity Module</title>
30
31     <section id="sanity.overview">
32         <title>Overview</title>
33         <para>
34                 This module aims to implement several sanity checks on incoming
35                 requests which are suggested or even required by a RFC, but are
36                 not available yet in the core of SIP-router.
37         </para>
38         <para>
39                 This checks are not required by SIP-router itself for its functionality.
40                 But on the other side it makes not much sence if a broken
41                 request traverses through a SIP network if it is rejected sooner
42                 or later by a SIP device any way. As every sanity cost extra
43                 performance because of additional parsing and evaluation it
44                 is now with this module up to the SIP-router adminstrator which checks
45                 should be done on which request.
46         </para>
47         <para>
48                 The following checks are available:
49                 <itemizedlist>
50                 <listitem>
51                         <para>
52                         ruri sip version - (1) - checks if the SIP version in the request
53                         URI is supported, currently only 2.0.
54                         </para>
55                 </listitem>
56                 <listitem>
57                         <para>
58                         ruri scheme - (2) - checks if the URI scheme of the request URI is
59                         supported (sip[s]|tel[s]) by SIP-router.
60                         </para>
61                 </listitem>
62                 <listitem>
63                         <para>
64                         required headers - (4) -checks if the minimum set of required headers
65                         to, from, cseq, callid and via is present in the request.
66                         </para>
67                 </listitem>
68                 <listitem>
69                         <para>
70                         via sip version - (8) - not working because parser fails already 
71                         when another version then 2.0 is present.
72                         </para>
73                 </listitem>
74                 <listitem>
75                         <para>
76                         via protocol - (16) - not working because parser fails already if an
77                         unsupported transport is present.
78                         </para>
79                 </listitem>
80                 <listitem>
81                         <para>
82                         cseq method - (32) - checks if the method from the cseq header is equal
83                         to the request method.
84                         </para>
85                 </listitem>
86                 <listitem>
87                         <para>
88                         cseq value - (64) - checks if the number in the cseq header is a valid
89                         unsigend integer.
90                         </para>
91                 </listitem>
92                 <listitem>
93                         <para>
94                         content length - (128) - checks if the size of the body matches with the
95                         value from the content length header.
96                         </para>
97                 </listitem>
98                 <listitem>
99                         <para>
100                         expires value - (256) - checks if the value of the expires header is a
101                         valid unsigned integer.
102                         </para>
103                 </listitem>
104                 <listitem>
105                         <para>
106                         proxy require - (512) - checks if all items of the proxy require header
107                         are present in the list of the extensions from the module 
108                         parameter proxy_require.
109                         </para>
110                 </listitem>
111                 <listitem>
112                         <para>
113                         parse uri's - (1024) - checks if the specified URIs are present and
114                         parseable by the SIP-router parsers
115                         </para>
116                 </listitem>
117                 <listitem>
118                         <para>
119                         digest credentials (2048) Check all instances of digest credentials in a
120                         message. The test checks whether there are all required
121                         digest parameters and have meaningful values.
122                         </para>
123                 </listitem>
124                 </itemizedlist>
125         </para>
126     </section>
127     
128     <section id="sanity.dep">
129         <title>Dependencies</title>
130         <para>
131             The following modules must be loaded before this module:
132             <itemizedlist>
133                 <listitem>
134                     <para>
135                         <emphasis>sl</emphasis> - Stateless replies.
136                     </para>
137                 </listitem>
138             </itemizedlist>
139         </para>
140     </section>
141
142     <xi:include href="params.xml"/>
143     <xi:include href="functions.xml"/>
144 </section>