asterisk/channels
David M. Lee e06e519a90 Initial support for endpoints.
An endpoint is an external device/system that may offer/accept
channels to/from Asterisk. While this is a very useful concept for end
users, it is surprisingly not a core concept within Asterisk itself.

This patch defines ast_endpoint as a separate object, which channel
drivers may use to expose their concept of an endpoint. As the channel
driver creates channels, it can use ast_endpoint_add_channel() to
associate channels to the endpoint. This updated the endpoint
appropriately, and forwards all of the channel's events to the
endpoint's topic.

In order to avoid excessive locking on the endpoint object itself, the
mutable state is not accessible via getters. Instead, you can create a
snapshot using ast_endpoint_snapshot_create() to get a consistent
snapshot of the internal state.

This patch also includes a set of topics and messages associated with
endpoints, and implementations of the endpoint-related RESTful
API. chan_sip was updated to create endpoints with SIP peers, but the
state of the endpoints is not updated with the state of the peer.

Along for the ride in this patch is a Stasis test API. This is a
stasis_message_sink object, which can be subscribed to a Stasis
topic. It has functions for blocking while waiting for conditions in
the message sink to be fulfilled.

(closes issue ASTERISK-21421)
Review: https://reviewboard.asterisk.org/r/2492/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@387932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-05-08 13:39:08 +00:00
..
h323 Asterisk media architecture conversion - no more format bitfields 2011-02-03 16:22:10 +00:00
iax2 chan_iax2: Fix compile error if MALLOC_DEBUG enabled. 2013-02-01 19:35:26 +00:00
misdn chan_misdn: Fix sending RELEASE_COMPLETE in response to SETUP. 2012-11-30 21:38:01 +00:00
sip Initial support for endpoints. 2013-05-08 13:39:08 +00:00
Makefile Merge the pimp_my_sip branch into trunk. 2013-04-25 18:25:31 +00:00
chan_agent.c chan_agent: Prevent multiple channels from logging in as the same agent. 2013-01-29 18:02:07 +00:00
chan_alsa.c Don't attempt to create a voice frame on a read error 2013-04-14 02:35:04 +00:00
chan_bridge.c confbridge: Minor fixes playing user counts to the conference. 2013-01-22 00:36:52 +00:00
chan_console.c Doxygen Updates - Title update 2012-10-14 21:47:40 +00:00
chan_dahdi.c Make a log NOTICE more explicit that the event comes from DAHDI and not PRI. 2013-05-06 17:09:50 +00:00
chan_gtalk.c Doxygen Updates - Title update 2012-10-14 21:47:40 +00:00
chan_gulp.c Use the configured formats for Gulp sessions if there are no joint formats between requested formats and configured formats. 2013-05-03 11:35:14 +00:00
chan_h323.c Doxygen Updates - Title update 2012-10-14 21:47:40 +00:00
chan_iax2.c Stasis: Convert network change events into network change stasis messages 2013-05-03 18:03:26 +00:00
chan_jingle.c Set the sin_family on the bind address socket during initialization 2013-02-24 23:01:17 +00:00
chan_local.c Simplify chan_local.c:manager_optimize_away() using ao2_find(). 2013-05-01 21:55:53 +00:00
chan_mgcp.c Remove some unnecessary calls to ast_bridged_channel() in chan_mgcp.c 2013-05-01 20:01:27 +00:00
chan_misdn.c chan_misdn: Fix compile error. 2013-01-16 17:49:52 +00:00
chan_motif.c Add The Status Of A Module To The Output Of "CLI> module show" 2013-02-19 17:17:10 +00:00
chan_multicast_rtp.c Opaquification for ast_format structs in struct ast_channel 2012-02-24 00:32:20 +00:00
chan_nbs.c Opaquification for ast_format structs in struct ast_channel 2012-02-24 00:32:20 +00:00
chan_oss.c Doxygen Updates - Title update 2012-10-14 21:47:40 +00:00
chan_phone.c Doxygen Updates - Title update 2012-10-14 21:47:40 +00:00
chan_phone.h rename DialTone.h to chan_phone.h because chan_phone.c is the only file using it 2008-05-28 20:00:21 +00:00
chan_sip.c Initial support for endpoints. 2013-05-08 13:39:08 +00:00
chan_skinny.c Remove some unnecessary calls to ast_bridged_channel() in chan_skinny.c 2013-05-01 20:01:10 +00:00
chan_unistim.c Remove some unnecessary calls to ast_bridged_channel() in chan_unistim.c 2013-05-01 20:01:43 +00:00
chan_vpb.cc Doxygen Updates - Title update 2012-10-14 21:47:40 +00:00
console_board.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
console_gui.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
console_video.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
console_video.h implement the 'freeze' function for incoming frames; 2008-06-30 15:45:15 +00:00
misdn_config.c Add named callgroups/pickupgroups 2012-08-07 12:46:36 +00:00
sig_analog.c Remove some unnecessary calls to ast_bridged_channel() in chan_dahdi.c/sig_analog.c 2013-05-01 20:00:31 +00:00
sig_analog.h Convert sig_analog to use a global callback table. 2012-08-08 20:32:53 +00:00
sig_pri.c chan_dahdi: Add inband_on_proceeding compatibility option. 2013-04-03 20:20:09 +00:00
sig_pri.h chan_dahdi: Add inband_on_proceeding compatibility option. 2013-04-03 20:20:09 +00:00
sig_ss7.c chan_dahdi/SS7: Made reject incoming call for an in-alarm or blocked channel. 2012-11-08 21:12:35 +00:00
sig_ss7.h Convert sig_ss7 to use a global callback table. 2012-08-08 00:15:54 +00:00
vcodecs.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
vgrabbers.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00