Add {{voip_events}}. Add more info on sections when asked via build.py -s
This commit is contained in:
parent
2a02b3494f
commit
9d532f30e8
4 changed files with 30 additions and 87 deletions
|
@ -259,85 +259,7 @@ Call events are sent to a room, like any other event. This means that clients
|
||||||
must only send call events to rooms with exactly two participants as currently
|
must only send call events to rooms with exactly two participants as currently
|
||||||
the WebRTC standard is based around two-party communication.
|
the WebRTC standard is based around two-party communication.
|
||||||
|
|
||||||
Events
|
{{voip_events}}
|
||||||
~~~~~~
|
|
||||||
``m.call.invite``
|
|
||||||
This event is sent by the caller when they wish to establish a call.
|
|
||||||
|
|
||||||
Required keys:
|
|
||||||
- ``call_id`` : "string" - A unique identifier for the call
|
|
||||||
- ``offer`` : "offer object" - The session description
|
|
||||||
- ``version`` : "integer" - The version of the VoIP specification this
|
|
||||||
message adheres to. This specification is version 0.
|
|
||||||
- ``lifetime`` : "integer" - The time in milliseconds that the invite is
|
|
||||||
valid for. Once the invite age exceeds this value, clients should discard
|
|
||||||
it. They should also no longer show the call as awaiting an answer in the
|
|
||||||
UI.
|
|
||||||
|
|
||||||
Optional keys:
|
|
||||||
None.
|
|
||||||
|
|
||||||
Example::
|
|
||||||
|
|
||||||
{
|
|
||||||
"version" : 0,
|
|
||||||
"call_id": "12345",
|
|
||||||
"offer": {
|
|
||||||
"type" : "offer",
|
|
||||||
"sdp" : "v=0\r\no=- 6584580628695956864 2 IN IP4 127.0.0.1[...]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
``Offer Object``
|
|
||||||
Required keys:
|
|
||||||
- ``type`` : "string" - The type of session description, in this case
|
|
||||||
'offer'
|
|
||||||
- ``sdp`` : "string" - The SDP text of the session description
|
|
||||||
|
|
||||||
``m.call.candidates``
|
|
||||||
This event is sent by callers after sending an invite and by the callee after
|
|
||||||
answering. Its purpose is to give the other party additional ICE candidates to
|
|
||||||
try using to communicate.
|
|
||||||
|
|
||||||
Required keys:
|
|
||||||
- ``call_id`` : "string" - The ID of the call this event relates to
|
|
||||||
- ``version`` : "integer" - The version of the VoIP specification this
|
|
||||||
messages adheres to. his specification is version 0.
|
|
||||||
- ``candidates`` : "array of candidate objects" - Array of object
|
|
||||||
describing the candidates.
|
|
||||||
|
|
||||||
``Candidate Object``
|
|
||||||
|
|
||||||
Required Keys:
|
|
||||||
- ``sdpMid`` : "string" - The SDP media type this candidate is intended
|
|
||||||
for.
|
|
||||||
- ``sdpMLineIndex`` : "integer" - The index of the SDP 'm' line this
|
|
||||||
candidate is intended for
|
|
||||||
- ``candidate`` : "string" - The SDP 'a' line of the candidate
|
|
||||||
|
|
||||||
``m.call.answer``
|
|
||||||
|
|
||||||
Required keys:
|
|
||||||
- ``call_id`` : "string" - The ID of the call this event relates to
|
|
||||||
- ``version`` : "integer" - The version of the VoIP specification this
|
|
||||||
messages
|
|
||||||
- ``answer`` : "answer object" - Object giving the SDP answer
|
|
||||||
|
|
||||||
``Answer Object``
|
|
||||||
|
|
||||||
Required keys:
|
|
||||||
- ``type`` : "string" - The type of session description. 'answer' in this
|
|
||||||
case.
|
|
||||||
- ``sdp`` : "string" - The SDP text of the session description
|
|
||||||
|
|
||||||
``m.call.hangup``
|
|
||||||
Sent by either party to signal their termination of the call. This can be sent
|
|
||||||
either once the call has has been established or before to abort the call.
|
|
||||||
|
|
||||||
Required keys:
|
|
||||||
- ``call_id`` : "string" - The ID of the call this event relates to
|
|
||||||
- ``version`` : "integer" - The version of the VoIP specification this
|
|
||||||
messages
|
|
||||||
|
|
||||||
Message Exchange
|
Message Exchange
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
|
@ -105,7 +105,14 @@ def main(input_module, file_stream=None, out_dir=None, verbose=False):
|
||||||
if not file_stream:
|
if not file_stream:
|
||||||
print "\nValid template variables:"
|
print "\nValid template variables:"
|
||||||
for key in sections.keys():
|
for key in sections.keys():
|
||||||
|
sec_text = "" if (len(sections[key]) > 75) else (
|
||||||
|
"(Value: '%s')" % sections[key]
|
||||||
|
)
|
||||||
|
sec_info = "%s characters" % len(sections[key])
|
||||||
|
if sections[key].count("\n") > 0:
|
||||||
|
sec_info += ", %s lines" % sections[key].count("\n")
|
||||||
print " %s" % key
|
print " %s" % key
|
||||||
|
print " %s %s" % (sec_info, sec_text)
|
||||||
return
|
return
|
||||||
|
|
||||||
# check the input files and substitute in sections where required
|
# check the input files and substitute in sections where required
|
||||||
|
|
|
@ -7,6 +7,13 @@ import os
|
||||||
|
|
||||||
class MatrixSections(Sections):
|
class MatrixSections(Sections):
|
||||||
|
|
||||||
|
# pass through git ver so it'll be dropped in the input file
|
||||||
|
def render_git_version(self):
|
||||||
|
return self.units.get("git_version")
|
||||||
|
|
||||||
|
def render_spec_version(self):
|
||||||
|
return "0.1.0"
|
||||||
|
|
||||||
def render_room_events(self):
|
def render_room_events(self):
|
||||||
template = self.env.get_template("events.tmpl")
|
template = self.env.get_template("events.tmpl")
|
||||||
examples = self.units.get("event_examples")
|
examples = self.units.get("event_examples")
|
||||||
|
@ -21,12 +28,19 @@ class MatrixSections(Sections):
|
||||||
))
|
))
|
||||||
return "\n\n".join(sections)
|
return "\n\n".join(sections)
|
||||||
|
|
||||||
# pass through git ver so it'll be dropped in the input file
|
def render_voip_events(self):
|
||||||
def render_git_version(self):
|
template = self.env.get_template("events.tmpl")
|
||||||
return self.units.get("git_version")
|
examples = self.units.get("event_examples")
|
||||||
|
schemas = self.units.get("event_schemas")
|
||||||
def render_spec_version(self):
|
sections = []
|
||||||
return "0.1.0"
|
for event_name in sorted(schemas):
|
||||||
|
if not event_name.startswith("m.call"):
|
||||||
|
continue
|
||||||
|
sections.append(template.render(
|
||||||
|
example=examples[event_name],
|
||||||
|
event=schemas[event_name]
|
||||||
|
))
|
||||||
|
return "\n\n".join(sections)
|
||||||
|
|
||||||
def _render_ce_type(self, type):
|
def _render_ce_type(self, type):
|
||||||
template = self.env.get_template("common-event-fields.tmpl")
|
template = self.env.get_template("common-event-fields.tmpl")
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
{{event.typeof_info}}
|
{{event.typeof_info}}
|
||||||
|
|
||||||
{{event.desc | wrap(80)}}
|
{{event.desc | wrap(80)}}
|
||||||
{% for table in event.content_fields %}
|
{% for table in event.content_fields -%}
|
||||||
{{"``"+table.title+"``" if table.title else "" -}}
|
{{"``"+table.title+"``" if table.title else "" }}
|
||||||
|
|
||||||
================== ================= ===========================================
|
================== ================= ===========================================
|
||||||
{{table.title or "Content"}} Key Type Description
|
{{table.title or "Content"}} Key Type Description
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue