Skip to content
Snippets Groups Projects
file.c 26.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • 			if (!fr) {
    #if 0
    				ast_log(LOG_DEBUG, "Got hung up\n");
    #endif
    				return -1;
    			}
    			
    			switch(fr->frametype) {
    			case AST_FRAME_DTMF:
    				res = fr->subclass;
    				if (strchr(breakon, res)) {
    					ast_frfree(fr);
    					return res;
    				}
    				break;
    			case AST_FRAME_CONTROL:
    				switch(fr->subclass) {
    				case AST_CONTROL_HANGUP:
    					ast_frfree(fr);
    					return -1;
    				case AST_CONTROL_RINGING:
    				case AST_CONTROL_ANSWER:
    					/* Unimportant */
    					break;
    				default:
    					ast_log(LOG_WARNING, "Unexpected control subclass '%d'\n", fr->subclass);
    				}
    			case AST_FRAME_VOICE:
    				/* Write audio if appropriate */
    				if (audiofd > -1)
    					write(audiofd, fr->data, fr->datalen);
    			}
    			/* Ignore */
    			ast_frfree(fr);
    
    		}
    		ast_sched_runq(c->sched);
    
    	
    		
    	}
    	return (c->_softhangup ? -1 : 0);
    }