[asterisk-commits] may: branch may/ooh323_qsig r397850 - in /team/may/ooh323_qsig: ./ apps/ brid...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Aug 28 03:51:00 CDT 2013


Author: may
Date: Wed Aug 28 03:50:41 2013
New Revision: 397850

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397850
Log:
Multiple revisions 396922-396923,396930,396946,396949,396993,396996,397035,397072-397073,397108-397111,397142,397158,397193,397206,397243-397244,397255,397294-397295,397297,397306-397307,397310,397346,397355,397366,397379,397415,397426,397431,397440-397441,397451,397461,397466

........
  r396922 | mjordan | 2013-08-19 18:53:49 +0400 (Mon, 19 Aug 2013) | 4 lines
  
  Whitespace cleanup
  
  Remove some extraneous blobs
........
  r396923 | jrose | 2013-08-19 18:54:08 +0400 (Mon, 19 Aug 2013) | 11 lines
  
  attended transfers: Fix a bug affecting external blond transfers
  
  Performing a blond transfer (attended transfer that is completed
  before the transfer recipient picks up) externally through chan_sip
  or chan_pjsip would result in lost references to the channels
  involved with the transfer as well as their bridge.
  
  (closes issue ASTERISK-22092)
  Reported by: mmichelson
  Review: https://reviewboard.asterisk.org/r/2766/
........
  r396930 | rmudgett | 2013-08-19 20:10:41 +0400 (Mon, 19 Aug 2013) | 1 line
  
  Update BUGBUG comment.
