asterisk/main
Matthew Jordan bbeaeea1a3 res_hep_rtcp: Add module that sends RTCP information to a Homer Server
This patch adds a new module to Asterisk, res_hep_rtcp. The module subscribes
to the RTCP topics in Stasis and receives RTCP information back from the
message bus. It encodes into HEPv3 packets and sends the information to the
res_hep module for transmission.

Using this, someone with a Homer server can get live call quality monitoring
for all RTP-based channels in their Asterisk 12+ systems.

In addition, there were a few bugs in the RTP engine, res_rtp_asterisk, and
chan_pjsip that were uncovered by the tests written for the Asterisk Test
Suite. This patch fixes the following:
1) chan_pjsip failed to set its channel unique ids on its RTP instance on
   outbound calls. It now does this in the appropriate location, in the
   serialized call callback.
2) The rtp_engine was overflowing some values when packed into JSON.
   Specifically, some longs and unsigned ints can't be be packed into integer
   values, for obvious reasons. Since libjansson only supports integers,
   floats, strings, booleans, and objects, we print these values into strings.
3) res_rtp_asterisk had a few problems:
   (a) it would emit a source IP address of 0.0.0.0 if bound to that IP
       address. We now use ast_find_ourip to get a better IP address, and
       properly marshal the result into an ast_strdupa'd string.
   (b) Reports can be generated with no report bodies. In particular, this
       occurs when a sender is transmitting information to a receiver (who
       will send no RTP back to the sender). As such, the sender has no report
       body for what it received. We now properly handle this case, and the
       sender will emit SR reports with no body. Likewise, if we receive an
       RTCP packet with no report body, we will still generate the appropriate
       events.

ASTERISK-24119 #close
........

