/*
 * Copyright (C) 2012 Smile Communications, jason.penton@smilecoms.com
 * Copyright (C) 2012 Smile Communications, richard.good@smilecoms.com
 *
 * The initial version of this code was written by Dragos Vingarzan
 * (dragos(dot)vingarzan(at)fokus(dot)fraunhofer(dot)de and the
 * Fruanhofer Institute. It was and still is maintained in a separate
 * branch of the original SER. We are therefore migrating it to
 * Kamailio/SR and look forward to maintaining it from here on out.
 * 2011/2012 Smile Communications, Pty. Ltd.
 * ported/maintained/improved by
 * Jason Penton (jason(dot)penton(at)smilecoms.com and
 * Richard Good (richard(dot)good(at)smilecoms.com) as part of an
 * effort to add full IMS support to Kamailio/SR using a new and
 * improved architecture
 *
 * NB: Alot of this code was originally part of OpenIMSCore,
 * FhG Fokus.
 * Copyright (C) 2004-2006 FhG Fokus
 * Thanks for great work! This is an effort to
 * break apart the various CSCF functions into logically separate
 * components. We hope this will drive wider use. We also feel
 * that in this way the architecture is more complete and thereby easier
 * to manage in the Kamailio/SR environment
 *
 * This file is part of Kamailio, a free SIP server.
 *
 * Kamailio is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version
 *
 * Kamailio 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef DIAMETER_CODE_AVP_H_
#define DIAMETER_CODE_AVP_H_

/** Standard AVP Codes */
typedef enum {

	/* RFC 3588 */

	AVP_User_Name                     =    1,
	AVP_User_Password				  =    2, //RFC4005
	AVP_NAS_IP_Addresss				  =    4, //RFC4005
	AVP_NAS_Port					  =    5, //RFC4005
	AVP_Service_Type				  =    6, //RFC4005
	AVP_Framed_Protocol				  =    7, //RFC4005
	AVP_Framed_IP_Address             =	   8, //RFC4005
	AVP_Framed_IP_Netmask			  =    9, //RFC4005
	AVP_Framed_Routing				  =   10, //RFC4005
	AVP_Filter_Id					  =   11, //RFC4005
	AVP_Framed_MTU					  =   12, //RFC4005
	AVP_Framed_Compression			  =   13, //RFC4005
	AVP_Login_IP_Host				  =   14, //RFC4005
	AVP_Login_Service				  =   15, //RFC4005
	AVP_Login_TCP_Port				  =   16, //RFC4005
	AVP_Reply_Message				  =   18, //RFC4005
	AVP_Callback_Number				  =   19, //RFC4005
	AVP_Callback_Id					  =   20, //RFC4005
	AVP_Framed_Route				  =   22, //RFC4005
	AVP_Framed_IPX_Network			  =   23, //RFC4005
	AVP_State						  =   24, //RFC4005
	AVP_Class                         =   25,
	AVP_Session_Timeout               =   27,
	AVP_Idle_Timeout				  =   28, //RFC4005
	AVP_Called_Station_Id			  =   30, //RFC4005
	AVP_Calling_Station_Id			  =   31, //RFC4005
	AVP_NAS_Identifier				  =   32, //RFC4005
	AVP_Proxy_State                   =   33,
	AVP_Login_LAT_Service			  =   34, //RFC4005
	AVP_Login_LAT_Node				  =   35, //RFC4005
	AVP_Login_LAT_Group				  =   36, //RFC4005
	AVP_Framed_Appletalk_Link		  =   37, //RFC4005
	AVP_Framed_Appletalk_Network	  =   38, //RFC4005
	AVP_Framed_Appletalk_Zone		  =   39, //RFC4005
	AVP_Acct_Delay_Time				  =   41, //RFC4005
	AVP_Acct_Session_Id				  =   44,
	AVP_Acct_Authentic				  =   45, //RFC4005
	AVP_Acct_Session_Time			  =   46, //RFC4005
	AVP_Acct_Multi_Session_Id		  =   50,
	AVP_Link_Count					  =   51, //RFC4005
	AVP_Event_Timestamp               =   55,
	AVP_CHAP_Challenge				  =   60, //RFC4005
	AVP_NAS_Port_Type                 =   61, //RFC4005
	AVP_Port_Limit					  =   62, //RFC4005
	AVP_Login_LAT_Port				  =   63, //RFC4005
	AVP_Tunnel_Type					  =   64, //RFC4005
	AVP_Tunnel_Medium_Type			  =   65, //RFC4005
	AVP_Tunnel_Client_Endpoint		  =   66, //RFC4005
	AVP_Tunnel_Server_Endpoint		  =   67, //RFC4005
	AVP_Acct_Tunnel_Connection		  =   68, //RFC4005
	AVP_Tunnel_Password				  =   69, //RFC4005
	AVP_ARAP_Password				  =   70, //RFC4005
	AVP_ARAP_Features				  =   71, //RFC4005
	AVP_ARAP_Zone_Access			  =   72, //RFC4005
	AVP_ARAP_Security				  =   73, //RFC4005
	AVP_ARAP_Security_Data			  =   74, //RFC4005
	AVP_Password_Retry				  =   75, //RFC4005
	AVP_Prompt						  =   76, //RFC4005
	AVP_Connect_Info				  =   77, //RFC4005
	AVP_Configuration_Token			  =   78, //RFC4005
	AVP_Tunnel_Private_Group_Id		  =   81, //RFC4005
	AVP_Tunnel_Assignment_Id		  =   82, //RFC4005
	AVP_Tunnel_Preference			  =   83, //RFC4005
	AVP_ARAP_Challenge_Response		  =   84, //RFC4005
	AVP_Acct_Interim_Interval         =   85,
	AVP_Acct_Tunnel_Packets_Lost	  =   86, //RFC4005
	AVP_NAS_Port_Id					  =   87, //RFC4005
	AVP_Framed_Pool					  =   88, //RFC4005
	AVP_Tunnel_Client_Auth_Id		  =   90, //RFC4005
	AVP_Tunnel_Server_Auth_Id		  =   91,
	AVP_Originating_Line_Info		  =   94, //RFC4005
	AVP_NAS_IPv6_Address			  =   95, //RFC4005
	AVP_Framed_Interface_Id           =   96, //RFC4005
	AVP_Framed_IPv6_Prefix            =   97, //RFC4005
	AVP_Framed_IPv6_Route			  =   98, //RFC4005
#define AVP_Login_IPv6_Host				  98
	AVP_Framed_IPv6_Pool			  =  100, //RFC4005

	AVP_MIP6_Feature_Vector			  =  124, //RFC5447
	AVP_MIP6_Home_Link_Prefix		  =  125, //RFC5447

	AVP_Host_IP_Address               =  257,
	AVP_Auth_Application_Id           =  258,
	AVP_Acct_Application_Id           =  259,
	AVP_Vendor_Specific_Application_Id=  260,
	AVP_Redirect_Host_Usage			  =  261,
	AVP_Redirect_Max_Cache_Time       =  262,
	AVP_Session_Id                    =  263,
	AVP_Origin_Host                   =  264,
	AVP_Supported_Vendor_Id           =  265,
	AVP_Vendor_Id                     =  266,
	AVP_Firmware_Revision             =  267,
	AVP_Result_Code                   =  268,
	AVP_Product_Name                  =  269,
	AVP_Session_Binding               =  270,
	AVP_Session_Server_Failover		  =  271,
	AVP_Multi_Round_Time_Out          =  272,
	AVP_Disconnect_Cause              =  273,
	AVP_Auth_Request_Type             =  274,
	AVP_Auth_Grace_Period             =  276,
	AVP_Auth_Session_State            =  277,
	AVP_Origin_State_Id               =  278,
	AVP_Failed_AVP					  =  279,
	AVP_Proxy_Host                    =  280,
	AVP_Error_Message                 =  281,
	AVP_Route_Record                  =  282,
	AVP_Destination_Realm             =  283,
	AVP_Proxy_Info                    =  284,
	AVP_Re_Auth_Request_Type          =  285,
	AVP_Accounting_Sub_Session_Id	  =  287,
	AVP_Authorization_Lifetime        =  291,
	AVP_Redirect_Host                 =  292,
	AVP_Destination_Host              =  293,
	AVP_Error_Reporting_Host		  =  294,
	AVP_Termination_Cause             =  295,
	AVP_Origin_Realm                  =  296,
	AVP_Experimental_Result			  =  297,
	AVP_Experimental_Result_Code      =  298,
	AVP_Inband_Security_Id			  =  299,

	AVP_E2E_Sequence				  =  300,
	AVP_Accounting_Input_Octets		  =  363, //RFC4005
	AVP_Accounting_Output_Octets	  =  364, //RFC4005
	AVP_Accounting_Input_Packets	  =  365, //RFC4005
	AVP_Accounting_Output_Packets	  =  366, //RFC4005

	/* RFC 4004 */
	AVP_MIP_Reg_Request               =  320,
	AVP_MIP_Reg_Reply                 =  321,
	AVP_MIP_MN_AAA_Auth               =  322,
	AVP_MIP_Mobile_Node_Address       =  333,
	AVP_MIP_Home_Agent_Address        =  334,
	AVP_MIP_Candidate_Home_Agent_Host =  336,
	AVP_MIP_Feature_Vector            =  337,
	AVP_MIP_Auth_Input_Data_Length    =  338,
	AVP_MIP_Authenticator_Length      =  339,
	AVP_MIP_Authenticator_Offset      =  340,
	AVP_MIP_MN_AAA_SPI                =  341,
	AVP_MIP_Filter_Rule               =  342,
	AVP_MIP_FA_Challenge              =  344,
	AVP_MIP_Originating_Foreign_AAA   =  347,
	AVP_MIP_Home_Agent_Host           =  348,

	/* RFC 4005 */
	AVP_NAS_Filter_Rule				  =  400,
	AVP_Tunneling					  =  401,
	AVP_CHAP_Auth					  =  402,
	AVP_CHAP_Algorithm				  =  403,
	AVP_CHAP_Ident					  =  404,
	AVP_CHAP_Response				  =  405,
	AVP_Accounting_Auth_Method		  =  406,
	AVP_QoS_Filter_Rule				  =  407,
	AVP_Origin_AAA_Protocol			  =  408,

	/* RFC 4006 */
	AVP_CC_Correlation_Id			  =  411,
	AVP_CC_Input_Octets				  =  412,
	AVP_CC_Money                      =  413,
	AVP_CC_Output_Octets              =  414,
	AVP_CC_Request_Number             =  415,
	AVP_CC_Request_Type               =  416,
	AVP_CC_Service_Specific_Units     =  417,
	AVP_CC_Session_Failover           =  418,
	AVP_CC_Sub_Session_Id             =  419,
	AVP_CC_Time                       =  420,
	AVP_CC_Total_Octets               =  421,
	AVP_Check_Balance_Result          =  422,
	AVP_Cost_Information              =  423,
	AVP_Cost_Unit                     =  424,
	AVP_Currency_Code                 =  425,
	AVP_Credit_Control                =  426,
	AVP_Credit_Control_Failure_Handling= 427,
	AVP_Direct_Debiting_Failure_Handling=428,
	AVP_Exponent                      =  429,
	AVP_Final_Unit_Indication		  =  430,
	AVP_Granted_Service_Unit          =  431,
	AVP_Rating_Group				  =  432,
	AVP_Redirect_Address_Type         =  433,
	AVP_Redirect_Server               =  434,
	AVP_Redirect_Server_Address       =  435,
	AVP_Requested_Action              =  436,
	AVP_Requested_Service_Unit        =  437,
	AVP_Restriction_Filter_Rule       =  438,
	AVP_Service_Identifier			  =  439,
	AVP_Service_Parameter_Info        =  440,
	AVP_Service_Parameter_Type        =  441,
	AVP_Service_Parameter_Value       =  442,
	AVP_Subscription_Id				  =  443,
	AVP_Subscription_Id_Data		  =  444,
	AVP_Unit_Value                    =  445,
	AVP_Used_Service_Unit             =  446,
	AVP_Value_Digits                  =  447,
	AVP_Validity_Time                 =  448,
	AVP_Final_Unit_Action			  =  449,
	AVP_Subscription_Id_Type		  =  450,
	AVP_Tariff_Time_Change            =  451,
	AVP_Tariff_Change_Usage           =  452,
	AVP_G_S_U_Pool_Identifier         =  453,
	AVP_CC_Unit_Type                  =  454,
	AVP_Multiple_Services_Indicator   =  455,
	AVP_Multiple_Services_Credit_Control=456,
	AVP_G_S_U_Pool_Reference          =  457,
	AVP_User_Equipment_Info	          =  458,
	AVP_User_Equipment_Info_Type      =  459,
	AVP_User_Equipment_Info_Value	  =  460,
	AVP_Service_Context_Id            =  461,


	AVP_Accounting_Record_Type        =  480,
	AVP_Accounting_Realtime_Required  =  483,
	AVP_Accounting_Record_Number      =  485,
	AVP_MIP6_Agent_Info				  =  486, //RFC5447

	AVP_Service_Selection			  =  493, //RFC5778
	AVP_Call_Id                       =  494,

}AAA_AVPCodeNr;

