[sr-dev] rtpproxy-ng
Daniel-Constantin Mierla
miconda at gmail.com
Wed Jul 10 17:32:59 CEST 2013
On 7/10/13 5:14 PM, Richard Fuchs wrote:
> On 07/10/13 10:43, Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> I understand that the documentation of the protocol is exemplified with
>> JSON, but the implementation is actually bencode? From the readme it
>> seems you still keep the key=value format, passing them as a dictionary
>> in the control protocol. That means it could result in dictionaries
>> included in other dictionaries and/or lists (e.g., the result of query,
>> like the last json in the readme from the github) - obviously no longer
>> that easy to troubleshoot by 'eye'.
>
> Correct, that's about the only disadvantage bencode has over JSON.
> However, large JSON structures can also be quite cumbersome to read if
> condensed enough, unless you run them through a pretty-printer (which,
> btw, I had to do with that query example from the readme). The same
> process applies to bencode structures.
Are there pretty-printing tools for bencode? Or just 'gateways' to
json/xml pretty-printing.
>
>> Have you got any figures of json vs bencode performances that made you
>> mind to go for the later?
>
> I don't. But since the primary purpose of the control protocol is to
> pass back and forth SDP bodies, the fact that those don't have to be
> copied and escaped/unescaped every time a request is sent or a reply
> is received should give a clear advantage to bencode.
That's is indeed an inconvenience, although most of sdps don't have
quotes, a walk through has to be done to be safe. The impact might not
be that significant, though.
>
>> From my point of view, json would have had the benefits of being easy
>> to query/display in some languages as well as storage engines. This is
>> mainly for statistics, when willing to search for various situations,
>> without a need to pre-process the result from the rtp relay.
>
> Assuming you're talking about searching in, or running stats over, the
> raw encoded data blobs that occur on the wire, bencode actually makes
> this easier, since the encoding is deterministic, i.e. there's only
> one way to encode any particular structure or data. With JSON on the
> other hand, the encoded version could look like anything and you'd
> have to get into complicated regular expressions to get what you're
> looking for, while still leaving a chance of missing it due to
> unexpected escaping.
I was referring to post-processing -- i.e., do the queries periodically
or for each call at the end, store the results in a storage system and
then generate reports. With json, in some systems you can simply refer
to it as a structure, like:
result.totals.input.rtp.bytes>1000
This kind of operations makes very easy generating reports.
>
>> Another thing I haven't noticed is about brdiging between two networks
>> of the same type, are --ip/--ipv6 parameters taking values like rtpproxy
>> addr1/addr2?
>
> Mediaproxy-ng currently only supports one address each for IPv4/6. But
> this is not a limitation of the control protocol or the module, as it
> still supports the same external/internal flags like the old one.
The question was ofr mediaproxy-ng app, because I was referring to
--ip/--ipv6 parameters -- wanted to see if it supports bridging networks
of same address family.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
More information about the sr-dev
mailing list