Browse Source

added_information_of_from_to_tag:

Die from/to information wird irgendwann generell in den tag geschrieben.
die info, ob der tag ein from_tag oder to_tag ist, wurde hinzugefügt.

Author:    Frederic-Philippe Metz <Frederic.Metz@1und1.de>
pull/60/head
Frederic-Philippe Metz 11 years ago
committed by Richard Fuchs
parent
commit
5342158811
4 changed files with 29 additions and 4 deletions
  1. +11
    -1
      daemon/call.c
  2. +9
    -1
      daemon/call.h
  3. +6
    -0
      daemon/call_interfaces.c
  4. +3
    -2
      daemon/cli.c

+ 11
- 1
daemon/call.c View File

@ -134,6 +134,13 @@ const char * get_term_reason_text(char *buf, enum termination_reason t) {
return buf;
}
const char * get_tag_type_text(char *buf, enum tag_type t) {
if (t==FROM_TAG) { buf = "FROM_TAG"; return buf; }
if (t==TO_TAG) { buf = "TO_TAG"; return buf; }
buf = "UNKNOWN";
return buf;
}
static void determine_handler(struct packet_stream *in, const struct packet_stream *out);
@ -2353,6 +2360,7 @@ void call_destroy(struct call *c) {
struct timeval tim_result;
static const int CDRBUFLENGTH = 4096*2;
char reasonbuf[16]; memset(&reasonbuf,0,16);
char tagtypebuf[16]; memset(&tagtypebuf,0,16);
char cdrbuffer[CDRBUFLENGTH]; memset(&cdrbuffer,0,CDRBUFLENGTH);
char* cdrbufcur = cdrbuffer;
int cdrlinecnt = 0;
@ -2375,7 +2383,7 @@ void call_destroy(struct call *c) {
/* CDRs and statistics */
cdrbufcur += sprintf(cdrbufcur,"ci=%s, ",c->callid.s);
cdrbufcur += sprintf(cdrbufcur,"created_from=%s", c->created_from);
cdrbufcur += sprintf(cdrbufcur,"created_from=%s, ", c->created_from);
for (l = c->monologues; l; l = l->next) {
ml = l->data;
if (_log_facility_cdr) {
@ -2386,12 +2394,14 @@ void call_destroy(struct call *c) {
"ml%i_duration=%ld.%06ld, "
"ml%i_termination=%s, "
"ml%i_local_tag=%s, "
"ml%i_local_tag_type=%s, "
"ml%i_remote_tag=%s, ",
cdrlinecnt, ml->started.tv_sec, ml->started.tv_usec,
cdrlinecnt, ml->terminated.tv_sec, ml->terminated.tv_usec,
cdrlinecnt, tim_result.tv_sec, tim_result.tv_usec,
cdrlinecnt, get_term_reason_text(reasonbuf,ml->term_reason),
cdrlinecnt, ml->tag.s,
cdrlinecnt, get_tag_type_text(tagtypebuf,ml->tagtype),
cdrlinecnt, ml->active_dialogue ? ml->active_dialogue->tag.s : "(none)");
}


+ 9
- 1
daemon/call.h View File

@ -21,6 +21,12 @@ enum termination_reason {
SILENT_TIMEOUT=4
};
enum tag_type {
UNKNOWN_TAG=0,
FROM_TAG=1,
TO_TAG=2
};
enum stream_address_format {
SAF_TCP,
SAF_UDP,
@ -303,7 +309,8 @@ struct call_media {
struct call_monologue {
struct call *call; /* RO */
str tag;
str tag;
enum tag_type tagtype;
time_t created; /* RO */
time_t deleted;
struct timeval started; /* for CDR */
@ -502,5 +509,6 @@ INLINE struct packet_stream *packet_stream_sink(struct packet_stream *ps) {
return ret;
}
const char * get_tag_type_text(char *buf, enum tag_type t);
#endif

+ 6
- 0
daemon/call_interfaces.c View File

@ -163,6 +163,12 @@ static str *call_update_lookup_udp(char **out, struct callmaster *m, enum call_o
if (!monologue)
goto ml_fail;
if (!totag.s || totag.len==0) {
monologue->tagtype = FROM_TAG;
} else {
monologue->tagtype = TO_TAG;
}
if (addr_parse_udp(&sp, out))
goto addr_fail;


+ 3
- 2
daemon/cli.c View File

@ -33,6 +33,7 @@ static void cli_incoming_list_callid(char* buffer, int len, struct callmaster* m
GList *k, *o;
char buf[64];
int printlen=0;
char tagtypebuf[16]; memset(&tagtypebuf,0,16);
if (len<=1) {
printlen = snprintf(replybuffer,(outbufend-replybuffer), "%s\n", "More parameters required.");
@ -56,9 +57,9 @@ static void cli_incoming_list_callid(char* buffer, int len, struct callmaster* m
for (l = c->monologues; l; l = l->next) {
ml = l->data;
printlen = snprintf(replybuffer,(outbufend-replybuffer), "--- Tag '"STR_FORMAT"', callduration "
printlen = snprintf(replybuffer,(outbufend-replybuffer), "--- Tag '"STR_FORMAT"' type: %s, callduration "
"%u:%02u , in dialogue with '"STR_FORMAT"'\n",
STR_FMT(&ml->tag),
STR_FMT(&ml->tag), get_tag_type_text(tagtypebuf,ml->tagtype),
(unsigned int) (poller_now - ml->created) / 60,
(unsigned int) (poller_now - ml->created) % 60,
ml->active_dialogue ? ml->active_dialogue->tag.len : 6,


Loading…
Cancel
Save