Git Product home page Git Product logo

draft-rosenbergjennings-dispatch-ripp's Introduction

draft-rosenbergjennings-dispatch-ripp

real time internet peering protocol

How to build these drafts

Docker

Get a docker image with the tools by doing docker pull fluffy/rfc Or you can build the tool image yourself

Build the drafts with docker run --rm --mount type=bind,source="$(pwd)",destination=/data fluffy/rfc

Native

If you have all the right tools installed you can just type make

draft-rosenbergjennings-dispatch-ripp's People

Contributors

fluffy avatar giavac avatar jdrosen avatar juberti avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

draft-rosenbergjennings-dispatch-ripp's Issues

CNG and DTMF

Testing out the idea of opening a github issue for discussion.

All RIPP implementations MUST support G.711 and Opus audio codecs.
All implementations MUST support [RFC2833] for DTMF, and MUST support
[RFC3389] for comfort noise, for both sending and receiving.

DTMF my mortal enemy lol.

Would this just be an encapsulation of the RTP payloads? There is a bunch of stuff involving the duration of DTMF and so many implementations do it so horribly wrong. Most things inject the DTMF into the RTP media stream as its kind of one of those side cases of having multiple codecs in use at the same time trying to decide what timestamps to use etc.

Since RIPP never allows a period of silence and some packet must always be transmitted it might also mess up CNG which was designed to slow the roll of RTP and send one packet every so often.

Both were designed with the idea of translating ip data to/from a generator to create actual tones or "silence"

Just thinking about being on both sides of the connection, maybe it would be nice to come up with a more succinct way to deal with both? CNG might be obsolete in this pathway because it can't really traverse from one phone to another across a trunk where, by design, it already deals with silence by sending packets at every interval. CNG is kind of a trick to avoid sending packets at all and isn't usually passed through.

DTMF will be pretty important as always and depending on the circumstances, is there a better way to communicate the desired digits and, gulp, the duration of the digits. A lot of times the timestamps in DTMF from rando RTP implementations is totally broken etc.

G711 and Opus will have considerations for timestamps as well. Since Opus believes all calls should have a base clock of 48khz and G711, of course, is 8khz. Sometimes the DTMF is still clocked at 8k even for opus calls and sometimes its clocked at 48k to match which sometimes breaks things yada yada.

In general, will we be trying to preserve the original RTP timestamps and the timing gaps? Will there be any new better strategies we can come up with to de-jitter the streams or do we make it a rule you have to put a jitter buffer on the inbound leg of the SIP2RIPP gateway?

Split document into individual sub-documents

The document explains how it replaces several previous specs:

In this regard, RIPP replaces the usage of SIP, SDP offer/answer [RFC3264] and RTP [RFC3550] for this particular use case.

I think each of these will require specific work to handle the general case and I tend to think we should split the document accordingly, perhaps with an overview doc to knit them all together.

Specifically, I think the encapsulation of media over QUIC will be complex and will definitely want to live as its own doc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.