@@ -25,48 +25,55 @@ var (
25
25
// (namely s1, s2, s3, ...) for a parsing procedure that complies with the
26
26
// specifications laid out by the rfc4566#section-5 as well as by JavaScript
27
27
// Session Establishment Protocol draft. Links:
28
- // https://tools.ietf.org/html/rfc4566#section-5
29
- // https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24
28
+ //
29
+ // https://tools.ietf.org/html/rfc4566#section-5
30
+ // https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24
30
31
//
31
32
// https://tools.ietf.org/html/rfc4566#section-5
32
33
// Session description
33
- // v= (protocol version)
34
- // o= (originator and session identifier)
35
- // s= (session name)
36
- // i=* (session information)
37
- // u=* (URI of description)
38
- // e=* (email address)
39
- // p=* (phone number)
40
- // c=* (connection information -- not required if included in
41
- // all media)
42
- // b=* (zero or more bandwidth information lines)
43
- // One or more time descriptions ("t=" and "r=" lines; see below)
44
- // z=* (time zone adjustments)
45
- // k=* (encryption key)
46
- // a=* (zero or more session attribute lines)
47
- // Zero or more media descriptions
34
+ //
35
+ // v= (protocol version)
36
+ // o= (originator and session identifier)
37
+ // s= (session name)
38
+ // i=* (session information)
39
+ // u=* (URI of description)
40
+ // e=* (email address)
41
+ // p=* (phone number)
42
+ // c=* (connection information -- not required if included in
43
+ // all media)
44
+ // b=* (zero or more bandwidth information lines)
45
+ // One or more time descriptions ("t=" and "r=" lines; see below)
46
+ // z=* (time zone adjustments)
47
+ // k=* (encryption key)
48
+ // a=* (zero or more session attribute lines)
49
+ // Zero or more media descriptions
48
50
//
49
51
// Time description
50
- // t= (time the session is active)
51
- // r=* (zero or more repeat times)
52
+ //
53
+ // t= (time the session is active)
54
+ // r=* (zero or more repeat times)
52
55
//
53
56
// Media description, if present
54
- // m= (media name and transport address)
55
- // i=* (media title)
56
- // c=* (connection information -- optional if included at
57
- // session level)
58
- // b=* (zero or more bandwidth information lines)
59
- // k=* (encryption key)
60
- // a=* (zero or more media attribute lines)
57
+ //
58
+ // m= (media name and transport address)
59
+ // i=* (media title)
60
+ // c=* (connection information -- optional if included at
61
+ // session level)
62
+ // b=* (zero or more bandwidth information lines)
63
+ // k=* (encryption key)
64
+ // a=* (zero or more media attribute lines)
61
65
//
62
66
// In order to generate the following state table and draw subsequent
63
67
// deterministic finite-state automota ("DFA") the following regex was used to
64
68
// derive the DFA:
65
- // vosi?u?e?p?c?b*(tr*)+z?k?a*(mi?c?b*k?a*)*
69
+ //
70
+ // vosi?u?e?p?c?b*(tr*)+z?k?a*(mi?c?b*k?a*)*
71
+ //
66
72
// possible place and state to exit:
67
- // ** * * * ** * * * *
68
- // 99 1 1 1 11 1 1 1 1
69
- // 3 1 1 26 5 5 4 4
73
+ //
74
+ // ** * * * ** * * * *
75
+ // 99 1 1 1 11 1 1 1 1
76
+ // 3 1 1 26 5 5 4 4
70
77
//
71
78
// Please pay close attention to the `k`, and `a` parsing states. In the table
72
79
// below in order to distinguish between the states belonging to the media
0 commit comments