221 lines
5.7 KiB
TypeScript
221 lines
5.7 KiB
TypeScript
export type SDPBlob = string;
|
|
export type SDPLine = string;
|
|
export type SDPSection = string;
|
|
|
|
export type SDPDirection = 'sendonly' | 'recvonly' | 'sendrecv' | 'inactive';
|
|
|
|
export interface SDPIceCandidate {
|
|
foundation: string;
|
|
component: 'rtp' | 'rtcp' | number;
|
|
protocol: 'tcp' | 'udp';
|
|
priority: number;
|
|
ip: string;
|
|
address: string;
|
|
port: number;
|
|
type: 'host' | 'prflx' | 'srflx' | 'relay';
|
|
relatedAddress?: string;
|
|
relatedPort?: number;
|
|
tcpType?: string;
|
|
ufrag?: string;
|
|
usernameFragment?: string;
|
|
}
|
|
|
|
export interface SDPIceParameters {
|
|
iceLite?: boolean;
|
|
usernameFragment: string;
|
|
password: string;
|
|
}
|
|
|
|
export interface SDPCodecParameters {
|
|
payloadType: number;
|
|
preferredPayloadType?: number;
|
|
name: string;
|
|
clockRate: number;
|
|
channels: number;
|
|
numChannels?: number;
|
|
maxptime?: number;
|
|
}
|
|
|
|
export interface SDPCodecAdditionalParameters {
|
|
[key: string]: string;
|
|
}
|
|
|
|
export interface SDPHeaderExtension {
|
|
id: number;
|
|
direction?: SDPDirection;
|
|
uri: string;
|
|
atrributes: string | undefined;
|
|
}
|
|
|
|
export interface SDPFeedbackParameter {
|
|
type: string;
|
|
parameter: string;
|
|
}
|
|
|
|
export interface SDPFingerprint {
|
|
algorithm: string;
|
|
value: string;
|
|
}
|
|
|
|
export interface SDPDtlsParameters {
|
|
role: string;
|
|
fingerprints: SDPFingerprint[];
|
|
}
|
|
|
|
export interface SDPMediaSource {
|
|
ssrc: number;
|
|
attribute?: string;
|
|
value?: string;
|
|
}
|
|
|
|
export interface SDPMediaSourceGroup {
|
|
semantics: string;
|
|
ssrcs: number[];
|
|
}
|
|
|
|
export interface SDPMediaStreamId {
|
|
stream: string;
|
|
track: string;
|
|
}
|
|
|
|
export interface SDPCodec extends SDPCodecParameters {
|
|
payloadType: number;
|
|
preferredPayloadType?: number;
|
|
parameters?: SDPCodecAdditionalParameters;
|
|
rtcpFeedback?: SDPFeedbackParameter[];
|
|
}
|
|
|
|
export interface SDPGroup {
|
|
semantics: string;
|
|
mids: string[];
|
|
}
|
|
|
|
export interface SDPMLine {
|
|
kind: string;
|
|
port?: number;
|
|
protocol: string;
|
|
fmt?: string;
|
|
}
|
|
|
|
export interface SDPOLine {
|
|
username: string;
|
|
sessionId: string;
|
|
sessionVersion: number;
|
|
netType: string;
|
|
addressType: string;
|
|
address: string;
|
|
}
|
|
|
|
export interface SDPRtcpParameters {
|
|
cname?: string;
|
|
ssrc?: number;
|
|
reducedSize?: boolean;
|
|
compound?: boolean;
|
|
mux?: boolean;
|
|
}
|
|
|
|
export interface SDPEncodingParameters {
|
|
ssrc: number;
|
|
codecPayloadType?: number;
|
|
rtx?: {
|
|
ssrc: number;
|
|
};
|
|
fec?: {
|
|
ssrc: number;
|
|
mechanism: string;
|
|
};
|
|
}
|
|
|
|
export interface SDPRtpCapabilities {
|
|
codecs: SDPCodec[];
|
|
headerExtensions: SDPHeaderExtension[];
|
|
fecMechanisms: string[];
|
|
rtcp?: SDPRtcpParameters[];
|
|
}
|
|
|
|
export interface SDPSctpDescription {
|
|
port: number;
|
|
protocol: string;
|
|
maxMessageSize?: number;
|
|
}
|
|
|
|
export const localCname: string;
|
|
|
|
export function generateIdentifier(): string;
|
|
|
|
export function splitLines(blob: SDPBlob): SDPLine[];
|
|
export function splitSections(blob: SDPBlob): SDPSection[];
|
|
|
|
export function getDescription(blob: SDPBlob): SDPSection;
|
|
export function getMediaSections(blob: SDPBlob): SDPSection[];
|
|
|
|
export function matchPrefix(blob: SDPBlob, prefix: string): SDPLine[];
|
|
|
|
export function parseCandidate(line: SDPLine): SDPIceCandidate;
|
|
export function writeCandidate(candidate: SDPIceCandidate): SDPLine;
|
|
|
|
export function parseIceOptions(line: SDPLine): string[];
|
|
|
|
export function parseRtpMap(line: SDPLine): SDPCodecParameters;
|
|
export function writeRtpMap(codec: SDPCodecParameters): SDPLine;
|
|
|
|
export function parseExtmap(line: SDPLine): SDPHeaderExtension;
|
|
export function writeExtmap(headerExtension: SDPHeaderExtension): SDPLine;
|
|
|
|
export function parseFmtp(line: SDPLine): SDPCodecAdditionalParameters;
|
|
export function writeFmtp(codec: SDPCodec): SDPLine;
|
|
|
|
export function parseRtcpFb(line: SDPLine): SDPFeedbackParameter;
|
|
export function writeRtcpFb(codec: SDPCodec): SDPLine[];
|
|
|
|
export function parseSsrcMedia(line: SDPLine): SDPMediaSource;
|
|
export function parseSsrcGroup(line: SDPLine): SDPMediaSourceGroup;
|
|
|
|
export function getMid(mediaSection: SDPSection): string;
|
|
|
|
export function parseFingerprint(line: SDPLine): SDPFingerprint;
|
|
|
|
export function getDtlsParameters(
|
|
mediaSection: SDPSection,
|
|
session: SDPSection
|
|
): SDPDtlsParameters;
|
|
export function writeDtlsParameters(params: SDPDtlsParameters, setupType: string): SDPLine;
|
|
|
|
export function getIceParameters(
|
|
mediaSection: SDPSection,
|
|
session: SDPSection
|
|
): SDPIceParameters;
|
|
export function writeIceParameters(params: SDPIceParameters): SDPLine;
|
|
|
|
export function parseRtpParameters(mediaSection: SDPSection): SDPRtpCapabilities;
|
|
export function writeRtpDescription(kind: string, caps: SDPRtpCapabilities): SDPSection;
|
|
|
|
export function parseRtpEncodingParameters(mediaSection: SDPSection): SDPEncodingParameters[];
|
|
|
|
export function parseRtcpParameters(mediaSection: SDPSection): SDPRtcpParameters;
|
|
export function writeRtcpParameters(params: SDPRtcpParameters): SDPLine;
|
|
|
|
export function parseMsid(mediaSection: SDPSection): SDPMediaStreamId;
|
|
|
|
export function parseSctpDescription(mediaSection: SDPSection): SDPSctpDescription;
|
|
export function writeSctpDescription(
|
|
mediaSection: SDPMLine,
|
|
desc: SDPSctpDescription
|
|
): SDPSection;
|
|
|
|
export function generateSessionId(): string;
|
|
export function writeSessionBoilerplate(
|
|
sessId?: string,
|
|
sessVer?: number,
|
|
sessUser?: string
|
|
): SDPBlob;
|
|
|
|
export function getDirection(mediaSection: SDPSection, sessionpart: SDPSection): SDPDirection;
|
|
export function getKind(mediaSection: SDPSection): string;
|
|
export function isRejected(mediaSection: SDPSection): boolean;
|
|
|
|
export function parseMLine(mediaSection: SDPSection): SDPMLine;
|
|
export function parseOLine(mediaSection: SDPSection): SDPOLine;
|
|
|
|
export function isValidSDP(blob: SDPBlob): boolean;
|