Nils
Ohlmeier
iptelorg GmbH

    		    nils@iptel.org

2006
iptelorg GmbH
$Revision: 1.4 $
$Date: 2006/07/24 13:41:35 $

# Sanity Module

## Overview

This module aims to implement several sanity checks on incoming requests which are suggested or even required by a RFC, but are not available yet in the core of SER.

This checks are not required by SER itself for its functionality. But on the other side it makes not much sence if a broken request traverses through a SIP network if it is rejected sooner or later by a SIP device any way. As every sanity cost extra performance because of additional parsing and evaluation it is now with this module up to the SER adminstrator which checks should be done on which request.

The following checks are available:

- ruri sip version - (1) - checks if the SIP version in the request URI is supported, currently only 2.0.

- ruri scheme - (2) - checks if the URI scheme of the request URI is supported (sip[s]|tel[s]) by SER.

- required headers - (4) -checks if the minimum set of required headers to, from, cseq, callid and via is present in the request.

- via sip version - (8) - not working because parser fails already when another version then 2.0 is present.

- via protocol - (16) - not working because parser fails already if an unsupported transport is present.

- cseq method - (32) - checks if the method from the cseq header is equal to the request method.

- cseq value - (64) - checks if the number in the cseq header is a valid unsigend integer.

- content length - (128) - checks if the size of the body matches with the value from the content length header.

- expires value - (256) - checks if the value of the expires header is a valid unsigned integer.

- proxy require - (512) - checks if all items of the proxy require header are present in the list of the extensions from the module parameter proxy_require.

- parse uri's - (1024) - checks if the specified URIs are present and parseable by the SER parsers

- digest credentials (2048) Check all instances of digest credentials in a message. The test checks whether there are all required digest parameters and have meaningful values.

## Dependencies

The following modules must be loaded before this module:

- sl - Stateless replies.