enum {
	AVP_CC_Request_Type_Initial_Request		= 1,
	AVP_CC_Request_Type_Update_Request		= 2,
	AVP_CC_Request_Type_Termination_Request	= 3,
	AVP_CC_Request_Type_Event_Request		= 4,
};

enum  {
	AVP_CC_Session_Failover_Failover_Not_Supported	= 0,
	AVP_CC_Session_Failover_Failover_Supported		= 1,
};

enum  {
	AVP_Check_Balance_Result_Enough_Credit	= 0,
	AVP_Check_Balance_Result_No_Credit		= 1,
};

enum  {
	AVP_Credit_Control_Credit_Authorization	= 0,
	AVP_Credit_Control_Re_Authorization		= 1,
};

enum  {
	AVP_Credit_Control_Failure_Handling_Terminate			= 0,
	AVP_Credit_Control_Failure_Handling_Continue			= 1,
	AVP_Credit_Control_Failure_Handling_Retry_And_Terminate	= 2,
};

enum  {
	AVP_Direct_Debiting_Failure_Handling_Terminate_Or_Buffer	= 0,
	AVP_Direct_Debiting_Failure_Handling_Continue				= 1,
};

enum  {
	AVP_Tariff_Change_Usage_Unit_Before_Tariff_Change	= 0,
	AVP_Tariff_Change_Usage_Unit_After_Tariff_Change	= 1,
	AVP_Tariff_Change_Usage_Unit_Indeterminate			= 2,
};