........
  r396946 | mjordan | 2013-08-20 03:58:47 +0400 (Tue, 20 Aug 2013) | 18 lines
  
  Resolve conflicts between CONFFLAG_DONT_DENOISE and CONFFLAG_INTROUSER_VMREC
  
  When r382230 added an option to not denoise the MeetMe conference (if a user
  had a channel whose format's sample rate changed frequently, for example),
  the value added was the maximum allowed value for the constants that define
  the options for MeetMe in 1.8. Not so in 11 - unfortunately, the option
  CONFFLAG_DONT_DENOISE conflicts with CONFFLAG_INTROUESR_VMREC. This patch
  fixes that, and also tweaks one of the way in which the constants was
  declared for consistency.
  
  Thanks to Tony Mountifield for pointing out the problem and solution.
  
  (closes issue ASTERISK-22269)
  Reported by: Tony Mountifield
  ........
  
  Merged revisions 396944 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r396949 | mjordan | 2013-08-20 04:08:33 +0400 (Tue, 20 Aug 2013) | 19 lines
  
  Let Queue wrap up time influence member availability
  
  Queue members who happen to be in multiple queues at the same time may not
  have any wrap up time. This problem occurred due to a code change in Asterisk
  11.3.0 that unified device state tracking of Queue members in multiple
  Queues (which fixed some other problems, but unfortunately caused this one).
  
  This patch fixes the behavior by having the is_member_available function
  check the queue's wrap up time and the time of the member's last call, such
  that for a particular queue, the member won't be considered available if their
  last call is within the wrap up time.
  
  (closes issue ASTERISK-22189)
  Reported by: Tony Lewis
  Tested by: Tony Lewis
  ........
  
  Merged revisions 396948 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r396993 | file | 2013-08-20 15:33:43 +0400 (Tue, 20 Aug 2013) | 5 lines
  
  Remove assumption in res_pjsip_dtmf_info that all INFO messages will contain a body.
  
  (closes issue ASTERISK-22320)
  Reported by: Matt Jordan
........
  r396996 | wdoekes | 2013-08-20 15:48:57 +0400 (Tue, 20 Aug 2013) | 13 lines
  
  Add "autoframing" option to sip.conf.sample and h323.conf.sample.
  
  The autoframing option was added to chan_sip.c in r43243 (mogorman,
  2006-09-19 01:32:57), but never made its way into the sample configs.
  
  Review: https://reviewboard.asterisk.org/r/2768/
  ........
  
  Merged revisions 396994 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 396995 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397035 | kmoore | 2013-08-20 18:08:37 +0400 (Tue, 20 Aug 2013) | 16 lines
  
  Blocked revisions 397034
  
  ........
  Protect CEL from an invalid config on reload
  
  This patch fixes CEL to properly handle an invalid config on reload.
  
  (closes issue ASTERISK-22259)
  Reported by: Corey Farrell
  Tested by: Corey Farrell
  Patches:
      cel-config.patch uploaded by Corey Farrell
  ........
  
  Merged revisions 397033 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
  r397072 | kmoore | 2013-08-20 18:26:20 +0400 (Tue, 20 Aug 2013) | 17 lines
  
  Recorded merge of revisions 397067 from http://svn.asterisk.org/svn/asterisk/branches/11
  
  ........
  Fix xmldoc memory leak
  
  This fixes a single-attribute memory leak that was occurring when the
  "required" attribute was not true.
  
  (closes issue ASTERISK-22249)
  Reported by: Corey Farrell
  Tested by: Corey Farrell
  Patches:
      xmldoc-free_attr_required.patch uploaded by Corey Farrell
  ........
  
  Merged revisions 397064 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
  r397073 | mmichelson | 2013-08-20 18:43:56 +0400 (Tue, 20 Aug 2013) | 6 lines
  
  Add note to transport configuration that a restart is required to change transports.
  
  (closes issue ASTERISK-22094)
  reported by Rusty Newton
........
  r397108 | mmichelson | 2013-08-20 19:27:48 +0400 (Tue, 20 Aug 2013) | 8 lines
  
  Add warning messages for registration failure paths.
  
  (closes issue ASTERISK-22089)
  reported by Rusty Newton
  patches:
  	patch1.txt uploaded by John Bigelow (License #5091)
........
  r397109 | mmichelson | 2013-08-20 19:32:20 +0400 (Tue, 20 Aug 2013) | 6 lines
  
  Add debug message to res_pjsip_endpoint_identifier_ip to indicate when an endpoint is successfully retrieved.
  
  (closes issue ASTERISK-22101)
  reported by Rusty Newton
........
  r397110 | kmoore | 2013-08-20 19:36:10 +0400 (Tue, 20 Aug 2013) | 17 lines
  
  Unregister CLI commands on exit
  
  This patch ensures that CLI commands enabled by DEBUG_FD_LEAKS and
  DEBUG_THREADLOCALS are cleaned up properly on exit.
  
  (closes issue ASTERISK-22238)
  Reported by: Corey Farrell
  Tested by: Corey Farrell
  Patches:
      debug_cli_unregister.patch uploaded by Corey Farrell
  ........
  
  Merged revisions 397106 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397107 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397111 | mmichelson | 2013-08-20 19:39:38 +0400 (Tue, 20 Aug 2013) | 7 lines
  
  Clarify documentation for the "identify_by" option for SIP endpoints.
  
  This also removes documentation for the options that no longer exist.
  
  (closes issue ASTERISK-22306)
  reported by Rusty Newton
........
  r397142 | mmichelson | 2013-08-20 20:25:33 +0400 (Tue, 20 Aug 2013) | 13 lines
  
  Fix refcounting of sip_pvt in test_sip_rtpqos test and unlink it from the list of pvts.
  
  (closes issue ASTERISK-22248)
  reported by Corey Farrell
  patches:
  	test_sip_rtpqos.patch uploaded by Corey Farrell (license #5909)
  ........
  
  Merged revisions 397112 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397133 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397158 | mmichelson | 2013-08-20 21:42:11 +0400 (Tue, 20 Aug 2013) | 8 lines
  
  Remove REF_DEBUG definition.
  ........
  
  Merged revisions 397156 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397157 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397193 | mmichelson | 2013-08-21 01:01:59 +0400 (Wed, 21 Aug 2013) | 13 lines
  
  Localize and rename ACL configuration.
  
  This is more-or-less a reversion of previous ACL behavior so that
  it is more self-contained. ACL sections are now only parsed if res_pjsip_acl.so
  is loaded. Moreover, the configuration section is now "type=acl" instead of
  "type=security".
  
  The original reason for having ACLs configured in a "type=security" section
  was to lump ACLs and other security-related items into the same section. The
  problem is that ACLs really should be in their own sections and there are
  no other security-related options implemented anyways.
........
  r397206 | elguero | 2013-08-21 06:15:16 +0400 (Wed, 21 Aug 2013) | 28 lines
  
  Fix Not Storing Current Incoming Recv Address
  
  In 1.8, r384779 introduced a regression by retrieving an old dialog and keeping
  the old recv address since recv was already set.  This has caused a problem when
  a proxy is involved since responses to incoming requests from the proxy server,
  after an outbound call is established, are never sent to the correct recv
  address.
  
  In 11, r382322 introduced this regression.
  
  The fix is to revert that change and always store the recv address on incoming
  requests.
  
  Thank you Walter Doekes for helping to point out this error and Mark Michelson
  for your input/review of the fix.
  
  (closes issue ASTERISK-22071)
  Reported by: Alex Zarubin
  Tested by: Alex Zarubin, Karsten Wemheuer
  Patches:
      asterisk-22071-store-recvd-address.diff by Michael L. Young (license 5026)
  ........
  
  Merged revisions 397204 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397205 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397243 | mjordan | 2013-08-21 17:41:05 +0400 (Wed, 21 Aug 2013) | 23 lines
  
  Allow the SIP_CODEC family of variables to specify more than one codec
  
  The SIP_CODEC family of variables let you set the preferred codec to be
  offered on an outbound INVITE request. However, for video calls, you need to
  be able to set both the audio and video codecs to be offered. This patch lets
  the SIP_CODEC variables accept a comma delineated list of codecs. The first
  codec in the list is set as the preferred codec; additional codecs are still
  offered however.
  
  This lets a dialplan writer set both audio and video codecs, e.g.,
  Set(SIP_CODEC=ulaw,h264)
  
  Note that this feature was written by both Dennis Guse and Frank Haase
  
  Review: https://reviewboard.asterisk.org/r/2728
  
  (closes issue ASTERISK-21976)
  Reported by: Denis Guse
  Tested by: mjordan, sysreq
  patches:
    patch-channels-chan__sip.c-393919 uploaded by dennis.guse (license 6513)
........
  r397244 | kmoore | 2013-08-21 18:08:23 +0400 (Wed, 21 Aug 2013) | 9 lines
  
  Allow channels in app_stasis to hangup properly
  
  This detects hangups that occur while bridged to allow channels to exit
  app_stasis even if the hangup frame was absorbed by the bridge the
  channel was in.
  
  Reported by: David Lee
  (closes issue ASTERISK-22297)
........
  r397255 | mmichelson | 2013-08-21 18:39:17 +0400 (Wed, 21 Aug 2013) | 16 lines
  
  Prevent a crash on outbound SIP MESSAGE requests.
  
  If a From header on an outbound out-of-call SIP MESSAGE were
  malformed, the result could crash Asterisk.
  
  In addition, if a From header on an incoming out-of-call SIP
  MESSAGE request were malformed, the message was happily accepted
  rather than being rejected up front. The incoming message path
  would not result in a crash, but the behavior was bad nonetheless.
  
  (closes issue ASTERISK-22185)
  reported by Zhang Lei
  ........
  
  Merged revisions 397254 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397294 | rmudgett | 2013-08-21 19:51:19 +0400 (Wed, 21 Aug 2013) | 32 lines
  
  Fix several interrelated issues dealing with the holding bridge technology.
  
  * Added an option flags parameter to interval hooks.  Interval hooks now
  can specify if the callback will affect the media path or not.
  
  * Added an option flags parameter to the bridge action custom callback.
  The action callback now can specify if the callback will affect the media
  path or not.
  
  * Made the holding bridge technology reexamine the participant idle mode
  option whenever the entertainment is restarted.
  
  * Fixed app_agent_pool waiting agents needlessly starting and stopping MOH
  every second by specifying the heartbeat interval hook as not affecting
  the media path.
  
  * Fixed app_agent_pool agent alert from restarting the MOH after the alert
  beep.  The agent entertainment is now changed from MOH to silence after
  the alert beep.
  
  * Fixed holding bridge technology to defer starting the entertainment.  It
  was previously a mixture of immediate and deferred.
  
  * Fixed holding bridge technology to immediately stop the entertainment.
  It was previously a mixture of immediate and deferred.  If the channel
  left the bridging system, any deferred stopping was discarded before
  taking effect.
  
  * Miscellaneous holding bridge technology rework coding improvements.
  
  Review: https://reviewboard.asterisk.org/r/2761/
........
  r397295 | dlee | 2013-08-21 20:00:10 +0400 (Wed, 21 Aug 2013) | 14 lines
  
  res_stasis: remove call to missing function control_continue.
  
  In the shuffling around of res_stasis, control_continue was renamed to
  stasis_app_control_continue, but the call in res_stasis wasn't updated.
  In looking into it, it turns out it wasn't really the right thing to do
  in res_stasis anyways.
  
  This patch changes the handling of received a AST_CONTROL_HANGUP frame
  to be the same as receiving a NULL frame, and removed the declaration of
  control_continue(), since it doesn't exist any more.
  
  (closes issue ASTERISK-22292)
  Reported by: Denis Smirnov
........
  r397297 | dlee | 2013-08-21 20:09:09 +0400 (Wed, 21 Aug 2013) | 12 lines
  
  ARI: Remove the 'channel:' scheme from endpoint's channel list.
  
  For times when a reference in ARI might be ambiguous, the reference is
  built as an URI (such as channel:1376341790.3).
  
  An endpoint's channel list is not ambiguous, and in fact the field is
  named 'channel_ids', but it had channel URI's instead of channel id's.
  This patch changes the list to be the raw id instead of the URI.
  
  (closes issue ASTERISK-22291)
........
  r397306 | dlee | 2013-08-21 20:23:59 +0400 (Wed, 21 Aug 2013) | 11 lines
  
  ARI: Correct segfault with /variable calls are missing ?variable parameter.
  
  Both /asterisk/variable and /channel/{channelId}/variable requires a
  ?variable parameter to be passed into the query. But we weren't checking
  for the parameter being missing, which caused a segfault.
  
  All calls now properly return 400 Bad Request errors when the parameter
  is missing. The Swagger api-docs were updated accordingly.
  
  (closes issue ASTERISK-22273)
........
  r397307 | mjordan | 2013-08-21 20:31:58 +0400 (Wed, 21 Aug 2013) | 22 lines
  
  Set 14400 as the default max bit rate if T38MaxBitRate is not specified
  
  If an endpoint fails to include the T38MaxBitRate attribute during negotiation,
  Asterisk will negotiate a bit rate of 2400 instead of the ITU recommended
  bit rate of 14400. This patch fixes this by making AST_T38_RATE_14400 the
  'default' value of the enum by assigning it a value of 0, such that if an
  endpoint fails to include the attribute, the default will be 14400.
  
  Note that Walter Doekes included the nice comment in frame.h about why we are
  purposefully assigning AST_T38_RATE_14400 a value of 0.
  
  (closes issue ASTERISK-22275)
  Reported by: Andreas Steinmetz
  patches:
    fax-fix.patch uploaded by anstein (License 6523)
  ........
  
  Merged revisions 397256 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397257 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397310 | dlee | 2013-08-21 21:12:30 +0400 (Wed, 21 Aug 2013) | 20 lines
  
  Complete http_shutdown.
  
  This patch frees up some resources allocated in http.c.
   * tcp listeners stopped
   * tls settings freed
   * uri redirects freed
   * unregister internal http.c uri's
  
  (closes issue ASTERISK-22237)
  Reported by: Corey Farrell
  
  Patches:
      http.patch uploaded by Corey Farrell (license 5909)
  ........
  
  Merged revisions 397308 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397309 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397346 | rmudgett | 2013-08-21 22:58:28 +0400 (Wed, 21 Aug 2013) | 1 line
  
  Deferred some more BUGBUG comments to a JIRA issue or XXX comment.
........
  r397355 | rmudgett | 2013-08-22 00:02:24 +0400 (Thu, 22 Aug 2013) | 5 lines
  
  * Move ast_bridge_channel_setup_features() into bridge_basic.c.
  
  * Made application map hooks be removed on a basic bridge personality
  change.
........
  r397366 | jrose | 2013-08-22 03:09:14 +0400 (Thu, 22 Aug 2013) | 15 lines
  
  UDPTL: Fix a regression where UDPTL won't load default settings
  
  If the file udptl.conf is unavailable at startup, UDPTL will fail to
  initialize and while it makes some noise, it isn't immediately
  obvious why consumers start to fail when using it. This patch makes
  UDPTL load as though an empty config was provided  when udptl is
  unavailable at startup.
  
  (closes issue ASTERISK-22349)
  Reported by: Jonathan Rose
  Review: https://reviewboard.asterisk.org/r/2773/
  ........
  
  Merged revisions 397365 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397379 | wdoekes | 2013-08-22 12:26:55 +0400 (Thu, 22 Aug 2013) | 25 lines
  
  Add _IO_stdin_used in version-script to fix SIGBUSes on Sparc.
  
  The --version-script,asterisk.exports linker flag (and the module
  exports) didn't provide _IO_stdin_used in the list of exported symbols.
  That causes some kind of libc compatibility mode to kick in, where
  stdio file structures (stdout/stderr) land somewhere else. In the
  case of the Sparc, they landed on misaligned memory.
  
  This became apparent first after r376428 (Reorder startup sequence)
  when a lot of ast_log's were replaced with fprintf's. Writing to
  stderr triggered a SIGBUS. (Compared to x86 and amd64 architectures,
  the Sparc is very picky about memory alignment.)
  
  (issue ASTERISK-21763)
  (issue ASTERISK-21665)
  
  Reported by: Jeremy Kister
  Review: https://reviewboard.asterisk.org/r/2760/
  ........
  
  Merged revisions 397377 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 397378 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r397415 | wdoekes | 2013-08-22 16:28:33 +0400 (Thu, 22 Aug 2013) | 6 lines
  
  Don't store repeated commands in the editline history buffer.
  
  The equivalent of bash HISTCONTROL=ignoredups.
  
  Review: https://reviewboard.asterisk.org/r/2775/
........
  r397426 | rmudgett | 2013-08-22 20:46:01 +0400 (Thu, 22 Aug 2013) | 1 line
  
  Update BUGBUG comment.
........
  r397431 | kmoore | 2013-08-22 21:13:16 +0400 (Thu, 22 Aug 2013) | 23 lines
  
  Make CEL behavior conform to the documentation
  
  This modifies the behavior of the CEL engine to conform to documented
  behavior for Asterisk 12 as defined on the wiki
  https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CEL+Specification
  
  The primary changes deal with removal of the peer field from function
  calls since it is no longer directly relevant to the bridging system
  and removal of the layer of CDR-like business logic that was providing
  a partial emulation of Asterisk 11 CEL functionality. With this change,
  there is no longer a distinction between "bridges" and "conferences"
  and all participation changes are denoted with bridge enter and bridge
  exit messages.
  
  This updates the CEL unit tests to handle these changes and simplifies
  some of the macros used in the process.
  
  This also fixes a segfault when attempting to ref a configuration that
  failed to load.
  
  Review: https://reviewboard.asterisk.org/r/2788/
  (issue ASTERISK-21567)
........
  r397440 | rmudgett | 2013-08-22 21:34:46 +0400 (Thu, 22 Aug 2013) | 8 lines
  
  Made the abstract jitter buffer resync on some more control frames.
  
  Resync the abstract jitter buffer on the following additional control
  frames:
  AST_CONTROL_HOLD
  AST_CONTROL_UNHOLD
  AST_CONTROL_T38_PARAMETERS
........
  r397441 | mmichelson | 2013-08-22 21:42:37 +0400 (Thu, 22 Aug 2013) | 13 lines
  
  Handle default body types for SIP event packages in res_pjsip_pubsub
  
  Prior to this change, we would reject SUBSCRIBE requests that had no Accept
  headers. Now event package handlers that handle the default type for the
  event package indicate that they do so. Therefore, if we have a handler that
  can handle the default type, we can allow SUBSCRIBEs for the handler's event
  package that have no Accept headers.
  
  (closes issue ASTERISK-22067)
  reported by Mark Michelson
  
  Review: https://reviewboard.asterisk.org/r/2774
........
  r397451 | mmichelson | 2013-08-22 22:52:41 +0400 (Thu, 22 Aug 2013) | 36 lines
  
  Massively clean up app_queue.
  
  This essentially makes app_queue usable again. From reviewboard:
  
  * Reporting of transfers and call completion is done by creating stasis 
    subscriptions and listening for specific events in order to determine
    when the call is finished (either via a transfer or hangup).
  * Dial end messages have been added where they were previously missing.
  * Queue stats are properly being updated again once calls have finished.
  * AgentComplete stasis messages and AMI events are now occurring again.
  * Mixmonitor starting has been factored into its own function and uses the
    Mixmonitor API now instead of using ast_pbx_run()
  
  In addition to the changes in app_queue, there are several supplementary changes as well:
  
  * Queue logging now differentiates between attended and blind transfers. A
    note about this is in the CHANGES file.
  * Local channel optimization events now report more information. This
    includes which of the two local channels involved is the destination of
    the optimization, the channel that is replacing the destination local channel,
    and an identifier so that begin and end events can be matched to each other.
    The end events are now sent whether the optimization was successful or not and
    includes an indicator of whether the optimization was successful.
  * Changes were made to features and bridging_basic so that additional flags may
    be set on a bridge. This is necessary because the queue requires that its
    bridge only allows move-swap local channel optimizations into the bridge.
  
  (closes issue ASTERISK-21517)
  Reported by Matt Jordan
  
  (closes issue ASTERISK-21943)
  Reported by Matt Jordan
  
  Review: https://reviewboard.asterisk.org/r/2694
........
  r397461 | kmoore | 2013-08-22 23:52:59 +0400 (Thu, 22 Aug 2013) | 1 line
  
  Fix crash when getting CEL config
........
  r397466 | mmichelson | 2013-08-23 00:18:27 +0400 (Fri, 23 Aug 2013) | 3 lines
  
  Remove set but unused variable 'meid'.
........

Merged revisions 396922-396923,396930,396946,396949,396993,396996,397035,397072-397073,397108-397111,397142,397158,397193,397206,397243-397244,397255,397294-397295,397297,397306-397307,397310,397346,397355,397366,397379,397415,397426,397431,397440-397441,397451,397461,397466 from http://svn.asterisk.org/svn/asterisk/trunk

Removed:
    team/may/ooh323_qsig/res/res_pjsip/config_security.c
Modified:
    team/may/ooh323_qsig/   (props changed)
    team/may/ooh323_qsig/CHANGES
    team/may/ooh323_qsig/apps/app_agent_pool.c
    team/may/ooh323_qsig/apps/app_bridgewait.c
    team/may/ooh323_qsig/apps/app_meetme.c
    team/may/ooh323_qsig/apps/app_queue.c
    team/may/ooh323_qsig/bridges/bridge_builtin_interval_features.c
    team/may/ooh323_qsig/bridges/bridge_holding.c
    team/may/ooh323_qsig/channels/chan_sip.c
    team/may/ooh323_qsig/channels/sip/dialplan_functions.c
    team/may/ooh323_qsig/channels/sip/include/sip.h
    team/may/ooh323_qsig/configs/h323.conf.sample
    team/may/ooh323_qsig/configs/sip.conf.sample
    team/may/ooh323_qsig/default.exports
    team/may/ooh323_qsig/include/asterisk/app.h
    team/may/ooh323_qsig/include/asterisk/bridge_basic.h
    team/may/ooh323_qsig/include/asterisk/bridge_channel.h
    team/may/ooh323_qsig/include/asterisk/bridge_features.h
    team/may/ooh323_qsig/include/asterisk/cel.h
    team/may/ooh323_qsig/include/asterisk/core_unreal.h
    team/may/ooh323_qsig/include/asterisk/features.h
    team/may/ooh323_qsig/include/asterisk/frame.h
    team/may/ooh323_qsig/include/asterisk/res_pjsip.h
    team/may/ooh323_qsig/include/asterisk/res_pjsip_pubsub.h
    team/may/ooh323_qsig/main/abstract_jb.c
    team/may/ooh323_qsig/main/app.c
    team/may/ooh323_qsig/main/asterisk.c
    team/may/ooh323_qsig/main/asterisk.exports.in
    team/may/ooh323_qsig/main/astfd.c
    team/may/ooh323_qsig/main/bridge.c
    team/may/ooh323_qsig/main/bridge_basic.c
    team/may/ooh323_qsig/main/bridge_channel.c
    team/may/ooh323_qsig/main/cel.c
    team/may/ooh323_qsig/main/core_local.c
    team/may/ooh323_qsig/main/features.c
    team/may/ooh323_qsig/main/http.c
    team/may/ooh323_qsig/main/stasis_endpoints.c
    team/may/ooh323_qsig/main/threadstorage.c
    team/may/ooh323_qsig/main/udptl.c
    team/may/ooh323_qsig/res/ari/resource_asterisk.c
    team/may/ooh323_qsig/res/ari/resource_channels.c
    team/may/ooh323_qsig/res/parking/parking_bridge_features.c
    team/may/ooh323_qsig/res/res_ari_asterisk.c
    team/may/ooh323_qsig/res/res_ari_channels.c
    team/may/ooh323_qsig/res/res_pjsip.c
    team/may/ooh323_qsig/res/res_pjsip/pjsip_configuration.c
    team/may/ooh323_qsig/res/res_pjsip_acl.c
    team/may/ooh323_qsig/res/res_pjsip_dtmf_info.c
    team/may/ooh323_qsig/res/res_pjsip_endpoint_identifier_ip.c
    team/may/ooh323_qsig/res/res_pjsip_exten_state.c
    team/may/ooh323_qsig/res/res_pjsip_mwi.c
    team/may/ooh323_qsig/res/res_pjsip_pubsub.c
    team/may/ooh323_qsig/res/res_pjsip_registrar.c
    team/may/ooh323_qsig/res/res_stasis.c
    team/may/ooh323_qsig/res/stasis/control.h
    team/may/ooh323_qsig/rest-api/api-docs/asterisk.json
    team/may/ooh323_qsig/rest-api/api-docs/channels.json
    team/may/ooh323_qsig/tests/test_cel.c

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
--- branch-11-blocked (original)
+++ branch-11-blocked Wed Aug 28 03:50:41 2013
@@ -1,1 +1,1 @@
-/branches/11:373240,375247,375702,385356,395020,396441
+/branches/11:373240,375247,375702,385356,395020,396441,397034

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Aug 28 03:50:41 2013
@@ -1,1 +1,1 @@
-/trunk:1-380157,380165-391000,391012,391016-393400,393410-393530,393542-393834,393843-394050,394065-394089,394103-394600,394623-394881,394894-395298,395316-395900,395906-396568,396581-396915
+/trunk:1-380157,380165-391000,391012,391016-393400,393410-393530,393542-393834,393843-394050,394065-394089,394103-394600,394623-394881,394894-395298,395316-395900,395906-396568,396581-396915,396922-397466

Modified: team/may/ooh323_qsig/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/CHANGES?view=diff&rev=397850&r1=397849&r2=397850
==============================================================================
--- team/may/ooh323_qsig/CHANGES (original)
+++ team/may/ooh323_qsig/CHANGES Wed Aug 28 03:50:41 2013
@@ -97,6 +97,14 @@
    removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
    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}
@@ -553,6 +561,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/may/ooh323_qsig/apps/app_agent_pool.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_agent_pool.c?view=diff&rev=397850&r1=397849&r2=397850
==============================================================================
--- team/may/ooh323_qsig/apps/app_agent_pool.c (original)
+++ team/may/ooh323_qsig/apps/app_agent_pool.c Wed Aug 28 03:50:41 2013
@@ -1202,7 +1202,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;
@@ -1696,6 +1696,13 @@
 		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);
 	playfile = ast_strdupa(agent->cfg->beep_sound);
@@ -1724,8 +1731,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)
@@ -1797,7 +1804,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);

