TT#64259 add function to convert DTMF codes and chars

Change-Id: I0b36263033a8614fa448fd4c37dbbc62b516d40a
changes/70/32470/1
Richard Fuchs 7 years ago
parent 68d909c5ea
commit 49f6a88086

@ -124,16 +124,8 @@ int dtmf_event_payload(str *buf, uint64_t *pts, uint64_t duration, struct dtmf_e
else if (prev_event.code == 0)
ret = 1; // start event
int dtmf_code = -1;
if (cur_event->code >= '0' && cur_event->code <= '9')
dtmf_code = cur_event->code - '0';
else if (cur_event->code == '*')
dtmf_code = 10;
else if (cur_event->code == '#')
dtmf_code = 11;
else if (cur_event->code >= 'A' && cur_event->code <= 'D')
dtmf_code = cur_event->code - 'A' + 12;
else {
int dtmf_code = dtmf_code_from_char(cur_event->code);
if (dtmf_code == -1) {
ilog(LOG_ERR | LOG_FLAG_LIMIT, "Unknown DTMF event code %i", cur_event->code);
return 0;
}
@ -158,3 +150,15 @@ int dtmf_event_payload(str *buf, uint64_t *pts, uint64_t duration, struct dtmf_e
return ret;
}
int dtmf_code_from_char(char c) {
if (c >= '0' && c <= '9')
return c - '0';
else if (c == '*')
return 10;
else if (c == '#')
return 11;
else if (c >= 'A' && c <= 'D')
return c - 'A' + 12;
return -1;
}

@ -19,6 +19,7 @@ void dtmf_init(void);
int dtmf_event(struct media_packet *, str *, int);
int dtmf_event_payload(str *, uint64_t *, uint64_t, struct dtmf_event *, GQueue *);
void dtmf_event_free(void *);
int dtmf_code_from_char(char);
#endif

Loading…
Cancel
Save