<configOption name="capture_id" default="0">
<synopsis>The ID for this capture agent.</synopsis>
</configOption>
+ <configOption name="capture_name" default="">
+ <synopsis>The name for this capture agent.</synopsis>
+ </configOption>
</configObject>
</configFile>
</configInfo>
/*! THE UUID FOR THIS PACKET */
CHUNK_TYPE_UUID = 0X0011,
+
+ /*! THE CAPTURE AGENT NAME */
+ CHUNK_TYPE_CAPTURE_AGENT_NAME = 0X0013,
};
#define INITIALIZE_GENERIC_HEP_IDS(hep_chunk, type) do { \
AST_DECLARE_STRING_FIELDS(
AST_STRING_FIELD(capture_address); /*!< Address to send to */
AST_STRING_FIELD(capture_password); /*!< Password for Homer server */
+ AST_STRING_FIELD(capture_name); /*!< Capture name for this agent */
);
};
unsigned int packet_len = 0, sock_buffer_len;
struct hep_chunk_ip4 ipv4_src, ipv4_dst;
struct hep_chunk_ip6 ipv6_src, ipv6_dst;
- struct hep_chunk auth_key, payload, uuid;
+ struct hep_chunk auth_key, payload, uuid, capturename;
void *sock_buffer;
int res;
INITIALIZE_GENERIC_HEP_IDS_VAR(&auth_key, CHUNK_TYPE_AUTH_KEY, strlen(config->general->capture_password));
packet_len += (sizeof(auth_key) + strlen(config->general->capture_password));
}
+ if (!ast_strlen_zero(config->general->capture_name)) {
+ INITIALIZE_GENERIC_HEP_IDS_VAR(&capturename, CHUNK_TYPE_CAPTURE_AGENT_NAME, strlen(config->general->capture_name));
+ packet_len += (sizeof(capturename) + strlen(config->general->capture_name));
+ }
INITIALIZE_GENERIC_HEP_IDS_VAR(&uuid, CHUNK_TYPE_UUID, strlen(capture_info->uuid));
packet_len += (sizeof(uuid) + strlen(capture_info->uuid));
INITIALIZE_GENERIC_HEP_IDS_VAR(&payload,
memcpy(sock_buffer + sock_buffer_len, capture_info->uuid, strlen(capture_info->uuid));
sock_buffer_len += strlen(capture_info->uuid);
+ /* Capture Agent Name */
+ if (!ast_strlen_zero(config->general->capture_name)) {
+ memcpy(sock_buffer + sock_buffer_len, &capturename, sizeof(capturename));
+ sock_buffer_len += sizeof(capturename);
+ memcpy(sock_buffer + sock_buffer_len, config->general->capture_name, strlen(config->general->capture_name));
+ sock_buffer_len += strlen(config->general->capture_name);
+ }
+
/* Packet! */
memcpy(sock_buffer + sock_buffer_len, &payload, sizeof(payload));
sock_buffer_len += sizeof(payload);
aco_option_register(&cfg_info, "capture_address", ACO_EXACT, global_options, "", OPT_STRINGFIELD_T, 1, STRFLDSET(struct hepv3_global_config, capture_address));
aco_option_register(&cfg_info, "capture_password", ACO_EXACT, global_options, "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct hepv3_global_config, capture_password));
aco_option_register(&cfg_info, "capture_id", ACO_EXACT, global_options, "0", OPT_UINT_T, 0, STRFLDSET(struct hepv3_global_config, capture_id));
+ aco_option_register(&cfg_info, "capture_name", ACO_EXACT, global_options, "", OPT_STRINGFIELD_T, 0, STRFLDSET(struct hepv3_global_config, capture_name));
aco_option_register_custom(&cfg_info, "uuid_type", ACO_EXACT, global_options, "call-id", uuid_type_handler, 0);
if (aco_process_config(&cfg_info, 0) == ACO_PROCESS_ERROR) {