void SdpHelper::DisableMsection(Sdp* sdp, SdpMediaSection* msection) { // Make sure to remove the mid from any group attributes if (msection->GetAttributeList().HasAttribute(SdpAttribute::kMidAttribute)) { std::string mid = msection->GetAttributeList().GetMid(); if (sdp->GetAttributeList().HasAttribute(SdpAttribute::kGroupAttribute)) { UniquePtr<SdpGroupAttributeList> newGroupAttr(new SdpGroupAttributeList( sdp->GetAttributeList().GetGroup())); newGroupAttr->RemoveMid(mid); sdp->GetAttributeList().SetAttribute(newGroupAttr.release()); } } // Clear out attributes. msection->GetAttributeList().Clear(); auto* direction = new SdpDirectionAttribute(SdpDirectionAttribute::kInactive); msection->GetAttributeList().SetAttribute(direction); msection->SetPort(0); msection->ClearCodecs(); // We need to have something here to fit the grammar, this seems safe. msection->AddCodec("0", "PCMU", 8000, 1); }
void SdpHelper::DisableMsection(Sdp* sdp, SdpMediaSection* msection) { // Make sure to remove the mid from any group attributes if (msection->GetAttributeList().HasAttribute(SdpAttribute::kMidAttribute)) { std::string mid = msection->GetAttributeList().GetMid(); if (sdp->GetAttributeList().HasAttribute(SdpAttribute::kGroupAttribute)) { UniquePtr<SdpGroupAttributeList> newGroupAttr(new SdpGroupAttributeList( sdp->GetAttributeList().GetGroup())); newGroupAttr->RemoveMid(mid); sdp->GetAttributeList().SetAttribute(newGroupAttr.release()); } } // Clear out attributes. msection->GetAttributeList().Clear(); auto* direction = new SdpDirectionAttribute(SdpDirectionAttribute::kInactive); msection->GetAttributeList().SetAttribute(direction); msection->SetPort(0); msection->ClearCodecs(); auto mediaType = msection->GetMediaType(); switch (mediaType) { case SdpMediaSection::kAudio: msection->AddCodec("0", "PCMU", 8000, 1); break; case SdpMediaSection::kVideo: msection->AddCodec("120", "VP8", 90000, 1); break; case SdpMediaSection::kApplication: msection->AddDataChannel("5000", "rejected", 0); break; default: // We need to have something here to fit the grammar, this seems safe // and 19 is a reserved payload type which should not be used by anyone. msection->AddCodec("19", "reserved", 8000, 1); } }
void SdpHelper::DisableMsection(Sdp* sdp, SdpMediaSection* msection) const { // Make sure to remove the mid from any group attributes if (msection->GetAttributeList().HasAttribute(SdpAttribute::kMidAttribute)) { std::string mid = msection->GetAttributeList().GetMid(); if (sdp->GetAttributeList().HasAttribute(SdpAttribute::kGroupAttribute)) { UniquePtr<SdpGroupAttributeList> newGroupAttr(new SdpGroupAttributeList( sdp->GetAttributeList().GetGroup())); newGroupAttr->RemoveMid(mid); sdp->GetAttributeList().SetAttribute(newGroupAttr.release()); } } // Clear out attributes. msection->GetAttributeList().Clear(); auto* direction = new SdpDirectionAttribute(SdpDirectionAttribute::kInactive); msection->GetAttributeList().SetAttribute(direction); msection->SetPort(0); }