Modified: team/may/ooh323_qsig/apps/app_bridgewait.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_bridgewait.c?view=diff&rev=397850&r1=397849&r2=397850
==============================================================================
--- team/may/ooh323_qsig/apps/app_bridgewait.c (original)
+++ team/may/ooh323_qsig/apps/app_bridgewait.c Wed Aug 28 03:50:41 2013
@@ -223,7 +223,7 @@
 	}
 
 	duration *= 1000;
-	if (ast_bridge_interval_hook(features, duration, bridgewait_timeout_callback,
+	if (ast_bridge_interval_hook(features, 0, duration, bridgewait_timeout_callback,
 		NULL, NULL, AST_BRIDGE_HOOK_REMOVE_ON_PULL)) {
 		ast_log(LOG_ERROR, "Timeout option 'S': Could not create timer.\n");
 		return -1;

Modified: team/may/ooh323_qsig/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_meetme.c?view=diff&rev=397850&r1=397849&r2=397850
==============================================================================
--- team/may/ooh323_qsig/apps/app_meetme.c (original)
+++ team/may/ooh323_qsig/apps/app_meetme.c Wed Aug 28 03:50:41 2013
@@ -750,9 +750,9 @@
 #define CONFFLAG_INTROMSG           (1ULL << 32) /*!< If set play an intro announcement at start of conference */
 #define CONFFLAG_INTROUSER_VMREC    (1ULL << 33)
 /*! If there's only one person left in a conference when someone leaves, kill the conference */
-#define CONFFLAG_KILL_LAST_MAN_STANDING ((uint64_t)1 << 34)
+#define CONFFLAG_KILL_LAST_MAN_STANDING (1ULL << 34)
 /*! If set, don't enable a denoiser for the channel */
-#define CONFFLAG_DONT_DENOISE       (1ULL << 33)
+#define CONFFLAG_DONT_DENOISE       (1ULL << 35)
 
 enum {
 	OPT_ARG_WAITMARKED = 0,

Modified: team/may/ooh323_qsig/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_queue.c?view=diff&rev=397850&r1=397849&r2=397850
==============================================================================
--- team/may/ooh323_qsig/apps/app_queue.c (original)
+++ team/may/ooh323_qsig/apps/app_queue.c Wed Aug 28 03:50:41 2013
@@ -108,6 +108,11 @@
 #include "asterisk/stasis_channels.h"
 #include "asterisk/stasis_message_router.h"
 #include "asterisk/bridge_after.h"
+#include "asterisk/stasis_bridges.h"
+#include "asterisk/core_local.h"
+#include "asterisk/mixmonitor.h"
+#include "asterisk/core_unreal.h"
+#include "asterisk/bridge_basic.h"
 
 /* Define, to debug reference counts on queues, without debugging reference counts on queue members */
 /* #define REF_DEBUG_ONLY_QUEUES */
@@ -1584,10 +1589,6 @@
 static struct member *interface_exists(struct call_queue *q, const char *interface);
 static int set_member_paused(const char *queuename, const char *interface, const char *reason, int paused);
 
-#if 0	// BUGBUG
-static void queue_transfer_fixup(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan);
-#endif	// BUGBUG
-
 static struct member *find_member_by_queuename_and_interface(const char *queuename, const char *interface);
 /*! \brief sets the QUEUESTATUS channel variable */
 static void set_queue_result(struct ast_channel *chan, enum queue_result res)
@@ -1734,7 +1735,9 @@
 
 static inline struct call_queue *_queue_unref(struct call_queue *q, const char *tag, const char *file, int line, const char *filename)
 {
-	__ao2_ref_debug(q, -1, tag, file, line, filename);
+	if (q) {
+		__ao2_ref_debug(q, -1, tag, file, line, filename);
+	}
 	return NULL;
 }
 
@@ -1753,7 +1756,9 @@
 
 static inline struct call_queue *queue_unref(struct call_queue *q)
 {
-	ao2_ref(q, -1);
+	if (q) {
+		ao2_ref(q, -1);
+	}
 	return NULL;
 }
 #endif
@@ -1906,25 +1911,19 @@
 		"%s", ast_str_buffer(event_string));
 }
 
-static void queue_publish_multi_channel_blob(struct ast_channel *caller, struct ast_channel *agent, struct stasis_message_type *type, struct ast_json *blob)
+static void queue_publish_multi_channel_snapshot_blob(struct stasis_topic *topic,
+		struct ast_channel_snapshot *caller_snapshot,
+		struct ast_channel_snapshot *agent_snapshot,
+		struct stasis_message_type *type, struct ast_json *blob)
 {
 	RAII_VAR(struct ast_multi_channel_blob *, payload, NULL, ao2_cleanup);
 	RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup);
-	struct ast_channel_snapshot *caller_snapshot;
-	struct ast_channel_snapshot *agent_snapshot;
 
 	payload = ast_multi_channel_blob_create(blob);
 	if (!payload) {
 		return;
 	}
 
-	caller_snapshot = ast_channel_snapshot_create(caller);
-	agent_snapshot = ast_channel_snapshot_create(agent);
-
-	if (!caller_snapshot || !agent_snapshot) {
-		return;
-	}
-
 	ast_multi_channel_blob_add_channel(payload, "caller", caller_snapshot);
 	ast_multi_channel_blob_add_channel(payload, "agent", agent_snapshot);
 
@@ -1933,7 +1932,24 @@
 		return;
 	}
 
-	stasis_publish(ast_channel_topic(caller), msg);
+	stasis_publish(topic, msg);
+}
+
+static void queue_publish_multi_channel_blob(struct ast_channel *caller, struct ast_channel *agent,
+		struct stasis_message_type *type, struct ast_json *blob)
+{
+	RAII_VAR(struct ast_channel_snapshot *, caller_snapshot, NULL, ao2_cleanup);
+	RAII_VAR(struct ast_channel_snapshot *, agent_snapshot, NULL, ao2_cleanup);
+
+	caller_snapshot = ast_channel_snapshot_create(caller);
+	agent_snapshot = ast_channel_snapshot_create(agent);
+
+	if (!caller_snapshot || !agent_snapshot) {
+		return;
+	}
+
+	queue_publish_multi_channel_snapshot_blob(ast_channel_topic(caller), caller_snapshot,
+			agent_snapshot, type, blob);
 }
 
 static void queue_publish_member_blob(struct stasis_message_type *type, struct ast_json *blob)
