char *line;
char event = '\0';
unsigned int duration = 100;
- char is_dtmf;
+ char is_dtmf, is_dtmf_relay, is_flash;
int res;
if (!session->channel) {
}
is_dtmf = is_media_type(rdata, "dtmf");
+ is_dtmf_relay = is_media_type(rdata, "dtmf-relay");
+ is_flash = is_media_type(rdata, "hook-flash");
- if (!is_dtmf && !is_media_type(rdata, "dtmf-relay")) {
+ if (!is_flash && !is_dtmf && !is_dtmf_relay) {
return 0;
}
if (is_dtmf) {
/* directly use what is in the message body */
event = get_event(cur);
- } else { /* content type = application/dtmf-relay */
+ } else if (is_dtmf_relay) { /* content type = application/dtmf-relay */
while ((line = strsep(&cur, "\r\n"))) {
char *c;
}
}
- if (event == '!') {
+ if (event == '!' || is_flash) {
struct ast_frame f = { AST_FRAME_CONTROL, { AST_CONTROL_FLASH, } };
ast_queue_frame(session->channel, &f);
} else if (event != '\0') {