sdp.d.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. export type SDPBlob = string;
  2. export type SDPLine = string;
  3. export type SDPSection = string;
  4. export type SDPDirection = 'sendonly' | 'recvonly' | 'sendrecv' | 'inactive';
  5. export interface SDPIceCandidate {
  6. foundation: string;
  7. component: 'rtp' | 'rtcp' | number;
  8. protocol: 'tcp' | 'udp';
  9. priority: number;
  10. ip: string;
  11. address: string;
  12. port: number;
  13. type: 'host' | 'prflx' | 'srflx' | 'relay';
  14. relatedAddress?: string;
  15. relatedPort?: number;
  16. tcpType?: string;
  17. ufrag?: string;
  18. usernameFragment?: string;
  19. }
  20. export interface SDPIceParameters {
  21. iceLite?: boolean;
  22. usernameFragment: string;
  23. password: string;
  24. }
  25. export interface SDPCodecParameters {
  26. payloadType: number;
  27. preferredPayloadType?: number;
  28. name: string;
  29. clockRate: number;
  30. channels: number;
  31. numChannels?: number;
  32. maxptime?: number;
  33. }
  34. export interface SDPCodecAdditionalParameters {
  35. [key: string]: string;
  36. }
  37. export interface SDPHeaderExtension {
  38. id: number;
  39. direction?: SDPDirection;
  40. uri: string;
  41. atrributes: string | undefined;
  42. }
  43. export interface SDPFeedbackParameter {
  44. type: string;
  45. parameter: string;
  46. }
  47. export interface SDPFingerprint {
  48. algorithm: string;
  49. value: string;
  50. }
  51. export interface SDPDtlsParameters {
  52. role: string;
  53. fingerprints: SDPFingerprint[];
  54. }
  55. export interface SDPMediaSource {
  56. ssrc: number;
  57. attribute?: string;
  58. value?: string;
  59. }
  60. export interface SDPMediaSourceGroup {
  61. semantics: string;
  62. ssrcs: number[];
  63. }
  64. export interface SDPMediaStreamId {
  65. stream: string;
  66. track: string;
  67. }
  68. export interface SDPCodec extends SDPCodecParameters {
  69. payloadType: number;
  70. preferredPayloadType?: number;
  71. parameters?: SDPCodecAdditionalParameters;
  72. rtcpFeedback?: SDPFeedbackParameter[];
  73. }
  74. export interface SDPGroup {
  75. semantics: string;
  76. mids: string[];
  77. }
  78. export interface SDPMLine {
  79. kind: string;
  80. port?: number;
  81. protocol: string;
  82. fmt?: string;
  83. }
  84. export interface SDPOLine {
  85. username: string;
  86. sessionId: string;
  87. sessionVersion: number;
  88. netType: string;
  89. addressType: string;
  90. address: string;
  91. }
  92. export interface SDPRtcpParameters {
  93. cname?: string;
  94. ssrc?: number;
  95. reducedSize?: boolean;
  96. compound?: boolean;
  97. mux?: boolean;
  98. }
  99. export interface SDPEncodingParameters {
  100. ssrc: number;
  101. codecPayloadType?: number;
  102. rtx?: {
  103. ssrc: number;
  104. };
  105. fec?: {
  106. ssrc: number;
  107. mechanism: string;
  108. };
  109. }
  110. export interface SDPRtpCapabilities {
  111. codecs: SDPCodec[];
  112. headerExtensions: SDPHeaderExtension[];
  113. fecMechanisms: string[];
  114. rtcp?: SDPRtcpParameters[];
  115. }
  116. export interface SDPSctpDescription {
  117. port: number;
  118. protocol: string;
  119. maxMessageSize?: number;
  120. }
  121. export const localCname: string;
  122. export function generateIdentifier(): string;
  123. export function splitLines(blob: SDPBlob): SDPLine[];
  124. export function splitSections(blob: SDPBlob): SDPSection[];
  125. export function getDescription(blob: SDPBlob): SDPSection;
  126. export function getMediaSections(blob: SDPBlob): SDPSection[];
  127. export function matchPrefix(blob: SDPBlob, prefix: string): SDPLine[];
  128. export function parseCandidate(line: SDPLine): SDPIceCandidate;
  129. export function writeCandidate(candidate: SDPIceCandidate): SDPLine;
  130. export function parseIceOptions(line: SDPLine): string[];
  131. export function parseRtpMap(line: SDPLine): SDPCodecParameters;
  132. export function writeRtpMap(codec: SDPCodecParameters): SDPLine;
  133. export function parseExtmap(line: SDPLine): SDPHeaderExtension;
  134. export function writeExtmap(headerExtension: SDPHeaderExtension): SDPLine;
  135. export function parseFmtp(line: SDPLine): SDPCodecAdditionalParameters;
  136. export function writeFmtp(codec: SDPCodec): SDPLine;
  137. export function parseRtcpFb(line: SDPLine): SDPFeedbackParameter;
  138. export function writeRtcpFb(codec: SDPCodec): SDPLine[];
  139. export function parseSsrcMedia(line: SDPLine): SDPMediaSource;
  140. export function parseSsrcGroup(line: SDPLine): SDPMediaSourceGroup;
  141. export function getMid(mediaSection: SDPSection): string;
  142. export function parseFingerprint(line: SDPLine): SDPFingerprint;
  143. export function getDtlsParameters(
  144. mediaSection: SDPSection,
  145. session: SDPSection
  146. ): SDPDtlsParameters;
  147. export function writeDtlsParameters(params: SDPDtlsParameters, setupType: string): SDPLine;
  148. export function getIceParameters(
  149. mediaSection: SDPSection,
  150. session: SDPSection
  151. ): SDPIceParameters;
  152. export function writeIceParameters(params: SDPIceParameters): SDPLine;
  153. export function parseRtpParameters(mediaSection: SDPSection): SDPRtpCapabilities;
  154. export function writeRtpDescription(kind: string, caps: SDPRtpCapabilities): SDPSection;
  155. export function parseRtpEncodingParameters(mediaSection: SDPSection): SDPEncodingParameters[];
  156. export function parseRtcpParameters(mediaSection: SDPSection): SDPRtcpParameters;
  157. export function writeRtcpParameters(params: SDPRtcpParameters): SDPLine;
  158. export function parseMsid(mediaSection: SDPSection): SDPMediaStreamId;
  159. export function parseSctpDescription(mediaSection: SDPSection): SDPSctpDescription;
  160. export function writeSctpDescription(
  161. mediaSection: SDPMLine,
  162. desc: SDPSctpDescription
  163. ): SDPSection;
  164. export function generateSessionId(): string;
  165. export function writeSessionBoilerplate(
  166. sessId?: string,
  167. sessVer?: number,
  168. sessUser?: string
  169. ): SDPBlob;
  170. export function getDirection(mediaSection: SDPSection, sessionpart: SDPSection): SDPDirection;
  171. export function getKind(mediaSection: SDPSection): string;
  172. export function isRejected(mediaSection: SDPSection): boolean;
  173. export function parseMLine(mediaSection: SDPSection): SDPMLine;
  174. export function parseOLine(mediaSection: SDPSection): SDPOLine;
  175. export function isValidSDP(blob: SDPBlob): boolean;