enum  {
	AVP_CC_Unit_Type_Time					= 0,
	AVP_CC_Unit_Type_Money					= 1,
	AVP_CC_Unit_Type_Total_Octets			= 2,
	AVP_CC_Unit_Type_Input_Octets			= 3,
	AVP_CC_Unit_Type_Output_Octets			= 4,
	AVP_CC_Unit_Type_Service_Specific_Units	= 5,
};

enum  {
	AVP_Final_Unit_Action_Terminate			= 0,
	AVP_Final_Unit_Action_Redirect			= 1,
	AVP_Final_Unit_Action_Restrict_Access	= 2,
};

enum  {
	AVP_Redirect_Address_Type_IPv4_Address	= 0,
	AVP_Redirect_Address_Type_IPv6_Address	= 1,
	AVP_Redirect_Address_Type_URL			= 2,
	AVP_Redirect_Address_Type_SIP_URI		= 3
};

enum  {
	AVP_Multiple_Services_Indicator_Multiple_Services_Not_Supported	= 0,
	AVP_Multiple_Services_Indicator_Multiple_Services_Supported		= 1,
};

enum  {
	AVP_Redirect_Action_Direct_Debiting	= 0,
	AVP_Redirect_Action_Refund_Account	= 1,
	AVP_Redirect_Action_Check_Ballance	= 2,
	AVP_Redirect_Action_Price_Enquiry	= 3,
};

