Updated license
[anna.git] / include / anna / diameter / helpers / tgpp / defines.hpp
1 // ANNA - Anna is Not Nothingness Anymore
2 //
3 // (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
4 //
5 // https://bitbucket.org/testillano/anna
6 //
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions
9 // are met:
10 //
11 //     * Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 //     * Redistributions in binary form must reproduce the above
14 // copyright notice, this list of conditions and the following disclaimer
15 // in the documentation and/or other materials provided with the
16 // distribution.
17 //     * Neither the name of Google Inc. nor the names of its
18 // contributors may be used to endorse or promote products derived from
19 // this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 //
33 // Authors: eduardo.ramos.testillano@gmail.com
34 //          cisco.tierra@gmail.com
35
36
37 #ifndef anna_diameter_helpers_tgpp_defines_hpp
38 #define anna_diameter_helpers_tgpp_defines_hpp
39
40
41 // Local
42 #include <anna/diameter/helpers/defines.hpp>
43
44 // STL
45 #include <string>
46
47
48 /** Contextualized definitions (avp id) */
49 #define anna_diameter_helpers_define_avp(avpname,code)  anna_diameter_helpers_define_avp_in_context(avpname,code,tgpp)
50
51 /** Contextualized definitions (avp id and values) */
52 #define anna_diameter_helpers_define_avp_with_values(avpname,code)  anna_diameter_helpers_define_avp_with_values_in_context(avpname,code,tgpp)
53
54
55 namespace anna {
56
57 namespace diameter {
58
59 namespace helpers {
60
61 namespace tgpp {
62
63
64 /**
65 * Avps
66 */
67 anna_diameter_helpers_define_avp_with_values(Node_Functionality, 862) {
68   enum v_ {
69     S_CSCF = 0,
70     P_CSCF = 1,
71     I_CSCF = 2,
72     MRFC = 3,
73     MGCF = 4,
74     BGCF = 5,
75     AS = 6,
76     IBCF = 7,
77     S_GW = 8,
78     P_GW = 9,
79     HSGW = 10
80   };
81 };
82
83 anna_diameter_helpers_define_avp(User_Session_Id, 830);
84 anna_diameter_helpers_define_avp(Outgoing_Session_Id, 2320);
85 anna_diameter_helpers_define_avp_with_values(Session_Priority, 650) {
86   enum v_ {
87     PRIORITY_0 = 0,
88     PRIORITY_1 = 1,
89     PRIORITY_2 = 2,
90     PRIORITY_3 = 3,
91     PRIORITY_4 = 4
92   };
93 };
94
95 anna_diameter_helpers_define_avp(Called_Asserted_Identity, 1250);
96 anna_diameter_helpers_define_avp(Number_Portability_Routing_Information, 2024);
97 anna_diameter_helpers_define_avp(Carrier_Select_Routing_Information, 2023);
98 anna_diameter_helpers_define_avp(Alternate_Charged_Party_Address, 1280);
99 anna_diameter_helpers_define_avp(Requested_Party_Address, 1251);
100 anna_diameter_helpers_define_avp(Associated_URI, 856);
101 anna_diameter_helpers_define_avp(Time_Stamps, 833);
102 anna_diameter_helpers_define_avp(SIP_Request_Timestamp, 834);
103 anna_diameter_helpers_define_avp(SIP_Response_Timestamp, 835);
104 anna_diameter_helpers_define_avp(SIP_Request_Timestamp_Fraction, 2301);
105 anna_diameter_helpers_define_avp(SIP_Response_Timestamp_Fraction, 2302);
106 anna_diameter_helpers_define_avp(Application_Server_Information, 850);
107 anna_diameter_helpers_define_avp(Application_Server, 836);
108 anna_diameter_helpers_define_avp(Application_Provided_Called_Party_Address, 837);
109 anna_diameter_helpers_define_avp(IMS_Charging_Identifier, 841);
110 anna_diameter_helpers_define_avp(SDP_Session_Description, 842);
111 anna_diameter_helpers_define_avp(Served_Party_IP_Address, 848);
112 anna_diameter_helpers_define_avp(Server_Capabilities, 603);
113 anna_diameter_helpers_define_avp(Mandatory_Capability, 604);
114 anna_diameter_helpers_define_avp(Optional_Capability, 605);
115 anna_diameter_helpers_define_avp(Server_Name, 602);
116 anna_diameter_helpers_define_avp(Trunk_Group_ID, 851);
117 anna_diameter_helpers_define_avp(Incoming_Trunk_Group_ID, 852);
118 anna_diameter_helpers_define_avp(Outgoing_Trunk_Group_ID, 853);
119 anna_diameter_helpers_define_avp(Bearer_Service, 854);
120 anna_diameter_helpers_define_avp(Service_Id, 855);
121 anna_diameter_helpers_define_avp(Service_Specific_Info, 1249);
122 anna_diameter_helpers_define_avp(Service_Specific_Type, 1257);
123 anna_diameter_helpers_define_avp(Service_Specific_Data, 863);
124 anna_diameter_helpers_define_avp(Number_Of_Participants, 885);
125 anna_diameter_helpers_define_avp(Message_Body, 889);
126 anna_diameter_helpers_define_avp(Content_Disposition, 828);
127 anna_diameter_helpers_define_avp_with_values(Originator, 864) {
128   enum v_ {
129     CALLING_PARTY = 0,
130     CALLED_PARTY = 1
131   };
132 };
133
134 anna_diameter_helpers_define_avp(Cause_Code, 861);
135 anna_diameter_helpers_define_avp_with_values(Address_Type, 899) {
136   enum v_ {
137     EMAIL_ADDRESS = 0,
138     MSISDN = 1,
139     IPV4_ADDRESS = 2,
140     IPV6_ADDRESS = 3,
141     NUMERIC_SHORTCODE = 4,
142     ALPHANUMERIC_SHORTCODE = 5,
143     OTHER = 6,
144     IMSI = 7
145   };
146 };
147 anna_diameter_helpers_define_avp(Access_Network_Information, 1263);
148 anna_diameter_helpers_define_avp(Early_Media_Description, 1272);
149 anna_diameter_helpers_define_avp(SDP_TimeStamps, 1273);
150 anna_diameter_helpers_define_avp(SDP_Offer_Timestamp, 1274);
151 anna_diameter_helpers_define_avp(SDP_Answer_Timestamp, 1275);
152 anna_diameter_helpers_define_avp(IMS_Communication_Service_Identifier, 1281);
153 anna_diameter_helpers_define_avp_with_values(Online_Charging_Flag, 2303) {
154   enum v_ {
155     ECF_ADDRESS_NOT_PROVIDED = 0,
156     ECF_ADDRESS_PROVIDED = 1
157   };
158 };
159
160 anna_diameter_helpers_define_avp(Real_Time_Tariff_Information, 2305);
161 anna_diameter_helpers_define_avp(Tariff_Information, 2060);
162 anna_diameter_helpers_define_avp(Tariff_XML, 2306);
163 anna_diameter_helpers_define_avp(Current_Tariff, 2056);
164 anna_diameter_helpers_define_avp(Next_Tariff, 2057);
165 anna_diameter_helpers_define_avp(Scale_Factor, 2059);
166 anna_diameter_helpers_define_avp(Rate_Element, 2058);
167 anna_diameter_helpers_define_avp_with_values(Reason_Code, 2316) {
168   enum v_ {
169     UNKNOWN = 0,
170     USAGE = 1,
171     COMMUNICATION_ATTEMPT_CHARGE = 2,
172     SETUP_CHARGE = 3,
173     ADD_ON_CHARGE = 4
174   };
175 };
176
177 anna_diameter_helpers_define_avp(Unit_Cost, 2061);
178 anna_diameter_helpers_define_avp(Account_Expiration, 2309);
179 anna_diameter_helpers_define_avp(Application_Server_ID, 2101);
180 anna_diameter_helpers_define_avp_with_values(Application_Service_Type, 2102) {
181   enum v_ {
182     SENDING = 100,
183     RECEIVING = 101,
184     RETRIEVAL = 102,
185     INVITING = 103,
186     LEAVING = 104,
187     JOINING = 105
188   };
189 };
190
191 anna_diameter_helpers_define_avp(Application_Session_ID, 2103);
192 anna_diameter_helpers_define_avp(Delivery_Status, 2104);
193 anna_diameter_helpers_define_avp(3GPP_Charging_Id, 2);
194 anna_diameter_helpers_define_avp_with_values(3GPP_PDP_Type, 3) {
195   enum v_ {
196     IPV4 = 0,
197     PPP = 1,
198     IPV6 = 2
199   };
200 };
201
202 anna_diameter_helpers_define_avp(3GPP_CG_Address, 4);
203 anna_diameter_helpers_define_avp(3GPP_GPRS_Neg_QoS_Profile, 5);
204 anna_diameter_helpers_define_avp(3GPP_SGSN_Address, 6);
205 anna_diameter_helpers_define_avp(3GPP_GGSN_Address, 7);
206 anna_diameter_helpers_define_avp(3GPP_IMSI_MCC_MNC, 8);
207 anna_diameter_helpers_define_avp(3GPP_GGSN_MCC_MNC, 9);
208 anna_diameter_helpers_define_avp(3GPP_NSAPI, 10);
209 anna_diameter_helpers_define_avp(3GPP_Session_Stop_Indicator, 11);
210 anna_diameter_helpers_define_avp(3GPP_Selection_Mode, 12);
211 anna_diameter_helpers_define_avp(3GPP_Charging_Characteristics, 13);
212 anna_diameter_helpers_define_avp(3GPP_SGSN_IPv6_Address, 15);
213 anna_diameter_helpers_define_avp(3GPP_GGSN_IPv6_Address, 16);
214 anna_diameter_helpers_define_avp(3GPP_SGSN_MCC_MNC, 18);
215 anna_diameter_helpers_define_avp(3GGP_IMEISV, 20);
216 anna_diameter_helpers_define_avp(3GPP_Rat_Type, 21);
217 anna_diameter_helpers_define_avp(3GPP_User_Location_Info, 22);
218 anna_diameter_helpers_define_avp(3GPP_MS_TimeZone, 23);
219 anna_diameter_helpers_define_avp(3GPP_CAMEL_Charging_Info, 24);
220 anna_diameter_helpers_define_avp(Access_Network_Charging_Identifier_Value, 503);
221 anna_diameter_helpers_define_avp(Quota_Consumption_Time, 811);
222 anna_diameter_helpers_define_avp(Event_Type, 823);
223 anna_diameter_helpers_define_avp(SIP_Method, 824);
224 anna_diameter_helpers_define_avp(Event, 825);
225 anna_diameter_helpers_define_avp(Content_Type, 826);
226 anna_diameter_helpers_define_avp(Content_Length, 827);
227 anna_diameter_helpers_define_avp_with_values(Role_Of_Node, 829) {
228   enum v_ {
229     ORIGINATING_ROLE = 0,
230     TERMINATING_ROLE = 1,
231     PROXY_ROLE = 2,
232     B2BUA_ROLE = 3
233   };
234 };
235
236 anna_diameter_helpers_define_avp(Calling_Party_Address, 831);
237 anna_diameter_helpers_define_avp(Called_Party_Address, 832);
238 anna_diameter_helpers_define_avp(Inter_Operator_Identifier, 838);
239 anna_diameter_helpers_define_avp(Originating_IOI, 839);
240 anna_diameter_helpers_define_avp(Terminating_IOI, 840);
241 anna_diameter_helpers_define_avp(SDP_Media_Component, 843);
242 anna_diameter_helpers_define_avp(SDP_Media_Name, 844);
243 anna_diameter_helpers_define_avp(SDP_Media_Description, 845);
244 anna_diameter_helpers_define_avp(CG_Address, 846);
245 anna_diameter_helpers_define_avp(GGSN_Address, 847);
246 anna_diameter_helpers_define_avp(Authorized_QoS, 849);
247 anna_diameter_helpers_define_avp(PS_Furnish_Charging_Information, 865);
248 anna_diameter_helpers_define_avp(PS_Free_Format_Data, 866);
249 anna_diameter_helpers_define_avp_with_values(PS_Append_Free_Format_Data, 867) {
250   enum v_ {
251     APPEND = 0,
252     OVERWRITE = 1
253   };
254 };
255
256 anna_diameter_helpers_define_avp(Time_Quota_Threshold, 868);
257 anna_diameter_helpers_define_avp(Volume_Quota_Threshold, 869);
258 anna_diameter_helpers_define_avp_with_values(Trigger_Type, 870) {
259   enum v_ {
260     CHANGE_IN_SGSN_IP_ADDRESS = 1,
261     CHANGE_IN_QOS = 2,
262     CHANGE_IN_LOCATION = 3,
263     CHANGE_IN_RAT = 4,
264     CHANGEINQOS_TRAFFIC_CLASS = 10,
265     CHANGEINQOS_RELIABILITY_CLASS = 11,
266     CHANGEINQOS_DELAY_CLASS = 12,
267     CHANGEINQOS_PEAK_THROUGHPUT = 13,
268     CHANGEINQOS_PRECEDENCE_CLASS = 14,
269     CHANGEINQOS_MEAN_THROUGHPUT = 15,
270     CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK = 16,
271     CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK = 17,
272     CHANGEINQOS_RESIDUAL_BER = 18,
273     CHANGEINQOS_SDU_ERROR_RATIO = 19,
274     CHANGEINQOS_TRANSFER_DELAY = 20,
275     CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY = 21,
276     CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK = 22,
277     CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK = 23,
278     CHANGEINLOCATION_MCC = 30,
279     CHANGEINLOCATION_MNC = 31,
280     CHANGEINLOCATION_RAC = 32,
281     CHANGEINLOCATION_LAC = 33,
282     CHANGEINLOCATION_CellId = 34,
283     CHANGE_IN_MEDIA_COMPOSITION = 40,
284     CHANGEINPARTICIPANTS_NMB = 50
285   };
286 };
287
288 anna_diameter_helpers_define_avp_with_values(Reporting_Reason, 872) {
289   enum v_ {
290     THRESHOLD = 0,
291     QHT = 1,
292     FINAL = 2,
293     QUOTA_EXHAUSTED = 3,
294     VALIDITY_TIME = 4,
295     OTHER_QUOTA_TYPE = 5,
296     RATING_CONDITION_CHANGE = 6,
297     FORCED_REAUTHORISATION = 7,
298     POOL_EXHAUSTED = 8
299   };
300 };
301
302 anna_diameter_helpers_define_avp(Service_Information, 873);
303 anna_diameter_helpers_define_avp(PS_Information, 874);
304 anna_diameter_helpers_define_avp(IMS_Information, 876);
305 anna_diameter_helpers_define_avp_with_values(Media_Initiator_Flag, 882) {
306   enum v_ {
307     CALLING_PARTY = 0,
308     CALLED_PARTY = 1,
309     UNKNOWN = 2
310   };
311 };
312
313 anna_diameter_helpers_define_avp(Expires, 888);
314 anna_diameter_helpers_define_avp(Charging_Rule_Base_Name, 1004);
315 anna_diameter_helpers_define_avp_with_values(Type_Number, 1204);
316 anna_diameter_helpers_define_avp(Unit_Quota_Threshold, 1226);
317 anna_diameter_helpers_define_avp(PDP_Address, 1227);
318 anna_diameter_helpers_define_avp(SGSN_Address, 1228);
319 anna_diameter_helpers_define_avp(PDP_Context_Type, 1247);
320 anna_diameter_helpers_define_avp(Service_Generic_Information, 1256);
321 anna_diameter_helpers_define_avp(Trigger, 1264);
322 anna_diameter_helpers_define_avp(Media_Initiator_Party, 1288);
323 anna_diameter_helpers_define_avp_with_values(Low_Balance_Indication, 2020) {
324   enum v_ {
325     NOT_APPLICABLE = 0,
326     YES = 1
327   };
328 };
329
330 anna_diameter_helpers_define_avp(Remaining_Balance, 2021);
331 anna_diameter_helpers_define_avp(Refund_Information, 2022);
332 anna_diameter_helpers_define_avp_with_values(SDP_Type, 2036) {
333   enum v_ {
334     SDP_OFFER = 0,
335     SDP_ANSWER = 1
336   };
337 };
338
339
340 /**
341 * Commands
342 */
343
344
345 }
346 }
347 }
348 }
349
350
351 #undef anna_diameter_helpers_define_avp
352 #undef anna_diameter_helpers_define_avp_with_values
353
354 #endif
355