<div dir="ltr">Hi,<div><br></div><div>I've been playing around with the latest aaa_diameter module from OpenSIPS master. I am currently sending authentications using Diameter (MAR), which works just fine, and I have also tried to extend this to send a SAR request.</div><div><br></div><div>From my config:</div><div><div style="color:rgb(204,204,204);background-color:rgb(31,31,31);font-family:"Droid Sans Mono","monospace",monospace;font-size:14px;line-height:19px"><div><span style="color:rgb(86,156,214)">loadmodule</span> <span style="color:rgb(206,145,120)">"aaa_diameter.so"</span></div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"aaa_diameter"</span>, <span style="color:rgb(206,145,120)">"realm"</span>, <span style="color:rgb(206,145,120)">"<a href="http://ims.mnc001.mcc001.3gppnetwork.org/" target="_blank">ims.mnc001.mcc001.3gppnetwork.org</a>"</span>)</div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"aaa_diameter"</span>, <span style="color:rgb(206,145,120)">"peer_identity"</span>, <span style="color:rgb(206,145,120)">"<a href="http://scscf-1-dev.mnc001.mcc001.3gppnetwork.org/" target="_blank">scscf-1-dev.mnc001.mcc001.3gppnetwork.org</a>"</span>)</div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"aaa_diameter"</span>, <span style="color:rgb(206,145,120)">"fd_log_level"</span>, <span style="color:rgb(181,206,168)">0</span>)</div><div><span style="color:rgb(106,153,85)"># modparam("aaa_diameter", "aaa_url", "diameter:/etc/opensips/freeDiameter.conf;extra-avps-file:/etc/opensips/aka_av_diameter.dictionary")</span></div><br><div><span style="color:rgb(86,156,214)">loadmodule</span> <span style="color:rgb(206,145,120)">"auth.so"</span></div><div><span style="color:rgb(86,156,214)">loadmodule</span> <span style="color:rgb(206,145,120)">"auth_aka.so"</span></div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"auth_aka"</span>, <span style="color:rgb(206,145,120)">"default_av_mgm"</span>, <span style="color:rgb(206,145,120)">"diameter"</span>)</div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"auth_aka"</span>, <span style="color:rgb(206,145,120)">"default_qop"</span>, <span style="color:rgb(206,145,120)">"auth,auth-int"</span>)</div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"auth_aka"</span>, <span style="color:rgb(206,145,120)">"default_algorithm"</span>, <span style="color:rgb(206,145,120)">"AKAv1-MD5"</span>)</div><br><div><span style="color:rgb(86,156,214)">loadmodule</span> <span style="color:rgb(206,145,120)">"aka_av_diameter.so"</span></div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"aka_av_diameter"</span>, <span style="color:rgb(206,145,120)">"aaa_url"</span>, <span style="color:rgb(206,145,120)">"diameter:/etc/opensips/freeDiameter.conf;extra-avps-file:/etc/opensips/aka_av_diameter.dictionary"</span>)</div><div><span style="color:rgb(86,156,214)">modparam</span>(<span style="color:rgb(206,145,120)">"aka_av_diameter"</span>, <span style="color:rgb(206,145,120)">"realm"</span>, <span style="color:rgb(206,145,120)">"<a href="http://ims.mnc001.mcc001.3gppnetwork.org/" target="_blank">ims.mnc001.mcc001.3gppnetwork.org</a>"</span>)</div></div></div><div><br></div><div>The first thing I've noticed is that the current master crashes if I define two different "aaa_url"s, e.g., in "aka_av_diameter" for MAR and "aaa_diameter" for all other Diameter requests. However, if I only define the "aaa_url" for the "aka_av_diameter" module, OpenSIPS seems fine.</div><div><br></div><div>My Diameter Config is limited to only basic stack configuration and a single peer (the HSS).</div><div><br></div><div>For sending a SAR request, I've extended the dictionary accordingly:</div><div>ATTRIBUTE Server-Assignment-Type              614 integer  10415<br></div><div>ATTRIBUTE User-Data-Already-Available         624 integer  10415<br>ATTRIBUTE Cx-User-Data  606 string 10415<br></div><div><br></div><div>(TS 29.229 17.2 mentions "Server-Assignment-Type" and "User-Data-Already-Available" types should be an Enumeration, however looking at "app_opensips/avps.c" from the aaa_diameter module indicates that enums are internally handled as integers, so I used integers instead)</div><div><br></div><div>When adding these attributes to the SAR request, OpenSIPS fails to start, with meaningless errors.</div><div><br>REQUEST 301 Server-Assignment Request<br>{<br>Session-Id | REQUIRED | 1<br>Origin-Host | REQUIRED | 1<br>Origin-Realm | REQUIRED | 1<br>Destination-Realm | REQUIRED | 1<br>Auth-Session-State | REQUIRED | 1<br>User-Name | REQUIRED | 1<br>User-Data-Already-Available | REQUIRED | 1<br>Server-Assignment-Type | REQUIRED | 1<br>Public-Identity | REQUIRED | 1<br>Server-Name | REQUIRED | 1<br>}<br></div><div><br></div><div>The definition itself seems to be fine: If I rename the "Server-Assignment-Type" to "SAT" and "User-Data-Already-Available" to "UDA-Available", OpenSIPS starts. However, if I follow the examples (e.g. module docs for aaa_diameter and here <a href="https://www.opensips.org/Documentation/Tutorials-Diameter-Client-Server" target="_blank">https://www.opensips.org/Documentation/Tutorials-Diameter-Client-Server</a>), I fail to send the Diameter-Request:<br><br></div><div>11:10:14  ERROR  ERROR: Invalid parameter '(((avp) && (((struct msg_avp_chain *)(avp))->type == MSG_AVP) && (((struct avp *)(avp))->avp_eyec == (0x11355467))) && pdata)', 22<br></div><div><br></div><div>Am I missing something? Can someone share some example code for sending a SAR request? Is the documentation missing something?</div><div><br></div><div>Thanks,</div><div>Carsten</div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>--</div><div>Schöne Grüße aus Hamburg, dem Tor zur Welt,<br></div><div>Carsten Bock<br><br>T +49 179 2021244 I <a href="mailto:carsten@bock.info" target="_blank">carsten@bock.info</a></div><div>LinkedIn: <a href="https://www.linkedin.com/in/carstenbock/" target="_blank">https://www.linkedin.com/in/carstenbock/</a><br></div></div></div></div></div>