enum {
	AVP_Subscription_Id_Type_E164			= 0,
	AVP_Subscription_Id_Type_IMSI			= 1,
	AVP_Subscription_Id_Type_SIP_URI		= 2,
	AVP_Subscription_Id_Type_NAI			= 3,
	AVP_Subscription_Id_Type_USER_PRIVATE	= 4
};

enum {
	AVP_User_Equipment_Info_Type_IMEISV			= 0,
	AVP_User_Equipment_Info_Type_MAC			= 1,
	AVP_User_Equipment_Info_Type_EUI64			= 2,
	AVP_User_Equipment_Info_Type_MODIFIED_EUI64	= 3,
};



typedef enum
{
	AVP_NAS_Port_Type_Async					= 0,
	AVP_NAS_Port_Type_Sync 					= 1,
	AVP_NAS_Port_Type_ISDN_Sync 			= 2,
	AVP_NAS_Port_Type_ISDN_Async_V120 		= 3,
	AVP_NAS_Port_Type_ISDN_Async_V110		= 4,
	AVP_NAS_Port_Type_Virtual				= 5,
	AVP_NAS_Port_Type_PIAFS					= 6,
	AVP_NAS_Port_Type_HDLC_Clear_Channel	= 7,
	AVP_NAS_Port_Type_X_25					= 8,
	AVP_NAS_Port_Type_X_75					= 9,
	AVP_NAS_Port_Type_G_3_Fax				=10,
	AVP_NAS_Port_Type_Symmetric_DSL			=11,
	AVP_NAS_Port_Type_ADSL_CAP				=12,
	AVP_NAS_Port_Type_ADSL_DMT				=13,
	AVP_NAS_Port_Type_IDSL					=14,
	AVP_NAS_Port_Type_Ethernet				=15,
	AVP_NAS_Port_Type_xDSL					=16,
	AVP_NAS_Port_Type_Cable					=17,
	AVP_NAS_Port_Type_Wireless_Other		=18,
	AVP_NAS_Port_Type_Wireless_IEEE_802_11	=19,
	AVP_NAS_Port_Type_Token_Ring			=20,
	AVP_NAS_Port_Type_FDDI					=21,
	AVP_NAS_Port_Type_Wireless_CDMA2000		=22,
	AVP_NAS_Port_Type_Wireless_UMTS			=23,
	AVP_NAS_Port_Type_Wireless_1X_EV		=24,
	AVP_NAS_Port_Type_IAPP  				=25
}	nas_port_type;

