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