Hello to all
I have resolved the diameter Gq' problems with subAVP arrays.
To do so i modified the code in the following way :
1) For simple data types i used AVPUtilities.createAVP , and then
added AVP to parent group AVP
public void setFlowDescription(IPFilterRule flowDescription)
{
addAvp(AvpUtilities.createAvp(DiameterGqAvpCodes.TGPP_FLOW_DESCRIPTION,DiameterGqAvpCodes.TGPP_VENDOR_ID,
flowDescription.getRuleString()));
//
addAvp(DiameterGqAvpCodes.TGPP_FLOW_DESCRIPTION,DiameterGqAvpCodes.TGPP_VENDOR_ID,
flowDescription.getRuleString());
}
2) In case subAVP is groupedAVP i simply added it to parent group AVP
public void setMediaSubComponent(MediaSubComponent mediaSubComponent)
{
//addAvp(DiameterGqAvpCodes.TGPP_MEDIA_SUB_COMPONENT,
DiameterGqAvpCodes.TGPP_VENDOR_ID,
mediaSubComponent.byteArrayValue());
addAvp(mediaSubComponent);
}
So for Gq' it works properly.
The problem is that i based my original code on other Diameter RA's
and therefore in case of arrays there will be a problem in other
Diameter Legs RA.
For Example ImsInformationImpl in Diameter RO RA have
ApplicationServerInformation array as sub AVPS ( several other sub
avps array also ) , and uses
public void
setApplicationServerInformation( ApplicationServerInformation
applicationServerInformation )
{
addAvp(DiameterRoAvpCodes.APPLICATION_SERVER_INFORMATION,
DiameterRoAvpCodes.TGPP_VENDOR_ID,
applicationServerInformation.byteArrayValue());
}
to add subavp,which will lead to described problem.
I have opened new issue :
http://code.google.com/p/mobicents/issues/detail?id=2546
Best regards
Yulian Oifa