[SIPForum-discussion] T.140 RED

Eugene Christensen echristensen at sorenson.com
Fri Jun 3 20:49:39 UTC 2016


I had a couple of errors/typos in my example packets that I have corrected below.

Thanks.

Eugene R. Christensen
Principal Software Engineer
Sorenson Communications
4192 South Riverboat Road
Salt Lake City, Utah 84123
P. 801.287.9419
CONFIDENTIALITY NOTICE. This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain confidential and proprietary information. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of any of the information contained in or attached to this message is STRICTLY PROHIBITED. If you have received this transmission in error, please immediately notify me by reply e-mail at echristensen at sorenson.com or by telephone at +1 (801) 287-9419, and destroy the original transmission and its attachments without reading them or saving them to disk.
________________________________
From: Eugene Christensen
Sent: Friday, June 03, 2016 10:49 AM
To: discussion at sipforum.org
Cc: Eugene Christensen
Subject: T.140 RED

Hello,

I have a couple of questions about T.140 RED.  If I should post this elsewhere, please let me know where.


Suppose that an SDP offer and the corresponding SDP answer both support T.140 RED.  For this example, lets suppose that the SDP looked like this:

m=text 24496 RTP/AVP 99 98
a=rtpmap:99 red/1000
a=fmtp:99 98/98/98
a=rtpmap:98 t140/1000

Now, assuming that both endpoints are planning on using T.140-RED and that the text to be sent will be "This is a test".  For simplicity, let's also assume that each word is sent as a separate packet with the space character being sent with the word that it precedes, thus it would be split up like "This", " is", " a", and " test".

>From my reading of rfc4103, I have implemented this such that the packets sent would look something like the following:

Packet 1:
12-bytes of the standard rtp header, with payload type set as 99 (RED)
1-byte T140 header (for the primary data block), with payload type set as 98
4-bytes of text - "This"

Packet 2:
12-bytes of the standard rtp header, with payload type set as 99 (RED)
4-byte Redundant T140 header (for 1st redundant T140 block), with payload type set as 98
1-byte T140 header (for the primary data block)
4-bytes of text - "This"
3-bytes of text - " is"

Packet 3:
12-bytes of the standard rtp header, with payload type set as 99 (RED)
4-byte Redundant T140 header (for 1st redundant T140 block), with payload type set as 98
4-byte Redundant T140 header (for 2nd redundant T140 block), with payload type set as 98
1-byte T140 header (for the primary data block), with payload type set as 98
4-bytes of text -  "This"
3-bytes of text - " is"
2-bytes of text - " a"

Packet 4:
12-bytes of the standard rtp header, with payload type set as 99 (RED)
4-byte Redundant T140 header (for 1st redundant T140 block), with payload type set as 98
4-byte Redundant T140 header (for 2nd redundant T140 block), with payload type set as 98
1-byte T140 header (for the primary data block), with payload type set as 98
3-bytes of text - " is"
2-bytes of text - " a"
5-bytes of text - " test"

Packet 5:
12-bytes of the standard rtp header, with payload type set as 99 (RED)
4-byte Redundant T140 header (for 1st redundant T140 block), with payload type set as 98
4-byte Redundant T140 header (for 2nd redundant T140 block), with payload type set as 98
1-byte T140 header (for the primary data block), with payload type set as 98
2-bytes of text - " a"
5-bytes of text - " test"

Packet 6:
12-bytes of the standard rtp header, with payload type set as 99 (RED)
4-byte Redundant T140 header (for 1st redundant T140 block), with payload type set as 98
1-byte T140 header (for the primary data block), with payload type set as 98
5-bytes of text - " test"


Am I correct in this?  If not, what should the generations of packets really look like?
I have tested with some other endpoints that support T.140-RED that are expecting each and every packet to contain 2 4-byte Redundant headers and 1 1-byte primary data block header.  The difference being that if there isn't going to be redundant data for the given header, the block length for that redundant header would be set to 0.


Another observation is that when I use Wireshark to look at the sent/received data, it doesn't complain of packets 1-4 but it does tell me that my 5th and 6th packets are malformed.


Any insight would be appreciated.  If there is a "best practices" document out there that helps clarify this more, that would be appreciated too.

Thanks,

Eugene R. Christensen
Principal Software Engineer
Sorenson Communications
4192 South Riverboat Road
Salt Lake City, Utah 84123
P. 801.287.9419
CONFIDENTIALITY NOTICE. This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain confidential and proprietary information. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of any of the information contained in or attached to this message is STRICTLY PROHIBITED. If you have received this transmission in error, please immediately notify me by reply e-mail at echristensen at sorenson.com or by telephone at +1 (801) 287-9419, and destroy the original transmission and its attachments without reading them or saving them to disk.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sipforum.org/pipermail/discussion/attachments/20160603/a5d63851/attachment-0002.html>


More information about the discussion mailing list