Merged revisions 419823 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419825 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-07-31 11:57:51 +00:00
..
editline memory leaks: Memory leak cleanup patch by Corey Farrell (first set) 2013-10-23 20:10:30 +00:00
stdtime Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
abstract_jb.c datastores: Audit ast_channel_datastore_remove usage. 2014-07-28 18:58:43 +00:00
acl.c pjsip cli: Change Identify to show CIDR notation instead of netmasks. 2014-06-19 20:13:20 +00:00
adsi.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
alaw.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
aoc.c stasis: Reduce creation of channel snapshots to improve performance 2014-06-13 18:24:49 +00:00
app.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
ast_expr2.c Allow the REALTIME() function to report errors back to the caller. 2012-07-11 17:16:50 +00:00
ast_expr2.fl Avoid cppcheck warnings; removing unused vars and a bit of cleanup. 2012-04-17 18:57:40 +00:00
ast_expr2.h Allow the REALTIME() function to report errors back to the caller. 2012-07-11 17:16:50 +00:00
ast_expr2.y Multiple revisions 360356-360357 2012-03-24 02:42:42 +00:00
ast_expr2f.c Doxygen Updates - janitor work 2012-09-21 17:14:59 +00:00
asterisk.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
asterisk.dynamics Fix error loading res_monitor. 2014-04-23 15:02:39 +00:00
asterisk.exports.in Add _IO_stdin_used in version-script to fix SIGBUSes on Sparc. 2013-08-22 08:26:55 +00:00
astfd.c Unregister CLI commands on exit 2013-08-20 15:36:10 +00:00
astmm.c MALLOC_DEBUG: Change fence magic number to be completely different from the freed magic number. 2013-09-09 23:29:44 +00:00
astobj2.c astobj2: assert on invalid ref and backtrace cleanup 2014-07-18 17:55:38 +00:00
astobj2_container.c ao2_container node object ignores REF_DEBUG in all places except one 2014-06-25 18:57:04 +00:00
astobj2_container_private.h astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
astobj2_hash.c astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
astobj2_private.h astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
astobj2_rbtree.c astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
audiohook.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
autochan.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
autoservice.c autoservice: stop thread on graceful shutdown 2014-06-09 03:50:45 +00:00
backtrace.c Fix memory corruption when trying to get "core show locks". 2013-08-23 18:07:40 +00:00
bridge.c bridge: Make "bridge destroy" only available in developer mode and add "all" to "bridge kick". 2014-07-25 10:49:52 +00:00
bridge_after.c bridges/bridge_native_rtp: Reconfigure bridge on removal of framehook 2014-06-08 18:12:53 +00:00
bridge_basic.c accountcode: Slightly change accountcode propagation. 2014-07-24 22:48:38 +00:00
bridge_channel.c core/bridge_channel: Substitute Variables In Features Application Map 2014-07-22 20:22:36 +00:00
bridge_roles.c ARI: bridges/{bridgeID}/addChannel: add roles parameter 2013-08-05 16:59:13 +00:00
bucket.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
buildinfo.c fix a few small things found by using sparse 2008-10-30 16:49:02 +00:00
callerid.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
ccss.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
cdr.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
cel.c accountcode: Slightly change accountcode propagation. 2014-07-24 22:48:38 +00:00
channel.c datastores: Audit ast_channel_datastore_remove usage. 2014-07-28 18:58:43 +00:00
channel_internal_api.c ARI: Fix endpoint/channel subscription issues; allow for subscriptions to tech 2014-07-22 16:20:58 +00:00
chanvars.c ast_free() is null tollerant. 2013-08-28 16:09:12 +00:00
cli.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
codec.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
codec_builtin.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
config.c config: inform config hook of change when writing file 2014-07-11 16:42:49 +00:00
config_options.c AMI: Allow for command response documentation 2014-07-24 13:00:59 +00:00
core_local.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
core_unreal.c accountcode: Slightly change accountcode propagation. 2014-07-24 22:48:38 +00:00
crypt.c Fix utils directory breakage. 2013-07-04 13:06:15 +00:00
cygload.c Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
data.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
datastore.c This is no longer needed. 2013-06-29 00:18:57 +00:00
db.c core/db: Revert Patch Added In Attempt To Improve I/O Performance 2014-07-24 21:01:37 +00:00
devicestate.c device state: Update the core to report ONHOLD if a channel is on hold 2014-07-24 15:20:58 +00:00
dial.c accountcode: Slightly change accountcode propagation. 2014-07-24 22:48:38 +00:00
dns.c res_pjsip: Enable PJSIP DNS client support. 2014-03-17 22:54:32 +00:00
dnsmgr.c Migrate a large number of AMI events over to Stasis-Core 2013-05-24 20:44:07 +00:00
dsp.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
ecdisa.h Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
endpoints.c endpoints: Fix failing unit tests from r419196 2014-07-23 16:46:13 +00:00
enum.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
event.c event.c: Fix type mismatch errors in ie_maps[]. 2014-06-27 23:21:44 +00:00
features.c Documentation: doc fixes across various parts of the code for ASTERISK issues 23061,23028,23046,23027 2014-01-17 17:16:14 +00:00
features_config.c feature_config: insure featuregroups and applicationmaps are initialized 2014-07-18 17:40:54 +00:00
file.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
fixedjitterbuf.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fixedjitterbuf.h Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
format.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
format_cache.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
format_cap.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
format_compatibility.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
frame.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
framehook.c Channels: Masquerades to automatically move frame/audio hooks 2014-07-18 16:28:10 +00:00
fskmodem.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fskmodem_float.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fskmodem_int.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
global_datastores.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
hashtab.c Fix utilities compilation/linking. 2013-08-16 16:26:11 +00:00
heap.c Fix incorrect usages of ast_realloc(). 2013-09-10 18:05:47 +00:00
http.c HTTP: Fix build for gcc 4.10 2014-07-07 01:10:55 +00:00
image.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
indications.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
io.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
jitterbuf.c jitterbuf: Fix memory leak on jitter buffer reset 2013-10-24 19:42:21 +00:00
json.c json: Fix json API wrapper code for json library versions earlier than 2.3.0. 2014-02-21 17:47:58 +00:00
libasteriskssl.c Resolve memory leaks in TLS initialization and TLS client connections 2012-09-14 19:53:43 +00:00
libasteriskssl.exports.in Address OpenSSL initialization issues when using third-party libraries. 2012-01-30 21:21:16 +00:00
loader.c loader: Fix an infinite loop when printing modules using "module show". 2014-07-25 18:09:40 +00:00
lock.c Revert -r411073. It didn't help and blew up the system. 2014-03-25 15:47:17 +00:00
logger.c astobj2: assert on invalid ref and backtrace cleanup 2014-07-18 17:55:38 +00:00
Makefile main/Makefile: fix compilation error of buildinfo occurring on 'make install' 2014-07-04 15:26:58 +00:00
manager.c manager: Add state list commands 2014-07-30 18:32:25 +00:00
manager_bridges.c AMI: Allow for command response documentation 2014-07-24 13:00:59 +00:00
manager_channels.c ARI: Add ability to raise arbitrary User Events 2014-05-22 16:09:51 +00:00
manager_endpoints.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
manager_mwi.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
manager_system.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
md5.c md5: supress some compiler warnings. 2012-04-28 01:33:49 +00:00
media_index.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
message.c PJSIP: PJSIPNotify - Strip content-length headers and add documentation 2014-06-10 16:06:12 +00:00
mixmonitor.c Removed quotes from svn:keywords props on a few files. 2013-07-29 17:51:25 +00:00
named_acl.c Fix various memory leaks 2013-08-30 19:22:59 +00:00
netsock.c Move eid functions to utils.c, mark netsock.h deprecated 2014-06-24 02:50:15 +00:00
netsock2.c pjsip cli: Change Identify to show CIDR notation instead of netmasks. 2014-06-19 20:13:20 +00:00
optional_api.c Logger/CLI/etc.: Fix some aesthetic issues; reduce chatty verbose messages 2014-05-28 22:54:12 +00:00
parking.c res_pjsip_refer: Fix bugs involving Parking/PJSIP/transfers 2014-05-22 15:52:30 +00:00
pbx.c manager: Add state list commands 2014-07-30 18:32:25 +00:00
pickup.c stasis: Reduce creation of channel snapshots to improve performance 2014-06-13 18:24:49 +00:00
plc.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
poll.c Merged revisions 285268 via svnmerge from 2010-09-07 19:09:08 +00:00
presencestate.c Add DeviceStateChanged and PresenceStateChanged AMI events. 2014-04-28 14:40:21 +00:00
privacy.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
rtp_engine.c res_hep_rtcp: Add module that sends RTCP information to a Homer Server 2014-07-31 11:57:51 +00:00
say.c app_voicemail, say: Add support for Japanese Language 2014-06-30 04:00:19 +00:00
sched.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
sdp_srtp.c Recorded merge of revisions 417677 from http://svn.asterisk.org/svn/asterisk/branches/11 2014-06-30 19:51:28 +00:00
security_events.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
sem.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
sha1.c Doxygen Updates - janitor work 2012-09-21 17:14:59 +00:00
sip_api.c Don't make chan_sip export global symbols. 2012-10-11 15:49:02 +00:00
slinfactory.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
smoother.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
sorcery.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
sounds_index.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
srv.c Removed #if checks for crazy old versions of OS X. 2013-05-08 20:25:28 +00:00
stasis.c stasis: use ao2_t_alloc for certain object allocators 2014-07-18 19:55:24 +00:00
stasis_bridges.c stasis: Reduce creation of channel snapshots to improve performance 2014-06-13 18:24:49 +00:00
stasis_cache.c stasis: Reduce creation of channel snapshots to improve performance 2014-06-13 18:24:49 +00:00
stasis_cache_pattern.c stasis: use ao2_t_alloc for certain object allocators 2014-07-18 19:55:24 +00:00
stasis_channels.c stasis_channels: Update the stasis cache if manager variables are needed 2014-06-18 04:22:05 +00:00
stasis_endpoints.c ARI: Add ability to raise arbitrary User Events 2014-05-22 16:09:51 +00:00
stasis_message.c stasis: use ao2_t_alloc for certain object allocators 2014-07-18 19:55:24 +00:00
stasis_message_router.c stasis: fix call to ao2_t_alloc for stasis_message_router_create 2014-07-18 21:25:14 +00:00
stasis_system.c Convert CCSS manager events to stasis. 2013-07-19 18:00:35 +00:00
strcompat.c Add builtin roundf() for systems lacking it. 2013-01-19 20:54:07 +00:00
strings.c string container: Remove unnecessary RAII_VAR usage and string object lock. 2014-01-14 21:46:50 +00:00
stun.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
syslog.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
taskprocessor.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
tcptls.c HTTP: Add persistent connection support. 2014-07-03 17:16:55 +00:00
tdd.c Doxygen Updates - janitor work 2012-09-21 17:14:59 +00:00
term.c Revamp of terminal color codes 2013-02-14 18:47:56 +00:00
test.c Fix build warnings with TEST_FRAMEWORK enabled 2014-06-19 19:40:45 +00:00
threadpool.c Fix threadpool rapid growth problem. 2013-06-20 16:29:35 +00:00
threadstorage.c Unregister CLI commands on exit 2013-08-20 15:36:10 +00:00
timing.c timing: Improve performance for most timing implementations. 2014-02-07 20:01:45 +00:00
translate.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
udptl.c udptl: Correct FEC to not consider negative sequence numbers as missing 2014-06-26 12:24:25 +00:00
ulaw.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
uri.c core uri: Custom uri parsing error when no query parameters 2014-06-06 20:45:05 +00:00
utils.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
uuid.c Add an \extref doxygen pointer for libuuid. 2013-04-26 20:32:11 +00:00
xml.c Detect and use xsltCleanupGlobals when available 2013-10-03 18:00:15 +00:00
xmldoc.c xmldocs: Add support for an <example> tag in the Asterisk XML Documentation 2014-07-31 11:49:40 +00:00