diff options
Diffstat (limited to 'src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java')
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java b/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java index c51a96c..e30b12d 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java @@ -36,6 +36,7 @@ import org.jitsi.service.neomedia.*; import org.jitsi.service.neomedia.MediaType; import org.jitsi.service.neomedia.format.*; import org.jitsi.util.*; +import org.opentelecoms.javax.sdp.*; /** * The class contains a number of utility methods that are meant to facilitate @@ -64,7 +65,7 @@ public class SdpUtils /** * A reference to the currently valid SDP factory instance. */ - private static final SdpFactory sdpFactory = SdpFactory.getInstance(); + private static final SdpFactory sdpFactory = new NistSdpFactory(); /** * The name of the SDP attribute that defines zrtp hello hash. @@ -455,8 +456,21 @@ public class SdpUtils while (iter.hasNext()) { Map.Entry<String, String> ntry = iter.next(); - Attribute adv = sdpFactory.createAttribute(ntry.getKey(), - payloadType + " " + ntry.getValue()); + Attribute adv; + switch (ntry.getKey()) + { + // RFC7587, Sect. 7 says there's no payload number for ptime + case "ptime": + case "maxptime": + adv = sdpFactory.createAttribute(ntry.getKey(), + ntry.getValue()); + break; + default: + adv = sdpFactory.createAttribute(ntry.getKey(), + payloadType + " " + ntry.getValue()); + break; + } + mediaAttributes.add(adv); } @@ -567,7 +581,7 @@ public class SdpUtils public static SessionDescription createSessionDescription( InetAddress localAddress, String userName, - Vector<MediaDescription> mediaDescriptions) + List<MediaDescription> mediaDescriptions) throws OperationFailedException { SessionDescription sessDescr = null; @@ -613,8 +627,9 @@ public class SdpUtils sessDescr.setConnection(c); if ( mediaDescriptions != null) - sessDescr.setMediaDescriptions(mediaDescriptions); - + { + sessDescr.setMediaDescriptions( new Vector<>(mediaDescriptions)); + } return sessDescr; } catch (SdpException exc) @@ -655,7 +670,7 @@ public class SdpUtils public static SessionDescription createSessionUpdateDescription( SessionDescription descToUpdate, InetAddress newConnectionAddress, - Vector<MediaDescription> newMediaDescriptions) + List<MediaDescription> newMediaDescriptions) throws OperationFailedException { SessionDescription update = createSessionDescription( @@ -1711,7 +1726,7 @@ public class SdpUtils * <tt>descs</tt> <tt>Vector</tt>. */ private static MediaDescription removeMediaDesc( - Vector<MediaDescription> descs, + List<MediaDescription> descs, MediaType type) { for (Iterator<MediaDescription> i = descs.iterator(); i.hasNext();) |