Remove dynamic exceptions
[anna.git] / include / anna / diameter / helpers / tgpp / defines.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_diameter_helpers_tgpp_defines_hpp
10 #define anna_diameter_helpers_tgpp_defines_hpp
11
12
13 // Local
14 #include <anna/diameter/helpers/defines.hpp>
15
16 // STL
17 #include <string>
18
19
20 /** Contextualized definitions (avp id) */
21 #define anna_diameter_helpers_define_avp(avpname,code)  anna_diameter_helpers_define_avp_in_context(avpname,code,tgpp)
22
23 /** Contextualized definitions (avp id and values) */
24 #define anna_diameter_helpers_define_avp_with_values(avpname,code)  anna_diameter_helpers_define_avp_with_values_in_context(avpname,code,tgpp)
25
26
27 namespace anna {
28
29 namespace diameter {
30
31 namespace helpers {
32
33 namespace tgpp {
34
35
36 /**
37 * Avps
38 */
39 anna_diameter_helpers_define_avp_with_values(Node_Functionality, 862) {
40   enum v_ {
41     S_CSCF = 0,
42     P_CSCF = 1,
43     I_CSCF = 2,
44     MRFC = 3,
45     MGCF = 4,
46     BGCF = 5,
47     AS = 6,
48     IBCF = 7,
49     S_GW = 8,
50     P_GW = 9,
51     HSGW = 10
52   };
53 };
54
55 anna_diameter_helpers_define_avp(User_Session_Id, 830);
56 anna_diameter_helpers_define_avp(Outgoing_Session_Id, 2320);
57 anna_diameter_helpers_define_avp_with_values(Session_Priority, 650) {
58   enum v_ {
59     PRIORITY_0 = 0,
60     PRIORITY_1 = 1,
61     PRIORITY_2 = 2,
62     PRIORITY_3 = 3,
63     PRIORITY_4 = 4
64   };
65 };
66
67 anna_diameter_helpers_define_avp(Called_Asserted_Identity, 1250);
68 anna_diameter_helpers_define_avp(Number_Portability_Routing_Information, 2024);
69 anna_diameter_helpers_define_avp(Carrier_Select_Routing_Information, 2023);
70 anna_diameter_helpers_define_avp(Alternate_Charged_Party_Address, 1280);
71 anna_diameter_helpers_define_avp(Requested_Party_Address, 1251);
72 anna_diameter_helpers_define_avp(Associated_URI, 856);
73 anna_diameter_helpers_define_avp(Time_Stamps, 833);
74 anna_diameter_helpers_define_avp(SIP_Request_Timestamp, 834);
75 anna_diameter_helpers_define_avp(SIP_Response_Timestamp, 835);
76 anna_diameter_helpers_define_avp(SIP_Request_Timestamp_Fraction, 2301);
77 anna_diameter_helpers_define_avp(SIP_Response_Timestamp_Fraction, 2302);
78 anna_diameter_helpers_define_avp(Application_Server_Information, 850);
79 anna_diameter_helpers_define_avp(Application_Server, 836);
80 anna_diameter_helpers_define_avp(Application_Provided_Called_Party_Address, 837);
81 anna_diameter_helpers_define_avp(IMS_Charging_Identifier, 841);
82 anna_diameter_helpers_define_avp(SDP_Session_Description, 842);
83 anna_diameter_helpers_define_avp(Served_Party_IP_Address, 848);
84 anna_diameter_helpers_define_avp(Server_Capabilities, 603);
85 anna_diameter_helpers_define_avp(Mandatory_Capability, 604);
86 anna_diameter_helpers_define_avp(Optional_Capability, 605);
87 anna_diameter_helpers_define_avp(Server_Name, 602);
88 anna_diameter_helpers_define_avp(Trunk_Group_ID, 851);
89 anna_diameter_helpers_define_avp(Incoming_Trunk_Group_ID, 852);
90 anna_diameter_helpers_define_avp(Outgoing_Trunk_Group_ID, 853);
91 anna_diameter_helpers_define_avp(Bearer_Service, 854);
92 anna_diameter_helpers_define_avp(Service_Id, 855);
93 anna_diameter_helpers_define_avp(Service_Specific_Info, 1249);
94 anna_diameter_helpers_define_avp(Service_Specific_Type, 1257);
95 anna_diameter_helpers_define_avp(Service_Specific_Data, 863);
96 anna_diameter_helpers_define_avp(Number_Of_Participants, 885);
97 anna_diameter_helpers_define_avp(Message_Body, 889);
98 anna_diameter_helpers_define_avp(Content_Disposition, 828);
99 anna_diameter_helpers_define_avp_with_values(Originator, 864) {
100   enum v_ {
101     CALLING_PARTY = 0,
102     CALLED_PARTY = 1
103   };
104 };
105
106 anna_diameter_helpers_define_avp(Cause_Code, 861);
107 anna_diameter_helpers_define_avp_with_values(Address_Type, 899) {
108   enum v_ {
109     EMAIL_ADDRESS = 0,
110     MSISDN = 1,
111     IPV4_ADDRESS = 2,
112     IPV6_ADDRESS = 3,
113     NUMERIC_SHORTCODE = 4,
114     ALPHANUMERIC_SHORTCODE = 5,
115     OTHER = 6,
116     IMSI = 7
117   };
118 };
119 anna_diameter_helpers_define_avp(Access_Network_Information, 1263);
120 anna_diameter_helpers_define_avp(Early_Media_Description, 1272);
121 anna_diameter_helpers_define_avp(SDP_TimeStamps, 1273);
122 anna_diameter_helpers_define_avp(SDP_Offer_Timestamp, 1274);
123 anna_diameter_helpers_define_avp(SDP_Answer_Timestamp, 1275);
124 anna_diameter_helpers_define_avp(IMS_Communication_Service_Identifier, 1281);
125 anna_diameter_helpers_define_avp_with_values(Online_Charging_Flag, 2303) {
126   enum v_ {
127     ECF_ADDRESS_NOT_PROVIDED = 0,
128     ECF_ADDRESS_PROVIDED = 1
129   };
130 };
131
132 anna_diameter_helpers_define_avp(Real_Time_Tariff_Information, 2305);
133 anna_diameter_helpers_define_avp(Tariff_Information, 2060);
134 anna_diameter_helpers_define_avp(Tariff_XML, 2306);
135 anna_diameter_helpers_define_avp(Current_Tariff, 2056);
136 anna_diameter_helpers_define_avp(Next_Tariff, 2057);
137 anna_diameter_helpers_define_avp(Scale_Factor, 2059);
138 anna_diameter_helpers_define_avp(Rate_Element, 2058);
139 anna_diameter_helpers_define_avp_with_values(Reason_Code, 2316) {
140   enum v_ {
141     UNKNOWN = 0,
142     USAGE = 1,
143     COMMUNICATION_ATTEMPT_CHARGE = 2,
144     SETUP_CHARGE = 3,
145     ADD_ON_CHARGE = 4
146   };
147 };
148
149 anna_diameter_helpers_define_avp(Unit_Cost, 2061);
150 anna_diameter_helpers_define_avp(Account_Expiration, 2309);
151 anna_diameter_helpers_define_avp(Application_Server_ID, 2101);
152 anna_diameter_helpers_define_avp_with_values(Application_Service_Type, 2102) {
153   enum v_ {
154     SENDING = 100,
155     RECEIVING = 101,
156     RETRIEVAL = 102,
157     INVITING = 103,
158     LEAVING = 104,
159     JOINING = 105
160   };
161 };
162
163 anna_diameter_helpers_define_avp(Application_Session_ID, 2103);
164 anna_diameter_helpers_define_avp(Delivery_Status, 2104);
165 anna_diameter_helpers_define_avp(3GPP_Charging_Id, 2);
166 anna_diameter_helpers_define_avp_with_values(3GPP_PDP_Type, 3) {
167   enum v_ {
168     IPV4 = 0,
169     PPP = 1,
170     IPV6 = 2
171   };
172 };
173
174 anna_diameter_helpers_define_avp(3GPP_CG_Address, 4);
175 anna_diameter_helpers_define_avp(3GPP_GPRS_Neg_QoS_Profile, 5);
176 anna_diameter_helpers_define_avp(3GPP_SGSN_Address, 6);
177 anna_diameter_helpers_define_avp(3GPP_GGSN_Address, 7);
178 anna_diameter_helpers_define_avp(3GPP_IMSI_MCC_MNC, 8);
179 anna_diameter_helpers_define_avp(3GPP_GGSN_MCC_MNC, 9);
180 anna_diameter_helpers_define_avp(3GPP_NSAPI, 10);
181 anna_diameter_helpers_define_avp(3GPP_Session_Stop_Indicator, 11);
182 anna_diameter_helpers_define_avp(3GPP_Selection_Mode, 12);
183 anna_diameter_helpers_define_avp(3GPP_Charging_Characteristics, 13);
184 anna_diameter_helpers_define_avp(3GPP_SGSN_IPv6_Address, 15);
185 anna_diameter_helpers_define_avp(3GPP_GGSN_IPv6_Address, 16);
186 anna_diameter_helpers_define_avp(3GPP_SGSN_MCC_MNC, 18);
187 anna_diameter_helpers_define_avp(3GGP_IMEISV, 20);
188 anna_diameter_helpers_define_avp(3GPP_Rat_Type, 21);
189 anna_diameter_helpers_define_avp(3GPP_User_Location_Info, 22);
190 anna_diameter_helpers_define_avp(3GPP_MS_TimeZone, 23);
191 anna_diameter_helpers_define_avp(3GPP_CAMEL_Charging_Info, 24);
192 anna_diameter_helpers_define_avp(Access_Network_Charging_Identifier_Value, 503);
193 anna_diameter_helpers_define_avp(Quota_Consumption_Time, 811);
194 anna_diameter_helpers_define_avp(Event_Type, 823);
195 anna_diameter_helpers_define_avp(SIP_Method, 824);
196 anna_diameter_helpers_define_avp(Event, 825);
197 anna_diameter_helpers_define_avp(Content_Type, 826);
198 anna_diameter_helpers_define_avp(Content_Length, 827);
199 anna_diameter_helpers_define_avp_with_values(Role_Of_Node, 829) {
200   enum v_ {
201     ORIGINATING_ROLE = 0,
202     TERMINATING_ROLE = 1,
203     PROXY_ROLE = 2,
204     B2BUA_ROLE = 3
205   };
206 };
207
208 anna_diameter_helpers_define_avp(Calling_Party_Address, 831);
209 anna_diameter_helpers_define_avp(Called_Party_Address, 832);
210 anna_diameter_helpers_define_avp(Inter_Operator_Identifier, 838);
211 anna_diameter_helpers_define_avp(Originating_IOI, 839);
212 anna_diameter_helpers_define_avp(Terminating_IOI, 840);
213 anna_diameter_helpers_define_avp(SDP_Media_Component, 843);
214 anna_diameter_helpers_define_avp(SDP_Media_Name, 844);
215 anna_diameter_helpers_define_avp(SDP_Media_Description, 845);
216 anna_diameter_helpers_define_avp(CG_Address, 846);
217 anna_diameter_helpers_define_avp(GGSN_Address, 847);
218 anna_diameter_helpers_define_avp(Authorized_QoS, 849);
219 anna_diameter_helpers_define_avp(PS_Furnish_Charging_Information, 865);
220 anna_diameter_helpers_define_avp(PS_Free_Format_Data, 866);
221 anna_diameter_helpers_define_avp_with_values(PS_Append_Free_Format_Data, 867) {
222   enum v_ {
223     APPEND = 0,
224     OVERWRITE = 1
225   };
226 };
227
228 anna_diameter_helpers_define_avp(Time_Quota_Threshold, 868);
229 anna_diameter_helpers_define_avp(Volume_Quota_Threshold, 869);
230 anna_diameter_helpers_define_avp_with_values(Trigger_Type, 870) {
231   enum v_ {
232     CHANGE_IN_SGSN_IP_ADDRESS = 1,
233     CHANGE_IN_QOS = 2,
234     CHANGE_IN_LOCATION = 3,
235     CHANGE_IN_RAT = 4,
236     CHANGEINQOS_TRAFFIC_CLASS = 10,
237     CHANGEINQOS_RELIABILITY_CLASS = 11,
238     CHANGEINQOS_DELAY_CLASS = 12,
239     CHANGEINQOS_PEAK_THROUGHPUT = 13,
240     CHANGEINQOS_PRECEDENCE_CLASS = 14,
241     CHANGEINQOS_MEAN_THROUGHPUT = 15,
242     CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK = 16,
243     CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK = 17,
244     CHANGEINQOS_RESIDUAL_BER = 18,
245     CHANGEINQOS_SDU_ERROR_RATIO = 19,
246     CHANGEINQOS_TRANSFER_DELAY = 20,
247     CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY = 21,
248     CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK = 22,
249     CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK = 23,
250     CHANGEINLOCATION_MCC = 30,
251     CHANGEINLOCATION_MNC = 31,
252     CHANGEINLOCATION_RAC = 32,
253     CHANGEINLOCATION_LAC = 33,
254     CHANGEINLOCATION_CellId = 34,
255     CHANGE_IN_MEDIA_COMPOSITION = 40,
256     CHANGEINPARTICIPANTS_NMB = 50
257   };
258 };
259
260 anna_diameter_helpers_define_avp_with_values(Reporting_Reason, 872) {
261   enum v_ {
262     THRESHOLD = 0,
263     QHT = 1,
264     FINAL = 2,
265     QUOTA_EXHAUSTED = 3,
266     VALIDITY_TIME = 4,
267     OTHER_QUOTA_TYPE = 5,
268     RATING_CONDITION_CHANGE = 6,
269     FORCED_REAUTHORISATION = 7,
270     POOL_EXHAUSTED = 8
271   };
272 };
273
274 anna_diameter_helpers_define_avp(Service_Information, 873);
275 anna_diameter_helpers_define_avp(PS_Information, 874);
276 anna_diameter_helpers_define_avp(IMS_Information, 876);
277 anna_diameter_helpers_define_avp_with_values(Media_Initiator_Flag, 882) {
278   enum v_ {
279     CALLING_PARTY = 0,
280     CALLED_PARTY = 1,
281     UNKNOWN = 2
282   };
283 };
284
285 anna_diameter_helpers_define_avp(Expires, 888);
286 anna_diameter_helpers_define_avp(Charging_Rule_Base_Name, 1004);
287 anna_diameter_helpers_define_avp_with_values(Type_Number, 1204);
288 anna_diameter_helpers_define_avp(Unit_Quota_Threshold, 1226);
289 anna_diameter_helpers_define_avp(PDP_Address, 1227);
290 anna_diameter_helpers_define_avp(SGSN_Address, 1228);
291 anna_diameter_helpers_define_avp(PDP_Context_Type, 1247);
292 anna_diameter_helpers_define_avp(Service_Generic_Information, 1256);
293 anna_diameter_helpers_define_avp(Trigger, 1264);
294 anna_diameter_helpers_define_avp(Media_Initiator_Party, 1288);
295 anna_diameter_helpers_define_avp_with_values(Low_Balance_Indication, 2020) {
296   enum v_ {
297     NOT_APPLICABLE = 0,
298     YES = 1
299   };
300 };
301
302 anna_diameter_helpers_define_avp(Remaining_Balance, 2021);
303 anna_diameter_helpers_define_avp(Refund_Information, 2022);
304 anna_diameter_helpers_define_avp_with_values(SDP_Type, 2036) {
305   enum v_ {
306     SDP_OFFER = 0,
307     SDP_ANSWER = 1
308   };
309 };
310
311
312 /**
313 * Commands
314 */
315
316
317 }
318 }
319 }
320 }
321
322
323 #undef anna_diameter_helpers_define_avp
324 #undef anna_diameter_helpers_define_avp_with_values
325
326 #endif
327