[asterisk-dev] [Code Review] This patch implements CEL in trunk.

Matthew Nicholson mnicholson at digium.com
Tue Apr 28 16:02:59 CDT 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/105/#review754
-----------------------------------------------------------


Moved to http://reviewboard.digium.com/r/239/

- Matthew


On 2009-01-26 22:49:10, Steve Murphy wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.digium.com/r/105/
> -----------------------------------------------------------
> 
> (Updated 2009-01-26 22:49:10)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> CEL stands for Channel Event Logging.
> 
> (It's big, so brace yourself!)
> 
> It's like the Manager interface, but a little
> more specialized to report events that would
> be used to form CDRs or call activity logs.
> It logs to a set of backends much like CDR's
> do. Higher performance event loggers can be
> written on the CEL base, that would provide
> better thruput for generating higher-level
> event-based logging, like CDR's.
> 
> It's based in turn on Russell's event facility,
> and expands on its base, and shares in its
> advantages. For instance, the 
> ast_event_subscribe() func has been modified
> to accept a "name" argument for the subscription,
> for CLI viewing.
> 
> It also introduces a new channel field, the
> 'linkedid' field, that has 'viral' properties;
> when two channels interact, the oldest linkedid
> value of the two will override the younger. The 
> linkedID field starts being set to the uniqueID 
> field. All the channel drivers 'new' routines will
> also now accept a linkedid argument, in the
> which, if provided, will override the linkedid
> field. This would happen, for instance, in the
> Dial() app, when a peer channel is created 
> for the purpose of a call. From it's creation,
> that peer channel will have the same linkedid
> as the calling channel.
> 
> The linkedid field will be generated (by default)
> on all CEL logged events, and can be used to tie
> multi-legged calls and perhaps even call trees
> formed by 3-ways and transfers.
> 
> Brian Degenhardt of SwitchVox formed a snazzy
> real-time call logging facility using the CEL
> text logging backends.
> 
> Analogs to the CDR backends were formed for
> CEL event logging. It's been a while since they
> were originally formed, and they may profit 
> from an overhaul to re-derive them from the 
> CDR backends. The TDS backend has been
> recently re-derived, as the old version no
> longer compiles against the newer TDS libs.
> The odbc_adaptive interface has not been
> adapted for CEL, but this is always an option
> for the future.
> 
> hangupsource is also now being recorded into
> a channel field by that name.
> 
> A long and perhaps tedious design doc about
> CEL is in doc/cel-doc.tex
> 
> I added 'peeraccount', and 'linkedid' to the
> existing CDR code; these may be useful to
> folks who want to continue arranging deck chairs
> on the CDR Titanic.
> 
> Peeraccount: when two channels are bridged,
> they each update their peeraccount field with
> the accountcode of their partner in their
> respective 'peeraccount' channel fields.
> The CDR field is updated, and a new manager
> event is generated. The peeraccount info
> is reported in CEL events.
> 
> 
> Although reviewers may have issues of their own,
> my major questions are these:
> 
> 1. Should I just eliminate the cel-csv interface,
> and let everyone use the cel-custom interface if
> they want text logging?
> 
> 2. Should I bring in the odbc-adaptive stuff?
> 
> 3. Should I re-derive all the backends from
> the cdr backends as they exist today?
> 
> 4. Are the current tracked events sufficient
> for CDR generation which I'm specifying
> now in team/murf/RFCs?
> 
> 
> Diffs
> -----
> 
>   /trunk/CHANGES 171444 
>   /trunk/Makefile 171444 
>   /trunk/apps/app_celgenuserevent.c PRE-CREATION 
>   /trunk/apps/app_chanisavail.c 171444 
>   /trunk/apps/app_dial.c 171444 
>   /trunk/apps/app_directed_pickup.c 171444 
>   /trunk/apps/app_followme.c 171444 
>   /trunk/apps/app_meetme.c 171444 
>   /trunk/apps/app_minivm.c 171444 
>   /trunk/apps/app_parkandannounce.c 171444 
>   /trunk/apps/app_queue.c 171444 
>   /trunk/apps/app_voicemail.c 171444 
>   /trunk/cdr/cdr_sqlite.c 171444 
>   /trunk/cel/Makefile PRE-CREATION 
>   /trunk/cel/cel_adaptive_odbc.c PRE-CREATION 
>   /trunk/cel/cel_custom.c PRE-CREATION 
>   /trunk/cel/cel_manager.c PRE-CREATION 
>   /trunk/cel/cel_pgsql.c PRE-CREATION 
>   /trunk/cel/cel_radius.c PRE-CREATION 
>   /trunk/cel/cel_sqlite.c PRE-CREATION 
>   /trunk/cel/cel_sqlite3_custom.c PRE-CREATION 
>   /trunk/cel/cel_tds.c PRE-CREATION 
>   /trunk/channels/chan_agent.c 171444 
>   /trunk/channels/chan_alsa.c 171444 
>   /trunk/channels/chan_console.c 171444 
>   /trunk/channels/chan_dahdi.c 171444 
>   /trunk/channels/chan_features.c 171444 
>   /trunk/channels/chan_gtalk.c 171444 
>   /trunk/channels/chan_h323.c 171444 
>   /trunk/channels/chan_iax2.c 171444 
>   /trunk/channels/chan_jingle.c 171444 
>   /trunk/channels/chan_local.c 171444 
>   /trunk/channels/chan_mgcp.c 171444 
>   /trunk/channels/chan_misdn.c 171444 
>   /trunk/channels/chan_nbs.c 171444 
>   /trunk/channels/chan_oss.c 171444 
>   /trunk/channels/chan_phone.c 171444 
>   /trunk/channels/chan_sip.c 171444 
>   /trunk/channels/chan_skinny.c 171444 
>   /trunk/channels/chan_unistim.c 171444 
>   /trunk/channels/chan_usbradio.c 171444 
>   /trunk/channels/chan_vpb.cc 171444 
>   /trunk/configs/cel.conf.sample PRE-CREATION 
>   /trunk/configs/cel_adaptive_odbc.conf.sample PRE-CREATION 
>   /trunk/configs/cel_custom.conf.sample PRE-CREATION 
>   /trunk/configs/cel_manager.conf.sample PRE-CREATION 
>   /trunk/configs/cel_odbc.conf.sample PRE-CREATION 
>   /trunk/configs/cel_pgsql.conf.sample PRE-CREATION 
>   /trunk/configs/cel_sqlite3_custom.conf.sample PRE-CREATION 
>   /trunk/configs/cel_tds.conf.sample PRE-CREATION 
>   /trunk/doc/cel-doc.tex PRE-CREATION 
>   /trunk/doc/celdriver.tex PRE-CREATION 
>   /trunk/funcs/func_cdr.c 171444 
>   /trunk/funcs/func_channel.c 171444 
>   /trunk/funcs/func_odbc.c 171444 
>   /trunk/include/asterisk/cdr.h 171444 
>   /trunk/include/asterisk/cel.h PRE-CREATION 
>   /trunk/include/asterisk/channel.h 171444 
>   /trunk/include/asterisk/event.h 171444 
>   /trunk/include/asterisk/event_defs.h 171444 
>   /trunk/include/asterisk/utils.h 171444 
>   /trunk/main/Makefile 171444 
>   /trunk/main/asterisk.c 171444 
>   /trunk/main/cdr.c 171444 
>   /trunk/main/cel.c PRE-CREATION 
>   /trunk/main/channel.c 171444 
>   /trunk/main/cli.c 171444 
>   /trunk/main/devicestate.c 171444 
>   /trunk/main/dial.c 171444 
>   /trunk/main/event.c 171444 
>   /trunk/main/features.c 171444 
>   /trunk/main/logger.c 171444 
>   /trunk/main/manager.c 171444 
>   /trunk/main/pbx.c 171444 
>   /trunk/res/res_agi.c 171444 
> 
> Diff: http://reviewboard.digium.com/r/105/diff
> 
> 
> Testing
> -------
> 
> bmd has built a reporting system using it; I have run
> several simple tests to ensure updating with merges
> hasn't broken it, and made appropriate fixes.
> 
> 
> Thanks,
> 
> Steve
> 
>




More information about the asterisk-dev mailing list