[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