Complete overhaul of the codec handling code:
*) obsolete flags `asymmetric codecs`, `symmetric codecs`, `reorder
codecs`
*) support proper codec offer/answer
*) split codec manipulation (strip/offer/accept/etc) into separate
functions for clarity and better code maintenance
*) fully update codec handlers in both directions after an answer
*) explicit allocation and handling of codecs and payload types in a
codec_store object
*) improve codec matchup logic during answer
*) more explicit handling of supplemental codecs (CN/DTMF)
*) remove now obsolete hacks for handling certain use cases
Change-Id: I996705ba8fe339524c2f70e6bb0fd854f9a1f4fb
This became necessary because of the way Asterisk handles Sequence
numbers when changing SSRC. They continue to increment a single
sequence number even though the SSRC is different, on switching back
this causes the packet_index function to interpret this as many lost
packets. The previous function had dead-spots that would not adjust
the packet_index at all if the difference fell in these ranges. These
gaps always resulted in behavior contra what would happen in webrtc
clients.
Squashed commit of the following:
commit cca40e8e311e6884204289687ba2a05d0855720b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 12 10:17:51 2015 -0500
support per-payload-type stats in kernel module
commit dcc0dc0002bd552ae7c99aa58311af2f81336a8f
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Feb 11 12:14:44 2015 -0500
count unknown rtp type as error
commit 941bde0df59720d1d3ef6660096cf2532a5c7e1c
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Feb 11 12:01:55 2015 -0500
use the list of rtp formats from the m= line
This avoids dynamically altering the rtpstats hash table and makes
keeping packet stats lock free.
commit 9150fed671d8490f4c09fb3050002c7c558391df
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Feb 6 15:06:04 2015 -0500
fix and simplify rtpmap hash table
commit 1f73741cbf2ac7d6b8d0a54d9562e9a550678e7c
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Feb 6 13:56:07 2015 -0500
MT#9935 understand, learn, remember and report RTP payload types (codecs)
commit b0d690837c02989485cf73927a89ed860a299807
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 20 13:36:25 2014 -0500
parse a=rtpmap attribute