mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.5 KiB
157 lines
4.5 KiB
1. Options Module
|
|
|
|
Nils Ohlmeier
|
|
|
|
FhG Fokus
|
|
|
|
Copyright © 2003 FhG Fokus
|
|
__________________________________________________________________
|
|
|
|
1.1. Overview
|
|
1.2. Dependencies
|
|
1.3. Parameters
|
|
|
|
1.3.1. accept (string)
|
|
1.3.2. accept_encoding (string)
|
|
1.3.3. accept_language (string)
|
|
1.3.4. supported (string)
|
|
1.3.5. contact (string)
|
|
1.3.6. contact_param (string)
|
|
|
|
1.4. Functions
|
|
|
|
1.4.1. options_reply()
|
|
|
|
1.1. Overview
|
|
|
|
This module provides a function to answer OPTIONS requests which are
|
|
directed to the server itself. This means an OPTIONS request which has
|
|
the address of the server in the request URI, and no username in the
|
|
URI. The request will be answered with a 200 OK which the capabilities
|
|
of the server.
|
|
|
|
To answer OPTIONS request directed to your server is the easiest way
|
|
for is-alive-tests on the SIP (application) layer from remote (similar
|
|
to ICMP echo requests, also known as "ping", on the network layer).
|
|
|
|
1.2. Dependencies
|
|
|
|
The following modules must be loaded before this module:
|
|
* sl - Stateless replies.
|
|
|
|
1.3. Parameters
|
|
|
|
1.3.1. accept (string)
|
|
|
|
This parameter is the content of the Accept header field. Note: it is
|
|
not clearly written in RFC3261 if a proxy should accept any content
|
|
(the default "*/*") because it does not care about content. Or if it
|
|
does not accept any content, which is "".
|
|
|
|
Default value is "*/*".
|
|
|
|
Example 1. Set accept parameter
|
|
...
|
|
modparam("options", "accept", "application/*")
|
|
...
|
|
|
|
1.3.2. accept_encoding (string)
|
|
|
|
This parameter is the content of the Accept-Encoding header field.
|
|
Please do not change the default value because SER does not support any
|
|
encodings yet.
|
|
|
|
Default value is "".
|
|
|
|
Example 2. Set accept_encoding parameter
|
|
...
|
|
modparam("options", "accept_encoding", "gzip")
|
|
...
|
|
|
|
1.3.3. accept_language (string)
|
|
|
|
This parameter is the content of the Accept-Language header field. You
|
|
can set any language code which you prefer for error descriptions from
|
|
other devices, but presumably there are not much devices around which
|
|
support other languages then the default English.
|
|
|
|
Default value is "en".
|
|
|
|
Example 3. Set accept_language parameter
|
|
...
|
|
modparam("options", "accept_language", "de")
|
|
...
|
|
|
|
1.3.4. supported (string)
|
|
|
|
This parameter is the content of the Supported header field Here you
|
|
can enter the extensions which are supported by your SER config.
|
|
Normally you should only use values here which are registered with the
|
|
IANA.
|
|
|
|
Default value is "".
|
|
|
|
Example 4. Set supported parameter
|
|
...
|
|
modparam("options", "supported", "100rel")
|
|
...
|
|
|
|
1.3.5. contact (string)
|
|
|
|
The content of this parameter will be inserted into the reply as the
|
|
URI of the Contact header. If this parameter is empty (default case)
|
|
then no Contact header in included in the reply. If this parameter is
|
|
set to "dstip" the reply contains a Contact header with the IP, port
|
|
and transport of the socket where the request was sent to. If this
|
|
parameter is set to "ruri" the reply contains a Contact header with the
|
|
same URI as the request URI of the original OPTIONS request.
|
|
|
|
Default value is "".
|
|
|
|
Example 5. Set contact parameter
|
|
...
|
|
modparam("options", "contact", "example.com")
|
|
...
|
|
|
|
1.3.6. contact_param (string)
|
|
|
|
This parameter is appended to the value of the Contact header is case
|
|
it is set. If just this parameter is set but the contact module
|
|
parameter not, then the contact parameter is automatically set to
|
|
dstip.
|
|
|
|
Default value is "".
|
|
|
|
Example 6. Set contact_param parameter
|
|
...
|
|
modparam("options", "contact_param", "lr=on")
|
|
...
|
|
|
|
1.4. Functions
|
|
|
|
1.4.1. options_reply()
|
|
|
|
This function checks if the request method is OPTIONS and if the
|
|
request URI does not contain an username. If both is true the request
|
|
will be answered stateless with "200 OK" and the capabilities from the
|
|
modules parameters.
|
|
|
|
It sends "500 Server Internal Error" for some errors and returns false
|
|
if it is called for a wrong request.
|
|
|
|
The check for the request method and the missing username is optional
|
|
because it is also done by the function itself. But you should not call
|
|
this function outside the myself check because in this case the
|
|
function could answer OPTIONS requests which are sent to you as
|
|
outbound proxy but with an other destination then your proxy (this
|
|
check is currently missing in the function).
|
|
|
|
Example 7. options_reply usage
|
|
...
|
|
if (uri==myself) {
|
|
if ((method==OPTIONS) && (! uri=~"sip:.*[@]+.*")) {
|
|
options_reply();
|
|
}
|
|
}
|
|
...
|