File: ims_qos_admin.xml

package info (click to toggle)
kamailio 4.2.0-2%2Bdeb8u3
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 56,276 kB
  • sloc: ansic: 552,836; xml: 166,484; sh: 8,659; makefile: 7,676; sql: 6,235; perl: 3,487; yacc: 3,428; python: 1,457; cpp: 1,219; php: 1,047; java: 449; pascal: 194; cs: 40; awk: 27
file content (330 lines) | stat: -rw-r--r-- 9,309 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!-- Include general documentation entities -->
<!ENTITY % docentities SYSTEM "../../../docbook/entities.xml">
%docentities;
]>
<!-- Auth_db Module User's Guide -->
<chapter>
  <title>&adminguide;</title>

  <section>
    <title>Overview</title>

    <para>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.</para>
  </section>

  <section>
    <title>Dependencies</title>

    <section>
      <title>&kamailio; Modules</title>

      <para>The Following mouldes must be loaded before this module:</para>

      <itemizedlist>
        <listitem>
          <para>Dialog2</para>
        </listitem>

        <listitem>
          <para>Usrloc PCSCF</para>
        </listitem>

        <listitem>
          <para>TM - Transaction Manager</para>
        </listitem>

        <listitem>
          <para>CDP - C Diameter Peer</para>
        </listitem>

        <listitem>
          <para>CDP_AVP - CDP AVP Applications</para>
        </listitem>
      </itemizedlist>
    </section>

    <section>
      <title>External Libraries or Applications</title>

      <para>This modules requires the internal IMS library.</para>
    </section>
  </section>

  <section>
    <title>Parameters</title>

    <section>
      <title><varname>rx_dest_realm</varname> (string)</title>

      <para>This is the name of the Diameter realm of the Diameter server
      (typically a PCRF).</para>

      <para><emphasis> Default value is 'ims.smilecoms.com'.
      </emphasis></para>

      <example>
        <title><varname>rx_dest_realm</varname> parameter usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "rx_dest_realm", "ims.smilecoms.com")
...
        </programlisting>
      </example>
    </section>

    <section>
      <title><varname>rx_forced_peer</varname> (string)</title>

      <para>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. </para>

      <para><emphasis> Default value is ''. </emphasis></para>

      <example>
        <title><varname>rx_forced_peer</varname> parameter usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "rx_forced_peer", "pcrf.ims.smilecoms.com")
...
        </programlisting>
      </example>
    </section>

    <section>
      <title><varname>rx_auth_expiry</varname> (integer)</title>

      <para>This is the expiry length in seconds of the initiated Diameter
      sessions.</para>

      <para><emphasis> Default value is 7200. </emphasis></para>

      <example>
        <title><varname>rx_auth_expiry</varname> parameter usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "rx_auth_expiry", 14400)
...
        </programlisting>
      </example>
    </section>

    <section>
      <title><varname>cdp_event_latency</varname> (integer)</title>

      <para>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.</para>

      <para><emphasis> Default value is 1. </emphasis></para>

      <example>
        <title><varname>cdp_event_latency</varname> parameter usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "cdp_event_latency", 1)
...
        </programlisting>
      </example>
    </section>

    <section>
      <title><varname>cdp_event_threshold</varname> (integer)</title>

      <para>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).</para>

      <para><emphasis> Default value is 500. </emphasis></para>

      <example>
        <title><varname>cdp_event_threshold</varname> parameter usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "cdp_event_threshold", 500)
...
        </programlisting>
      </example>
    </section>

    <section>
      <title><varname>cdp_event_latency_log</varname> (integer)</title>

      <para>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)</para>

      <para><emphasis> Default value is 0. </emphasis></para>

      <example>
        <title><varname>cdp_event_latency_log</varname> parameter
        usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "cdp_event_latency_log", 1)
...
        </programlisting>
      </example>
    </section>
    <section>
      <title><varname>authorize_video_flow</varname> (integer)</title>

      <para>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</para>

      <para><emphasis> Default value is 1. </emphasis></para>

      <example>
        <title><varname>authorize_video_flow</varname> parameter
        usage</title>

        <programlisting format="linespecific">
...
modparam("ims_qos", "authorize_video_flow", 0)
...
        </programlisting>
      </example>
    </section>
  </section>

  <section>
    <title>Functions</title>

    <section>
      <title><function moreinfo="none">Rx_AAR_Register(route_block,
      domain)</function></title>

      <para>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.</para>

      <para>Meaning of the parameters is as follows:</para>

      <itemizedlist>
        <listitem>
          <para>Route block to resume after async UAR Diameter reply.</para>
        </listitem>

        <listitem>
          <para><emphasis>domain</emphasis> that usrloc_pcscf uses to store
          user information.</para>
        </listitem>
      </itemizedlist>

      <para>This function can be used from REQUEST_ROUTE.</para>

      <para>p.s. this is executed asynchronously. See example on how to
      retrieve return value</para>

      <example>
        <title>Rx_AAR_Register</title>

        <programlisting format="linespecific">
...
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");
            break;
        default:
            xlog("L_ERR", "Diameter: AAR failed on subscription to signalling\n");
            t_reply("403", "Can't register to QoS for signalling");
            exit;
    }
...
</programlisting>
      </example>
    </section>

    <section>
      <title><function moreinfo="none">Rx_AAR(route_block,
      direction)</function></title>

      <para>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.</para>

      <para>Meaning of the parameters is as follows:</para>

      <itemizedlist>
        <listitem>
          <para>Route block to resume after async UAR Diameter reply.</para>
        </listitem>

        <listitem>
          <para><emphasis>direction</emphasis>the direction of this message -
          orig, term, etc.</para>
        </listitem>
      </itemizedlist>

      <para>This function can be used from REQUEST_ROUTE or
      ONREPLY_ROUTE.</para>

      <para>p.s. this is executed asynchronously. See example on how to
      retrieve return value</para>

      <example>
        <title>Rx_AAR</title>

        <programlisting format="linespecific">
...
if(Rx_AAR("ORIG_SESSION_AAR_REPLY","orig")==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");
    } 
}
...
</programlisting>
      </example>
    </section>
  </section>

  <section>
    <title>Statistics</title>

    <section>
      <title>AAR Timeouts (aar_timeouts)</title>

      <para>The number of timeouts on sending a AAR. i.e. no response to
      AAR.</para>
    </section>

    <section>
      <title>Average AAR Response Time (aar_avg_response_time)</title>

      <para>The average response time in milliseconds for AAR-AAA
      transaction.</para>
    </section>
  </section>
</chapter>