示例#1
0
 public MediaDestination getMediaDestination(SessionDescription sessionDescription)
     throws NoCodecException {
   InetAddress destAddress = sessionDescription.getIpAddress();
   List<MediaDescription> mediaDescriptions = sessionDescription.getMediaDescriptions();
   for (MediaDescription mediaDescription : mediaDescriptions) {
     if (RFC4566.MEDIA_AUDIO.equals(mediaDescription.getType())) {
       for (Codec offerCodec : mediaDescription.getCodecs()) {
         if (supportedCodecs.contains(offerCodec)) {
           String offerCodecName = offerCodec.getName();
           if (offerCodecName.equalsIgnoreCase(RFC3551.PCMU)
               || offerCodecName.equalsIgnoreCase(RFC3551.PCMA)) {
             int destPort = mediaDescription.getPort();
             if (mediaDescription.getIpAddress() != null) {
               destAddress = mediaDescription.getIpAddress();
             }
             MediaDestination mediaDestination = new MediaDestination();
             mediaDestination.setDestination(destAddress.getHostAddress());
             mediaDestination.setPort(destPort);
             mediaDestination.setCodec(offerCodec);
             return mediaDestination;
           }
         }
       }
     }
   }
   throw new NoCodecException();
 }