RestComm / media-core

RMS - Restcomm Media Server for Real Time Cloud Communications
http://www.restcomm.com/
GNU Affero General Public License v3.0
160 stars 124 forks source link

mute message to mediaserver cause buffer overflow #165

Closed maria-farooq closed 7 years ago

maria-farooq commented 8 years ago

Hi @hrosa ,

what am i doing

I am adding mute unmute feature in conference API.

Code Changes

code changes are in this method: https://github.com/RestComm/Restcomm-Connect/pull/991/files#diff-4edb5fb66002dc96d4ba5d2e6ac4ca33R250 When a conference is first started I try to mute one participant:

what happen when testing this api call

Call get muted.

Problem?

mediaserver show a lot of buffer overflow

evidence

attached in https://github.com/RestComm/Restcomm-Connect/issues/5#issuecomment-222647650

Brief logs

in mediaserver log

2016-05-31 15:02:57,074 DEBUG [RtpMember] (service-scheduler-2) rtt=3755021041 - 0 - 0 = 3755021041 => 65536ms
2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Receive  message 81 bytes length
2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Parsing message: MDCX 147483691 mobicents/bridge/1@172.20.10.2:2427 MGCP 1.0
C:1
I:5de
M:sendonly

2016-05-31 15:02:59,792 DEBUG [MgcpProvider] (service-scheduler-2) Dispatching message
2016-05-31 15:02:59,792 INFO  [MgcpTransaction] (service-scheduler-2) tx=147483691 Started, message= MDCX mobicents/bridge/1@172.20.10.2:2427, call agent = /172.20.10.2:2727
2016-05-31 15:02:59,919 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 15:02:59,939 WARN  [JitterBuffer] (service-scheduler-3) Buffer overflow!
2016-05-31 15:02:59,958 WARN  [JitterBuffer] (service-scheduler-2) Buffer overflow!
2016-05-31 15:02:59,979 WARN  [JitterBuffer] (service-scheduler-1) Buffer overflow!

and here onward Buffer overflow continuous

what clients am i using

i tested with X-lite, jitsi and Linphone

hrosa commented 8 years ago

tks @maria-farooq

Can you provide steps to reproduce this problem and point us to a RestComm tag/branch containing your work?

Thank you

maria-farooq commented 8 years ago

My work:

https://github.com/maria-farooq/RestComm-Connect/tree/issue-5

Steps to Prepare the system

Disclaimer! These steps are for a fresh installation on a machine. These steps will remove database and replace existing script files. Please run only on a test machine.

  • Download latest restcomm binaries
  • Build the branch mvn clean install -Dmaven.test.skip
  • Replace jars
rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/*
cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/lib/* $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/
rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/data/hsql/restcomm.script

cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/data/hsql/restcomm.script $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/data/hsql/restcomm.script

rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/sql

cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/sql $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/sql

rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/scripts/sql/init.sql

cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/scripts/sql/init.sql $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/scripts/sql/init.sql

rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/scripts/mariadb/

cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/scripts/mariadb/ $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/scripts/mariadb/

rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/conf/mybatis.xml 

cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/conf/mybatis.xml $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/conf/mybatis.xml

rm -rf $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/conf/restcomm.xml 

cp -r $RESTCOMM_SOURCE/restcomm/restcomm.application/target/restcomm/WEB-INF/conf/restcomm.xml $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/conf/restcomm.xml

Steps to reproduce

curl -H "Authorization: Basic <MY_ENCODED_CREDENTIALS>" http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences

http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/{ConferenceSid}/Participants

http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/{ConferenceSid}/Participants/{CallSid}

curl -X POST http://IP:8080/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Conferences/{ConferenceSid}/Participants/{CallSid} -d "Muted=true" -H "Authorization: Basic <MY_ENCODED_CREDENTIALS>"

deruelle commented 8 years ago

@maria-farooq do you want to try to investigate the issue here as well under @hrosa guidance ?

maria-farooq commented 8 years ago

@deruelle yes, it will be a great learning opportunity.

maria-farooq commented 7 years ago

not happening in RMS5 just tested on staging. connection is modified normally on mute and unmute