Browse Source

Update README for ims_qos

Carsten Bock 10 years ago
parent
commit
25d66de2e3
1 changed files with 126 additions and 29 deletions
  1. 126 29
      modules/ims_qos/README

+ 126 - 29
modules/ims_qos/README

@@ -15,9 +15,16 @@ Richard Good
    Smile Communications
    <[email protected]>
 
+Carsten Bock
+
+   ng-voice GmbH
+   <[email protected]>
+
    Copyright © 2007 FhG FOKUS
 
    Copyright © 2012 Smile Communications
+
+   Copyright © 2015 ng-voice GmbH
      __________________________________________________________________
 
    Table of Contents
@@ -38,11 +45,16 @@ Richard Good
               3.4. cdp_event_latency (integer)
               3.5. cdp_event_threshold (integer)
               3.6. cdp_event_latency_log (integer)
+              3.7. authorize_video_flow (integer)
+              3.8. cdp_event_list_size_threshold (integer)
+              3.9. audio_default_bandwidth (integer)
+              3.10. video_default_bandwidth (integer)
 
         4. Functions
 
-              4.1. Rx_AAR_Register(domain)
-              4.2. Rx_AAR(domain)
+              4.1. Rx_AAR_Register(route_block, domain)
+              4.2. Rx_AAR(route_block, direction, subscription_id,
+                      subscription_id_type)
 
         5. Statistics
 
@@ -57,8 +69,12 @@ Richard Good
    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
+   1.7. authorize_video_flow parameter usage
+   1.8. cdp_event_list_size_threshold parameter usage
+   1.9. audio_default_bandwidth parameter usage
+   1.10. video_default_bandwidth parameter usage
+   1.11. Rx_AAR_Register
+   1.12. Rx_AAR
 
 Chapter 1. Admin Guide
 
@@ -78,11 +94,16 @@ Chapter 1. Admin Guide
         3.4. cdp_event_latency (integer)
         3.5. cdp_event_threshold (integer)
         3.6. cdp_event_latency_log (integer)
+        3.7. authorize_video_flow (integer)
+        3.8. cdp_event_list_size_threshold (integer)
+        3.9. audio_default_bandwidth (integer)
+        3.10. video_default_bandwidth (integer)
 
    4. Functions
 
-        4.1. Rx_AAR_Register(domain)
-        4.2. Rx_AAR(domain)
+        4.1. Rx_AAR_Register(route_block, domain)
+        4.2. Rx_AAR(route_block, direction, subscription_id,
+                subscription_id_type)
 
    5. Statistics
 
@@ -123,6 +144,10 @@ Chapter 1. Admin Guide
    3.4. cdp_event_latency (integer)
    3.5. cdp_event_threshold (integer)
    3.6. cdp_event_latency_log (integer)
+   3.7. authorize_video_flow (integer)
+   3.8. cdp_event_list_size_threshold (integer)
+   3.9. audio_default_bandwidth (integer)
+   3.10. video_default_bandwidth (integer)
 
 3.1. rx_dest_realm (string)
 
@@ -138,8 +163,11 @@ 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.
+   FQDN of the Diameter server (typically a PCRF) to communicate with. If
+   not set then realm routing is used. If you use this, the routing
+   defined in your diameter xml configuration file (CDP) will be ignored
+   and as a result you will lose the benefits of load balancing and
+   failover.
 
    Default value is ''.
 
@@ -199,12 +227,62 @@ modparam("ims_qos", "cdp_event_threshold", 500)
 modparam("ims_qos", "cdp_event_latency_log", 1)
 ...
 
+3.7. authorize_video_flow (integer)
+
+   This is a flag that specifies whether or not to authorize video flows.
+   1 means video flows will be authorized over Rx and 0 means video flows
+   will not be authorized over Rx
+
+   Default value is 1.
+
+   Example 1.7. authorize_video_flow parameter usage
+...
+modparam("ims_qos", "authorize_video_flow", 0)
+...
+
+3.8. cdp_event_list_size_threshold (integer)
+
+   This is a threshold on the size of the cdp event list. Once the queue
+   exceeds this length a warning is logged. 0 disables this feature
+
+   Default value is 0.
+
+   Example 1.8. cdp_event_list_size_threshold parameter usage
+...
+modparam("ims_qos", "cdp_event_list_size_threshold", 10)
+...
+
+3.9. audio_default_bandwidth (integer)
+
+   This parameters defines the default bandwidth for Audio, if no
+   "b=AS"-Parameter is found in the SDP.
+
+   Default value is 64 (64 kBit)
+
+   Example 1.9. audio_default_bandwidth parameter usage
+...
+modparam("ims_qos", "audio_default_bandwidth", 32)
+...
+
+3.10. video_default_bandwidth (integer)
+
+   This parameters defines the default bandwidth for Video, if no
+   "b=AS"-Parameter is found in the SDP.
+
+   Default value is 128 (128 kBit)
+
+   Example 1.10. video_default_bandwidth parameter usage
+...
+modparam("ims_qos", "video_default_bandwidth", 256)
+...
+
 4. Functions
 
-   4.1. Rx_AAR_Register(domain)
-   4.2. Rx_AAR(domain)
+   4.1. Rx_AAR_Register(route_block, domain)
+   4.2. Rx_AAR(route_block, direction, subscription_id,
+          subscription_id_type)
 
-4.1. Rx_AAR_Register(domain)
+4.1. Rx_AAR_Register(route_block, domain)
 
    Perform a AAR on Diameter RX interface to subscribe to signalling
    status. This purpose of this is tell a Diameter server (typically a
@@ -213,17 +291,29 @@ modparam("ims_qos", "cdp_event_latency_log", 1)
    see 3GGP TS 29.214.
 
    Meaning of the parameters is as follows:
+     * Route block to resume after async UAR Diameter reply.
      * domain that usrloc_pcscf uses to store user information.
 
+   Return codes:
+     * -1 - error: There was an error, so we must either ignore it (no
+       subscription) or send 403 (depends on behaviour you want)
+       0 - Success: AAR-Request sent, reply is processed asynchronously.
+       1 - Success: No need to send AAR-Request, as a subscription still
+       exists (continue as normal)
+
    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
+   Example 1.11. Rx_AAR_Register
 ...
-    Rx_AAR_Register("location");
-
+if(Rx_AAR_Register("REG_AAR_REPLY","location")==0){
+    exit;
+}
+...
+route[REG_AAR_REPLY]
+{
     switch ($avp(s:aar_return_code)) {
         case 1:
             xlog("L_DBG", "Diameter: AAR success on subscription to signalling\n
@@ -235,37 +325,44 @@ modparam("ims_qos", "cdp_event_latency_log", 1)
             t_reply("403", "Can't register to QoS for signalling");
             exit;
     }
-
 ...
 
-4.2. Rx_AAR(domain)
+4.2. Rx_AAR(route_block, direction, subscription_id, subscription_id_type)
 
    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.
+     * Route block to resume after async UAR Diameter reply.
+     * direction of this message - orig, term, etc.
+     * subscription_id to hard code subscription ID for AAR. Used for some
+       broken PCRFs. Leave blank to use default
+     * subscription_id_type to hard code subscription ID type for AAR.
+       Only applicable if subscription_id is set. Set to -1 to use
+       default. This is as per RFC 4006: END_USER_E164 0, END_USER_IMSI 1,
+       END_USER_SIP_URI 2, END_USER_NAI 3, END_USER_PRIVATE 4
 
    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
+   Example 1.12. 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;
+if(Rx_AAR("ORIG_SESSION_AAR_REPLY","orig","",-1)==0){
+    exit;
+}
+...
+route[ORIGN_SESSION_AAR_REPLY]
+{
+    if ($avp(s:aar_return_code) != 1) {
+        xlog("L_ERR", "IMS: AAR failed Orig\n");
+        dlg_terminate("all", "Sorry no QoS available");
+    } else {
+        xlog("L_DBG", "Diameter: Orig AAR success on media authorization\n");
     }
-
+}
 ...
 
 5. Statistics