AT&T ECOMP Vendor Event Listener library  0.1
evel_signaling.c
Go to the documentation of this file.
1 /**************************************************************************/
35 #include <string.h>
36 #include <assert.h>
37 #include <stdlib.h>
38 
39 #include "evel_throttle.h"
40 
41 /**************************************************************************/
55 EVENT_SIGNALING * evel_new_signaling(const char * const vendor_id,
56  const char * const event_id)
57 {
58  EVENT_SIGNALING * event = NULL;
59 
60  EVEL_ENTER();
61 
62  /***************************************************************************/
63  /* Check preconditions. */
64  /***************************************************************************/
65  assert(vendor_id != NULL);
66  assert(event_id != NULL);
67 
68  /***************************************************************************/
69  /* Allocate the Signaling event. */
70  /***************************************************************************/
71  event = malloc(sizeof(EVENT_SIGNALING));
72  if (event == NULL)
73  {
74  log_error_state("Out of memory");
75  goto exit_label;
76  }
77  memset(event, 0, sizeof(EVENT_SIGNALING));
78  EVEL_DEBUG("New Signaling event is at %lp", event);
79 
80  /***************************************************************************/
81  /* Initialize the header & the Signaling fields. */
82  /***************************************************************************/
83  evel_init_header(&event->header);
84  event->header.event_domain = EVEL_DOMAIN_SIGNALING;
85  event->major_version = EVEL_SIGNALING_MAJOR_VERSION;
86  event->minor_version = EVEL_SIGNALING_MINOR_VERSION;
87  evel_init_event_instance_id(&event->instance_id, vendor_id, event_id);
88  evel_init_option_string(&event->correlator);
89  evel_init_option_string(&event->local_ip_address);
90  evel_init_option_string(&event->local_port);
91  evel_init_option_string(&event->remote_ip_address);
92  evel_init_option_string(&event->remote_port);
93  evel_init_option_string(&event->compressed_sip);
94  evel_init_option_string(&event->summary_sip);
95 
96 exit_label:
97 
98  EVEL_EXIT();
99  return event;
100 }
101 
102 /**************************************************************************/
115  const char * const type)
116 {
117  EVEL_ENTER();
118 
119  /***************************************************************************/
120  /* Check preconditions and call evel_header_type_set. */
121  /***************************************************************************/
122  assert(event != NULL);
123  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
124  evel_header_type_set(&event->header, type);
125 
126  EVEL_EXIT();
127 }
128 
129 /**************************************************************************/
143  const char * const local_ip_address)
144 {
145  EVEL_ENTER();
146 
147  /***************************************************************************/
148  /* Check preconditions. */
149  /***************************************************************************/
150  assert(event != NULL);
151  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
152  assert(local_ip_address != NULL);
153 
155  local_ip_address,
156  "Local Ip Address");
157 
158  EVEL_EXIT();
159 }
160 
161 /**************************************************************************/
174  const char * const local_port)
175 {
176  EVEL_ENTER();
177 
178  /***************************************************************************/
179  /* Check preconditions. */
180  /***************************************************************************/
181  assert(event != NULL);
182  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
183  assert(local_port != NULL);
184 
186  local_port,
187  "Local Port");
188 
189  EVEL_EXIT();
190 }
191 
192 /**************************************************************************/
206  const char * const remote_ip_address)
207 {
208  EVEL_ENTER();
209 
210  /***************************************************************************/
211  /* Check preconditions. */
212  /***************************************************************************/
213  assert(event != NULL);
214  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
215  assert(remote_ip_address != NULL);
216 
218  remote_ip_address,
219  "Remote Ip Address");
220 
221  EVEL_EXIT();
222 }
223 
224 /**************************************************************************/
237  const char * const remote_port)
238 {
239  EVEL_ENTER();
240 
241  /***************************************************************************/
242  /* Check preconditions. */
243  /***************************************************************************/
244  assert(event != NULL);
245  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
246  assert(remote_port != NULL);
247 
249  remote_port,
250  "Remote Port");
251 
252  EVEL_EXIT();
253 }
254 
255 /**************************************************************************/
269  const char * const compressed_sip)
270 {
271  EVEL_ENTER();
272 
273  /***************************************************************************/
274  /* Check preconditions. */
275  /***************************************************************************/
276  assert(event != NULL);
277  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
278  assert(compressed_sip != NULL);
279 
281  compressed_sip,
282  "Compressed SIP");
283 
284  EVEL_EXIT();
285 }
286 
287 /**************************************************************************/
300  const char * const summary_sip)
301 {
302  EVEL_ENTER();
303 
304  /***************************************************************************/
305  /* Check preconditions. */
306  /***************************************************************************/
307  assert(event != NULL);
308  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
309  assert(summary_sip != NULL);
310 
312  summary_sip,
313  "Summary SIP");
314 
315  EVEL_EXIT();
316 }
317 
318 /**************************************************************************/
331  const char * const product_id)
332 {
333  EVEL_ENTER();
334 
335  /***************************************************************************/
336  /* Check preconditions and call evel_header_type_set. */
337  /***************************************************************************/
338  assert(event != NULL);
339  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
341  product_id,
342  "Product Id");
343 
344  EVEL_EXIT();
345 }
346 
347 /**************************************************************************/
360  const char * const subsystem_id)
361 {
362  EVEL_ENTER();
363 
364  /***************************************************************************/
365  /* Check preconditions and call evel_header_type_set. */
366  /***************************************************************************/
367  assert(event != NULL);
368  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
370  subsystem_id,
371  "Subsystem Id");
372 
373  EVEL_EXIT();
374 }
375 
376 /**************************************************************************/
389  const char * const friendly_name)
390 {
391  EVEL_ENTER();
392 
393  /***************************************************************************/
394  /* Check preconditions and call evel_header_type_set. */
395  /***************************************************************************/
396  assert(event != NULL);
397  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
399  friendly_name,
400  "Friendly Name");
401 
402  EVEL_EXIT();
403 }
404 
405 /**************************************************************************/
418  const char * const correlator)
419 {
420  EVEL_ENTER();
421 
422  /***************************************************************************/
423  /* Check preconditions and call evel_header_type_set. */
424  /***************************************************************************/
425  assert(event != NULL);
426  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
428  correlator,
429  "Correlator");
430 
431  EVEL_EXIT();
432 }
433 
434 /**************************************************************************/
442  EVENT_SIGNALING * const event)
443 {
444  EVEL_ENTER();
445 
446  /***************************************************************************/
447  /* Check preconditions. */
448  /***************************************************************************/
449  assert(event != NULL);
450  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
451 
452  evel_json_encode_header(jbuf, &event->header);
453  evel_json_open_named_object(jbuf, "signalingFields");
454 
455  /***************************************************************************/
456  /* Mandatory fields */
457  /***************************************************************************/
459  evel_enc_version(jbuf,
460  "signalingFieldsVersion",
461  event->major_version,
462  event->minor_version);
463 
464  /***************************************************************************/
465  /* Optional fields */
466  /***************************************************************************/
467  evel_enc_kv_opt_string(jbuf, "correlator", &event->correlator);
468  evel_enc_kv_opt_string(jbuf, "localIpAddress", &event->local_ip_address);
469  evel_enc_kv_opt_string(jbuf, "localPort", &event->local_port);
470  evel_enc_kv_opt_string(jbuf, "remoteIpAddress", &event->remote_ip_address);
471  evel_enc_kv_opt_string(jbuf, "remotePort", &event->remote_port);
472  evel_enc_kv_opt_string(jbuf, "compressedSip", &event->compressed_sip);
473  evel_enc_kv_opt_string(jbuf, "summarySip", &event->summary_sip);
475 
476  EVEL_EXIT();
477 }
478 
479 /**************************************************************************/
488 {
489  EVEL_ENTER();
490 
491  /***************************************************************************/
492  /* Check preconditions. As an internal API we don't allow freeing NULL */
493  /* events as we do on the public API. */
494  /***************************************************************************/
495  assert(event != NULL);
496  assert(event->header.event_domain == EVEL_DOMAIN_SIGNALING);
497 
498  evel_free_header(&event->header);
507 
508  EVEL_EXIT();
509 }
int major_version
Definition: evel.h:921
void evel_signaling_type_set(EVENT_SIGNALING *const event, const char *const type)
Set the Event Type property of the Signaling event.
void evel_set_option_string(EVEL_OPTION_STRING *const option, const char *const value, const char *const description)
Set the value of an EVEL_OPTION_STRING.
Definition: evel_option.c:94
#define EVEL_DEBUG(FMT,...)
Definition: evel.h:3621
void evel_signaling_remote_ip_address_set(EVENT_SIGNALING *const event, const char *const remote_ip_address)
Set the Remote Ip Address property of the Signaling event.
void evel_signaling_subsystem_id_set(EVENT_SIGNALING *const event, const char *const subsystem_id)
Set the Subsystem Id property of the Signaling event.
void evel_signaling_local_port_set(EVENT_SIGNALING *const event, const char *const local_port)
Set the Local Port property of the Signaling event.
void evel_signaling_remote_port_set(EVENT_SIGNALING *const event, const char *const remote_port)
Set the Remote Port property of the Signaling event.
void evel_signaling_summary_sip_set(EVENT_SIGNALING *const event, const char *const summary_sip)
Set the Summary SIP property of the Signaling event.
EVENT_HEADER header
Definition: evel.h:920
void evel_signaling_compressed_sip_set(EVENT_SIGNALING *const event, const char *const compressed_sip)
Set the Compressed SIP property of the Signaling event.
#define EVEL_SIGNALING_MINOR_VERSION
Definition: evel.h:910
EVEL_OPTION_STRING summary_sip
Definition: evel.h:938
EVEL_OPTION_STRING correlator
Definition: evel.h:932
void evel_signaling_friendly_name_set(EVENT_SIGNALING *const event, const char *const friendly_name)
Set the Friendly Name property of the Signaling event.
#define EVEL_EXIT()
Definition: evel.h:3631
void evel_init_option_string(EVEL_OPTION_STRING *const option)
Initialize an EVEL_OPTION_STRING to a not-set state.
Definition: evel_option.c:72
#define EVEL_ENTER()
Definition: evel.h:3626
int minor_version
Definition: evel.h:922
void evel_json_encode_instance_id(EVEL_JSON_BUFFER *jbuf, EVEL_EVENT_INSTANCE_ID *instance_id)
Encode the instance id as a JSON object according to AT&T&#39;s schema.
Definition: evel_event.c:534
EVEL_OPTION_STRING local_ip_address
Definition: evel.h:933
EVEL_OPTION_STRING remote_ip_address
Definition: evel.h:935
EVEL_EVENT_INSTANCE_ID instance_id
Definition: evel.h:927
#define EVEL_SIGNALING_MAJOR_VERSION
Definition: evel.h:909
EVEL_OPTION_STRING local_port
Definition: evel.h:934
EVEL_OPTION_STRING remote_port
Definition: evel.h:936
void evel_json_close_object(EVEL_JSON_BUFFER *jbuf)
Add the closing bracket of an object to a JSON buffer.
void evel_json_open_named_object(EVEL_JSON_BUFFER *jbuf, const char *const key)
Add the opening bracket of an object to a JSON buffer.
void evel_json_encode_signaling(EVEL_JSON_BUFFER *const jbuf, EVENT_SIGNALING *const event)
Encode the Signaling in JSON according to AT&T&#39;s schema for the event type.
void evel_signaling_local_ip_address_set(EVENT_SIGNALING *const event, const char *const local_ip_address)
Set the Local Ip Address property of the Signaling event.
void evel_signaling_product_id_set(EVENT_SIGNALING *const event, const char *const product_id)
Set the Product Id property of the Signaling event.
EVEL_OPTION_STRING event_friendly_name
Definition: evel.h:825
EVEL_EVENT_DOMAINS event_domain
Definition: evel.h:420
EVEL_OPTION_STRING product_id
Definition: evel.h:823
void evel_json_encode_header(EVEL_JSON_BUFFER *jbuf, EVENT_HEADER *event)
Encode the event as a JSON event object according to AT&T&#39;s schema.
Definition: evel_event.c:291
EVEL_OPTION_STRING subsystem_id
Definition: evel.h:824
void evel_free_header(EVENT_HEADER *const event)
Free an event header.
Definition: evel_event.c:349
EVENT_SIGNALING * evel_new_signaling(const char *const vendor_id, const char *const event_id)
Create a new Signaling event.
void log_error_state(char *format,...)
Definition: evel_logging.c:98
void evel_free_option_string(EVEL_OPTION_STRING *const option)
Free the underlying resources of an EVEL_OPTION_STRING.
Definition: evel_option.c:48
bool evel_enc_kv_opt_string(EVEL_JSON_BUFFER *jbuf, const char *const key, const EVEL_OPTION_STRING *const option)
Encode a string key and string value to a EVEL_JSON_BUFFER.
void evel_free_signaling(EVENT_SIGNALING *const event)
Free a Signaling event.
EVEL_OPTION_STRING compressed_sip
Definition: evel.h:937
Signaling.
Definition: evel.h:916
void evel_header_type_set(EVENT_HEADER *const header, const char *const type)
Set the Event Type property of the event header.
Definition: evel_event.c:164
EVEL throttle definitions.
void evel_init_event_instance_id(EVEL_EVENT_INSTANCE_ID *const instance_id, const char *const vendor_id, const char *const event_id)
Initialize an event instance id.
Definition: evel_event.c:471
A Service event.
Definition: evel.h:138
void evel_enc_version(EVEL_JSON_BUFFER *jbuf, const char *const key, const int major_version, const int minor_version)
Encode a key and version.
void evel_signaling_correlator_set(EVENT_SIGNALING *const event, const char *const correlator)
Set the Correlator property of the Signaling event.
void evel_init_header(EVENT_HEADER *const header)
Initialize a newly created event header.
Definition: evel_event.c:112
void evel_free_event_instance_id(EVEL_EVENT_INSTANCE_ID *const instance_id)
Free an event instance id.
Definition: evel_event.c:505