enum {
	AVP_Prompt_No_Echo	= 0,
	AVP_Prompt_Echo		= 1,
};

enum {
	AVP_CHAP_Algorithm_CHAP_with_MD5	= 5,
};


enum {
	AVP_Service_Type_Login						= 1,
	AVP_Service_Type_Framed						= 2,
	AVP_Service_Type_Callback_Login				= 3,
	AVP_Service_Type_Callback_Framed			= 4,
	AVP_Service_Type_Outbound					= 5,
	AVP_Service_Type_Administrative				= 6,
	AVP_Service_Type_NAS_Prompt					= 7,
	AVP_Service_Type_Authenticate_Only			= 8,
	AVP_Service_Type_Callback_NAS_Prompt		= 9,
	AVP_Service_Type_Call_Check					= 10,
	AVP_Service_Type_Callback_Administrative	= 11,
	AVP_Service_Type_Voice						= 12,
	AVP_Service_Type_Fax						= 13,
	AVP_Service_Type_Modem_Relay				= 14,
	AVP_Service_Type_IAPP_Register				= 15,
	AVP_Service_Type_IAPP_AP_Check				= 16,
	AVP_Service_Type_Authorize_Only				= 17,
};

enum {
	AVP_Framed_Protocol_PPP						= 0,
	AVP_Framed_Protocol_SLIP					= 1,
	AVP_Framed_Protocol_ARAP					= 2,
	AVP_Framed_Protocol_Gandalf					= 3,
	AVP_Framed_Protocol_Xylogics_IPX_SLIP		= 4,
	AVP_Framed_Protocol_X_75_Synchronous		= 5,
};

enum {
	AVP_Framed_Routing_None							= 0,
	AVP_Framed_Routing_Send_Routing_Packets			= 1,
	AVP_Framed_Routing_Listen_for_Routing_Packets	= 2,
	AVP_Framed_Routing_Send_and_Listen				= 3,
};

enum {
	AVP_Framed_Compression_None							= 0,
	AVP_Framed_Compression_VJ_TCP_IP_Header_Compression	= 1,
	AVP_Framed_Compression_IPX_Header_Compression		= 2,
	AVP_Framed_Compression_Stac_LZS_Compression			= 3,
	AVP_Framed_Compression_
};

enum {
	AVP_Login_Service_Telnet			= 0,
	AVP_Login_Service_Rlogin			= 1,
	AVP_Login_Service_TCP_Clear			= 2,
	AVP_Login_Service_PortMaster		= 3,
	AVP_Login_Service_LAT				= 4,
	AVP_Login_Service_X25_PAD			= 5,
	AVP_Login_Service_X25_T3POS			= 6,
	AVP_Login_Service_TCP_Clear_Quiet	= 7,
};

enum {
	AVP_Tunnel_Type_PPTP					= 1,
	AVP_Tunnel_Type_L2F						= 2,
	AVP_Tunnel_Type_L2TP					= 3,
	AVP_Tunnel_Type_ATMP					= 4,
	AVP_Tunnel_Type_VTP						= 5,
	AVP_Tunnel_Type_AH						= 6,
	AVP_Tunnel_Type_IPIP_Encapsulation		= 7,
	AVP_Tunnel_Type_MIN_IPIP_Encapsulation	= 8,
	AVP_Tunnel_Type_ESP						= 9,
	AVP_Tunnel_Type_GRE						= 10,
	AVP_Tunnel_Type_DVS						= 11,
	AVP_Tunnel_Type_IPIP_Tunneling 			= 12,
	AVP_Tunnel_Type_VLAN					= 13,
};

enum {
	AVP_Tunnel_Medium_Type_IPv4			= 1,
	AVP_Tunnel_Medium_Type_IPv6			= 2,
	AVP_Tunnel_Medium_Type_NSAP			= 3,
	AVP_Tunnel_Medium_Type_HDLC			= 4,
	AVP_Tunnel_Medium_Type_BBN_1822		= 5,
	AVP_Tunnel_Medium_Type_802			= 6,
	AVP_Tunnel_Medium_Type_E_163		= 7,
	AVP_Tunnel_Medium_Type_E_164		= 8,
	AVP_Tunnel_Medium_Type_F_69			= 9,
	AVP_Tunnel_Medium_Type_X_121		= 10,
	AVP_Tunnel_Medium_Type_IPX			= 11,
	AVP_Tunnel_Medium_Type_Appletalk	= 12,
	AVP_Tunnel_Medium_Type_Decnet_IV	= 13,
	AVP_Tunnel_Medium_Type_Banyan_Vines	= 14,
	AVP_Tunnel_Medium_Type_E_164_NSAP	= 15,
};

enum {
	AVP_Acct_Authentic_RADIUS	= 1,
	AVP_Acct_Authentic_Local	= 2,
	AVP_Acct_Authentic_Remote	= 3,
	AVP_Acct_Authentic_Diameter	= 4,
};

enum {
	AVP_Accounting_Auth_Method_PAP			= 1,
	AVP_Accounting_Auth_Method_CHAP			= 2,
	AVP_Accounting_Auth_Method_MS_CHAP_1	= 3,
	AVP_Accounting_Auth_Method_MS_CHAP_2	= 4,
	AVP_Accounting_Auth_Method_EAP			= 5,
	AVP_Accounting_Auth_Method_None			= 7,
};

enum {
	AVP_Termination_Cause_User_Request				= 11,
	AVP_Termination_Cause_Lost_Carrier				= 12,
	AVP_Termination_Cause_Lost_Service				= 13,
	AVP_Termination_Cause_Idle_Timeout				= 14,
	AVP_Termination_Cause_Session_Timeout			= 15,
	AVP_Termination_Cause_Admin_Reset				= 16,
	AVP_Termination_Cause_Admin_Reboot				= 17,
	AVP_Termination_Cause_Port_Error				= 18,
	AVP_Termination_Cause_NAS_Error					= 19,
	AVP_Termination_Cause_NAS_Request				= 20,
	AVP_Termination_Cause_NAS_Reboot				= 21,
	AVP_Termination_Cause_Port_Unneeded				= 22,
	AVP_Termination_Cause_Port_Preempted			= 23,
	AVP_Termination_Cause_Port_Suspended			= 24,
	AVP_Termination_Cause_Service_Unavailable		= 25,
	AVP_Termination_Cause_Callback					= 26,
	AVP_Termination_Cause_User_Error				= 27,
	AVP_Termination_Cause_Host_Request				= 28,
	AVP_Termination_Cause_Supplicant_Restart		= 29,
	AVP_Termination_Cause_Reauthentication_Failure	= 30,
};

enum {
	AVP_Origin_AAA_Protocol_RADIUS	= 1,
};

enum {
	AVP_Accounting_Record_Type_Event_Record		= 1,
	AVP_Accounting_Record_Type_Start_Record		= 2,
	AVP_Accounting_Record_Type_Interim_Record	= 3,
	AVP_Accounting_Record_Type_Stop_Record		= 4,
};





typedef enum {
	Permanent_Termination   = 0,
	New_Server_Assigned     = 1,
	Server_Change           = 2,
	Remove_S_CSCF           = 3,
}AAA_AVPReasonCode;

typedef enum {
	STATE_MAINTAINED			= 0,
	NO_STATE_MAINTAINED			= 1
} AAA_AVP_Auth_Session_State;


/** Accounting message types */
typedef enum {
	AAA_ACCT_EVENT = 1,
	AAA_ACCT_START = 2,
	AAA_ACCT_INTERIM = 3,
	AAA_ACCT_STOP = 4
} AAAAcctMessageType;


#endif /*DIAMETER_H_*/
