Skip to content

Commit d837289

Browse files
Enhance aaa_diameter documentation with Diameter error handling details and pseudo-variable descriptions
1 parent 3d9f7b2 commit d837289

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

modules/aaa_diameter/doc/aaa_diameter_admin.xml

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ modparam("aaa_diameter", "max_json_log_size", 4096)
279279
<itemizedlist>
280280
<listitem>
281281
<para><emphasis role='bold'>1</emphasis> - Success
282+
(the Diameter Answer has a 2xxx Result-Code)
282283
</para>
283284
</listitem>
284285
<listitem>
@@ -291,6 +292,15 @@ modparam("aaa_diameter", "max_json_log_size", 4096)
291292
before an Answer could be processed)
292293
</para>
293294
</listitem>
295+
<listitem>
296+
<para><emphasis role='bold'>-3</emphasis> - Diameter error
297+
reply (the Answer has a non-2xxx Result-Code or
298+
an Experimental-Result AVP). The
299+
<xref linkend="pv_diameter_result_code"/> and
300+
<xref linkend="pv_diameter_experimental_result_code"/>
301+
pseudo-variables can be used to inspect the exact error codes.
302+
</para>
303+
</listitem>
294304
</itemizedlist>
295305

296306
<para>
@@ -388,6 +398,13 @@ $var(payload) = "[
388398
]";
389399

390400
$var(rc) = dm_send_request(42, 92001, $var(payload), $var(rpl_avps));
401+
if ($var(rc) == -3) {
402+
xlog("Diameter error: Result-Code=$diameter_result_code, \
403+
Experimental-Result-Code=$diameter_experimental_result_code\n");
404+
} else if ($var(rc) &lt; 0) {
405+
xlog("dm_send_request failed: $var(rc)\n");
406+
}
407+
391408
xlog("rc: $var(rc), AVPs: $var(rpl_avps)\n");
392409
$json(avps) := $var(rpl_avps);
393410

@@ -515,10 +532,14 @@ $var(payload) = "[
515532
]}
516533
]";
517534

518-
async(dm_send_request(42, 92001, $var(payload), $var(rpl_avps), dm_reply);
535+
async(dm_send_request(42, 92001, $var(payload), $var(rpl_avps)), dm_reply);
519536

520537
route[dm_reply] {
521538
xlog("rc: $retcode, AVPs: $var(rpl_avps)\n");
539+
if ($retcode == -3) {
540+
xlog("Diameter error: Result-Code=$diameter_result_code, \
541+
Experimental-Result-Code=$diameter_experimental_result_code\n");
542+
}
522543
$json(avps) := $var(rpl_avps);
523544
}
524545

@@ -528,6 +549,44 @@ route[dm_reply] {
528549

529550
</section>
530551

552+
<section id="exported_pseudo_variables" xreflabel="Exported Pseudo-Variables">
553+
<title>Exported Pseudo-Variables</title>
554+
555+
<section id="pv_diameter_result_code" xreflabel="$diameter_result_code">
556+
<title><varname>$diameter_result_code</varname></title>
557+
<para>
558+
Set after a <xref linkend="func_dm_send_request"/> call completes
559+
(both synchronous and asynchronous). Contains the value of the
560+
<emphasis>Result-Code</emphasis> AVP (268) from the Diameter Answer,
561+
or <emphasis>0</emphasis> if the AVP was not present.
562+
</para>
563+
<para>
564+
This is useful for distinguishing between different Diameter error
565+
conditions (e.g. 3xxx protocol errors, 4xxx transient failures,
566+
5xxx permanent failures).
567+
</para>
568+
</section>
569+
570+
<section id="pv_diameter_experimental_result_code" xreflabel="$diameter_experimental_result_code">
571+
<title><varname>$diameter_experimental_result_code</varname></title>
572+
<para>
573+
Set after a <xref linkend="func_dm_send_request"/> call completes
574+
(both synchronous and asynchronous). Contains the value of the
575+
<emphasis>Experimental-Result-Code</emphasis> AVP (298) extracted
576+
from within the grouped <emphasis>Experimental-Result</emphasis>
577+
AVP (297) of the Diameter Answer, or <emphasis>0</emphasis> if
578+
the AVP was not present.
579+
</para>
580+
<para>
581+
The Experimental-Result AVP is used by many Diameter applications
582+
(e.g. 3GPP/IMS) to convey vendor-specific result codes. When
583+
this AVP is present, the <xref linkend="func_dm_send_request"/>
584+
function will return <emphasis role='bold'>-3</emphasis>.
585+
</para>
586+
</section>
587+
588+
</section>
589+
531590
<section id="exported_events" xreflabel="Exported Events">
532591
<title>Exported Events</title>
533592
<section id="event_dm_request" xreflabel="E_DM_REQUEST">

0 commit comments

Comments
 (0)