<div dir="ltr">Hi Liviu,<div><br></div><div>Quick update from my side:</div><div>Your initial pointer was correct - the issue concerned the AVP definition.</div><div><br></div><div>Extending the dictionary using extensions (like dict_dcca_3gpp) seems complicated due to the forking and library initialization. I have temporarily solved this by manually including the dictionary definitions from dict_dcca_3gpp and its dependencies in the aaa_diameter Module. Including the dictionaries from the freeDiameter project revealed some conflicts with the existing AVP definitions from the module, so I removed those definitions for now.</div><div><br></div><div>Duplicating code is not ideal, so this is a temporary solution for me.<br></div><div><br></div><div>I've noticed that the "aka_av_diameter" Module requires some AVPs that conflict with the standard definitions from the freeDiameter project - I've noticed that you named some AVPs "3GPP-*". I have replaced these with the standard definitions from the freeDiameter project and will do some further testing.</div><div><br></div><div>Also, we should improve the way the aaa_diameter module handles situations when no "Session-Id" is found in the crafted Diameter message. I accidentally missed adding a "Session-Id"-AVP to my request, and the error message from OpenSIPS was not very helpful.<br></div><div><br></div><div>I will do some further testing. However, I wanted to highlight that I can finally send a server-assignment request (SAR) to our HSS!</div><div><br></div><div>Thanks again for your hard work, especially for useful feedback.</div><div><br></div><div>Thanks,</div><div>Carsten</div><div><br></div><div><br></div><div><br clear="all"><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>Baron-Voght-Str. 128a I 22607 Hamburg I Germany<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><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Mi., 10. Juli 2024 um 12:22 Uhr schrieb Carsten Bock <<a href="mailto:carsten.bock.private@gmail.com">carsten.bock.private@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Liviu,<div><br></div><div>Thanks for getting back to me and for pointing me in some directions.</div><div><br></div><div>So far, I did not loaded any extensions. Upon checking with dict_dcca_3gpp.fdx I've noticed that the extensions (and the lib) are initialized in the worker process, while the "extra-avps-file" is loaded from mod_init (so before).</div><div><br></div><div>If I move the loading of the extra-avps-file to the worker process (so after loading extensions), the aka_av_diameter module complains about not finding the MAR request. After fixing this, there are apparently some conflicts in the custom-avp's registered by OpenSIPS and the AVPs defined in the extension dict_dcca_3gpp.fdx or it's dependencies....</div><div><br></div><div>I will get there ;-)</div><div><br></div><div>Anyway, pointing me in the right direction was already very helpful!</div><div><br></div><div>Thanks,</div><div>Carsten</div><div><div><div dir="ltr" class="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>Baron-Voght-Str. 128a I 22607 Hamburg I Germany<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><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 9. Juli 2024 um 16:28 Uhr schrieb Liviu Chircu <<a href="mailto:liviu@opensips.org" target="_blank">liviu@opensips.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div>On 09.07.2024 14:18, Carsten Bock
wrote:<br>
</div>
<blockquote type="cite">
<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>
</blockquote>
<p><font face="monospace">Hello Carsten,</font></p>
<p><font face="monospace">It is great to hear you are having fun
with the module! With regards to freeDiameter library errors
(which are taken straight up from
/usr/include/asm-generic/errno-base.h, btw), I've typically seen
two codes being returned by the library:</font></p>
<p><font face="monospace">#define EINVAL 22 /* Invalid
argument */ -- most frequent<br>
#define EEXIST 17 /* File exists */<br>
</font></p>
<p><font face="monospace">Now, with <b>17</b> (already exists),
this is returned if you are trying to register a *duplicate* AVP
as string name, but with different properties (maybe diff type?
diff code? etc.). As a general rule, the library won't
complain if we define a perfectly (?) identical AVP twice - it
will simply move on and return <b>0 </b>(success).</font></p>
<p><font face="monospace">In your case, I suspect that the <b>22</b>
(invalid arg) is still connected to AVP duplication somehow, but
the library returns <b>22</b> from some other part of the
error-handling code, as a small mistake. Especially since
you're saying <i>it works</i> once you fix the name to
something else.</font></p>
<p><font face="monospace">To begin the troubleshooting, which
dictionaries / fd extensions are you loading right now? Because
if you're loading the <b>dict_dcca_3gpp.fdx</b> module, this
one should already contain both of your AVPs (hence explaining
your errors!), check their definitions here on the <i>libfreeDiameter</i>
GitHub:</font><font face="monospace"><br>
</font></p>
<p><font face="monospace"><a href="https://github.com/freeDiameter/freeDiameter/blob/master/extensions/dict_dcca_3gpp/add_avps.c#L6999" target="_blank">Server-Assignment-Type</a>
and <a href="https://github.com/freeDiameter/freeDiameter/blob/master/extensions/dict_dcca_3gpp/add_avps.c#L7138" target="_blank">User-Data-Already-Available</a><br>
</font></p>
<p><font face="monospace">Best regards,<br>
</font></p>
<pre cols="72">--
Liviu Chircu
<a href="http://www.twitter.com/liviuchircu" target="_blank">www.twitter.com/liviuchircu</a> | <a href="http://www.opensips-solutions.com" target="_blank">www.opensips-solutions.com</a></pre>
</div>
</blockquote></div>
</blockquote></div>