{"action":"created","comment":{"url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/comments/26062888","id":26062888,"diff_hunk":"@@ -1977,13 +1977,265 @@ candidate:1 1 UDP 1694498815 192.0.2.33 10000 typ host\n         </section>\n       </section>\n \n-      <section title=\"Parsing an Offer\" anchor=\"sec.parsing-an-offer\"></section>\n+      <section title=\"Processing a Local Description\" anchor=\"sec.processing-a-local-desc\">\n+        <t>When a SessionDescription is supplied to setLocalDescription, the\n+            following steps MUST be performed:\n+          <list style=\"symbols\">\n+            <t>First, the type of the SessionDescription is checked against the\n+                  current state of the PeerConnection:\n+              <list style=\"symbols\">\n+                <t>If the type is \"offer\", the PeerConnection state MUST be\n+                      either \"stable\" or \"have-local-offer\".</t>\n+                <t>If the type is \"pranswer\" or \"answer\", the PeerConnection\n+                      state MUST be either \"have-remote-offer\" or\n+                      \"have-local-pranswer\".</t>\n+              </list>\n+            </t>\n+            <t>If the type is not correct for the current state, processing MUST\n+            stop and an error MUST be returned.</t>\n+            <t>Next, the SessionDescription is parsed into a data structure,\n+              as described in the\n+              <xref target=\"sec.parsing-a-desc\"/> section below. If parsing\n+              fails for any reason, processing MUST stop and an error MUST be\n+              returned.\n+            </t>\n+            <t>Finally, the parsed SessionDescription is applied as described in\n+              the <xref target=\"sec.applying-a-local-desc\"/> section below.</t>\n+          </list>\n+        </t>\n+      </section>\n+\n+      <section title=\"Processing a Remote Description\" anchor=\"sec.processing-a-remote-desc\">\n+        <t>When a SessionDescription is supplied to setRemoteDescription, the\n+            following steps MUST be performed:\n+          <list style=\"symbols\">\n+            <t>First, the type of the SessionDescription is checked against the\n+                  current state of the PeerConnection:\n+              <list style=\"symbols\">\n+                <t>If the type is \"offer\", the PeerConnection state MUST be\n+                      either \"stable\" or \"have-remote-offer\".</t>\n+                <t>If the type is \"pranswer\" or \"answer\", the PeerConnection\n+                      state MUST be either \"have-local-offer\" or\n+                      \"have-remote-pranswer\".</t>\n+              </list>\n+            </t>\n+            <t>If the type is not correct for the current state, processing MUST\n+            stop and an error MUST be returned.</t>\n+            <t>Next, the SessionDescription is parsed into a data structure,\n+              as described in the\n+              <xref target=\"sec.parsing-a-desc\"/> section below. If parsing\n+              fails for any reason, processing MUST stop and an error MUST be\n+              returned.\n+            </t>\n+            <t>Finally, the parsed SessionDescription is applied as described in\n+              the <xref target=\"sec.applying-a-remote-desc\"/> section below.</t>\n+          </list>\n+        </t>\n+      </section>\n+\n+      <section title=\"Parsing a Session Description\" anchor=\"sec.parsing-a-desc\">\n+        <t>When a SessionDescription of any type is supplied to\n+        setLocal/RemoteDescription, the implementation must parse it and\n+        reject it if it is invalid. The exact details of this\n+        process are explained below.</t>\n+        <t>The SDP contained in the session description object consists of a\n+        sequence of text lines, each containing a key-value expression,\n+        as described in <xref target=\"RFC4566\"/>, Section 5.\n+        The SDP is read,\n+        line-by-line, and converted to a data structure that contains the\n+        deserialized information. However, SDP allows many types of lines, not\n+        all of which are relevant to JSEP applications, and the ones that are\n+        not specifically referenced below MAY be ignored. Implementations MAY\n+        also act on such lines, in accordance with the specification that\n+        defines them, instead.\n+        For each line, the implementation will first ensure it is syntactically","path":"draft-ietf-rtcweb-jsep.xml","position":76,"original_position":76,"commit_id":"5488e101d18ceff7008f8d9e5468bcf97546b993","original_commit_id":"5488e101d18ceff7008f8d9e5468bcf97546b993","user":{"login":"juberti","id":1821693,"avatar_url":"https://avatars.githubusercontent.com/u/1821693?v=3","gravatar_id":"","url":"https://api.github.com/users/juberti","html_url":"https://github.com/juberti","followers_url":"https://api.github.com/users/juberti/followers","following_url":"https://api.github.com/users/juberti/following{/other_user}","gists_url":"https://api.github.com/users/juberti/gists{/gist_id}","starred_url":"https://api.github.com/users/juberti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juberti/subscriptions","organizations_url":"https://api.github.com/users/juberti/orgs","repos_url":"https://api.github.com/users/juberti/repos","events_url":"https://api.github.com/users/juberti/events{/privacy}","received_events_url":"https://api.github.com/users/juberti/received_events","type":"User","site_admin":false},"body":"Have a suggestion for text here? Perhaps\r\n\r\n\"For each line, if the implementation understands it, the implementation will first ensure it is syntactically valid according to the ABNF that defines it, and then ...\"","created_at":"2015-03-09T18:43:11Z","updated_at":"2015-03-09T18:43:11Z","html_url":"https://github.com/rtcweb-wg/jsep/pull/113#discussion_r26062888","pull_request_url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113","_links":{"self":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/comments/26062888"},"html":{"href":"https://github.com/rtcweb-wg/jsep/pull/113#discussion_r26062888"},"pull_request":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113"}}},"pull_request":{"url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113","id":30712769,"html_url":"https://github.com/rtcweb-wg/jsep/pull/113","diff_url":"https://github.com/rtcweb-wg/jsep/pull/113.diff","patch_url":"https://github.com/rtcweb-wg/jsep/pull/113.patch","issue_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues/113","number":113,"state":"open","locked":false,"title":"Start of setLD/RD","user":{"login":"juberti","id":1821693,"avatar_url":"https://avatars.githubusercontent.com/u/1821693?v=3","gravatar_id":"","url":"https://api.github.com/users/juberti","html_url":"https://github.com/juberti","followers_url":"https://api.github.com/users/juberti/followers","following_url":"https://api.github.com/users/juberti/following{/other_user}","gists_url":"https://api.github.com/users/juberti/gists{/gist_id}","starred_url":"https://api.github.com/users/juberti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juberti/subscriptions","organizations_url":"https://api.github.com/users/juberti/orgs","repos_url":"https://api.github.com/users/juberti/repos","events_url":"https://api.github.com/users/juberti/events{/privacy}","received_events_url":"https://api.github.com/users/juberti/received_events","type":"User","site_admin":false},"body":"@ekr @fluffy PTAL and let me know if you think this is on the right track. If so, I will flesh out in whatever time I have on Sunday.","created_at":"2015-03-08T01:21:45Z","updated_at":"2015-03-09T18:43:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"382823b140de6f2df42b2c4d45c51856c3257b75","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113/commits","review_comments_url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113/comments","review_comment_url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues/113/comments","statuses_url":"https://api.github.com/repos/rtcweb-wg/jsep/statuses/5488e101d18ceff7008f8d9e5468bcf97546b993","head":{"label":"rtcweb-wg:setXD3","ref":"setXD3","sha":"5488e101d18ceff7008f8d9e5468bcf97546b993","user":{"login":"rtcweb-wg","id":7396946,"avatar_url":"https://avatars.githubusercontent.com/u/7396946?v=3","gravatar_id":"","url":"https://api.github.com/users/rtcweb-wg","html_url":"https://github.com/rtcweb-wg","followers_url":"https://api.github.com/users/rtcweb-wg/followers","following_url":"https://api.github.com/users/rtcweb-wg/following{/other_user}","gists_url":"https://api.github.com/users/rtcweb-wg/gists{/gist_id}","starred_url":"https://api.github.com/users/rtcweb-wg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtcweb-wg/subscriptions","organizations_url":"https://api.github.com/users/rtcweb-wg/orgs","repos_url":"https://api.github.com/users/rtcweb-wg/repos","events_url":"https://api.github.com/users/rtcweb-wg/events{/privacy}","received_events_url":"https://api.github.com/users/rtcweb-wg/received_events","type":"Organization","site_admin":false},"repo":{"id":19118011,"name":"jsep","full_name":"rtcweb-wg/jsep","owner":{"login":"rtcweb-wg","id":7396946,"avatar_url":"https://avatars.githubusercontent.com/u/7396946?v=3","gravatar_id":"","url":"https://api.github.com/users/rtcweb-wg","html_url":"https://github.com/rtcweb-wg","followers_url":"https://api.github.com/users/rtcweb-wg/followers","following_url":"https://api.github.com/users/rtcweb-wg/following{/other_user}","gists_url":"https://api.github.com/users/rtcweb-wg/gists{/gist_id}","starred_url":"https://api.github.com/users/rtcweb-wg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtcweb-wg/subscriptions","organizations_url":"https://api.github.com/users/rtcweb-wg/orgs","repos_url":"https://api.github.com/users/rtcweb-wg/repos","events_url":"https://api.github.com/users/rtcweb-wg/events{/privacy}","received_events_url":"https://api.github.com/users/rtcweb-wg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rtcweb-wg/jsep","description":"","fork":false,"url":"https://api.github.com/repos/rtcweb-wg/jsep","forks_url":"https://api.github.com/repos/rtcweb-wg/jsep/forks","keys_url":"https://api.github.com/repos/rtcweb-wg/jsep/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtcweb-wg/jsep/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtcweb-wg/jsep/teams","hooks_url":"https://api.github.com/repos/rtcweb-wg/jsep/hooks","issue_events_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues/events{/number}","events_url":"https://api.github.com/repos/rtcweb-wg/jsep/events","assignees_url":"https://api.github.com/repos/rtcweb-wg/jsep/assignees{/user}","branches_url":"https://api.github.com/repos/rtcweb-wg/jsep/branches{/branch}","tags_url":"https://api.github.com/repos/rtcweb-wg/jsep/tags","blobs_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtcweb-wg/jsep/statuses/{sha}","languages_url":"https://api.github.com/repos/rtcweb-wg/jsep/languages","stargazers_url":"https://api.github.com/repos/rtcweb-wg/jsep/stargazers","contributors_url":"https://api.github.com/repos/rtcweb-wg/jsep/contributors","subscribers_url":"https://api.github.com/repos/rtcweb-wg/jsep/subscribers","subscription_url":"https://api.github.com/repos/rtcweb-wg/jsep/subscription","commits_url":"https://api.github.com/repos/rtcweb-wg/jsep/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtcweb-wg/jsep/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues/comments{/number}","contents_url":"https://api.github.com/repos/rtcweb-wg/jsep/contents/{+path}","compare_url":"https://api.github.com/repos/rtcweb-wg/jsep/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtcweb-wg/jsep/merges","archive_url":"https://api.github.com/repos/rtcweb-wg/jsep/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtcweb-wg/jsep/downloads","issues_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues{/number}","pulls_url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls{/number}","milestones_url":"https://api.github.com/repos/rtcweb-wg/jsep/milestones{/number}","notifications_url":"https://api.github.com/repos/rtcweb-wg/jsep/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtcweb-wg/jsep/labels{/name}","releases_url":"https://api.github.com/repos/rtcweb-wg/jsep/releases{/id}","created_at":"2014-04-24T17:46:05Z","updated_at":"2015-03-08T23:43:00Z","pushed_at":"2015-03-09T06:29:31Z","git_url":"git://github.com/rtcweb-wg/jsep.git","ssh_url":"git@github.com:rtcweb-wg/jsep.git","clone_url":"https://github.com/rtcweb-wg/jsep.git","svn_url":"https://github.com/rtcweb-wg/jsep","homepage":null,"size":2048,"stargazers_count":10,"watchers_count":10,"language":"Makefile","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":20,"forks":8,"open_issues":20,"watchers":10,"default_branch":"master"}},"base":{"label":"rtcweb-wg:master","ref":"master","sha":"d6e591877a84f4f8161ef37b5595ec360b359f3d","user":{"login":"rtcweb-wg","id":7396946,"avatar_url":"https://avatars.githubusercontent.com/u/7396946?v=3","gravatar_id":"","url":"https://api.github.com/users/rtcweb-wg","html_url":"https://github.com/rtcweb-wg","followers_url":"https://api.github.com/users/rtcweb-wg/followers","following_url":"https://api.github.com/users/rtcweb-wg/following{/other_user}","gists_url":"https://api.github.com/users/rtcweb-wg/gists{/gist_id}","starred_url":"https://api.github.com/users/rtcweb-wg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtcweb-wg/subscriptions","organizations_url":"https://api.github.com/users/rtcweb-wg/orgs","repos_url":"https://api.github.com/users/rtcweb-wg/repos","events_url":"https://api.github.com/users/rtcweb-wg/events{/privacy}","received_events_url":"https://api.github.com/users/rtcweb-wg/received_events","type":"Organization","site_admin":false},"repo":{"id":19118011,"name":"jsep","full_name":"rtcweb-wg/jsep","owner":{"login":"rtcweb-wg","id":7396946,"avatar_url":"https://avatars.githubusercontent.com/u/7396946?v=3","gravatar_id":"","url":"https://api.github.com/users/rtcweb-wg","html_url":"https://github.com/rtcweb-wg","followers_url":"https://api.github.com/users/rtcweb-wg/followers","following_url":"https://api.github.com/users/rtcweb-wg/following{/other_user}","gists_url":"https://api.github.com/users/rtcweb-wg/gists{/gist_id}","starred_url":"https://api.github.com/users/rtcweb-wg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtcweb-wg/subscriptions","organizations_url":"https://api.github.com/users/rtcweb-wg/orgs","repos_url":"https://api.github.com/users/rtcweb-wg/repos","events_url":"https://api.github.com/users/rtcweb-wg/events{/privacy}","received_events_url":"https://api.github.com/users/rtcweb-wg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rtcweb-wg/jsep","description":"","fork":false,"url":"https://api.github.com/repos/rtcweb-wg/jsep","forks_url":"https://api.github.com/repos/rtcweb-wg/jsep/forks","keys_url":"https://api.github.com/repos/rtcweb-wg/jsep/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtcweb-wg/jsep/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtcweb-wg/jsep/teams","hooks_url":"https://api.github.com/repos/rtcweb-wg/jsep/hooks","issue_events_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues/events{/number}","events_url":"https://api.github.com/repos/rtcweb-wg/jsep/events","assignees_url":"https://api.github.com/repos/rtcweb-wg/jsep/assignees{/user}","branches_url":"https://api.github.com/repos/rtcweb-wg/jsep/branches{/branch}","tags_url":"https://api.github.com/repos/rtcweb-wg/jsep/tags","blobs_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtcweb-wg/jsep/statuses/{sha}","languages_url":"https://api.github.com/repos/rtcweb-wg/jsep/languages","stargazers_url":"https://api.github.com/repos/rtcweb-wg/jsep/stargazers","contributors_url":"https://api.github.com/repos/rtcweb-wg/jsep/contributors","subscribers_url":"https://api.github.com/repos/rtcweb-wg/jsep/subscribers","subscription_url":"https://api.github.com/repos/rtcweb-wg/jsep/subscription","commits_url":"https://api.github.com/repos/rtcweb-wg/jsep/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtcweb-wg/jsep/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtcweb-wg/jsep/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues/comments{/number}","contents_url":"https://api.github.com/repos/rtcweb-wg/jsep/contents/{+path}","compare_url":"https://api.github.com/repos/rtcweb-wg/jsep/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtcweb-wg/jsep/merges","archive_url":"https://api.github.com/repos/rtcweb-wg/jsep/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtcweb-wg/jsep/downloads","issues_url":"https://api.github.com/repos/rtcweb-wg/jsep/issues{/number}","pulls_url":"https://api.github.com/repos/rtcweb-wg/jsep/pulls{/number}","milestones_url":"https://api.github.com/repos/rtcweb-wg/jsep/milestones{/number}","notifications_url":"https://api.github.com/repos/rtcweb-wg/jsep/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtcweb-wg/jsep/labels{/name}","releases_url":"https://api.github.com/repos/rtcweb-wg/jsep/releases{/id}","created_at":"2014-04-24T17:46:05Z","updated_at":"2015-03-08T23:43:00Z","pushed_at":"2015-03-09T06:29:31Z","git_url":"git://github.com/rtcweb-wg/jsep.git","ssh_url":"git@github.com:rtcweb-wg/jsep.git","clone_url":"https://github.com/rtcweb-wg/jsep.git","svn_url":"https://github.com/rtcweb-wg/jsep","homepage":null,"size":2048,"stargazers_count":10,"watchers_count":10,"language":"Makefile","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":20,"forks":8,"open_issues":20,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113"},"html":{"href":"https://github.com/rtcweb-wg/jsep/pull/113"},"issue":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/issues/113"},"comments":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/issues/113/comments"},"review_comments":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113/comments"},"review_comment":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/pulls/113/commits"},"statuses":{"href":"https://api.github.com/repos/rtcweb-wg/jsep/statuses/5488e101d18ceff7008f8d9e5468bcf97546b993"}}}}