|
@@ -13,7 +13,7 @@
|
|
|
|
|
|
<title>&adminguide;</title>
|
|
<title>&adminguide;</title>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.overview">
|
|
<title>Overview</title>
|
|
<title>Overview</title>
|
|
<para>
|
|
<para>
|
|
This module provides a MSRP routing engine, a.k.a. MSRP relay.
|
|
This module provides a MSRP routing engine, a.k.a. MSRP relay.
|
|
@@ -27,13 +27,13 @@
|
|
is negotiated via INVITE-200 OK-ACK.
|
|
is negotiated via INVITE-200 OK-ACK.
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
- However, MSRP is still a text-based protocol. It uses several routing
|
|
|
|
|
|
+ However, MSRP is still a text-based protocol. It uses several routing
|
|
mechanisms similar to what exists in SIP. Furthermore,
|
|
mechanisms similar to what exists in SIP. Furthermore,
|
|
MSRP requires TCP, and recommends TLS for confidentiality and security.
|
|
MSRP requires TCP, and recommends TLS for confidentiality and security.
|
|
In light of the scalability and performance of &kamailio; in handling
|
|
In light of the scalability and performance of &kamailio; in handling
|
|
TCP/TLS, this module reuses &kamailio;'s core framework to
|
|
TCP/TLS, this module reuses &kamailio;'s core framework to
|
|
offer MSRP routing capabilities. Along with embedded Presence and XCAP
|
|
offer MSRP routing capabilities. Along with embedded Presence and XCAP
|
|
- servers, &kamailio; offers now a complete solution for SIP beyond VoIP.
|
|
|
|
|
|
+ servers, &kamailio; now offers a complete solution for SIP beyond VoIP.
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
One of the main benefits of this module is the ability to reuse
|
|
One of the main benefits of this module is the ability to reuse
|
|
@@ -94,13 +94,13 @@
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<section>
|
|
<title>Parameters</title>
|
|
<title>Parameters</title>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.p.sipmsg">
|
|
<title><varname>sipmsg</varname> (int)</title>
|
|
<title><varname>sipmsg</varname> (int)</title>
|
|
<para>
|
|
<para>
|
|
- If 1, the module will build a SIP message from MSRP frame headers,
|
|
|
|
- providing it to event_route[msrp:frame-in]. All the config
|
|
|
|
- file functions (apart from SIP request relay) that can be used
|
|
|
|
- in a request route block can be used in msrp event_route.
|
|
|
|
|
|
+ If set to 1, the module will build a SIP message from MSRP frame headers,
|
|
|
|
+ providing it to <quote>event_route[msrp:frame-in]</quote>.
|
|
|
|
+ All the config file functions (apart from SIP request relay) that can be used
|
|
|
|
+ in a request route block can be used in the MSRP event_route.
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
<emphasis>
|
|
<emphasis>
|
|
@@ -116,7 +116,7 @@ modparam("msrp", "sipmsg", 1)
|
|
</programlisting>
|
|
</programlisting>
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.p.cmap_size">
|
|
<title><varname>cmap_size</varname> (int)</title>
|
|
<title><varname>cmap_size</varname> (int)</title>
|
|
<para>
|
|
<para>
|
|
The size of connection map table, to be computed as power of 2 (e.g.,
|
|
The size of connection map table, to be computed as power of 2 (e.g.,
|
|
@@ -136,7 +136,7 @@ modparam("msrp", "cmap_size", 8)
|
|
</programlisting>
|
|
</programlisting>
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.p.timer_interval">
|
|
<title><varname>timer_interval</varname> (int)</title>
|
|
<title><varname>timer_interval</varname> (int)</title>
|
|
<para>
|
|
<para>
|
|
The timer interval in seconds to run the procedure for cleaning
|
|
The timer interval in seconds to run the procedure for cleaning
|
|
@@ -156,10 +156,10 @@ modparam("msrp", "timer_interval", 90)
|
|
</programlisting>
|
|
</programlisting>
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.p.auth_min_expires">
|
|
<title><varname>auth_min_expires</varname> (int)</title>
|
|
<title><varname>auth_min_expires</varname> (int)</title>
|
|
<para>
|
|
<para>
|
|
- The minimum value accepted for Expires header in AUTH requests.
|
|
|
|
|
|
+ The minimum value accepted for the <quote>Expires</quote> header in AUTH requests.
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
<emphasis>
|
|
<emphasis>
|
|
@@ -175,10 +175,10 @@ modparam("msrp", "auth_min_expiresl", 90)
|
|
</programlisting>
|
|
</programlisting>
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.p.auth_max_expires">
|
|
<title><varname>auth_max_expires</varname> (int)</title>
|
|
<title><varname>auth_max_expires</varname> (int)</title>
|
|
<para>
|
|
<para>
|
|
- The maximum value accepted for Expires header in AUTH requests.
|
|
|
|
|
|
+ The maximum value accepted for <quote>Expires</quote> header in AUTH requests.
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
<emphasis>
|
|
<emphasis>
|
|
@@ -194,10 +194,10 @@ modparam("msrp", "auth_max_expiresl", 1800)
|
|
</programlisting>
|
|
</programlisting>
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.p.use_path_addr">
|
|
<title><varname>use_path_addr</varname> (str)</title>
|
|
<title><varname>use_path_addr</varname> (str)</title>
|
|
<para>
|
|
<para>
|
|
- The hostname:port to be used when building Use-Path header.
|
|
|
|
|
|
+ The hostname:port to be used when building the Path header.
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
<emphasis>
|
|
<emphasis>
|
|
@@ -217,14 +217,14 @@ modparam("msrp", "use_path_addr", "msrp.kamailio.org:5061")
|
|
|
|
|
|
<section>
|
|
<section>
|
|
<title>Functions</title>
|
|
<title>Functions</title>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_relay">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_relay()</function>
|
|
<function moreinfo="none">msrp_relay()</function>
|
|
</title>
|
|
</title>
|
|
<para>
|
|
<para>
|
|
Relay MSRP frame according to the To-Path. This function has to be
|
|
Relay MSRP frame according to the To-Path. This function has to be
|
|
executed for each MSRP request or reply that has to be forwarded. Note
|
|
executed for each MSRP request or reply that has to be forwarded. Note
|
|
- that due to nature of MSRP transport layer, which is reliable
|
|
|
|
|
|
+ that due to nature of the MSRP transport layer, which is reliable
|
|
(TCP/TLS), there is no retransmission of MSRP frames.
|
|
(TCP/TLS), there is no retransmission of MSRP frames.
|
|
</para>
|
|
</para>
|
|
|
|
|
|
@@ -243,7 +243,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_reply">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_reply(code, text [, hdrs])</function>
|
|
<function moreinfo="none">msrp_reply(code, text [, hdrs])</function>
|
|
</title>
|
|
</title>
|
|
@@ -268,7 +268,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_is_request">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_is_request()</function>
|
|
<function moreinfo="none">msrp_is_request()</function>
|
|
</title>
|
|
</title>
|
|
@@ -295,7 +295,7 @@ event_route[msrp:frame-in] {
|
|
</section>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_is_reply">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_is_reply()</function>
|
|
<function moreinfo="none">msrp_is_reply()</function>
|
|
</title>
|
|
</title>
|
|
@@ -321,7 +321,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_set_dst">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_set_dst(addr, sock)</function>
|
|
<function moreinfo="none">msrp_set_dst(addr, sock)</function>
|
|
</title>
|
|
</title>
|
|
@@ -349,7 +349,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_relay_flags">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_relay_flags(flags)</function>
|
|
<function moreinfo="none">msrp_relay_flags(flags)</function>
|
|
</title>
|
|
</title>
|
|
@@ -378,7 +378,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_reply_flags">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_reply_flags(flags)</function>
|
|
<function moreinfo="none">msrp_reply_flags(flags)</function>
|
|
</title>
|
|
</title>
|
|
@@ -407,7 +407,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_cmap_save">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_cmap_save()</function>
|
|
<function moreinfo="none">msrp_cmap_save()</function>
|
|
</title>
|
|
</title>
|
|
@@ -432,7 +432,7 @@ event_route[msrp:frame-in] {
|
|
</example>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.f.msrp_cmap_lookup">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp_cmap_lookup()</function>
|
|
<function moreinfo="none">msrp_cmap_lookup()</function>
|
|
</title>
|
|
</title>
|
|
@@ -483,7 +483,7 @@ event_route[msrp:frame-in] {
|
|
|
|
|
|
<section>
|
|
<section>
|
|
<title>RPC Commands</title>
|
|
<title>RPC Commands</title>
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.r.msrp.cmaplist">
|
|
<title>
|
|
<title>
|
|
<function moreinfo="none">msrp.cmaplist</function>
|
|
<function moreinfo="none">msrp.cmaplist</function>
|
|
</title>
|
|
</title>
|
|
@@ -509,13 +509,13 @@ event_route[msrp:frame-in] {
|
|
</para>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
|
|
- <section>
|
|
|
|
|
|
+ <section id="msrp.usage">
|
|
<title>Usage</title>
|
|
<title>Usage</title>
|
|
<para>
|
|
<para>
|
|
- When 'sipmsg' parameter is set to 1 (which is default), the module
|
|
|
|
- internally builds a SIP request from the MSRP frame and exposes it to
|
|
|
|
- the config file interpreter. This way, all the functions that are
|
|
|
|
- valid for SIP requests can be used safely in event_route[msrp:frame-in].
|
|
|
|
|
|
+ When the <varname>sipmsg</varname> parameter is set to 1 (which is the
|
|
|
|
+ default), the module internally builds a SIP request from the MSRP frame
|
|
|
|
+ and exposes it to the config file interpreter. This way, all the functions
|
|
|
|
+ that are valid for SIP requests can be used safely in event_route[msrp:frame-in].
|
|
</para>
|
|
</para>
|
|
<para>
|
|
<para>
|
|
To build the SIP request, the module takes the first line and the
|
|
To build the SIP request, the module takes the first line and the
|