[asterisk-commits] dlee: branch dlee/record r397871 - in /team/dlee/record: ./ apps/ apps/confbr...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Aug 28 15:47:53 CDT 2013
Author: dlee
Date: Wed Aug 28 15:47:48 2013
New Revision: 397871
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397871
Log:
Merged revisions 395728-397860 from http://svn.asterisk.org/svn/asterisk/trunk
Added:
team/dlee/record/channels/chan_pjsip.c
- copied unchanged from r397860, trunk/channels/chan_pjsip.c
team/dlee/record/configs/pjsip.conf.sample
- copied unchanged from r397860, trunk/configs/pjsip.conf.sample
team/dlee/record/doc/snapshots.xslt
- copied unchanged from r397860, trunk/doc/snapshots.xslt
team/dlee/record/include/asterisk/bucket.h
- copied unchanged from r397860, trunk/include/asterisk/bucket.h
team/dlee/record/include/asterisk/opus.h
- copied unchanged from r397860, trunk/include/asterisk/opus.h
team/dlee/record/include/asterisk/pickup.h
- copied unchanged from r397860, trunk/include/asterisk/pickup.h
team/dlee/record/include/asterisk/res_pjsip.h
- copied unchanged from r397860, trunk/include/asterisk/res_pjsip.h
team/dlee/record/include/asterisk/res_pjsip_exten_state.h
- copied unchanged from r397860, trunk/include/asterisk/res_pjsip_exten_state.h
team/dlee/record/include/asterisk/res_pjsip_pubsub.h
- copied unchanged from r397860, trunk/include/asterisk/res_pjsip_pubsub.h
team/dlee/record/include/asterisk/res_pjsip_session.h
- copied unchanged from r397860, trunk/include/asterisk/res_pjsip_session.h
team/dlee/record/include/asterisk/stasis_cache_pattern.h
- copied unchanged from r397860, trunk/include/asterisk/stasis_cache_pattern.h
team/dlee/record/main/bucket.c
- copied unchanged from r397860, trunk/main/bucket.c
team/dlee/record/main/pickup.c
- copied unchanged from r397860, trunk/main/pickup.c
team/dlee/record/main/stasis_cache_pattern.c
- copied unchanged from r397860, trunk/main/stasis_cache_pattern.c
team/dlee/record/main/stasis_wait.c
- copied unchanged from r397860, trunk/main/stasis_wait.c
team/dlee/record/res/parking/parking_tests.c
- copied unchanged from r397860, trunk/res/parking/parking_tests.c
team/dlee/record/res/res_format_attr_opus.c
- copied unchanged from r397860, trunk/res/res_format_attr_opus.c
team/dlee/record/res/res_pjsip/ (props changed)
- copied from r397860, trunk/res/res_pjsip/
team/dlee/record/res/res_pjsip.c
- copied unchanged from r397860, trunk/res/res_pjsip.c
team/dlee/record/res/res_pjsip.exports.in
- copied unchanged from r397860, trunk/res/res_pjsip.exports.in
team/dlee/record/res/res_pjsip_acl.c
- copied unchanged from r397860, trunk/res/res_pjsip_acl.c
team/dlee/record/res/res_pjsip_authenticator_digest.c
- copied unchanged from r397860, trunk/res/res_pjsip_authenticator_digest.c
team/dlee/record/res/res_pjsip_caller_id.c
- copied unchanged from r397860, trunk/res/res_pjsip_caller_id.c
team/dlee/record/res/res_pjsip_diversion.c
- copied unchanged from r397860, trunk/res/res_pjsip_diversion.c
team/dlee/record/res/res_pjsip_dtmf_info.c
- copied unchanged from r397860, trunk/res/res_pjsip_dtmf_info.c
team/dlee/record/res/res_pjsip_endpoint_identifier_anonymous.c
- copied unchanged from r397860, trunk/res/res_pjsip_endpoint_identifier_anonymous.c
team/dlee/record/res/res_pjsip_endpoint_identifier_ip.c
- copied unchanged from r397860, trunk/res/res_pjsip_endpoint_identifier_ip.c
team/dlee/record/res/res_pjsip_endpoint_identifier_user.c
- copied unchanged from r397860, trunk/res/res_pjsip_endpoint_identifier_user.c
team/dlee/record/res/res_pjsip_exten_state.c
- copied unchanged from r397860, trunk/res/res_pjsip_exten_state.c
team/dlee/record/res/res_pjsip_exten_state.exports.in
- copied unchanged from r397860, trunk/res/res_pjsip_exten_state.exports.in
team/dlee/record/res/res_pjsip_logger.c
- copied unchanged from r397860, trunk/res/res_pjsip_logger.c
team/dlee/record/res/res_pjsip_messaging.c
- copied unchanged from r397860, trunk/res/res_pjsip_messaging.c
team/dlee/record/res/res_pjsip_mwi.c
- copied unchanged from r397860, trunk/res/res_pjsip_mwi.c
team/dlee/record/res/res_pjsip_nat.c
- copied unchanged from r397860, trunk/res/res_pjsip_nat.c
team/dlee/record/res/res_pjsip_notify.c
- copied unchanged from r397860, trunk/res/res_pjsip_notify.c
team/dlee/record/res/res_pjsip_one_touch_record_info.c
- copied unchanged from r397860, trunk/res/res_pjsip_one_touch_record_info.c
team/dlee/record/res/res_pjsip_outbound_authenticator_digest.c
- copied unchanged from r397860, trunk/res/res_pjsip_outbound_authenticator_digest.c
team/dlee/record/res/res_pjsip_outbound_registration.c
- copied unchanged from r397860, trunk/res/res_pjsip_outbound_registration.c
team/dlee/record/res/res_pjsip_pidf.c
- copied unchanged from r397860, trunk/res/res_pjsip_pidf.c
team/dlee/record/res/res_pjsip_pubsub.c
- copied unchanged from r397860, trunk/res/res_pjsip_pubsub.c
team/dlee/record/res/res_pjsip_pubsub.exports.in
- copied unchanged from r397860, trunk/res/res_pjsip_pubsub.exports.in
team/dlee/record/res/res_pjsip_refer.c
- copied unchanged from r397860, trunk/res/res_pjsip_refer.c
team/dlee/record/res/res_pjsip_registrar.c
- copied unchanged from r397860, trunk/res/res_pjsip_registrar.c
team/dlee/record/res/res_pjsip_registrar_expire.c
- copied unchanged from r397860, trunk/res/res_pjsip_registrar_expire.c
team/dlee/record/res/res_pjsip_rfc3326.c
- copied unchanged from r397860, trunk/res/res_pjsip_rfc3326.c
team/dlee/record/res/res_pjsip_sdp_rtp.c
- copied unchanged from r397860, trunk/res/res_pjsip_sdp_rtp.c
team/dlee/record/res/res_pjsip_session.c
- copied unchanged from r397860, trunk/res/res_pjsip_session.c
team/dlee/record/res/res_pjsip_session.exports.in
- copied unchanged from r397860, trunk/res/res_pjsip_session.exports.in
team/dlee/record/res/res_pjsip_t38.c
- copied unchanged from r397860, trunk/res/res_pjsip_t38.c
team/dlee/record/res/res_pjsip_transport_websocket.c
- copied unchanged from r397860, trunk/res/res_pjsip_transport_websocket.c
team/dlee/record/rest-api-templates/param_cleanup.mustache
- copied unchanged from r397860, trunk/rest-api-templates/param_cleanup.mustache
team/dlee/record/tests/test_bucket.c
- copied unchanged from r397860, trunk/tests/test_bucket.c
Removed:
team/dlee/record/channels/chan_gulp.c
team/dlee/record/configs/res_sip.conf.sample
team/dlee/record/include/asterisk/res_sip.h
team/dlee/record/include/asterisk/res_sip_exten_state.h
team/dlee/record/include/asterisk/res_sip_pubsub.h
team/dlee/record/include/asterisk/res_sip_session.h
team/dlee/record/res/res_sip/
team/dlee/record/res/res_sip.c
team/dlee/record/res/res_sip.exports.in
team/dlee/record/res/res_sip_acl.c
team/dlee/record/res/res_sip_authenticator_digest.c
team/dlee/record/res/res_sip_caller_id.c
team/dlee/record/res/res_sip_diversion.c
team/dlee/record/res/res_sip_dtmf_info.c
team/dlee/record/res/res_sip_endpoint_identifier_anonymous.c
team/dlee/record/res/res_sip_endpoint_identifier_constant.c
team/dlee/record/res/res_sip_endpoint_identifier_ip.c
team/dlee/record/res/res_sip_endpoint_identifier_user.c
team/dlee/record/res/res_sip_exten_state.c
team/dlee/record/res/res_sip_exten_state.exports.in
team/dlee/record/res/res_sip_logger.c
team/dlee/record/res/res_sip_messaging.c
team/dlee/record/res/res_sip_mwi.c
team/dlee/record/res/res_sip_nat.c
team/dlee/record/res/res_sip_notify.c
team/dlee/record/res/res_sip_one_touch_record_info.c
team/dlee/record/res/res_sip_outbound_authenticator_digest.c
team/dlee/record/res/res_sip_outbound_registration.c
team/dlee/record/res/res_sip_pidf.c
team/dlee/record/res/res_sip_pubsub.c
team/dlee/record/res/res_sip_pubsub.exports.in
team/dlee/record/res/res_sip_refer.c
team/dlee/record/res/res_sip_registrar.c
team/dlee/record/res/res_sip_registrar_expire.c
team/dlee/record/res/res_sip_rfc3326.c
team/dlee/record/res/res_sip_sdp_rtp.c
team/dlee/record/res/res_sip_session.c
team/dlee/record/res/res_sip_session.exports.in
team/dlee/record/res/res_sip_transport_websocket.c
team/dlee/record/res/res_stasis_bridge_add.c
team/dlee/record/res/res_stasis_bridge_add.exports.in
Modified:
team/dlee/record/ (props changed)
team/dlee/record/CHANGES
team/dlee/record/Makefile
team/dlee/record/UPGRADE-11.txt
team/dlee/record/UPGRADE.txt
team/dlee/record/apps/app_agent_pool.c
team/dlee/record/apps/app_bridgewait.c
team/dlee/record/apps/app_chanspy.c
team/dlee/record/apps/app_confbridge.c
team/dlee/record/apps/app_dial.c
team/dlee/record/apps/app_directed_pickup.c
team/dlee/record/apps/app_directory.c
team/dlee/record/apps/app_followme.c
team/dlee/record/apps/app_meetme.c
team/dlee/record/apps/app_minivm.c
team/dlee/record/apps/app_playback.c
team/dlee/record/apps/app_queue.c
team/dlee/record/apps/app_stack.c
team/dlee/record/apps/app_voicemail.c
team/dlee/record/apps/confbridge/conf_chan_announce.c
team/dlee/record/apps/confbridge/conf_chan_record.c
team/dlee/record/apps/confbridge/conf_config_parser.c
team/dlee/record/apps/confbridge/confbridge_manager.c
team/dlee/record/bridges/bridge_builtin_features.c
team/dlee/record/bridges/bridge_builtin_interval_features.c
team/dlee/record/bridges/bridge_holding.c
team/dlee/record/bridges/bridge_native_rtp.c
team/dlee/record/bridges/bridge_softmix.c
team/dlee/record/build_tools/menuselect-deps.in
team/dlee/record/cel/cel_custom.c
team/dlee/record/cel/cel_manager.c
team/dlee/record/cel/cel_odbc.c
team/dlee/record/cel/cel_pgsql.c
team/dlee/record/cel/cel_radius.c
team/dlee/record/cel/cel_sqlite3_custom.c
team/dlee/record/cel/cel_tds.c
team/dlee/record/channels/Makefile
team/dlee/record/channels/chan_bridge_media.c
team/dlee/record/channels/chan_dahdi.c
team/dlee/record/channels/chan_gtalk.c
team/dlee/record/channels/chan_iax2.c
team/dlee/record/channels/chan_mgcp.c
team/dlee/record/channels/chan_misdn.c
team/dlee/record/channels/chan_motif.c
team/dlee/record/channels/chan_oss.c
team/dlee/record/channels/chan_sip.c
team/dlee/record/channels/chan_skinny.c
team/dlee/record/channels/chan_unistim.c
team/dlee/record/channels/chan_vpb.cc
team/dlee/record/channels/sig_analog.c
team/dlee/record/channels/sig_pri.c
team/dlee/record/channels/sig_pri.h
team/dlee/record/channels/sig_ss7.c
team/dlee/record/channels/sip/dialplan_functions.c
team/dlee/record/channels/sip/include/sip.h
team/dlee/record/configs/cel.conf.sample
team/dlee/record/configs/features.conf.sample
team/dlee/record/configs/h323.conf.sample
team/dlee/record/configs/sip.conf.sample
team/dlee/record/configure
team/dlee/record/configure.ac
team/dlee/record/contrib/scripts/install_prereq
team/dlee/record/contrib/scripts/sip_to_res_sip/astconfigparser.py
team/dlee/record/contrib/scripts/sip_to_res_sip/astdicts.py
team/dlee/record/contrib/scripts/sip_to_res_sip/sip_to_res_sip.py
team/dlee/record/default.exports
team/dlee/record/doc/appdocsxml.dtd
team/dlee/record/formats/format_wav_gsm.c
team/dlee/record/funcs/func_channel.c
team/dlee/record/funcs/func_frame_trace.c
team/dlee/record/funcs/func_global.c
team/dlee/record/funcs/func_presencestate.c
team/dlee/record/funcs/func_strings.c
team/dlee/record/include/asterisk/_private.h
team/dlee/record/include/asterisk/app.h
team/dlee/record/include/asterisk/astmm.h
team/dlee/record/include/asterisk/astobj2.h
team/dlee/record/include/asterisk/autoconfig.h.in
team/dlee/record/include/asterisk/backtrace.h
team/dlee/record/include/asterisk/bridge.h
team/dlee/record/include/asterisk/bridge_basic.h
team/dlee/record/include/asterisk/bridge_channel.h
team/dlee/record/include/asterisk/bridge_channel_internal.h
team/dlee/record/include/asterisk/bridge_features.h
team/dlee/record/include/asterisk/bridge_internal.h
team/dlee/record/include/asterisk/bridge_roles.h
team/dlee/record/include/asterisk/cel.h
team/dlee/record/include/asterisk/channel.h
team/dlee/record/include/asterisk/channel_internal.h
team/dlee/record/include/asterisk/config_options.h
team/dlee/record/include/asterisk/core_unreal.h
team/dlee/record/include/asterisk/devicestate.h
team/dlee/record/include/asterisk/doxygen/architecture.h
team/dlee/record/include/asterisk/event.h
team/dlee/record/include/asterisk/event_defs.h
team/dlee/record/include/asterisk/features.h
team/dlee/record/include/asterisk/format.h
team/dlee/record/include/asterisk/frame.h
team/dlee/record/include/asterisk/json.h
team/dlee/record/include/asterisk/lock.h
team/dlee/record/include/asterisk/manager.h
team/dlee/record/include/asterisk/musiconhold.h
team/dlee/record/include/asterisk/options.h
team/dlee/record/include/asterisk/parking.h
team/dlee/record/include/asterisk/presencestate.h
team/dlee/record/include/asterisk/say.h
team/dlee/record/include/asterisk/security_events_defs.h
team/dlee/record/include/asterisk/sorcery.h
team/dlee/record/include/asterisk/stasis.h
team/dlee/record/include/asterisk/stasis_app.h
team/dlee/record/include/asterisk/stasis_app_recording.h
team/dlee/record/include/asterisk/stasis_bridges.h
team/dlee/record/include/asterisk/stasis_channels.h
team/dlee/record/include/asterisk/stasis_endpoints.h
team/dlee/record/include/asterisk/strings.h
team/dlee/record/include/asterisk/threadstorage.h
team/dlee/record/include/asterisk/utils.h
team/dlee/record/main/Makefile
team/dlee/record/main/abstract_jb.c
team/dlee/record/main/aoc.c
team/dlee/record/main/app.c
team/dlee/record/main/asterisk.c
team/dlee/record/main/asterisk.exports.in
team/dlee/record/main/astfd.c
team/dlee/record/main/astmm.c
team/dlee/record/main/astobj2.c
team/dlee/record/main/autoservice.c
team/dlee/record/main/backtrace.c
team/dlee/record/main/bridge.c
team/dlee/record/main/bridge_basic.c
team/dlee/record/main/bridge_channel.c
team/dlee/record/main/bridge_roles.c
team/dlee/record/main/ccss.c
team/dlee/record/main/cdr.c
team/dlee/record/main/cel.c
team/dlee/record/main/channel.c
team/dlee/record/main/channel_internal_api.c
team/dlee/record/main/chanvars.c
team/dlee/record/main/cli.c
team/dlee/record/main/config_options.c
team/dlee/record/main/core_local.c
team/dlee/record/main/core_unreal.c
team/dlee/record/main/data.c
team/dlee/record/main/db.c
team/dlee/record/main/devicestate.c
team/dlee/record/main/endpoints.c
team/dlee/record/main/event.c
team/dlee/record/main/features.c
team/dlee/record/main/features_config.c
team/dlee/record/main/file.c
team/dlee/record/main/format.c
team/dlee/record/main/frame.c
team/dlee/record/main/hashtab.c
team/dlee/record/main/http.c
team/dlee/record/main/indications.c
team/dlee/record/main/json.c
team/dlee/record/main/loader.c
team/dlee/record/main/lock.c
team/dlee/record/main/logger.c
team/dlee/record/main/manager.c
team/dlee/record/main/manager_bridges.c
team/dlee/record/main/manager_channels.c
team/dlee/record/main/manager_endpoints.c
team/dlee/record/main/manager_mwi.c
team/dlee/record/main/message.c
team/dlee/record/main/parking.c
team/dlee/record/main/pbx.c
team/dlee/record/main/presencestate.c
team/dlee/record/main/rtp_engine.c
team/dlee/record/main/say.c
team/dlee/record/main/security_events.c
team/dlee/record/main/sorcery.c
team/dlee/record/main/sounds_index.c
team/dlee/record/main/stasis.c
team/dlee/record/main/stasis_bridges.c
team/dlee/record/main/stasis_cache.c
team/dlee/record/main/stasis_channels.c
team/dlee/record/main/stasis_endpoints.c
team/dlee/record/main/strings.c
team/dlee/record/main/threadstorage.c
team/dlee/record/main/udptl.c
team/dlee/record/main/utils.c
team/dlee/record/main/xml.c
team/dlee/record/main/xmldoc.c
team/dlee/record/makeopts.in
team/dlee/record/pbx/pbx_dundi.c
team/dlee/record/pbx/pbx_loopback.c
team/dlee/record/res/Makefile
team/dlee/record/res/ari/ari_model_validators.c
team/dlee/record/res/ari/ari_model_validators.h
team/dlee/record/res/ari/ari_websockets.c
team/dlee/record/res/ari/resource_asterisk.c
team/dlee/record/res/ari/resource_asterisk.h
team/dlee/record/res/ari/resource_bridges.c
team/dlee/record/res/ari/resource_bridges.h
team/dlee/record/res/ari/resource_channels.c
team/dlee/record/res/ari/resource_endpoints.c
team/dlee/record/res/ari/resource_events.c
team/dlee/record/res/ari/resource_events.h
team/dlee/record/res/ari/resource_recordings.c
team/dlee/record/res/ari/resource_recordings.h
team/dlee/record/res/ari/resource_sounds.h
team/dlee/record/res/parking/parking_applications.c
team/dlee/record/res/parking/parking_bridge.c
team/dlee/record/res/parking/parking_bridge_features.c
team/dlee/record/res/parking/parking_manager.c
team/dlee/record/res/parking/parking_ui.c
team/dlee/record/res/parking/res_parking.h
team/dlee/record/res/res_agi.c
team/dlee/record/res/res_ari_asterisk.c
team/dlee/record/res/res_ari_bridges.c
team/dlee/record/res/res_ari_channels.c
team/dlee/record/res/res_ari_endpoints.c
team/dlee/record/res/res_ari_events.c
team/dlee/record/res/res_ari_playback.c
team/dlee/record/res/res_ari_recordings.c
team/dlee/record/res/res_ari_sounds.c
team/dlee/record/res/res_chan_stats.c
team/dlee/record/res/res_corosync.c
team/dlee/record/res/res_jabber.c
team/dlee/record/res/res_musiconhold.c
team/dlee/record/res/res_parking.c
team/dlee/record/res/res_pktccops.c
team/dlee/record/res/res_rtp_asterisk.c
team/dlee/record/res/res_security_log.c
team/dlee/record/res/res_sorcery_astdb.c
team/dlee/record/res/res_stasis.c
team/dlee/record/res/res_stasis_playback.c
team/dlee/record/res/res_stasis_recording.c
team/dlee/record/res/res_xmpp.c
team/dlee/record/res/snmp/agent.c
team/dlee/record/res/stasis/app.c
team/dlee/record/res/stasis/app.h
team/dlee/record/res/stasis/control.c
team/dlee/record/res/stasis/control.h
team/dlee/record/rest-api-templates/ari_resource.h.mustache
team/dlee/record/rest-api-templates/param_parsing.mustache
team/dlee/record/rest-api-templates/res_ari_resource.c.mustache
team/dlee/record/rest-api/api-docs/asterisk.json
team/dlee/record/rest-api/api-docs/bridges.json
team/dlee/record/rest-api/api-docs/channels.json
team/dlee/record/rest-api/api-docs/events.json
team/dlee/record/rest-api/api-docs/recordings.json
team/dlee/record/rest-api/api-docs/sounds.json
team/dlee/record/tests/test_abstract_jb.c
team/dlee/record/tests/test_cdr.c
team/dlee/record/tests/test_cel.c
team/dlee/record/tests/test_config.c
team/dlee/record/tests/test_devicestate.c
team/dlee/record/tests/test_event.c
team/dlee/record/tests/test_hashtab_thrash.c
team/dlee/record/tests/test_jitterbuf.c
team/dlee/record/tests/test_json.c
team/dlee/record/tests/test_sorcery.c
team/dlee/record/tests/test_sorcery_astdb.c
team/dlee/record/tests/test_sorcery_realtime.c
team/dlee/record/tests/test_stasis.c
team/dlee/record/tests/test_stasis_endpoints.c
team/dlee/record/tests/test_voicemail_api.c
team/dlee/record/utils/Makefile
team/dlee/record/utils/astman.c
team/dlee/record/utils/extconf.c
team/dlee/record/utils/refcounter.c
Propchange: team/dlee/record/
('branch-11-blocked' removed)
Propchange: team/dlee/record/
('branch-11-merged' removed)
Propchange: team/dlee/record/
------------------------------------------------------------------------------
branch-12-merged = /branches/12:1-397816,397854,397856,397859
Propchange: team/dlee/record/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Aug 28 15:47:48 2013
@@ -1,1 +1,1 @@
-/trunk:1-395714
+/trunk:1-397869
Modified: team/dlee/record/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/dlee/record/CHANGES?view=diff&rev=397871&r1=397870&r2=397871
==============================================================================
--- team/dlee/record/CHANGES (original)
+++ team/dlee/record/CHANGES Wed Aug 28 15:47:48 2013
@@ -98,6 +98,20 @@
AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
sent. The "Variable" fields will also no longer exist on the Agent* events.
+ * The queue log now differentiates between blind and attended transfers. A
+ blind transfer will result in a BLINDTRANSFER message with the destination
+ context and extension. An attended transfer will result in an
+ ATTENDEDTRANSFER message. This message will indicate the method by which
+ the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
+ for running an application on a bridge or channel, or "LINK" for linking
+ two bridges together with local channels.
+
+ * Queues now support a hint for member paused state. The hint uses the form
+ 'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
+ are the name of the queue and the name of the member to subscribe to,
+ respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
+ Members will show as In Use when paused.
+
ResetCDR
------------------
* The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
@@ -117,6 +131,13 @@
interested res_stasis applications.
+Build System
+------------------
+ * Asterisk now optionally uses libxslt to improve XML documentation generation
+ and maintainability. If libxslt is not available on the system, some XML
+ documentation will be incomplete.
+
+
Core
------------------
* Redirecting reasons can now be set to arbitrary strings. This means
@@ -152,6 +173,15 @@
* A channel variable ATTENDEDTRANSFER is now set which indicates which channel
was responsible for an attended transfer in a similar fashion to
BLINDTRANSFER.
+
+
+Codecs
+------------------
+ * Added pass through support for VP8 and Opus
+
+ * Added format attribute negotiation for the Opus codec. Format attribute
+ negotiation is provided by the res_format_attr_opus module.
+
AMI (Asterisk Manager Interface)
------------------
@@ -298,12 +328,29 @@
account. When set in the general context, it will act as the default
setting for defined accounts.
+ * The 'BridgeAction' event was removed. It technically added no value, as the
+ Bridge Action already receives confirmation of the bridge through a
+ successful completion Event.
+
+ * The 'BridgeExec' events were removed. These events duplicated the events that
+ occur in the Briding API, and are conveyed now through BridgeCreate,
+ BridgeEnter, and BridgeLeave events.
+
+
AGI (Asterisk Gateway Interface)
------------------
* The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
* The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
and AsyncAGIEnd.
+
+ * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
+ will start the playback of the audio at the position specified. It will
+ also return the final position of the file in 'endpos'.
+
+ * The SAY ALPHA command now accepts an additional parameter to control
+ whether it specifies the case of uppercase, lowercase, or all letters to
+ provide functionality similar to SayAlphaCase.
CDR (Call Detail Records)
------------------
@@ -527,6 +574,10 @@
set of proxies by using a pre-loaded route-set defined by the Path headers in
the REGISTER request. See Realtime updates for more configuration information.
+ * The SIP_CODEC family of variables may now specify more than one codec. Each
+ codec must be separated by a comma. The first codec specified is the
+ preferred codec for the offer. This allows a dialplan writer to specify both
+ audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
Functions
------------------
Modified: team/dlee/record/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/dlee/record/Makefile?view=diff&rev=397871&r1=397870&r2=397871
==============================================================================
--- team/dlee/record/Makefile (original)
+++ team/dlee/record/Makefile Wed Aug 28 15:47:48 2013
@@ -444,6 +444,7 @@
$(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTDATADIR)/static-http" ; \
done
$(INSTALL) -m 644 doc/core-en_US.xml "$(DESTDIR)$(ASTDATADIR)/static-http";
+ $(INSTALL) -m 644 doc/snapshots.xslt "$(DESTDIR)$(ASTDATADIR)/static-http";
if [ -d doc/tex/asterisk ] ; then \
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/static-http/docs" ; \
for n in doc/tex/asterisk/* ; do \
@@ -466,6 +467,7 @@
@printf "Building Documentation For: "
@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
+ @echo "<?xml-stylesheet type=\"text/xsl\" href=\"snapshots.xslt\"?>" > $@
@echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
@for x in $(MOD_SUBDIRS); do \
printf "$$x " ; \
@@ -489,6 +491,7 @@
@printf "Building Documentation For: "
@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
+ @echo "<?xml-stylesheet type=\"text/xsl\" href=\"snapshots.xslt\"?>" > $@
@echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
@for x in $(MOD_SUBDIRS); do \
printf "$$x " ; \
@@ -571,6 +574,7 @@
fi
$(INSTALL) -m 644 doc/core-*.xml "$(DESTDIR)$(ASTDATADIR)/documentation"
+ $(INSTALL) -m 644 doc/snapshots.xslt "$(DESTDIR)$(ASTDATADIR)/documentation"
$(INSTALL) -m 644 doc/appdocsxml.dtd "$(DESTDIR)$(ASTDATADIR)/documentation"
$(INSTALL) -m 644 doc/asterisk.8 "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -m 644 contrib/scripts/astgenkey.8 "$(DESTDIR)$(ASTMANDIR)/man8"
Modified: team/dlee/record/UPGRADE-11.txt
URL: http://svnview.digium.com/svn/asterisk/team/dlee/record/UPGRADE-11.txt?view=diff&rev=397871&r1=397870&r2=397871
==============================================================================
--- team/dlee/record/UPGRADE-11.txt (original)
+++ team/dlee/record/UPGRADE-11.txt Wed Aug 28 15:47:48 2013
@@ -19,6 +19,11 @@
=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10
===
===========================================================
+From 11.5 to 11.6:
+* res_agi will now properly indicate if there was an error in streaming an
+ audio file. The result code will be -1 and the result returned from the
+ the function will be RESULT_FAILURE instead of the prior behavior of always
+ returning RESULT_SUCCESS even if there was an error.
From 11.4 to 11.5:
* The default settings for chan_sip are now overriden properly by the general
Modified: team/dlee/record/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/dlee/record/UPGRADE.txt?view=diff&rev=397871&r1=397870&r2=397871
==============================================================================
--- team/dlee/record/UPGRADE.txt (original)
+++ team/dlee/record/UPGRADE.txt Wed Aug 28 15:47:48 2013
@@ -96,6 +96,11 @@
- The Uniqueid field for a channel is now a stable identifier, and will not
change due to transfers, parking, etc.
+Build System:
+ - Asterisk now optionally uses libxslt to improve XML documentation generation
+ and maintainability. If libxslt is not available on the system, some XML
+ documentation will be incomplete.
+
Core:
- The following channel variables have changed behavior which is described in
the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
@@ -179,6 +184,10 @@
- Executing a dynamic feature on the bridge peer in a multi-party bridge will
execute it on all peers of the activating channel.
+
+ - There is no longer an explicit 'features reload' CLI command. Features can still be
+ reloaded using 'module reload features'.
+
Parking:
- The arguments for the Park, ParkedCall, and ParkAndAnnounce applications have
Modified: team/dlee/record/apps/app_agent_pool.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/record/apps/app_agent_pool.c?view=diff&rev=397871&r1=397870&r2=397871
==============================================================================
--- team/dlee/record/apps/app_agent_pool.c (original)
+++ team/dlee/record/apps/app_agent_pool.c Wed Aug 28 15:47:48 2013
@@ -49,6 +49,7 @@
#include "asterisk/astobj2.h"
#include "asterisk/stringfields.h"
#include "asterisk/stasis_channels.h"
+#include "asterisk/causes.h"
/*** DOCUMENTATION
<application name="AgentLogin" language="en_US">
@@ -202,49 +203,12 @@
<para>Epoche time when the agent logged in.</para>
<para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
</parameter>
- <parameter name="Channel">
- <xi:include xpointer="xpointer(/docs/managerEvent[@name='Newchannel']/managerEventInstance/syntax/parameter[@name='Channel']/para)" />
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="ChannelState">
- <xi:include xpointer="xpointer(/docs/managerEvent[@name='Newchannel']/managerEventInstance/syntax/parameter[@name='ChannelState']/para)" />
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="ChannelStateDesc">
- <xi:include xpointer="xpointer(/docs/managerEvent[@name='Newchannel']/managerEventInstance/syntax/parameter[@name='ChannelStateDesc']/para)" />
- <xi:include xpointer="xpointer(/docs/managerEvent[@name='Newchannel']/managerEventInstance/syntax/parameter[@name='ChannelStateDesc']/enumlist)" />
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="CallerIDNum">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="CallerIDName">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="ConnectedLineNum">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="ConnectedLineName">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="AccountCode">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="Context">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="Exten">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="Priority">
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
- <parameter name="Uniqueid">
- <xi:include xpointer="xpointer(/docs/managerEvent[@name='Newchannel']/managerEventInstance/syntax/parameter[@name='Uniqueid']/para)" />
- <para>Present if Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
- </parameter>
+ <channel_snapshot/>
<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
</syntax>
+ <description>
+ <para>The channel snapshot is present if the Status value is <literal>AGENT_IDLE</literal> or <literal>AGENT_ONCALL</literal>.</para>
+ </description>
<see-also>
<ref type="manager">Agents</ref>
</see-also>
@@ -797,7 +761,7 @@
ast_party_connected_line_free(&doomed->waiting_colp);
if (doomed->caller_bridge) {
- ast_bridge_destroy(doomed->caller_bridge);
+ ast_bridge_destroy(doomed->caller_bridge, AST_CAUSE_USER_BUSY);
doomed->caller_bridge = NULL;
}
if (doomed->logged) {
@@ -1056,15 +1020,17 @@
if (!caller_bridge) {
/* Reset agent. */
- ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_NORMAL_CLEARING);
return;
}
res = ast_bridge_move(caller_bridge, bridge_channel->bridge, bridge_channel->chan,
NULL, 0);
if (res) {
/* Reset agent. */
- ast_bridge_destroy(caller_bridge);
- ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_destroy(caller_bridge, AST_CAUSE_USER_BUSY);
+ ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_NORMAL_CLEARING);
return;
}
ast_bridge_channel_write_control_data(bridge_channel, AST_CONTROL_ANSWER, NULL, 0);
@@ -1159,13 +1125,15 @@
if (deferred_logoff) {
ast_debug(1, "Agent %s: Deferred logoff.\n", agent->username);
- ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_NORMAL_CLEARING);
} else if (probation_timedout) {
ast_debug(1, "Agent %s: Login complete.\n", agent->username);
agent_devstate_changed(agent->username);
} else if (ack_timedout) {
ast_debug(1, "Agent %s: Ack call timeout.\n", agent->username);
- ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_NORMAL_CLEARING);
} else if (wrapup_timedout) {
ast_debug(1, "Agent %s: Wrapup timeout. Ready for new call.\n", agent->username);
agent_devstate_changed(agent->username);
@@ -1239,7 +1207,7 @@
/* Add heartbeat interval hook. */
ao2_ref(agent, +1);
- if (ast_bridge_interval_hook(bridge_channel->features, 1000,
+ if (ast_bridge_interval_hook(bridge_channel->features, 0, 1000,
bridge_agent_hold_heartbeat, agent, __ao2_cleanup, AST_BRIDGE_HOOK_REMOVE_ON_PULL)) {
ao2_ref(agent, -1);
res = -1;
@@ -1270,7 +1238,8 @@
* agent will have some slightly different behavior in corner
* cases.
*/
- ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_NORMAL_CLEARING);
return 0;
}
@@ -1492,7 +1461,7 @@
agent_devstate_changed(agent->username);
if (caller_bridge) {
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, AST_CAUSE_USER_BUSY);
}
send_agent_logoff(logged, agent->username, time_logged_in);
@@ -1516,6 +1485,7 @@
struct ast_bridge_features features;
if (ast_bridge_features_init(&features)) {
+ ast_channel_hangupcause_set(logged, AST_CAUSE_NORMAL_CLEARING);
goto agent_run_cleanup;
}
for (;;) {
@@ -1524,6 +1494,8 @@
struct agent_cfg *cfg_old;
struct ast_bridge *holding;
struct ast_bridge *caller_bridge;
+
+ ast_channel_hangupcause_set(logged, AST_CAUSE_NORMAL_CLEARING);
holding = ao2_global_obj_ref(agent_holding);
if (!holding) {
@@ -1572,7 +1544,7 @@
agent_unlock(agent);
ao2_ref(cfg_old, -1);
if (caller_bridge) {
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, AST_CAUSE_USER_BUSY);
}
if (agent->state == AGENT_STATE_LOGGING_OUT
@@ -1698,13 +1670,14 @@
agent->caller_bridge = NULL;
agent_unlock(agent);
if (caller_bridge) {
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, AST_CAUSE_USER_BUSY);
}
return;
}
/* Kick the agent out of the holding bridge to reset it. */
- ast_bridge_channel_leave_bridge_nolock(logged, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_channel_leave_bridge_nolock(logged, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_NORMAL_CLEARING);
ast_bridge_channel_unlock(logged);
}
@@ -1714,7 +1687,8 @@
if (agent->state == AGENT_STATE_CALL_PRESENT) {
ast_verb(3, "Agent '%s' did not respond. Safety timeout.\n", agent->username);
- ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END);
+ ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END,
+ AST_CAUSE_USER_BUSY);
caller_abort_agent(agent);
}
@@ -1732,6 +1706,13 @@
ast_debug(1, "Agent '%s' does not exist. Where did it go?\n", agent_id);
return;
}
+
+ /* Change holding bridge participant role's idle mode to silence */
+ ast_bridge_channel_lock_bridge(bridge_channel);
+ ast_bridge_channel_clear_roles(bridge_channel);
+ ast_channel_set_bridge_role_option(bridge_channel->chan, "holding_participant", "idle_mode", "silence");
+ ast_bridge_channel_establish_roles(bridge_channel);
+ ast_bridge_unlock(bridge_channel->bridge);
/* Alert the agent. */
agent_lock(agent);
@@ -1761,8 +1742,8 @@
static int send_alert_to_agent(struct ast_bridge_channel *bridge_channel, const char *agent_id)
{
- return ast_bridge_channel_queue_callback(bridge_channel, agent_alert, agent_id,
- strlen(agent_id) + 1);
+ return ast_bridge_channel_queue_callback(bridge_channel,
+ AST_BRIDGE_CHANNEL_CB_OPTION_MEDIA, agent_alert, agent_id, strlen(agent_id) + 1);
}
static int send_colp_to_agent(struct ast_bridge_channel *bridge_channel, struct ast_party_connected_line *connected)
@@ -1834,7 +1815,7 @@
/* Add safety timeout hook. */
ao2_ref(agent, +1);
- if (ast_bridge_interval_hook(&caller_features, CALLER_SAFETY_TIMEOUT_TIME,
+ if (ast_bridge_interval_hook(&caller_features, 0, CALLER_SAFETY_TIMEOUT_TIME,
caller_safety_timeout, agent, __ao2_cleanup, AST_BRIDGE_HOOK_REMOVE_ON_PULL)) {
ao2_ref(agent, -1);
ast_bridge_features_cleanup(&caller_features);
@@ -1859,7 +1840,7 @@
case AGENT_STATE_LOGGING_OUT:
agent_unlock(agent);
ast_party_connected_line_free(&connected);
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, 0);
ast_bridge_features_cleanup(&caller_features);
ast_verb(3, "Agent '%s' not logged in.\n", agent->username);
pbx_builtin_setvar_helper(chan, "AGENT_STATUS", "NOT_LOGGED_IN");
@@ -1873,7 +1854,7 @@
default:
agent_unlock(agent);
ast_party_connected_line_free(&connected);
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, 0);
ast_bridge_features_cleanup(&caller_features);
ast_verb(3, "Agent '%s' is busy.\n", agent->username);
pbx_builtin_setvar_helper(chan, "AGENT_STATUS", "BUSY");
@@ -1885,7 +1866,7 @@
logged = agent_bridge_channel_get_lock(agent);
if (!logged) {
ast_party_connected_line_free(&connected);
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, 0);
ast_bridge_features_cleanup(&caller_features);
ast_verb(3, "Agent '%s' not logged in.\n", agent->username);
pbx_builtin_setvar_helper(chan, "AGENT_STATUS", "NOT_LOGGED_IN");
@@ -1900,7 +1881,7 @@
ast_bridge_channel_unlock(logged);
ao2_ref(logged, -1);
if (res) {
- ast_bridge_destroy(caller_bridge);
+ ast_bridge_destroy(caller_bridge, 0);
ast_bridge_features_cleanup(&caller_features);
[... 41049 lines stripped ...]
More information about the asterisk-commits
mailing list