/*
* Mobicents, Communications Middleware
*
* Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat Middleware LLC.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
*
* Boston, MA 02110-1301 USA
*/
package net.java.slee.resource.diameter.ro.events.avp;
import net.java.slee.resource.diameter.base.events.avp.Address;
import net.java.slee.resource.diameter.base.events.avp.GroupedAvp;
/**
* Defines an interface representing the IMS-Information grouped AVP type.
* From the Diameter Ro Reference Point Protocol Details (3GPP TS 32.299 V7.1.0) specification:
* 7.2.37 IMS-Information AVP The IMS-Information AVP (AVP code 876) is of type Grouped.
* Its purpose is to allow the transmission of additional IMS service specific information elements.
*
* It has the following ABNF grammar:
* IMS-Information ::= AVP Header: 876
* [ Event-Type ]
* [ Role-Of-Node ]
* { Node-Functionality }
* [ User-Session-ID ]
* [ Calling-Party-Address ]
* [ Called-Party-Address ]
* [ Time-Stamps ]
* * [ Application-Server-Information ]
* * [ Inter-Operator-Identifier ]
* [ IMS-Charging-Identifier ]
* * [ SDP-Session-Description ]
* * [ SDP-Media-Component ]
* [ Served-Party-IP-Address ]
* [ Server-Capabilities ]
* [ Trunk-Group-ID ]
* [ Bearer-Service ]
* [ Service-Id ]
* [ Service-Specific-Data ]
* * [ Message-Body ]
* [ Cause-Code ]
*
* @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a>
* @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a>
*/
public interface ImsInformation extends GroupedAvp{
/**
* Returns the set of Application-Server-Information AVPs. The returned array contains the AVPs in the order they appear in the message. A return value of null implies that no Application-Server-Information AVPs have been set. The elements in the given array are ApplicationServerInformation objects.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.ApplicationServerInformation[] getApplicationServerInformations();
/**
* Returns the value of the Bearer-Service AVP, of type OctetString. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getBearerService();
/**
* Returns the value of the Called-Party-Address AVP, of type UTF8String. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getCalledPartyAddress();
/**
* Returns the value of the Calling-Party-Address AVP, of type UTF8String. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getCallingPartyAddress();
/**
* Returns the value of the Cause-Code AVP, of type Integer32. A return value 0< implies that the AVP has not been set.
*/
abstract int getCauseCode();
/**
* Returns the value of the Event-Type AVP, of type Grouped. A return value of null implies that the AVP has not been set.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.EventType getEventType();
/**
* Returns the value of the IMS-Charging-Identifier AVP, of type UTF8String. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getImsChargingIdentifier();
/**
* Returns the set of Inter-Operator-Identifier AVPs. The returned array contains the AVPs in the order they appear in the message. A return value of null implies that no Inter-Operator-Identifier AVPs have been set. The elements in the given array are InterOperatorIdentifier objects.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.InterOperatorIdentifier[] getInterOperatorIdentifiers();
/**
* Returns the set of Message-Body AVPs. The returned array contains the AVPs in the order they appear in the message. A return value of null implies that no Message-Body AVPs have been set. The elements in the given array are MessageBody objects.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.MessageBody[] getMessageBodys();
/**
* Returns the value of the Node-Functionality AVP, of type Enumerated. A return value of null implies that the AVP has not been set.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.NodeFunctionality getNodeFunctionality();
/**
* Returns the value of the Role-Of-Node AVP, of type Enumerated. A return value of null implies that the AVP has not been set.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.RoleOfNode getRoleOfNode();
/**
* Returns the set of SDP-Media-Component AVPs. The returned array contains the AVPs in the order they appear in the message. A return value of null implies that no SDP-Media-Component AVPs have been set. The elements in the given array are SdpMediaComponent objects.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.SdpMediaComponent[] getSdpMediaComponents();
/**
* Returns the set of SDP-Session-Description AVPs. The returned array contains the AVPs in the order they appear in the message. A return value of null implies that no SDP-Session-Description AVPs have been set. The elements in the given array are String objects.
*/
abstract java.lang.String[] getSdpSessionDescriptions();
/**
* Returns the value of the Served-Party-IP-Address AVP, of type Address. A return value of null implies that the AVP has not been set.
*/
abstract Address getServedPartyIpAddress();
/**
* Returns the value of the Server-Capabilities AVP, of type OctetString. A return value of null implies that the AVP has not been set.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.ServerCapabilities getServerCapabilities();
/**
* Returns the value of the Service-Id AVP, of type UTF8String. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getServiceId();
/**
* Returns the value of the Service-Specific-Data AVP, of type UTF8String. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getServiceSpecificData();
/**
* Returns the value of the Time-Stamps AVP, of type Grouped. A return value of null implies that the AVP has not been set.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.TimeStamps getTimeStamps();
/**
* Returns the value of the Trunk-Group-ID AVP, of type Grouped. A return value of null implies that the AVP has not been set.
*/
abstract net.java.slee.resource.diameter.ro.events.avp.TrunkGroupId getTrunkGroupId();
/**
* Returns the value of the User-Session-ID AVP, of type UTF8String. A return value of null implies that the AVP has not been set.
*/
abstract java.lang.String getUserSessionId();
/**
* Returns true if the Bearer-Service AVP is present in the message.
*/
abstract boolean hasBearerService();
/**
* Returns true if the Called-Party-Address AVP is present in the message.
*/
abstract boolean hasCalledPartyAddress();
/**
* Returns true if the Calling-Party-Address AVP is present in the message.
*/
abstract boolean hasCallingPartyAddress();
/**
* Returns true if the Cause-Code AVP is present in the message.
*/
abstract boolean hasCauseCode();
/**
* Returns true if the Event-Type AVP is present in the message.
*/
abstract boolean hasEventType();
/**
* Returns true if the IMS-Charging-Identifier AVP is present in the message.
*/
abstract boolean hasImsChargingIdentifier();
/**
* Returns true if the Node-Functionality AVP is present in the message.
*/
abstract boolean hasNodeFunctionality();
/**
* Returns true if the Role-Of-Node AVP is present in the message.
*/
abstract boolean hasRoleOfNode();
/**
* Returns true if the Served-Party-IP-Address AVP is present in the message.
*/
abstract boolean hasServedPartyIpAddress();
/**
* Returns true if the Server-Capabilities AVP is present in the message.
*/
abstract boolean hasServerCapabilities();
/**
* Returns true if the Service-Id AVP is present in the message.
*/
abstract boolean hasServiceId();
/**
* Returns true if the Service-Specific-Data AVP is present in the message.
*/
abstract boolean hasServiceSpecificData();
/**
* Returns true if the Time-Stamps AVP is present in the message.
*/
abstract boolean hasTimeStamps();
/**
* Returns true if the Trunk-Group-ID AVP is present in the message.
*/
abstract boolean hasTrunkGroupId();
/**
* Returns true if the User-Session-ID AVP is present in the message.
*/
abstract boolean hasUserSessionId();
/**
* Sets a single Application-Server-Information AVP in the message, of type Grouped.
*/
abstract void setApplicationServerInformation(net.java.slee.resource.diameter.ro.events.avp.ApplicationServerInformation applicationServerInformation);
/**
* Sets the set of Application-Server-Information AVPs, with all the values in the given array. The AVPs will be added to message in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getApplicationServerInformations() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
*/
abstract void setApplicationServerInformations(net.java.slee.resource.diameter.ro.events.avp.ApplicationServerInformation[] applicationServerInformations);
/**
* Sets the value of the Bearer-Service AVP, of type OctetString.
*/
abstract void setBearerService(java.lang.String bearerService);
/**
* Sets the value of the Called-Party-Address AVP, of type UTF8String.
*/
abstract void setCalledPartyAddress(java.lang.String calledPartyAddress);
/**
* Sets the value of the Calling-Party-Address AVP, of type UTF8String.
*/
abstract void setCallingPartyAddress(java.lang.String callingPartyAddress);
/**
* Sets the value of the Cause-Code AVP, of type Integer32.
*/
abstract void setCauseCode(int causeCode);
/**
* Sets the value of the Event-Type AVP, of type Grouped.
*/
abstract void setEventType(net.java.slee.resource.diameter.ro.events.avp.EventType eventType);
/**
* Sets the value of the IMS-Charging-Identifier AVP, of type UTF8String.
*/
abstract void setImsChargingIdentifier(java.lang.String imsChargingIdentifier);
/**
* Sets a single Inter-Operator-Identifier AVP in the message, of type Grouped.
*/
abstract void setInterOperatorIdentifier(net.java.slee.resource.diameter.ro.events.avp.InterOperatorIdentifier interOperatorIdentifier);
/**
* Sets the set of Inter-Operator-Identifier AVPs, with all the values in the given array. The AVPs will be added to message in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getInterOperatorIdentifiers() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
*/
abstract void setInterOperatorIdentifiers(net.java.slee.resource.diameter.ro.events.avp.InterOperatorIdentifier[] interOperatorIdentifiers);
/**
* Sets a single Message-Body AVP in the message, of type Grouped.
*/
abstract void setMessageBody(net.java.slee.resource.diameter.ro.events.avp.MessageBody messageBody);
/**
* Sets the set of Message-Body AVPs, with all the values in the given array. The AVPs will be added to message in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getMessageBodys() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
*/
abstract void setMessageBodys(net.java.slee.resource.diameter.ro.events.avp.MessageBody[] messageBodys);
/**
* Sets the value of the Node-Functionality AVP, of type Enumerated.
*/
abstract void setNodeFunctionality(net.java.slee.resource.diameter.ro.events.avp.NodeFunctionality nodeFunctionality);
/**
* Sets the value of the Role-Of-Node AVP, of type Enumerated.
*/
abstract void setRoleOfNode(net.java.slee.resource.diameter.ro.events.avp.RoleOfNode roleOfNode);
/**
* Sets a single SDP-Media-Component AVP in the message, of type Grouped.
*/
abstract void setSdpMediaComponent(net.java.slee.resource.diameter.ro.events.avp.SdpMediaComponent sdpMediaComponent);
/**
* Sets the set of SDP-Media-Component AVPs, with all the values in the given array. The AVPs will be added to message in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getSdpMediaComponents() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
*/
abstract void setSdpMediaComponents(net.java.slee.resource.diameter.ro.events.avp.SdpMediaComponent[] sdpMediaComponents);
/**
* Sets a single SDP-Session-Description AVP in the message, of type UTF8String.
*/
abstract void setSdpSessionDescription(java.lang.String sdpSessionDescription);
/**
* Sets the set of SDP-Session-Description AVPs, with all the values in the given array. The AVPs will be added to message in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getSdpSessionDescriptions() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
*/
abstract void setSdpSessionDescriptions(java.lang.String[] sdpSessionDescriptions);
/**
* Sets the value of the Served-Party-IP-Address AVP, of type Address.
*/
abstract void setServedPartyIpAddress(Address servedPartyIpAddress);
/**
* Sets the value of the Server-Capabilities AVP, of type OctetString.
*/
abstract void setServerCapabilities(net.java.slee.resource.diameter.ro.events.avp.ServerCapabilities serverCapabilities);
/**
* Sets the value of the Service-Id AVP, of type UTF8String.
*/
abstract void setServiceId(java.lang.String serviceId);
/**
* Sets the value of the Service-Specific-Data AVP, of type UTF8String.
*/
abstract void setServiceSpecificData(java.lang.String serviceSpecificData);
/**
* Sets the value of the Time-Stamps AVP, of type Grouped.
*/
abstract void setTimeStamps(net.java.slee.resource.diameter.ro.events.avp.TimeStamps timeStamps);
/**
* Sets the value of the Trunk-Group-ID AVP, of type Grouped.
*/
abstract void setTrunkGroupId(net.java.slee.resource.diameter.ro.events.avp.TrunkGroupId trunkGroupId);
/**
* Sets the value of the User-Session-ID AVP, of type UTF8String.
*/
abstract void setUserSessionId(java.lang.String userSessionId);
}