@@ -2064,7 +2080,7 @@
  * \retval 1 if the member is available
  * \retval 0 if the member is not available
  */
-static int is_member_available(struct member *mem)
+static int is_member_available(struct call_queue *q, struct member *mem)
 {
 	int available = 0;
 
@@ -2089,6 +2105,10 @@
 			break;
 	}
 
+	/* Let wrapuptimes override device state availability */
+	if (mem->lastcall && q->wrapuptime && (time(NULL) - q->wrapuptime < mem->lastcall)) {
+		available = 0;
+	}
 	return available;
 }
 
@@ -2139,7 +2159,7 @@
 
 			/* check every member until we find one NOT_INUSE */
 			if (!avail) {
-				avail = is_member_available(m);
+				avail = is_member_available(q, m);
 			}
 			if (avail && found_member) {
 				/* early exit as we've found an available member and the member of interest */
@@ -3703,7 +3723,7 @@
 	mem_iter = ao2_iterator_init(q->members, 0);
 	while ((mem = ao2_iterator_next(&mem_iter))) {
 
-		avl += is_member_available(mem);
+		avl += is_member_available(q, mem);
 		ao2_ref(mem, -1);
 
 		/* If autofill is not enabled or if the queue's strategy is ringall, then
@@ -3923,7 +3943,7 @@
 
 		member_call_pending_clear(tmp->member);
 
-		/* BUGBUG: Raise a BUSY dial end message here */
+		publish_dial_end_event(qe->chan, tmp, NULL, "BUSY");
 		tmp->stillgoing = 0;
 		++*busies;
 		return 0;
@@ -4346,14 +4366,8 @@
 		if (pos == 1 /* not found */) {
 			if (numlines == (numbusies + numnochan)) {
 				ast_debug(1, "Everyone is busy at this time\n");
-				/* BUGBUG: We shouldn't have to set anything here, as each
-				 * individual dial attempt should have set that CDR to busy
-				 */
 			} else {
 				ast_debug(3, "No one is answering queue '%s' (%d numlines / %d busies / %d failed channels)\n", queue, numlines, numbusies, numnochan);
-				/* BUGBUG: We shouldn't have to set anything here, as each
-				 * individual dial attempt should have set that CDR to busy
-				 */
 			}
 			*to = 0;
 			return NULL;
@@ -4979,7 +4993,6 @@
 	return res;
 }
 
-#if 0	// BUGBUG
 /*!
  * \brief update the queue status
  * \retval Always 0
@@ -5024,7 +5037,6 @@
 	ao2_unlock(q);
 	return 0;
 }
-#endif	// BUGBUG
 
 /*! \brief Calculate the metric of each member in the outgoing callattempts
  *
@@ -5113,14 +5125,16 @@
 	TRANSFER
 };
 
-#if 0	// BUGBUG
 /*! \brief Send out AMI message with member call completion status information */
-static void send_agent_complete(const struct queue_ent *qe, const char *queuename,
-	const struct ast_channel *peer, const struct member *member, time_t callstart,
-	char *vars, size_t vars_len, enum agent_complete_reason rsn)
+static void send_agent_complete(const char *queuename, struct ast_channel_snapshot *caller,
+	struct ast_channel_snapshot *peer, const struct member *member, time_t holdstart,
+	time_t callstart, enum agent_complete_reason rsn)
 {
 	const char *reason = NULL;	/* silence dumb compilers */
 	RAII_VAR(struct ast_json *, blob, NULL, ast_json_unref);
+
+	ast_assert(peer != NULL);
+	ast_assert(caller != NULL);
 
 	switch (rsn) {
 	case CALLER:
@@ -5138,121 +5152,656 @@
 			     "Queue", queuename,
 			     "Interface", member->interface,
 			     "MemberName", member->membername,
-			     "HoldTime", (long)(callstart - qe->start)
-			     "TalkTime", (long)(time(NULL) - callstart)
+			     "HoldTime", (long)(callstart - holdstart),
+			     "TalkTime", (long)(time(NULL) - callstart),
 			     "Reason", reason);
-	queue_publish_multi_channel_blob(qe->chan, peer, queue_agent_complete_type(), blob);
-}

[... 6197 lines stripped ...]



More information about the asterisk-commits mailing list