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.
283 lines
6.9 KiB
283 lines
6.9 KiB
The IMS QoS Module
|
|
|
|
Dragos Vingarzan
|
|
|
|
FhG Fokus
|
|
<Dragos.Vingarzan@fokus.fraunhofer.de>
|
|
|
|
Jason Penton
|
|
|
|
Smile Communications
|
|
<jason.penton@smilecoms.com>
|
|
|
|
Richard Good
|
|
|
|
Smile Communications
|
|
<richard.good@smilecoms.com>
|
|
|
|
Copyright © 2007 FhG FOKUS
|
|
|
|
Copyright © 2012 Smile Communications
|
|
__________________________________________________________________
|
|
|
|
Table of Contents
|
|
|
|
1. Admin Guide
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Parameters
|
|
|
|
3.1. rx_dest_realm (string)
|
|
3.2. rx_forced_peer (string)
|
|
3.3. rx_auth_expiry (integer)
|
|
3.4. cdp_event_latency (integer)
|
|
3.5. cdp_event_threshold (integer)
|
|
3.6. cdp_event_latency_log (integer)
|
|
|
|
4. Functions
|
|
|
|
4.1. Rx_AAR_Register(domain)
|
|
4.2. Rx_AAR(domain)
|
|
|
|
5. Statistics
|
|
|
|
5.1. AAR Timeouts (aar_timeouts)
|
|
5.2. Average AAR Response Time (aar_avg_response_time)
|
|
|
|
List of Examples
|
|
|
|
1.1. rx_dest_realm parameter usage
|
|
1.2. rx_forced_peer parameter usage
|
|
1.3. rx_auth_expiry parameter usage
|
|
1.4. cdp_event_latency parameter usage
|
|
1.5. cdp_event_threshold parameter usage
|
|
1.6. cdp_event_latency_log parameter usage
|
|
1.7. Rx_AAR_Register
|
|
1.8. Rx_AAR
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
Table of Contents
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Parameters
|
|
|
|
3.1. rx_dest_realm (string)
|
|
3.2. rx_forced_peer (string)
|
|
3.3. rx_auth_expiry (integer)
|
|
3.4. cdp_event_latency (integer)
|
|
3.5. cdp_event_threshold (integer)
|
|
3.6. cdp_event_latency_log (integer)
|
|
|
|
4. Functions
|
|
|
|
4.1. Rx_AAR_Register(domain)
|
|
4.2. Rx_AAR(domain)
|
|
|
|
5. Statistics
|
|
|
|
5.1. AAR Timeouts (aar_timeouts)
|
|
5.2. Average AAR Response Time (aar_avg_response_time)
|
|
|
|
1. Overview
|
|
|
|
This module contains all method related to the IMS policy and charging
|
|
control functions performed by an Application Function (e.g. P-CSCF)
|
|
over the Rx interface. This module is dependent on the CDP (C Diameter
|
|
Peer) modules for communicating with PCRF as specified in 3GPP
|
|
specification TS 29.214.
|
|
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
2.1. Kamailio Modules
|
|
|
|
The Following mouldes must be loaded before this module:
|
|
* Dialog2
|
|
* Usrloc PCSCF
|
|
* TM - Transaction Manager
|
|
* CDP - C Diameter Peer
|
|
* CDP_AVP - CDP AVP Applications
|
|
|
|
2.2. External Libraries or Applications
|
|
|
|
This modules requires the internal IMS library.
|
|
|
|
3. Parameters
|
|
|
|
3.1. rx_dest_realm (string)
|
|
3.2. rx_forced_peer (string)
|
|
3.3. rx_auth_expiry (integer)
|
|
3.4. cdp_event_latency (integer)
|
|
3.5. cdp_event_threshold (integer)
|
|
3.6. cdp_event_latency_log (integer)
|
|
|
|
3.1. rx_dest_realm (string)
|
|
|
|
This is the name of the Diameter realm of the Diameter server
|
|
(typically a PCRF).
|
|
|
|
Default value is 'ims.smilecoms.com'.
|
|
|
|
Example 1.1. rx_dest_realm parameter usage
|
|
...
|
|
modparam("ims_qos", "rx_dest_realm", "ims.smilecoms.com")
|
|
...
|
|
|
|
3.2. rx_forced_peer (string)
|
|
|
|
This is the optional name of the origin host of the Diameter server
|
|
(typically a PCRF). If not set then realm routing is used.
|
|
|
|
Default value is ''.
|
|
|
|
Example 1.2. rx_forced_peer parameter usage
|
|
...
|
|
modparam("ims_qos", "rx_forced_peer", "pcrf.ims.smilecoms.com")
|
|
...
|
|
|
|
3.3. rx_auth_expiry (integer)
|
|
|
|
This is the expiry length in seconds of the initiated Diameter
|
|
sessions.
|
|
|
|
Default value is 7200.
|
|
|
|
Example 1.3. rx_auth_expiry parameter usage
|
|
...
|
|
modparam("ims_qos", "rx_auth_expiry", 14400)
|
|
...
|
|
|
|
3.4. cdp_event_latency (integer)
|
|
|
|
This is a flag to determine whether or slow CDP responses should be
|
|
reported in the log file. 1 is enabled and 0 is disabled.
|
|
|
|
Default value is 1.
|
|
|
|
Example 1.4. cdp_event_latency parameter usage
|
|
...
|
|
modparam("ims_qos", "cdp_event_latency", 1)
|
|
...
|
|
|
|
3.5. cdp_event_threshold (integer)
|
|
|
|
This time in milliseconds is the limit we should report a CDP response
|
|
as slow. i.e. if a CDP response exceeds this limit it will be reported
|
|
in the log file. This is only relevant is cdp_event_latency is enabled
|
|
(set to 0).
|
|
|
|
Default value is 500.
|
|
|
|
Example 1.5. cdp_event_threshold parameter usage
|
|
...
|
|
modparam("ims_qos", "cdp_event_threshold", 500)
|
|
...
|
|
|
|
3.6. cdp_event_latency_log (integer)
|
|
|
|
This time log level at which we should report slow CDP responses. 0 is
|
|
ERROR, 1 is WARN, 2 is INFO and 3 is DEBUG. This is only relevant is
|
|
cdp_event_latency is enabled (set to 0)
|
|
|
|
Default value is 0.
|
|
|
|
Example 1.6. cdp_event_latency_log parameter usage
|
|
...
|
|
modparam("ims_qos", "cdp_event_latency_log", 1)
|
|
...
|
|
|
|
4. Functions
|
|
|
|
4.1. Rx_AAR_Register(domain)
|
|
4.2. Rx_AAR(domain)
|
|
|
|
4.1. Rx_AAR_Register(domain)
|
|
|
|
Perform a AAR on Diameter RX interface to subscribe to signalling
|
|
status. This purpose of this is tell a Diameter server (typically a
|
|
PCRF) to inform the requesting Diameter client on changes to the status
|
|
of signalling bearer for the same framed IP address. For more details
|
|
see 3GGP TS 29.214.
|
|
|
|
Meaning of the parameters is as follows:
|
|
* domain that usrloc_pcscf uses to store user information.
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
p.s. this is executed asynchronously. See example on how to retrieve
|
|
return value
|
|
|
|
Example 1.7. Rx_AAR_Register
|
|
...
|
|
Rx_AAR_Register("location");
|
|
|
|
switch ($avp(s:aar_return_code)) {
|
|
case 1:
|
|
xlog("L_DBG", "Diameter: AAR success on subscription to signalling\n
|
|
");
|
|
break;
|
|
default:
|
|
xlog("L_ERR", "Diameter: AAR failed on subscription to signalling\n"
|
|
);
|
|
t_reply("403", "Can't register to QoS for signalling");
|
|
exit;
|
|
}
|
|
|
|
...
|
|
|
|
4.2. Rx_AAR(domain)
|
|
|
|
Perform a AAR on Diameter RX interface to request resource
|
|
authorisation from a Diameter server (typically a PCRF). For more
|
|
details see 3GGP TS 29.214.
|
|
|
|
Meaning of the parameters is as follows:
|
|
* domain that usrloc_pcscf uses to store user information.
|
|
|
|
This function can be used from REQUEST_ROUTE or ONREPLY_ROUTE.
|
|
|
|
p.s. this is executed asynchronously. See example on how to retrieve
|
|
return value
|
|
|
|
Example 1.8. Rx_AAR
|
|
...
|
|
Rx_AAR("location");
|
|
|
|
switch ($avp(s:aar_return_code)) {
|
|
case 1:
|
|
xlog("L_DBG", "Diameter: AAR success\n");
|
|
break;
|
|
default:
|
|
xlog("L_ERR", "Diameter: AAR failed\n");
|
|
t_reply("403", "QoS not authorized");
|
|
exit;
|
|
}
|
|
|
|
...
|
|
|
|
5. Statistics
|
|
|
|
5.1. AAR Timeouts (aar_timeouts)
|
|
5.2. Average AAR Response Time (aar_avg_response_time)
|
|
|
|
5.1. AAR Timeouts (aar_timeouts)
|
|
|
|
The number of timeouts on sending a AAR. i.e. no response to AAR.
|
|
|
|
5.2. Average AAR Response Time (aar_avg_response_time)
|
|
|
|
The average response time in milliseconds for AAR-AAA transaction.
|