From c4a18a09c277a86987fd1ba6ca507f4eeab3f0d7 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 8 May 2008 19:19:47 +0000 Subject: [PATCH] spring cleaning, lose some pointless code git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8310 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_core.h | 26 ++----- src/include/switch_core_event_hook.h | 34 ++------- src/include/switch_module_interfaces.h | 16 ++--- src/include/switch_rtp.h | 6 +- src/include/switch_types.h | 3 +- .../mod_conference/mod_conference.c | 14 ++-- .../applications/mod_dptools/mod_dptools.c | 4 +- src/mod/applications/mod_esf/mod_esf.c | 4 +- src/mod/applications/mod_fifo/mod_fifo.c | 4 +- src/mod/applications/mod_fsv/mod_fsv.c | 10 +-- src/mod/applications/mod_rss/mod_rss.c | 5 +- src/mod/endpoints/mod_alsa/mod_alsa.c | 29 ++------ .../endpoints/mod_dingaling/mod_dingaling.c | 30 ++------ src/mod/endpoints/mod_iax/mod_iax.c | 32 ++------- .../endpoints/mod_portaudio/mod_portaudio.c | 18 ++--- .../endpoints/mod_reference/mod_reference.c | 31 ++------ src/mod/endpoints/mod_sofia/mod_sofia.c | 32 +++------ src/mod/endpoints/mod_wanpipe/mod_wanpipe.c | 10 ++- src/mod/endpoints/mod_woomera/mod_woomera.c | 31 ++------ .../mod_spidermonkey_teletone.c | 15 ++-- src/switch_core.c | 2 +- src/switch_core_event_hook.c | 2 - src/switch_core_io.c | 72 +++++-------------- src/switch_ivr.c | 20 +++--- src/switch_ivr_async.c | 16 ++--- src/switch_ivr_bridge.c | 14 ++-- src/switch_ivr_originate.c | 8 +-- src/switch_ivr_play_say.c | 34 ++++----- src/switch_rtp.c | 20 ++++-- 29 files changed, 154 insertions(+), 388 deletions(-) diff --git a/src/include/switch_core.h b/src/include/switch_core.h index 59008338f2..2a004e4e7b 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -809,10 +809,10 @@ SWITCH_DECLARE(uint32_t) switch_core_session_flush_private_events(switch_core_se \param stream_id which logical media channel to use \return SWITCH_STATUS_SUCCESS a the frame was read */ -SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id); +SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); -SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id); -SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id); +SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); /*! \brief Reset the buffers and resampler on a session @@ -828,7 +828,7 @@ SWITCH_DECLARE(void) switch_core_session_reset(_In_ switch_core_session_t *sessi \param stream_id which logical media channel to use \return SWITCH_STATUS_SUCCESS a the frame was written */ -SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id); +SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(_In_ switch_core_session_t *session, @@ -841,24 +841,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(_In_ sw */ #define switch_core_session_kill_channel(session, sig) switch_core_session_perform_kill_channel(session, __FILE__, __SWITCH_FUNC__, __LINE__, sig) -/*! - \brief Wait for a session to be ready for input - \param session session to wait for - \param timeout number of milliseconds to wait for data - \param stream_id which logical media channel to use - \return SWITCH_STATUS_SUCCESS if data is available for read within timeframe specified -*/ -SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_read(_In_ switch_core_session_t *session, int timeout, int stream_id); - -/*! - \brief Wait for a session to be ready for output - \param session session to wait for - \param timeout number of milliseconds to wait for data - \param stream_id which logical media channel to use - \return SWITCH_STATUS_SUCCESS if the session is available for write within timeframe specified -*/ -SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_write(_In_ switch_core_session_t *session, int timeout, int stream_id); - /*! \brief Send DTMF to a session \param session session to send DTMF to diff --git a/src/include/switch_core_event_hook.h b/src/include/switch_core_event_hook.h index 71e6015f34..70238c6cac 100644 --- a/src/include/switch_core_event_hook.h +++ b/src/include/switch_core_event_hook.h @@ -43,8 +43,6 @@ typedef struct switch_io_event_hook_video_read_frame switch_io_event_hook_video_ typedef struct switch_io_event_hook_write_frame switch_io_event_hook_write_frame_t; typedef struct switch_io_event_hook_video_write_frame switch_io_event_hook_video_write_frame_t; typedef struct switch_io_event_hook_kill_channel switch_io_event_hook_kill_channel_t; -typedef struct switch_io_event_hook_waitfor_read switch_io_event_hook_waitfor_read_t; -typedef struct switch_io_event_hook_waitfor_write switch_io_event_hook_waitfor_write_t; typedef struct switch_io_event_hook_send_dtmf switch_io_event_hook_send_dtmf_t; typedef struct switch_io_event_hook_recv_dtmf switch_io_event_hook_recv_dtmf_t; typedef struct switch_io_event_hook_state_change switch_io_event_hook_state_change_t; @@ -53,13 +51,11 @@ typedef switch_status_t (*switch_outgoing_channel_hook_t) (switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t *, switch_originate_flag_t); typedef switch_status_t (*switch_receive_message_hook_t) (switch_core_session_t *, switch_core_session_message_t *); typedef switch_status_t (*switch_receive_event_hook_t) (switch_core_session_t *, switch_event_t *); -typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int); -typedef switch_status_t (*switch_video_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int); -typedef switch_status_t (*switch_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int); -typedef switch_status_t (*switch_video_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int); +typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int); +typedef switch_status_t (*switch_video_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int); +typedef switch_status_t (*switch_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int); +typedef switch_status_t (*switch_video_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int); typedef switch_status_t (*switch_kill_channel_hook_t) (switch_core_session_t *, int); -typedef switch_status_t (*switch_waitfor_read_hook_t) (switch_core_session_t *, int, int); -typedef switch_status_t (*switch_waitfor_write_hook_t) (switch_core_session_t *, int, int); typedef switch_status_t (*switch_send_dtmf_hook_t) (switch_core_session_t *, const switch_dtmf_t *); typedef switch_status_t (*switch_recv_dtmf_hook_t) (switch_core_session_t *, const switch_dtmf_t *); typedef switch_status_t (*switch_state_change_hook_t) (switch_core_session_t *); @@ -120,20 +116,6 @@ struct switch_io_event_hook_kill_channel { struct switch_io_event_hook_kill_channel *next; }; -/*! \brief Node in which to store custom waitfor read channel callback hooks */ -struct switch_io_event_hook_waitfor_read { - /*! the waitfor read channel callback hook */ - switch_waitfor_read_hook_t waitfor_read; - struct switch_io_event_hook_waitfor_read *next; -}; - -/*! \brief Node in which to store custom waitfor write channel callback hooks */ -struct switch_io_event_hook_waitfor_write { - /*! the waitfor write channel callback hook */ - switch_waitfor_write_hook_t waitfor_write; - struct switch_io_event_hook_waitfor_write *next; -}; - /*! \brief Node in which to store custom send dtmf channel callback hooks */ struct switch_io_event_hook_send_dtmf { /*! the send dtmf channel callback hook */ @@ -179,10 +161,6 @@ struct switch_io_event_hooks { switch_io_event_hook_video_write_frame_t *video_write_frame; /*! a list of kill channel hooks */ switch_io_event_hook_kill_channel_t *kill_channel; - /*! a list of wait for read hooks */ - switch_io_event_hook_waitfor_read_t *waitfor_read; - /*! a list of wait for write hooks */ - switch_io_event_hook_waitfor_write_t *waitfor_write; /*! a list of send dtmf hooks */ switch_io_event_hook_send_dtmf_t *send_dtmf; /*! a list of recv dtmf hooks */ @@ -244,8 +222,6 @@ NEW_HOOK_DECL_ADD_P(write_frame); NEW_HOOK_DECL_ADD_P(video_read_frame); NEW_HOOK_DECL_ADD_P(video_write_frame); NEW_HOOK_DECL_ADD_P(kill_channel); -NEW_HOOK_DECL_ADD_P(waitfor_read); -NEW_HOOK_DECL_ADD_P(waitfor_write); NEW_HOOK_DECL_ADD_P(send_dtmf); NEW_HOOK_DECL_ADD_P(recv_dtmf); NEW_HOOK_DECL_ADD_P(resurrect_session); @@ -259,8 +235,6 @@ NEW_HOOK_DECL_REM_P(write_frame); NEW_HOOK_DECL_REM_P(video_read_frame); NEW_HOOK_DECL_REM_P(video_write_frame); NEW_HOOK_DECL_REM_P(kill_channel); -NEW_HOOK_DECL_REM_P(waitfor_read); -NEW_HOOK_DECL_REM_P(waitfor_write); NEW_HOOK_DECL_REM_P(send_dtmf); NEW_HOOK_DECL_REM_P(recv_dtmf); NEW_HOOK_DECL_REM_P(resurrect_session); diff --git a/src/include/switch_module_interfaces.h b/src/include/switch_module_interfaces.h index 553336f30e..63152230fb 100644 --- a/src/include/switch_module_interfaces.h +++ b/src/include/switch_module_interfaces.h @@ -101,17 +101,15 @@ struct switch_io_event_hooks; typedef switch_call_cause_t (*switch_io_outgoing_channel_t) (switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t **, switch_memory_pool_t **, switch_originate_flag_t); -typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int); -typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int); +typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int); +typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int); typedef switch_status_t (*switch_io_kill_channel_t) (switch_core_session_t *, int); -typedef switch_status_t (*switch_io_waitfor_read_t) (switch_core_session_t *, int, int); -typedef switch_status_t (*switch_io_waitfor_write_t) (switch_core_session_t *, int, int); typedef switch_status_t (*switch_io_send_dtmf_t) (switch_core_session_t *, const switch_dtmf_t *); typedef switch_status_t (*switch_io_receive_message_t) (switch_core_session_t *, switch_core_session_message_t *); typedef switch_status_t (*switch_io_receive_event_t) (switch_core_session_t *, switch_event_t *); typedef switch_status_t (*switch_io_state_change_t) (switch_core_session_t *); -typedef switch_status_t (*switch_io_read_video_frame_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int); -typedef switch_status_t (*switch_io_write_video_frame_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int); +typedef switch_status_t (*switch_io_read_video_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int); +typedef switch_status_t (*switch_io_write_video_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int); typedef switch_call_cause_t (*switch_io_resurrect_session_t)(switch_core_session_t **, switch_memory_pool_t **, void *); typedef enum { @@ -119,8 +117,6 @@ typedef enum { SWITCH_IO_READ_FRAME, SWITCH_IO_WRITE_FRAME, SWITCH_IO_KILL_CHANNEL, - SWITCH_IO_WAITFOR_READ, - SWITCH_IO_WAITFOR_WRITE, SWITCH_IO_SEND_DTMF, SWITCH_IO_RECEIVE_MESSAGE, SWITCH_IO_RECEIVE_EVENT, @@ -140,10 +136,6 @@ struct switch_io_routines { switch_io_write_frame_t write_frame; /*! send a kill signal to the session's channel */ switch_io_kill_channel_t kill_channel; - /*! wait for the session's channel to be ready to read audio */ - switch_io_waitfor_read_t waitfor_read; - /*! wait for the session's channel to be ready to write audio */ - switch_io_waitfor_write_t waitfor_write; /*! send a string of DTMF digits to a session's channel */ switch_io_send_dtmf_t send_dtmf; /*! receive a message from another session */ diff --git a/src/include/switch_rtp.h b/src/include/switch_rtp.h index 9b110e573a..7337f57da7 100644 --- a/src/include/switch_rtp.h +++ b/src/include/switch_rtp.h @@ -296,7 +296,7 @@ SWITCH_DECLARE(void) switch_rtp_set_invald_handler(switch_rtp_t *rtp_session, sw \return the number of bytes read */ SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void *data, uint32_t * datalen, - switch_payload_t *payload_type, switch_frame_flag_t *flags); + switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags); /*! \brief Queue RFC2833 DTMF data into an RTP Session @@ -332,7 +332,7 @@ SWITCH_DECLARE(switch_size_t) switch_rtp_dequeue_dtmf(switch_rtp_t *rtp_session, \return the number of bytes read */ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_session, - void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags); + void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags); /*! \brief Read data from a given RTP session without copying @@ -340,7 +340,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_sessi \param frame a frame to populate with information \return the number of bytes read */ -SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame); +SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame, switch_io_flag_t io_flagsm); /*! \brief Enable VAD on an RTP Session diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 2d543a8c7f..2f99f2a381 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -943,7 +943,8 @@ typedef enum { } switch_file_flag_t; typedef enum { - SWITCH_IO_FLAG_NOOP = 0 + SWITCH_IO_FLAG_NONE = 0, + SWITCH_IO_FLAG_NOBLOCK = (1 << 0) } switch_io_flag_t; /* make sure this is synced with the EVENT_NAMES array in switch_event.c diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index fb009adbef..3b9452b8f9 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -783,7 +783,7 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr } if (switch_channel_test_flag(switch_core_session_get_channel(conference->floor_holder->session), CF_VIDEO)) { - status = switch_core_session_read_video_frame(conference->floor_holder->session, &vid_frame, -1, 0); + status = switch_core_session_read_video_frame(conference->floor_holder->session, &vid_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { conference->floor_holder = NULL; @@ -835,7 +835,7 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr for (imember = conference->members; imember; imember = imember->next) { if (switch_channel_test_flag(switch_core_session_get_channel(imember->session), CF_VIDEO)) { has_vid++; - switch_core_session_write_video_frame(imember->session, vid_frame, -1, 0); + switch_core_session_write_video_frame(imember->session, vid_frame, SWITCH_IO_FLAG_NONE, 0); } } switch_mutex_unlock(conference->member_mutex); @@ -1497,7 +1497,7 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t * thread, while (switch_test_flag(member, MFLAG_RUNNING) && switch_channel_ready(channel)) { /* Read a frame. */ - status = switch_core_session_read_frame(member->session, &read_frame, -1, 0); + status = switch_core_session_read_frame(member->session, &read_frame, SWITCH_IO_FLAG_NONE, 0); /* end the loop, if appropriate */ if (!SWITCH_READ_ACCEPTABLE(status) || !switch_test_flag(member, MFLAG_RUNNING)) { @@ -1890,7 +1890,7 @@ static void conference_loop_output(conference_member_t * member) switch_change_sln_volume(write_frame.data, write_frame.samples, member->volume_out_level); } write_frame.timestamp = timer.samplecount; - switch_core_session_write_frame(member->session, &write_frame, -1, 0); + switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0); switch_core_timer_next(&timer); @@ -1933,7 +1933,7 @@ static void conference_loop_output(conference_member_t * member) switch_change_sln_volume(write_frame.data, write_frame.samples, member->volume_out_level); } write_frame.timestamp = timer.samplecount; - switch_core_session_write_frame(member->session, &write_frame, -1, 0); + switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0); } } @@ -1948,7 +1948,7 @@ static void conference_loop_output(conference_member_t * member) write_frame.datalen = bytes; write_frame.samples = samples; write_frame.timestamp = timer.samplecount; - switch_core_session_write_frame(member->session, &write_frame, -1, 0); + switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0); } } } @@ -3961,7 +3961,7 @@ static switch_status_t conference_local_play_file(conference_obj_t * conference, /* generate some space infront of the file to be played */ for (x = 0; x < leadin; x++) { switch_frame_t *read_frame; - status = switch_core_session_read_frame(session, &read_frame, 1000, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 171b6c75af..880c3d6bf0 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -1714,11 +1714,11 @@ SWITCH_STANDARD_APP(audio_bridge_function) /* SIP won't let us redir media until the call has been answered #$^#%& so we will proxy any early media until they do */ while (switch_channel_ready(caller_channel) && switch_channel_ready(peer_channel) && !switch_channel_test_flag(peer_channel, CF_ANSWERED)) { - switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, -1, 0); + switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, SWITCH_IO_FLAG_NONE, 0); uint8_t bad = 1; if (SWITCH_READ_ACCEPTABLE(status) - && switch_core_session_write_frame(session, read_frame, -1, 0) == SWITCH_STATUS_SUCCESS) { + && switch_core_session_write_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0) == SWITCH_STATUS_SUCCESS) { bad = 0; } if (bad) { diff --git a/src/mod/applications/mod_esf/mod_esf.c b/src/mod/applications/mod_esf/mod_esf.c index 709675c63e..430f7e6ab5 100644 --- a/src/mod/applications/mod_esf/mod_esf.c +++ b/src/mod/applications/mod_esf/mod_esf.c @@ -130,7 +130,7 @@ SWITCH_STANDARD_APP(bcast_function) while(!ready) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (read_frame && switch_test_flag(read_frame, SFF_CNG)) { continue; } @@ -206,7 +206,7 @@ SWITCH_STANDARD_APP(bcast_function) for(;;) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 975aa6c72d..34238cd759 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -804,7 +804,7 @@ SWITCH_STANDARD_APP(fifo_function) break; } - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -854,7 +854,7 @@ SWITCH_STANDARD_APP(fifo_function) switch_channel_set_flag(other_channel, CF_BREAK); while (switch_channel_ready(channel) && switch_channel_ready(other_channel) && switch_channel_test_flag(other_channel, CF_TAGGED)) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } diff --git a/src/mod/applications/mod_fsv/mod_fsv.c b/src/mod/applications/mod_fsv/mod_fsv.c index df981658a7..75956067ba 100644 --- a/src/mod/applications/mod_fsv/mod_fsv.c +++ b/src/mod/applications/mod_fsv/mod_fsv.c @@ -64,7 +64,7 @@ static void *SWITCH_THREAD_FUNC record_video_thread(switch_thread_t *thread, voi eh->up = 1; while(switch_channel_ready(channel)) { - status = switch_core_session_read_video_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -90,7 +90,7 @@ static void *SWITCH_THREAD_FUNC record_video_thread(switch_thread_t *thread, voi switch_mutex_unlock(eh->mutex); - switch_core_session_write_video_frame(session, read_frame, -1, 0); + switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0); } eh->up = 0; return NULL; @@ -165,7 +165,7 @@ SWITCH_STANDARD_APP(record_fsv_function) while(switch_channel_ready(channel)) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -315,7 +315,7 @@ SWITCH_STANDARD_APP(play_fsv_function) hdr->pt = pt; } if (switch_channel_test_flag(channel, CF_VIDEO)) { - switch_core_session_write_video_frame(session, &vid_frame, -1, 0); + switch_core_session_write_video_frame(session, &vid_frame, SWITCH_IO_FLAG_NONE, 0); } if (ts && last && last != ts) { switch_yield(1000); @@ -328,7 +328,7 @@ SWITCH_STANDARD_APP(play_fsv_function) if ((write_frame.datalen = read(fd, write_frame.data, bytes)) <= 0) { break; } - switch_core_session_write_frame(session, &write_frame, -1, 0); + switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0); switch_core_timer_next(&timer); } diff --git a/src/mod/applications/mod_rss/mod_rss.c b/src/mod/applications/mod_rss/mod_rss.c index e448e7c61e..ffc588bb68 100644 --- a/src/mod/applications/mod_rss/mod_rss.c +++ b/src/mod/applications/mod_rss/mod_rss.c @@ -171,7 +171,6 @@ SWITCH_STANDARD_APP(rss_function) switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE; switch_core_thread_session_t thread_session; uint32_t rate, interval = 20; - int stream_id = 0; switch_timer_t timer = { 0 }, *timerp = NULL; uint32_t last; char *mydata = NULL; @@ -292,9 +291,7 @@ SWITCH_STANDARD_APP(rss_function) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "setup timer success %u bytes per %d ms!\n", (rate / 50) * 2, interval); /* start a thread to absorb incoming audio */ - for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) { - switch_core_service_session(session, &thread_session, stream_id); - } + switch_core_service_session(session, &thread_session, 0); timerp = &timer; } diff --git a/src/mod/endpoints/mod_alsa/mod_alsa.c b/src/mod/endpoints/mod_alsa/mod_alsa.c index d7e9b1b056..edabbcb22b 100644 --- a/src/mod/endpoints/mod_alsa/mod_alsa.c +++ b/src/mod/endpoints/mod_alsa/mod_alsa.c @@ -149,8 +149,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig); static switch_status_t engage_device(unsigned int samplerate, int codec_ms); static switch_status_t load_config(void); @@ -501,27 +501,6 @@ static switch_status_t channel_on_exchange_media(switch_core_session_t *session) } -static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - private_t *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; -} - -static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - private_t *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; - -} - static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { private_t *tech_pvt = NULL; @@ -534,7 +513,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { switch_channel_t *channel = NULL; private_t *tech_pvt = NULL; @@ -652,7 +631,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch return status; } -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { switch_channel_t *channel = NULL; private_t *tech_pvt = NULL; diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.c b/src/mod/endpoints/mod_dingaling/mod_dingaling.c index 6d4d07cf74..f7c7ae8ed0 100644 --- a/src/mod/endpoints/mod_dingaling/mod_dingaling.c +++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.c @@ -211,8 +211,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig); static ldl_status handle_signalling(ldl_handle_t * handle, ldl_session_t * dlsession, ldl_signal_t dl_signal, @@ -1306,26 +1306,6 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session) return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - struct private_object *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - switch_assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; -} - -static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - struct private_object *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - switch_assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; - -} static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { @@ -1340,7 +1320,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s } -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { struct private_object *tech_pvt = NULL; switch_channel_t *channel = switch_core_session_get_channel(session); @@ -1381,7 +1361,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) { tech_pvt->read_frame.flags = SFF_NONE; - status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame); + status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame, flags); if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) { return SWITCH_STATUS_FALSE; } @@ -1438,7 +1418,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { struct private_object *tech_pvt; switch_channel_t *channel = switch_core_session_get_channel(session); diff --git a/src/mod/endpoints/mod_iax/mod_iax.c b/src/mod/endpoints/mod_iax/mod_iax.c index 32735c6939..287320e9b0 100644 --- a/src/mod/endpoints/mod_iax/mod_iax.c +++ b/src/mod/endpoints/mod_iax/mod_iax.c @@ -422,8 +422,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig); @@ -557,20 +557,6 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session) return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - assert(switch_core_session_get_private(session)); - - return SWITCH_STATUS_SUCCESS; -} - -static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - assert(switch_core_session_get_private(session)); - - return SWITCH_STATUS_SUCCESS; -} - static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { private_t *tech_pvt = switch_core_session_get_private(session); @@ -584,11 +570,9 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { private_t *tech_pvt = switch_core_session_get_private(session); - switch_time_t started = switch_timestamp_now(); - unsigned int elapsed; switch_byte_t *data; switch_assert(tech_pvt != NULL); @@ -630,12 +614,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch return SWITCH_STATUS_SUCCESS; } - if (timeout > -1) { - elapsed = (unsigned int) ((switch_timestamp_now() - started) / 1000); - if (elapsed >= (unsigned int) timeout) { - return SWITCH_STATUS_SUCCESS; - } - } switch_yield(1000); } @@ -651,7 +629,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { private_t *tech_pvt = switch_core_session_get_private(session); switch_assert(tech_pvt != NULL); @@ -812,8 +790,6 @@ switch_io_routines_t iax_io_routines = { /*.read_frame */ channel_read_frame, /*.write_frame */ channel_write_frame, /*.kill_channel */ channel_kill_channel, - /*.waitfor_read */ channel_waitfor_read, - /*.waitfor_write */ channel_waitfor_write, /*.send_dtmf */ channel_send_dtmf, /*.receive_message*/ channel_receive_message, /*.receive_event */ channel_receive_event diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c index bac039281a..6dfbda5512 100644 --- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c +++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c @@ -146,8 +146,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig); static switch_status_t engage_device(int samplerate, int codec_ms); static switch_status_t engage_ring_device(int sample_rate, int channels); @@ -448,16 +448,6 @@ static switch_status_t channel_on_exchange_media(switch_core_session_t *session) } -static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - return SWITCH_STATUS_SUCCESS; -} - -static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - return SWITCH_STATUS_SUCCESS; -} - static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { private_t *tech_pvt = switch_core_session_get_private(session); @@ -468,7 +458,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { private_t *tech_pvt = switch_core_session_get_private(session); int samples = 0; @@ -566,7 +556,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch return status; } -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { switch_status_t status = SWITCH_STATUS_FALSE; private_t *tech_pvt = switch_core_session_get_private(session); diff --git a/src/mod/endpoints/mod_reference/mod_reference.c b/src/mod/endpoints/mod_reference/mod_reference.c index 66cf59b1af..2363d52c2f 100644 --- a/src/mod/endpoints/mod_reference/mod_reference.c +++ b/src/mod/endpoints/mod_reference/mod_reference.c @@ -106,8 +106,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig); @@ -260,27 +260,6 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session) return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - private_t *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; -} - -static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - private_t *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; - -} - static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { private_t *tech_pvt = switch_core_session_get_private(session); @@ -289,7 +268,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s return SWITCH_STATUS_SUCCESS; } -static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { switch_channel_t *channel = NULL; private_t *tech_pvt = NULL; @@ -350,7 +329,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch } -static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { switch_channel_t *channel = NULL; private_t *tech_pvt = NULL; @@ -494,8 +473,6 @@ switch_io_routines_t reference_io_routines = { /*.read_frame */ channel_read_frame, /*.write_frame */ channel_write_frame, /*.kill_channel */ channel_kill_channel, - /*.waitfor_read */ channel_waitfor_read, - /*.waitfor_write */ channel_waitfor_write, /*.send_dtmf */ channel_send_dtmf, /*.receive_message*/ channel_receive_message, /*.receive_event */ channel_receive_event diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index e466d261d3..9a63efc5c5 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -55,10 +55,10 @@ static switch_status_t sofia_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); +static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t sofia_kill_channel(switch_core_session_t *session, int sig); /* BODY OF THE MODULE */ @@ -407,7 +407,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) return SWITCH_STATUS_SUCCESS; } -static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session); switch_channel_t *channel = switch_core_session_get_channel(session); @@ -442,7 +442,7 @@ static switch_status_t sofia_read_video_frame(switch_core_session_t *session, sw while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->video_read_frame.datalen == 0) { tech_pvt->video_read_frame.flags = SFF_NONE; - status = switch_rtp_zerocopy_read_frame(tech_pvt->video_rtp_session, &tech_pvt->video_read_frame); + status = switch_rtp_zerocopy_read_frame(tech_pvt->video_rtp_session, &tech_pvt->video_read_frame, flags); if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) { if (status == SWITCH_STATUS_TIMEOUT) { switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_MEDIA_TIMEOUT); @@ -468,7 +468,7 @@ static switch_status_t sofia_read_video_frame(switch_core_session_t *session, sw return SWITCH_STATUS_SUCCESS; } -static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session); switch_channel_t *channel = switch_core_session_get_channel(session); @@ -503,7 +503,7 @@ static switch_status_t sofia_write_video_frame(switch_core_session_t *session, s return status; } -static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { private_object_t *tech_pvt = switch_core_session_get_private(session); switch_channel_t *channel = switch_core_session_get_channel(session); @@ -544,7 +544,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) { tech_pvt->read_frame.flags = SFF_NONE; - status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame); + status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame, flags); if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) { if (status == SWITCH_STATUS_TIMEOUT) { @@ -588,7 +588,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f return SWITCH_STATUS_SUCCESS; } -static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { private_object_t *tech_pvt = switch_core_session_get_private(session); switch_channel_t *channel = switch_core_session_get_channel(session); @@ -673,16 +673,6 @@ static switch_status_t sofia_kill_channel(switch_core_session_t *session, int si return SWITCH_STATUS_SUCCESS; } -static switch_status_t sofia_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - return SWITCH_STATUS_SUCCESS; -} - -static switch_status_t sofia_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - return SWITCH_STATUS_SUCCESS; -} - static switch_status_t sofia_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { private_object_t *tech_pvt; @@ -1623,8 +1613,6 @@ switch_io_routines_t sofia_io_routines = { /*.read_frame */ sofia_read_frame, /*.write_frame */ sofia_write_frame, /*.kill_channel */ sofia_kill_channel, - /*.waitfor_read */ sofia_waitfor_read, - /*.waitfor_read */ sofia_waitfor_write, /*.send_dtmf */ sofia_send_dtmf, /*.receive_message */ sofia_receive_message, /*.receive_event */ sofia_receive_event, diff --git a/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c b/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c index 6dcd8e2ac5..b0c3628385 100644 --- a/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c +++ b/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c @@ -468,9 +468,9 @@ static switch_status_t wanpipe_on_exchange_media(switch_core_session_t *session) static switch_status_t wanpipe_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, +static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); -static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, +static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static int on_info(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent); static int on_hangup(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent); @@ -751,7 +751,7 @@ static switch_status_t wanpipe_answer_channel(switch_core_session_t *session) -static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, +static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { private_object_t *tech_pvt; @@ -838,7 +838,7 @@ static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch return SWITCH_STATUS_SUCCESS; } -static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, +static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { private_object_t *tech_pvt; @@ -993,8 +993,6 @@ switch_io_routines_t wanpipe_io_routines = { /*.read_frame */ wanpipe_read_frame, /*.write_frame */ wanpipe_write_frame, /*.kill_channel */ wanpipe_kill_channel, - /*.waitfor_read */ NULL, - /*.waitfor_read */ NULL, /*.send_dtmf*/ wanpipe_send_dtmf, /*.receive_message*/ wanpipe_receive_message }; diff --git a/src/mod/endpoints/mod_woomera/mod_woomera.c b/src/mod/endpoints/mod_woomera/mod_woomera.c index 709a245663..6c1a242616 100644 --- a/src/mod/endpoints/mod_woomera/mod_woomera.c +++ b/src/mod/endpoints/mod_woomera/mod_woomera.c @@ -176,8 +176,8 @@ static switch_status_t woomera_on_soft_execute(switch_core_session_t *session); static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags); -static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id); -static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id); +static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id); +static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id); static switch_status_t woomera_kill_channel(switch_core_session_t *session, int sig); static void tech_destroy(private_object * tech_pvt); static void woomera_printf(woomera_profile * profile, switch_socket_t * socket, char *fmt, ...); @@ -322,28 +322,7 @@ static switch_status_t woomera_on_soft_execute(switch_core_session_t *session) return SWITCH_STATUS_SUCCESS; } -static switch_status_t woomera_waitfor_read(switch_core_session_t *session, int ms, int stream_id) -{ - struct private_object *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - switch_assert(tech_pvt != NULL); - - return switch_socket_waitfor(tech_pvt->read_poll, ms) ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS; -} - -static switch_status_t woomera_waitfor_write(switch_core_session_t *session, int ms, int stream_id) -{ - struct private_object *tech_pvt = NULL; - - tech_pvt = switch_core_session_get_private(session); - switch_assert(tech_pvt != NULL); - - return SWITCH_STATUS_SUCCESS; -// return switch_socket_waitfor(tech_pvt->write_poll, ms); -} - -static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { struct private_object *tech_pvt = switch_core_session_get_private(session); switch_frame_t *pframe; @@ -379,7 +358,7 @@ static switch_status_t woomera_read_frame(switch_core_session_t *session, switch return SWITCH_STATUS_FALSE; } -static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { struct private_object *tech_pvt = switch_core_session_get_private(session); switch_size_t len; @@ -417,8 +396,6 @@ static switch_io_routines_t woomera_io_routines = { /*.read_frame */ woomera_read_frame, /*.write_frame */ woomera_write_frame, /*.kill_channel */ woomera_kill_channel, - /*.waitfor_read */ woomera_waitfor_read, - /*.waitfor_write */ woomera_waitfor_write }; /* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines diff --git a/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c b/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c index b8db914441..9a7ce78996 100644 --- a/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c +++ b/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c @@ -209,7 +209,6 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva switch_frame_t write_frame = { 0 }; unsigned char *fdata[1024]; switch_frame_t *read_frame; - int stream_id; switch_core_thread_session_t thread_session = { 0 }; switch_channel_t *channel; @@ -238,9 +237,7 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva channel = switch_core_session_get_channel(session); if (tto->timer) { - for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) { - switch_core_service_session(session, &thread_session, stream_id); - } + switch_core_service_session(session, &thread_session, 0); } if (loops) { @@ -275,7 +272,7 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva } else { switch_status_t status; - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -287,11 +284,9 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva } write_frame.samples = write_frame.datalen / 2; - for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) { - if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Bad Write\n"); - break; - } + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Bad Write\n"); + break; } } diff --git a/src/switch_core.c b/src/switch_core.c index 3195b7df69..b575049850 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -187,7 +187,7 @@ static void *switch_core_service_thread(switch_thread_t * thread, void *obj) switch_channel_set_flag(channel, CF_SERVICE); while (data->running > 0) { - switch (switch_core_session_read_frame(session, &read_frame, -1, stream_id)) { + switch (switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, stream_id)) { case SWITCH_STATUS_SUCCESS: case SWITCH_STATUS_TIMEOUT: case SWITCH_STATUS_BREAK: diff --git a/src/switch_core_event_hook.c b/src/switch_core_event_hook.c index c7ead6a60a..650b0479be 100644 --- a/src/switch_core_event_hook.c +++ b/src/switch_core_event_hook.c @@ -40,8 +40,6 @@ NEW_HOOK_DECL(write_frame) NEW_HOOK_DECL(video_read_frame) NEW_HOOK_DECL(video_write_frame) NEW_HOOK_DECL(kill_channel) -NEW_HOOK_DECL(waitfor_read) -NEW_HOOK_DECL(waitfor_write) NEW_HOOK_DECL(send_dtmf) NEW_HOOK_DECL(recv_dtmf) NEW_HOOK_DECL(resurrect_session) diff --git a/src/switch_core_io.c b/src/switch_core_io.c index a2a63bf5bf..fb83d1b017 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -35,20 +35,19 @@ #include #include "private/switch_core_pvt.h" -SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id) +SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { switch_io_event_hook_video_write_frame_t *ptr; switch_status_t status = SWITCH_STATUS_FALSE; - switch_io_flag_t flags = 0; if (switch_channel_get_state(session->channel) >= CS_HANGUP) { return SWITCH_STATUS_FALSE; } if (session->endpoint_interface->io_routines->write_video_frame) { - if ((status = session->endpoint_interface->io_routines->write_video_frame(session, frame, timeout, flags, stream_id)) == SWITCH_STATUS_SUCCESS) { + if ((status = session->endpoint_interface->io_routines->write_video_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) { for (ptr = session->event_hooks.video_write_frame; ptr; ptr = ptr->next) { - if ((status = ptr->video_write_frame(session, frame, timeout, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { + if ((status = ptr->video_write_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { break; } } @@ -57,7 +56,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor return status; } -SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id) +SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { switch_status_t status = SWITCH_STATUS_FALSE; switch_io_event_hook_video_read_frame_t *ptr; @@ -68,9 +67,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core if (session->endpoint_interface->io_routines->read_video_frame) { if ((status = - session->endpoint_interface->io_routines->read_video_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) == SWITCH_STATUS_SUCCESS) { + session->endpoint_interface->io_routines->read_video_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) { for (ptr = session->event_hooks.video_read_frame; ptr; ptr = ptr->next) { - if ((status = ptr->video_read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) != SWITCH_STATUS_SUCCESS) { + if ((status = ptr->video_read_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { break; } } @@ -98,7 +97,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core return status; } -SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id) +SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id) { switch_io_event_hook_read_frame_t *ptr; switch_status_t status; @@ -125,9 +124,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi if (session->endpoint_interface->io_routines->read_frame) { if ((status = - session->endpoint_interface->io_routines->read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) == SWITCH_STATUS_SUCCESS) { + session->endpoint_interface->io_routines->read_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) { for (ptr = session->event_hooks.read_frame; ptr; ptr = ptr->next) { - if ((status = ptr->read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) != SWITCH_STATUS_SUCCESS) { + if ((status = ptr->read_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { break; } } @@ -469,16 +468,16 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi return status; } -static switch_status_t perform_write(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id) +static switch_status_t perform_write(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { switch_io_event_hook_write_frame_t *ptr; switch_status_t status = SWITCH_STATUS_FALSE; if (session->endpoint_interface->io_routines->write_frame) { - if ((status = session->endpoint_interface->io_routines->write_frame(session, frame, timeout, flags, stream_id)) == SWITCH_STATUS_SUCCESS) { + if ((status = session->endpoint_interface->io_routines->write_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) { for (ptr = session->event_hooks.write_frame; ptr; ptr = ptr->next) { - if ((status = ptr->write_frame(session, frame, timeout, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { + if ((status = ptr->write_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { break; } } @@ -488,13 +487,12 @@ static switch_status_t perform_write(switch_core_session_t *session, switch_fram return status; } -SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id) +SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id) { switch_status_t status = SWITCH_STATUS_FALSE; switch_frame_t *enc_frame = NULL, *write_frame = frame; unsigned int flag = 0, need_codec = 0, perfect = 0, do_bugs = 0, do_write = 0, do_resample = 0, ptime_mismatch = 0; - switch_io_flag_t io_flag = SWITCH_IO_FLAG_NOOP; switch_assert(session != NULL); switch_assert(frame != NULL); @@ -509,12 +507,12 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess if (switch_test_flag(frame, SFF_PROXY_PACKET)) { /* Fast PASS! */ - return perform_write(session, frame, timeout, flag, stream_id); + return perform_write(session, frame, flag, stream_id); } if (switch_test_flag(frame, SFF_CNG)) { if (switch_channel_test_flag(session->channel, CF_ACCEPT_CNG)) { - return perform_write(session, frame, timeout, flag, stream_id); + return perform_write(session, frame, flag, stream_id); } return SWITCH_STATUS_SUCCESS; } @@ -755,7 +753,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess if (flag & SFF_CNG) { switch_set_flag(write_frame, SFF_CNG); } - status = perform_write(session, write_frame, timeout, io_flag, stream_id); + status = perform_write(session, write_frame, flags, stream_id); return status; } else { switch_size_t used = switch_buffer_inuse(session->raw_write_buffer); @@ -861,7 +859,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess switch_set_flag(write_frame, SFF_CNG); } - if ((status = perform_write(session, write_frame, timeout, io_flag, stream_id)) != SWITCH_STATUS_SUCCESS) { + if ((status = perform_write(session, write_frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) { break; } } @@ -877,7 +875,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess done: if (do_write) { - return perform_write(session, frame, timeout, io_flag, stream_id); + return perform_write(session, frame, flags, stream_id); } return status; } @@ -911,40 +909,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(switch_ return status; } -SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_read(switch_core_session_t *session, int timeout, int stream_id) -{ - switch_io_event_hook_waitfor_read_t *ptr; - switch_status_t status = SWITCH_STATUS_FALSE; - - if (session->endpoint_interface->io_routines->waitfor_read) { - if ((status = session->endpoint_interface->io_routines->waitfor_read(session, timeout, stream_id)) == SWITCH_STATUS_SUCCESS) { - for (ptr = session->event_hooks.waitfor_read; ptr; ptr = ptr->next) { - if ((status = ptr->waitfor_read(session, timeout, stream_id)) != SWITCH_STATUS_SUCCESS) { - break; - } - } - } - } - return status; -} - -SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_write(switch_core_session_t *session, int timeout, int stream_id) -{ - switch_io_event_hook_waitfor_write_t *ptr; - switch_status_t status = SWITCH_STATUS_FALSE; - - if (session->endpoint_interface->io_routines->waitfor_write) { - if ((status = session->endpoint_interface->io_routines->waitfor_write(session, timeout, stream_id)) == SWITCH_STATUS_SUCCESS) { - for (ptr = session->event_hooks.waitfor_write; ptr; ptr = ptr->next) { - if ((status = ptr->waitfor_write(session, timeout, stream_id)) != SWITCH_STATUS_SUCCESS) { - break; - } - } - } - } - return status; -} - SWITCH_DECLARE(switch_status_t) switch_core_session_recv_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf) { switch_io_event_hook_recv_dtmf_t *ptr; diff --git a/src/switch_ivr.c b/src/switch_ivr.c index a4967e12c6..53c13f48db 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -64,7 +64,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_sleep(switch_core_session_t *session, (!switch_channel_test_flag(channel, CF_ANSWERED) && !switch_channel_test_flag(channel, CF_EARLY_MEDIA))) { switch_yield(1000); } else { - status = switch_core_session_read_frame(session, &read_frame, left, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } @@ -93,7 +93,7 @@ static void *SWITCH_THREAD_FUNC unicast_thread_run(switch_thread_t *thread, void } conninfo->write_frame.datalen = (uint32_t)len; conninfo->write_frame.samples = conninfo->write_frame.datalen / 2; - switch_core_session_write_frame(conninfo->session, &conninfo->write_frame, -1, conninfo->stream_id); + switch_core_session_write_frame(conninfo->session, &conninfo->write_frame, SWITCH_IO_FLAG_NONE, conninfo->stream_id); } switch_clear_flag_locked(conninfo, SUF_READY); @@ -276,7 +276,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se int frame_count = atoi(lead_frames); while(frame_count > 0) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { goto done; } @@ -449,7 +449,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_park(switch_core_session_t *session, while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_CONTROLLED)) { - if ((status = switch_core_session_read_frame(session, &read_frame, -1, stream_id)) == SWITCH_STATUS_SUCCESS) { + if ((status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, stream_id)) == SWITCH_STATUS_SUCCESS) { if (!SWITCH_READ_ACCEPTABLE(status)) { break; } @@ -615,7 +615,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_callback(switch_core_s if (switch_channel_test_flag(channel, CF_SERVICE)) { switch_yield(1000); } else { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); } if (!SWITCH_READ_ACCEPTABLE(status)) { @@ -731,7 +731,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_count(switch_core_sess if (switch_channel_test_flag(channel, CF_SERVICE)) { switch_yield(1000); } else { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } @@ -843,7 +843,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_media(const char *uuid, switch_media_ switch_core_session_receive_message(session, &msg); switch_channel_wait_for_flag(channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000); - switch_core_session_read_frame(session, &read_frame, -1, 0); + switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if ((flags & SMF_REBRIDGE) && (other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BRIDGE_VARIABLE)) @@ -852,7 +852,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_media(const char *uuid, switch_media_ switch_assert(other_channel != NULL); switch_core_session_receive_message(other_session, &msg); switch_channel_wait_for_flag(other_channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000); - switch_core_session_read_frame(other_session, &read_frame, -1, 0); + switch_core_session_read_frame(other_session, &read_frame, SWITCH_IO_FLAG_NONE, 0); switch_channel_clear_state_handler(other_channel, NULL); switch_core_session_rwunlock(other_session); } @@ -1642,7 +1642,7 @@ SWITCH_DECLARE(void) switch_ivr_delay_echo(switch_core_session_t *session, uint3 write_frame.codec = read_codec; while(switch_channel_ready(channel)) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } @@ -1653,7 +1653,7 @@ SWITCH_DECLARE(void) switch_ivr_delay_echo(switch_core_session_t *session, uint3 if ((jb_frame = stfu_n_read_a_frame(jb))) { write_frame.data = jb_frame->data; write_frame.datalen = (uint32_t)jb_frame->dlen; - status = switch_core_session_write_frame(session, &write_frame, -1, 0); + status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index eca2aee852..bc96084e8b 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -49,7 +49,7 @@ static void *SWITCH_THREAD_FUNC echo_video_thread(switch_thread_t *thread, void eh->up = 1; while(switch_channel_ready(channel)) { - status = switch_core_session_read_video_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -59,7 +59,7 @@ static void *SWITCH_THREAD_FUNC echo_video_thread(switch_thread_t *thread, void continue; } - switch_core_session_write_video_frame(session, read_frame, -1, 0); + switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0); } eh->up = 0; @@ -91,14 +91,14 @@ SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session) #endif while(switch_channel_ready(channel)) { - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } - switch_core_session_write_frame(session, read_frame, -1, 0); + switch_core_session_write_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0); #ifndef SWITCH_VIDEO_IN_THREADS - status = switch_core_session_read_video_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -108,7 +108,7 @@ SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session) continue; } - switch_core_session_write_video_frame(session, read_frame, -1, 0); + switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0); #endif } @@ -590,7 +590,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_eavesdrop_session(switch_core_session char *fcommand = NULL; char db[2] = ""; - status = switch_core_session_read_frame(session, &read_frame, 1000, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { goto end; @@ -676,7 +676,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_eavesdrop_session(switch_core_session while (switch_buffer_inuse(ep->buffer) >= len) { write_frame.datalen = (uint32_t)switch_buffer_read(ep->buffer, buf, len); write_frame.samples = write_frame.datalen / 2; - if ((status = switch_core_session_write_frame(session, &write_frame, 1000, 0)) != SWITCH_STATUS_SUCCESS) { + if ((status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0)) != SWITCH_STATUS_SUCCESS) { break; } } diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index ae58104f24..bf0eb69cad 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -52,13 +52,13 @@ static void *SWITCH_THREAD_FUNC video_bridge_thread(switch_thread_t *thread, voi vh->up = 1; while(switch_channel_ready(channel) && vh->up == 1) { - status = switch_core_session_read_video_frame(vh->session_a, &read_frame, -1, 0); + status = switch_core_session_read_video_frame(vh->session_a, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } - switch_core_session_write_video_frame(vh->session_b, read_frame, -1, 0); + switch_core_session_write_video_frame(vh->session_b, read_frame, SWITCH_IO_FLAG_NONE, 0); } vh->up = 0; @@ -164,7 +164,7 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj) if (switch_channel_test_flag(chan_a, CF_SUSPEND)) { status = SWITCH_STATUS_SUCCESS; } else { - status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id); + status = switch_core_session_read_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, stream_id); } if (!SWITCH_READ_ACCEPTABLE(status)) { @@ -250,18 +250,18 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj) #ifndef SWITCH_VIDEO_IN_THREADS if (switch_channel_test_flag(chan_a, CF_VIDEO) && switch_channel_test_flag(chan_b, CF_VIDEO)) { /* read video from 1 channel and write it to the other */ - status = switch_core_session_read_video_frame(session_a, &read_frame, -1, 0); + status = switch_core_session_read_video_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { goto end_of_bridge_loop; } - switch_core_session_write_video_frame(session_b, read_frame, -1, 0); + switch_core_session_write_video_frame(session_b, read_frame, SWITCH_IO_FLAG_NONE, 0); } #endif /* read audio from 1 channel and write it to the other */ - status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id); + status = switch_core_session_read_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, stream_id); if (SWITCH_READ_ACCEPTABLE(status)) { if (switch_test_flag(read_frame, SFF_CNG)) { @@ -269,7 +269,7 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj) } if (status != SWITCH_STATUS_BREAK && !switch_channel_test_flag(chan_a, CF_HOLD)) { - if (switch_core_session_write_frame(session_b, read_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session_b, read_frame, SWITCH_IO_FLAG_NONE, stream_id) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "write: %s Bad Frame....[%u] Bubye!\n", switch_channel_get_name(chan_b), read_frame->datalen); goto end_of_bridge_loop; diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index c8ec1b4cd5..5cc22412d0 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -383,7 +383,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_wait_for_answer(switch_core_session_t message = NULL; } } - status = switch_core_session_read_frame(session, &read_frame, 1000, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } @@ -421,7 +421,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_wait_for_answer(switch_core_session_t } } - if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { break; } } else { @@ -1061,7 +1061,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (session && (ringback_data || !(switch_channel_test_flag(caller_channel, CF_PROXY_MODE) && switch_channel_test_flag(caller_channel, CF_PROXY_MODE))) && (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) { - switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, 1000, 0); + switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(tstatus)) { break; @@ -1100,7 +1100,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } } - if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { break; } } diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 24815ddbf2..b0ec8c7e1b 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -505,7 +505,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *se } } - status = switch_core_session_read_frame(session, &read_frame, -1, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; } @@ -624,7 +624,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_gentones(switch_core_session_t *sessi break; } - status = switch_core_session_read_frame(session, &read_frame, 1000, 0); + status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(status)) { break; @@ -643,7 +643,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_gentones(switch_core_session_t *sessi write_frame.samples = write_frame.datalen / 2; - if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { break; } } @@ -674,7 +674,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess switch_codec_t codec; switch_memory_pool_t *pool = switch_core_session_get_pool(session); char *codec_name; - int stream_id = 0; switch_status_t status = SWITCH_STATUS_SUCCESS; switch_file_handle_t lfh; switch_codec_t *read_codec = NULL; @@ -899,9 +898,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess if (timer_name) { /* start a thread to absorb incoming audio */ - for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) { - switch_core_service_session(session, &thread_session, stream_id); - } + switch_core_service_session(session, &thread_session, 0); } ilen = samples; @@ -1080,14 +1077,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess } #endif #endif - stream_id = 0; - if (fh->vol) { switch_change_sln_volume(write_frame.data, write_frame.datalen / 2, fh->vol); } fh->offset_pos += write_frame.samples / 2; - status = switch_core_session_write_frame(session, &write_frame, -1, stream_id); + status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0); if (status == SWITCH_STATUS_MORE_DATA) { status = SWITCH_STATUS_SUCCESS; @@ -1112,7 +1107,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess switch_yield(10000); } - tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0); + tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (!SWITCH_READ_ACCEPTABLE(tstatus)) { break; @@ -1338,7 +1333,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session switch_size_t ilen = 0; switch_frame_t write_frame = { 0 }; int x; - int stream_id = 0; int done = 0; int lead_in_out = 10; switch_status_t status = SWITCH_STATUS_SUCCESS; @@ -1420,7 +1414,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session if (timer) { write_frame.timestamp = timer->samplecount; } - if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { done = 1; break; } @@ -1490,7 +1484,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session } } else { switch_frame_t *read_frame; - switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0); + switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_HOLD)) { switch_yield(10000); @@ -1518,7 +1512,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session if (timer) { write_frame.timestamp = timer->samplecount; } - if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { done = 1; break; } @@ -1538,7 +1532,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session if (timer) { write_frame.timestamp = timer->samplecount; } - if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) { + if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) { done = 1; break; } @@ -1553,7 +1547,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session } } else { /* time off the channel (if you must) */ switch_frame_t *read_frame; - switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0); + switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_HOLD)) { switch_yield(10000); @@ -1618,7 +1612,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text(switch_core_session_t *ses switch_codec_t lcodec, *codec; switch_memory_pool_t *pool = switch_core_session_get_pool(session); char *codec_name; - int stream_id = 0; switch_status_t status = SWITCH_STATUS_SUCCESS; switch_speech_handle_t lsh, *sh; switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE; @@ -1721,9 +1714,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text(switch_core_session_t *ses switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "setup timer success %u bytes per %d ms!\n", sh->samples * 2, interval); } /* start a thread to absorb incoming audio */ - for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) { - switch_core_service_session(session, &thread_session, stream_id); - } + switch_core_service_session(session, &thread_session, 0); + } status = switch_ivr_speak_text_handle(session, sh, write_frame.codec, timer_name ? timer : NULL, text, args); diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 4302c3192c..b1e8d660b0 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -1094,7 +1094,7 @@ static void do_2833(switch_rtp_t *rtp_session) } } -static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_type, switch_frame_flag_t *flags) +static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags) { switch_size_t bytes = 0; switch_status_t status; @@ -1142,6 +1142,12 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ goto end; } + if (!bytes && (io_flags & SWITCH_IO_FLAG_NOBLOCK)) { + do_cng = 1; + goto cng; + } + + if (rtp_session->timer.interval) { check = (uint8_t) (switch_core_timer_check(&rtp_session->timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS); if (bytes) { @@ -1508,7 +1514,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_queue_rfc2833_in(switch_rtp_t *rtp_se } SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void *data, uint32_t * datalen, - switch_payload_t *payload_type, switch_frame_flag_t *flags) + switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags) { int bytes = 0; @@ -1516,7 +1522,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void return SWITCH_STATUS_FALSE; } - bytes = rtp_common_read(rtp_session, payload_type, flags); + bytes = rtp_common_read(rtp_session, payload_type, flags, io_flags); if (bytes < 0) { *datalen = 0; @@ -1535,7 +1541,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void return SWITCH_STATUS_SUCCESS; } -SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame) +SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame, switch_io_flag_t io_flags) { int bytes = 0; @@ -1543,7 +1549,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp return SWITCH_STATUS_FALSE; } - bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags); + bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags, io_flags); frame->data = rtp_session->recv_msg.body; frame->packet = &rtp_session->recv_msg; @@ -1574,7 +1580,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp } SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_session, - void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags) + void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags) { int bytes = 0; @@ -1582,7 +1588,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_sessi return SWITCH_STATUS_FALSE; } - bytes = rtp_common_read(rtp_session, payload_type, flags); + bytes = rtp_common_read(rtp_session, payload_type, flags, io_flags); *data = rtp_session->recv_msg.body; if (bytes < 0) {