[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