|
@@ -53,10 +53,10 @@ Daniel-Constantin Mierla
|
|
|
|
|
|
1.1. Overview
|
|
1.1. Overview
|
|
|
|
|
|
- The SL module allows ser to act as a stateless UA server and generate
|
|
|
|
- replies to SIP requests without keeping state. That is beneficial in
|
|
|
|
- many scenarios, in which you wish not to burden server's memory and
|
|
|
|
- scale well.
|
|
|
|
|
|
+ The SL module allows the SIP server to act as a stateless UA server and
|
|
|
|
+ generate replies to SIP requests without keeping state. That is
|
|
|
|
+ beneficial in many scenarios, in which you wish not to burden server's
|
|
|
|
+ memory and scale well.
|
|
|
|
|
|
The SL module needs to filter ACKs sent after a local stateless reply
|
|
The SL module needs to filter ACKs sent after a local stateless reply
|
|
to an INVITE was generated. To recognize such ACKs, ser adds a special
|
|
to an INVITE was generated. To recognize such ACKs, ser adds a special
|
|
@@ -64,17 +64,18 @@ Daniel-Constantin Mierla
|
|
and if included, the ACKs are absorbed.
|
|
and if included, the ACKs are absorbed.
|
|
|
|
|
|
To speed up the filtering process, the module uses a timeout mechanism.
|
|
To speed up the filtering process, the module uses a timeout mechanism.
|
|
- When a reply is sent, a timer us set. As time as the timer is valid,
|
|
|
|
- The incoming ACK requests will be checked using TO tag value Once the
|
|
|
|
- timer expires, all the ACK are let through - a long time passed till it
|
|
|
|
- sent a reply, so it does not expect any ACK that have to be blocked.
|
|
|
|
|
|
+ When a reply is sent, a timer us set. As long as the timer is valid,
|
|
|
|
+ the incoming ACK requests will be checked using TO tag value. Once the
|
|
|
|
+ timer expires, all the ACK messages are let through - a long time
|
|
|
|
+ passed till it sent a reply, so it does not expect any ACK that have to
|
|
|
|
+ be blocked.
|
|
|
|
|
|
The ACK filtering may fail in some rare cases. If you think these
|
|
The ACK filtering may fail in some rare cases. If you think these
|
|
- matter to you, better use stateful processing (tm module) for INVITE
|
|
|
|
|
|
+ matter to you, better use stateful processing (TM module) for INVITE
|
|
processing. Particularly, the problem happens when a UA sends an INVITE
|
|
processing. Particularly, the problem happens when a UA sends an INVITE
|
|
- which already has a to-tag in it (e.g., a re-INVITE) and SER want to
|
|
|
|
- reply to it. Than, it will keep the current to-tag, which will be
|
|
|
|
- mirrored in ACK. SER will not see its signature and forward the ACK
|
|
|
|
|
|
+ which already has a to-tag in it (e.g., a re-INVITE) and the server
|
|
|
|
+ want to reply to it. Then, it will keep the current to-tag, which will
|
|
|
|
+ be mirrored in ACK. SER will not see its signature and forward the ACK
|
|
downstream. Caused harm is not bad--just a useless ACK is forwarded.
|
|
downstream. Caused harm is not bad--just a useless ACK is forwarded.
|
|
|
|
|
|
1.2. Parameters
|
|
1.2. Parameters
|
|
@@ -134,8 +135,8 @@ sl_send_reply("404", "Not found");
|
|
|
|
|
|
For the current request, a reply is sent back having the given code and
|
|
For the current request, a reply is sent back having the given code and
|
|
text reason. The reply is sent stateful or stateless, depending of the
|
|
text reason. The reply is sent stateful or stateless, depending of the
|
|
- TM module: if the transaction for current request is created, then the
|
|
|
|
- reply is sent stateful, otherwise stateless.
|
|
|
|
|
|
+ TM module: if a transaction exists for the current request, then the
|
|
|
|
+ reply is sent statefully, otherwise stateless.
|
|
|
|
|
|
Meaning of the parameters is as follows:
|
|
Meaning of the parameters is as follows:
|
|
* code - Return code.
|
|
* code - Return code.
|