# README
Pion SDP
A Go implementation of the SDP
See DESIGN.md for an overview of features and future goals.
Roadmap
The library is used as a part of our WebRTC implementation. Please refer to that roadmap to track our major milestones.
Community
Pion has an active community on the Golang Slack. Sign up and join the #pion channel for discussions and support. You can also use Pion mailing list.
We are always looking to support your projects. Please reach out if you have something to build!
If you need commercial support or don't want to use public methods you can contact us at [email protected]
Contributing
Check out the contributing wiki to join the group of amazing people making this project possible:
- John Bradley - Original Author
- Sean DuBois - Original Author
- Michiel De Backker - Public API, Initialization
- Konstantin Itskov - Fix documentation
- chenkaiC4 - Fix GolangCI Linter
- Woodrow Douglass RTCP, RTP improvements, G.722 support, Bugfixes
License
MIT License - see LICENSE for full text
# Functions
NewAttribute constructs a new attribute.
NewJSEPMediaDescription creates a new MediaName with some settings that are required by the JSEP spec.
NewJSEPSessionDescription creates a new SessionDescription with some settings that are required by the JSEP spec.
NewPropertyAttribute constructs a new attribute.
# Constants
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
Constants for SDP attributes used in JSEP.
ConnectionRoleActive indicates the endpoint will initiate an outgoing connection.
ConnectionRoleActpass indicates the endpoint is willing to accept an incoming connection or to initiate an outgoing connection.
ConnectionRoleHoldconn indicates the endpoint does not want the connection to be established for the time being.
ConnectionRolePassive indicates the endpoint will accept an incoming connection.
Constants for semantic tokens used in JSEP.
Constants for semantic tokens used in JSEP.
Constants for semantic tokens used in JSEP.
Constants for semantic tokens used in JSEP.
# Structs
Address desribes a structured address token from within the "c=" field.
Attribute describes the "a=" field which represents the primary means for extending SDP.
Bandwidth describes an optional field which denotes the proposed bandwidth to be used by the session or media.
Codec represents a codec.
ConnectionInformation defines the representation for the "c=" field containing connection data.
ICECandidate is used to (un)marshal ICE candidates.
ICECandidateAttribute represents an ICE candidate extension attribute.
MediaDescription represents a media type.
MediaName describes the "m=" field storage structure.
Origin defines the structure for the "o=" field which provides the originator of the session plus a session identifier and version number.
RangedPort supports special format for the media field "m=" port value.
RepeatTime describes the "r=" fields of the session description which represents the intervals and durations for repeated scheduled sessions.
SessionDescription is a a well-defined format for conveying sufficient information to discover and participate in a multimedia session.
TimeDescription describes "t=", "r=" fields of the session description which are used to specify the start and stop times for a session as well as repeat intervals and durations for the scheduled session.
TimeZone defines the structured object for "z=" line which describes repeated sessions scheduling.
Timing defines the "t=" field's structured representation for the start and stop times.
# Type aliases
ConnectionRole indicates which of the end points should initiate the connection establishment.
EmailAddress describes a structured representations for the "e=" line which specifies email contact information for the person responsible for the conference.
EncryptionKey describes the "k=" which conveys encryption key information.
Information describes the "i=" field which provides textual information about the session.
PhoneNumber describes a structured representations for the "p=" line specify phone contact information for the person responsible for the conference.
SessionName describes a structured representations for the "s=" field and is the textual session name.
Version describes the value provided by the "v=" field which gives the version of the Session Description Protocol.