[sip-comm] bug report - audio video reception


#1

Hi all,
  
  I think i have found two bugs in the sip-communicator.
  
  First the sip-communicator wont receive any media types that it is not able to transmit. That is suppose if one side is able to transmit both video and audio, and other peer is able to transmit only audio. Then the peer which is not able to transmit video will not receive the video transmitted by the other end.
  
  This is coz in the net.java.sip.communicator.media.MediaManager.openMediaStreams(String sdpData) function it checks if the mediaType is transmittable before adding the remote addresses and ports to the ArrayLists which is used to create the AVTransmitters and AVReceivers. So it wont add the details of those mediaTypes to the arraylist if it is not transmittable.
  
  The code mentioned is :
  
                       if (isMediaTransmittable(mediaType)) {
                           mediaTypes.add(mediaType);
                           remoteAddresses.add(mediaRemoteAddress);
                           ports.add(new Integer(mediaPort));
                           formatSets.add(extractTransmittableJmfFormats(
                               sdpFormats));
                      }
                      else{
                           //nothing to transmit here so skip setting the flag
                           //bug report and fix - Gary M. Levin - Telecordia
                           continue;
                      }
  
  It should be modified as:
  
                       if (isMediaReceivable(mediaType)) {
                            remoteAddresses.add(mediaRemoteAddress);
                           mediaTypes.add(mediaType);
  
                      }
                       if (isMediaTransmittable(mediaType)) {
                           ports.add(new Integer(mediaPort));
                           formatSets.add(extractTransmittableJmfFormats(
                               sdpFormats));
                      }
                      else{
                           continue;
                      }
  
  In the isMediaReceivable() fn you can check if the mediaType is "audio" or "video".
  
  The Second bug is that. As i understand if one is sending
  m=audio 22224 RTP/AVP 0 3 4 5 6 8 15 18
  in its SDP then the port 22224 is the port to which the audio will be transmitted by that appln. But in Sip-Communicator the audio is transmitted to the port that comes from the "m field" of the SDP description of the peer and not that is send by itself. Well if both the sides are running sipcommunicator as the clients then it wont come to picture. But some other appln may be expecting the media to be transmitted to the port that is specified in the SDP send by us and not to the port that is in the SDP send by them.
  
  I hope this is help ful.
  
  With Regards,
  Litty Preeth

···

---------------------------------
Yahoo! FareChase - Search multiple travel sites in one click.


#2

Hello Litty,

Thanks for reporting that one. Martin is currently working on the media service for 1.0, so I guess he'll take that into account. There is a chance however, that it may be a little while before we get down to it.

Thanks again!
Emil

Litty Preeth wrote:

···

Hi all,

I think i have found two bugs in the sip-communicator.

First the sip-communicator wont receive any media types that it is not able to transmit. That is suppose if one side is able to transmit both video and audio, and other peer is able to transmit only audio. Then the peer which is not able to transmit video will not receive the video transmitted by the other end.

This is coz in the net.java.sip.communicator.media.MediaManager.openMediaStreams(String sdpData) function it checks if the mediaType is transmittable before adding the remote addresses and ports to the ArrayLists which is used to create the AVTransmitters and AVReceivers. So it wont add the details of those mediaTypes to the arraylist if it is not transmittable.

The code mentioned is :

                    if (isMediaTransmittable(mediaType)) {
                        mediaTypes.add(mediaType);
                        remoteAddresses.add(mediaRemoteAddress);
                        ports.add(new Integer(mediaPort));
                        formatSets.add(extractTransmittableJmfFormats(
                            sdpFormats));
                    }
                    else{
                        //nothing to transmit here so skip setting the flag
                        //bug report and fix - Gary M. Levin - Telecordia
                        continue;
                    }

It should be modified as:

                    if (isMediaReceivable(mediaType)) {
                        remoteAddresses.add(mediaRemoteAddress);
                        mediaTypes.add(mediaType);

                    }
                    if (isMediaTransmittable(mediaType)) {
                        ports.add(new Integer(mediaPort));
                        formatSets.add(extractTransmittableJmfFormats(
                            sdpFormats));
                    }
                    else{
                        continue;
                    }

In the isMediaReceivable() fn you can check if the mediaType is "audio" or "video"! .

The Second bug is that. As i understand if one is sending
m=audio 22224 RTP/AVP 0 3 4 5 6 8 15 18
in its SDP then the port 22224 is the port to which the audio will be transmitted by that appln. But in Sip-Communicator the audio is transmitted to the port that comes from the "m field" of the SDP description of the peer and not that is send by itself. Well if both the sides are running sipcommunicator as the clients then it wont come to picture. But some other appln may be expecting the media to be transmitted to the port that is specified in the SDP send by us and not to the port that is in the SDP send by them.

I hope this is help ful.

With Regards,
Litty Preeth

------------------------------------------------------------------------
Yahoo! FareChase - Search multiple travel sites in one click. <http://us.lrd.yahoo.com/_ylc=X3oDMTFqODRtdXQ4BF9TAzMyOTc1MDIEX3MDOTY2ODgxNjkEcG9zAzEEc2VjA21haWwtZm9vdGVyBHNsawNmYw--/SIG=110oav78o/**http%3A//farechase.yahoo.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: users-help@sip-communicator.dev.java.net