You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/modules/cdp/diameter_code_avp.h

568 lines
18 KiB

/*
* $Id$
*
* 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_*/