diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.c b/src/mod/endpoints/mod_loopback/mod_loopback.c index c1245b14bf..f3c001d1b7 100644 --- a/src/mod/endpoints/mod_loopback/mod_loopback.c +++ b/src/mod/endpoints/mod_loopback/mod_loopback.c @@ -702,6 +702,11 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s switch_frame_t *frame = (switch_frame_t *) pop; switch_frame_free(&frame); } + /* avoid endless loop by not forwarding it when it came from this same place */ + if (tech_pvt->other_session && strcmp(msg->_file, __FILE__)) { + /* pass message over to the other leg */ + switch_core_session_receive_message(tech_pvt->other_session, msg); + } } break; default: