aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java
diff options
context:
space:
mode:
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.java31
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();)