📄 megaco_sdp.hrl
字号:
%% ``The contents of this file are subject to the Erlang Public License,%% Version 1.1, (the "License"); you may not use this file except in%% compliance with the License. You should have received a copy of the%% Erlang Public License along with this software. If not, it can be%% retrieved via the world wide web at http://www.erlang.org/.%% %% Software distributed under the License is distributed on an "AS IS"%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See%% the License for the specific language governing rights and limitations%% under the License.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %% $Id$%%%%----------------------------------------------------------------------%% Purpose: %%----------------------------------------------------------------------%%%%%% Explanaition of the fields in the SDP body%% (See RFC 2327 and RFC 3266 for the complete decription)%%%% Session descriptions%%%% v protocol version%% o owner/creator and session identifier %% s session name (not used)%% i session information (not used)%% u URI of description (not used)%% e email address (not used)%% p phone number (not used) %% c connection information%% b bandwidth information%% z time zone adjustment%% k encryption key%% a zero or more session attribute lines%% Zero or more media descriptions%%%% Time descriptions%%%% t time the session is active%% r zero or more repeat times%% %% Media descriptions%%%% m media name and transport address%% i media title%% c connection information - optional if included at session-level%% b bandwidth information%% k encryption key%% a zero or more media attribute lines%%%% An SDP-body is a list of the folowing tuples%%%% {FieldID, FieldValue} where%%%% FieldID = atom()%% FiledValue is a term()%%%% FieldID FieldValue%% %% o #megaco_sdp_o{}%% c #megaco_sdp_c{}%% m #megaco_sdp_m{}%% a #megaco_sdp_a_rtpmap{} iff 'att-field'=rtpmap%% a #megaco_sdp_a_ptime{} iff 'att-field'=ptime%% <other> string()%%%% An example SDP description is:%%%% v=0%% o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4%% s=SDP Seminar%% i=A Seminar on the session description protocol%% u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps%% e=mjh@isi.edu (Mark Handley)%% c=IN IP4 224.2.17.12/127%% t=2873397496 2873404696%% a=recvonly%% m=audio 49170 RTP/AVP 0%% m=video 51372 RTP/AVP 31%% m=application 32416 udp wb%% a=orient:portrait%% %% %% An example SDP description with IPv6 addresses%%%% v=0%% o=nasa1 971731711378798081 0 IN IP6 2201:056D::112E:144A:1E24%% s=(Almost) live video feed from Mars-II satellite%% p=+1 713 555 1234%% c=IN IP6 FF1E:03AD::7F2E:172A:1E24%% t=3338481189 3370017201%% m=audio 6000 RTP/AVP 2%% a=rtpmap:2 G726-32/8000%% m=video 6024 RTP/AVP 107%% a=rtpmap:107 H263-1998/90000%% %%-----------------------------------------------------------------------ifndef(megaco_sdp_).-define(megaco_sdp_, true).%% ===================================================================%% %% Protocol Version%% %% v=0%% %% This field gives the version of the Session Description Protocol.%% There is no minor version number.%% -record(megaco_sdp_v, { version % integer() } ).%% ===================================================================%% %% Origin%%%% o=<username> <session id> <version> <network type> <address type>%% <address>%%%% The "o=" field gives the originator of the session (their username%% and the address of the user's host) plus a session id and session%% version number.%%%% <username> is the user's login on the originating host, or it is%% "-" if the originating host does not support the concept of user%% ids. <username> must not contain spaces. <session id> is a%% numeric string such that the tuple of <username>, <session id>,%% <network type>, <address type> and <address> form a globally unique%% identifier for the session.%%%% The method of <session id> allocation is up to the creating tool,%% but it has been suggested that a Network Time Protocol (NTP)%% timestamp be used to ensure uniqueness [1].%%%% <version> is a version number for this announcement. It is needed%% for proxy announcements to detect which of several announcements%% for the same session is the most recent. Again its usage is up to%% the creating tool, so long as <version> is increased when a%% modification is made to the session data. Again, it is recommended%% (but not mandatory) that an NTP timestamp is used.%%%% <network type> is a text string giving the type of network.%% Initially "IN" is defined to have the meaning "Internet". %% %% <address type> is a text string giving the type of the address %% that follows. Initially "IP4" and "IP6" are defined. %% %% <address> is the globally unique address of the machine from which%% the session was created. For an address type of IP4, this is%% either the fully-qualified domain name of the machine, or the%% dotted-decimal representation of the IP version 4 address of the%% machine. For an address type of IP6, this is either the%% fully-qualified domain name of the machine, or the compressed%% textual representation of the IP version 6 address of the machine.%% For both IP4 and IP6, the fully-qualified domain name is the form%% that SHOULD be given unless this is unavailable, in which case the%% globally unique address may be substituted. A local IP address%% MUST NOT be used in any context where the SDP description might%% leave the scope in which the address is meaningful.%%%% In general, the "o=" field serves as a globally unique identifier%% for this version of this session description, and the subfields%% excepting the version taken together identify the session%% irrespective of any modifications.%% -record(megaco_sdp_o, { user_name, % string() session_id, % integer() version, % integer() network_type = in, % in | string() address_type = ip4, % ip4 | ip6 | string() address % string() } ).%% ===================================================================%% %% Session Name%%%% s=<session name>%%%% The "s=" field is the session name. There must be one and only one%% "s=" field per session description, and it must contain ISO 10646%% characters.%% -record(megaco_sdp_s, { name % string() } ).%% ===================================================================%% %% Session and Media Information%%%% i=<session description>%%%% The "i=" field is information about the session. There may be at%% most one session-level "i=" field per session description, and at%% most one "i=" field per media. Although it may be omitted, this is%% discouraged for session announcements, and user interfaces for%% composing sessions should require text to be entered. If it is%% present it must contain ISO 10646 characters.%%%% A single "i=" field can also be used for each media definition. In%% media definitions, "i=" fields are primarily intended for labeling%% media streams. As such, they are most likely to be useful when a%% single session has more than one distinct media stream of the same%% media type. An example would be two different whiteboards, one for%% slides and one for feedback and questions.%% -record(megaco_sdp_i, { session_descriptor % string() } ).%% ===================================================================%% %% URI%%%% u=<URI>%%%% o A URI is a Universal Resource Identifier as used by WWW clients%%%% o The URI should be a pointer to additional information about the%% conference%%%% o This field is optional, but if it is present it should be specified%% before the first media field%%%% o No more than one URI field is allowed per session description%% -record(megaco_sdp_u, { uri % string() } ).%% ===================================================================%% %% Email Address and Phone Number%%%% e=<email address>%% p=<phone number>%%%% o These specify contact information for the person responsible for%% the conference. This is not necessarily the same person that%% created the conference announcement.%%%% o Either an email field or a phone field must be specified.%% Additional email and phone fields are allowed.%%%% o If these are present, they should be specified before the first%% media field.%%%% o More than one email or phone field can be given for a session%% description.%%%% o Phone numbers should be given in the conventional international%% format - preceded by a "+ and the international country code.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -