Remove some redundant logic from wait_for_answer. This also let's us get rid of one of
[asterisk/asterisk.git] / apps / app_dial.c
index ecc437b..ccd3067 100644 (file)
@@ -751,19 +751,21 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
                                        ast_debug(1, "Dunno what to do with control type %d\n", f->subclass);
                                }
                        } else if (single) {
-                               /* XXX are we sure the logic is correct ? or we should just switch on f->frametype ? */
-                               if (f->frametype == AST_FRAME_VOICE && !ast_test_flag64(outgoing, OPT_RINGBACK|OPT_MUSICBACK)) {
-                                       if (ast_write(in, f))
-                                               ast_log(LOG_WARNING, "Unable to forward voice frame\n");
-                               } else if (f->frametype == AST_FRAME_IMAGE && !ast_test_flag64(outgoing, OPT_RINGBACK|OPT_MUSICBACK)) {
-                                       if (ast_write(in, f))
-                                               ast_log(LOG_WARNING, "Unable to forward image\n");
-                               } else if (f->frametype == AST_FRAME_TEXT && !ast_test_flag64(outgoing, OPT_RINGBACK|OPT_MUSICBACK)) {
-                                       if (ast_write(in, f))
-                                               ast_log(LOG_WARNING, "Unable to send text\n");
-                               } else if (f->frametype == AST_FRAME_HTML && !ast_test_flag64(outgoing, DIAL_NOFORWARDHTML)) {
-                                       if (ast_channel_sendhtml(in, f->subclass, f->data, f->datalen) == -1)
-                                               ast_log(LOG_WARNING, "Unable to send URL\n");
+                               switch (f->frametype) {
+                                       case AST_FRAME_VOICE:
+                                       case AST_FRAME_IMAGE:
+                                       case AST_FRAME_TEXT:
+                                               if (ast_write(in, f)) {
+                                                       ast_log(LOG_WARNING, "Unable to write frame\n");
+                                               }
+                                               break;
+                                       case AST_FRAME_HTML:
+                                               if (!ast_test_flag64(outgoing, DIAL_NOFORWARDHTML) && ast_channel_sendhtml(in, f->subclass, f->data, f->datalen) == -1) {
+                                                       ast_log(LOG_WARNING, "Unable to send URL\n");
+                                               }
+                                               break;
+                                       default:
+                                               break;
                                }
                        }
                        ast_frfree(f);