[asterisk-commits] schmidts: branch schmidts/unleash-the-beast r343159 - in /team/schmidts/unlea...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Nov 2 16:41:54 CDT 2011
Author: schmidts
Date: Wed Nov 2 16:41:26 2011
New Revision: 343159
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=343159
Log:
Multiple revisions 340279,340284,340365,340418,340470,340522,340534,340576,340662,340715,340717,340809,340863,340878,340970,341022,341074,341088,341108,341112,341189,341254,341312,341314,341366,341379,341435,341529,341664,341704,341717,341806,341809,341906,341921,342061,342223,342276,342328,342380,342383,342435,342484,342487,342545,342602,342661,342769,342869,342927,342990
........
r340279 | rmudgett | 2011-10-11 18:23:14 +0000 (Tue, 11 Oct 2011) | 31 lines
Convert registered AMI actions to ao2 objects.
* Fixed race between calling an AMI action callback and unregistering that
action. Refixes ASTERISK-13784 broken by ASTERISK-17785 change.
* Fixed potential memory leak if an AMI action failed to get registered
because is already was registered. Part of the ao2 conversion.
* Fixed AMI ListCommands action not walking the actions list with a lock
held.
* Fix usage of ast_strdupa() and alloca() in loops. Excess stack usage.
* Fix AMI Originate action Variable header requiring a space after the
header colon. Reported by Yaroslav Panych on the asterisk-dev list.
* Increased the number of listed variables allowed per AMI Originate
action Variable header to 64.
* Fixed AMI GetConfigJSON action output format.
* Fixed usage of res contents outside of scope in append_channel_vars().
* Fixed inconsistency of config file channelvars option. The values no
longer accumulate with every channelvars option in the config file. Only
the last value is kept to be consistent with the CLI "manager show
settings" command.
(closes issue ASTERISK-18479)
Reported by: Jaco Kroon
........
r340284 | rmudgett | 2011-10-11 19:16:47 +0000 (Tue, 11 Oct 2011) | 20 lines
Fix some potential deadlocks pointed out by helgrind.
* Fixed deadlock potential calling dialog_unlink_all() in
__sip_autodestruct(). Found by helgrind.
* Fixed deadlock potential in handle_request_invite() after calling
sip_new(). Found by helgrind.
* The sip_new() function now returns with the created channel already
locked.
* Removed the dead code that starts a PBX in in sip_new(). No sip_new()
callers caused that code to be executed and it was a bad thing to do
anyway.
* Removed unused parameters and return value from dialog_unlink_all().
* Made dialog_unlink_all() and __sip_autodestruct() safely obtain the
owner and private channel locks without a deadlock avoidance loop.
........
r340365 | rmudgett | 2011-10-11 21:03:15 +0000 (Tue, 11 Oct 2011) | 15 lines
Add protection for SS7 channel allocation and better glare handling.
* Added a CLI "ss7 show channels" command that might prove useful for
future debugging.
* Made the incoming SS7 channel event check and gripe message uniform.
* Made sure that the DNID string for an incoming call is always
initialized.
(issue ASTERISK-17966)
Reported by: Kenneth Van Velthoven
Patches:
jira_asterisk_17966_v1.8_glare.patch (license #5621) patch uploaded by rmudgett
........
r340418 | pabelanger | 2011-10-12 16:27:23 +0000 (Wed, 12 Oct 2011) | 5 lines
Fix verbose messages when IPv6 logic was added
(closes issue ASTERISK-18612)
Reported by: Tim Osman
........
r340470 | rmudgett | 2011-10-12 17:49:19 +0000 (Wed, 12 Oct 2011) | 10 lines
Update MeetMe p and X option documentation when interacting with the s option.
ASTERISK-12175 changed the p and X options to not interfere with the s
option when they are used together. It makes more sense for the s option
to have priority for the DTMF '*' key since it cannot change its
activation code. Otherwise, you could not use option s with the p or X
options.
JIRA AST-671
........
r340522 | rmudgett | 2011-10-12 20:07:33 +0000 (Wed, 12 Oct 2011) | 7 lines
Initialize the PRI channel alarms properly on startup.
The PRI channel alarms were initialized with an inverted sense.
(closes issue ASTERISK-18710)
Reported by: Tzafrir Cohen
........
r340534 | twilson | 2011-10-12 20:19:36 +0000 (Wed, 12 Oct 2011) | 9 lines
Update SIP realtime fullcontact regardless of caching
We should update the fullcontact field in the realtime table whether or
not rtcachefriends is set. There is no reason to treat a non-cached
realtime entity differently than a cached in this regard.
(closes issue ASTERISK-18446)
Reported by: wdoekes
........
r340576 | schmidts | 2011-10-12 20:30:37 +0000 (Wed, 12 Oct 2011) | 3 lines
Store route-set from provisional SIP responses so early-dialog requests can be routed properly
........
r340662 | twilson | 2011-10-13 00:05:17 +0000 (Thu, 13 Oct 2011) | 10 lines
Don't skip the query field on a realtime multi query
There is no documented reason to not add the query field to the varlist
returned by a realtime multi query, despite the config category being
set to its value. Of course, there is no documentation that the category
should be set to the value either. There is lots of no documentation
when it comes to realtime. But, other engines do not skip this field so
I am forcing this backend to follow the convention, because not doing so
is very silly.
........
r340715 | twilson | 2011-10-13 06:52:12 +0000 (Thu, 13 Oct 2011) | 4 lines
Initialize ast_sockaddr before calling ast_sockaddr_resolve
Avoid possible jump based on unitialized value
........
r340717 | schmidts | 2011-10-13 06:58:00 +0000 (Thu, 13 Oct 2011) | 3 lines
storing the route-set also on a 181 response not only on 180,182 or 183.
........
r340809 | rmudgett | 2011-10-13 22:48:58 +0000 (Thu, 13 Oct 2011) | 23 lines
Fix DTMF blind transfer continuing to execute dialplan after transfer.
Party A calls Party B.
Party A DTMF blind transfers Party B to Party C.
Party A channel continues to execute dialplan.
* Fixed the return value of builtin_blindtransfer() to return the correct
value after a transfer so the dialplan will not keep executing.
* Removed unnecessary connected line update that did not really do
anything.
* Made access to GOTO_ON_BLINDXFR thread safe in check_goto_on_transfer().
* Fixed leak of xferchan for failure cases in check_goto_on_transfer().
* Updated debug messages in builtin_blindtransfer() and
check_goto_on_transfer().
(closes issue ASTERISK-18275)
Reported by: rmudgett
Tested by: rmudgett
........
r340863 | jrose | 2011-10-14 15:58:44 +0000 (Fri, 14 Oct 2011) | 5 lines
Fixes some support level info so that it can be read by menuselect.
(issue ASTERISK-18268)
Review: https://reviewboard.asterisk.org/r/1525/
........
r340878 | twilson | 2011-10-14 16:33:28 +0000 (Fri, 14 Oct 2011) | 8 lines
Avoid unnecessary WARNING message
Add AST_CONTROL_UPDATE_RTP_PEER frame to be ignored here to avoid
displaying a WARNING message.
(closes issue ASTERISK-18610)
Patch by: Kristijan_Vrban
........
r340970 | kmoore | 2011-10-14 20:49:39 +0000 (Fri, 14 Oct 2011) | 8 lines
Quiet RTCP Receiver Reports during fax transmission
RTCP is now disabled for "inactive" RTP audio streams during SIP T.38 sessions.
The ability to disable RTCP streams in res_rtp_asterisk was missing, so this
code was added to support the bug fix.
(closes issue ASTERISK-18400)
........
r341022 | kpfleming | 2011-10-14 21:36:06 +0000 (Fri, 14 Oct 2011) | 10 lines
Change the internal name of the menuselect options that are used to control
whether modules are embedded or not; using just the bare category name led to
accidentally enabling these options when users used the wrong "--enable"
operation on the menuselect command line.
Now the internal option names are prefixed with "EMBED_", so they won't be
the same as the name of the category containing the modules they control
the embedding of.
........
r341074 | tzafrir | 2011-10-17 15:08:21 +0000 (Mon, 17 Oct 2011) | 5 lines
Remove an unused include of md5.h
Unused include of asterisk/md5.h in pbx_realtime.c . A commit needed to
test the commit message.
........
r341088 | twilson | 2011-10-17 15:35:05 +0000 (Mon, 17 Oct 2011) | 4 lines
Don't try to remove peers without IPs from peers_by_ip
(closes issue ASTERISK-18696)
........
r341108 | pabelanger | 2011-10-17 16:22:19 +0000 (Mon, 17 Oct 2011) | 2 lines
Voicemail compiler flags are 'core' support
........
r341112 | pabelanger | 2011-10-17 16:23:33 +0000 (Mon, 17 Oct 2011) | 2 lines
Fix previous commit
........
r341189 | twilson | 2011-10-17 17:35:23 +0000 (Mon, 17 Oct 2011) | 10 lines
Initialize variables before calling parse_uri
If parse_uri was called with an empty URI, some pointers would be
modified and an invalid read could result. This patch avoids calling
parse_uri with an empty contact uri when parsing REGISTER requests.
AST-2011-012
(closes issue ASTERISK-18668)
........
r341254 | rmudgett | 2011-10-18 21:03:04 +0000 (Tue, 18 Oct 2011) | 13 lines
More parking issues.
* Fix potential deadlocks in SIP and IAX blind transfer to parking.
* Fix SIP, IAX, DAHDI analog, and MGCP channel drivers to respect the
parkext_exclusive option with transfers (Park(,,,,,exclusive_lot)
parameter). Created ast_park_call_exten() and ast_masq_park_call_exten()
to maintian API compatibility.
* Made masq_park_call() handle a failed ast_channel_masquerade() setup.
* Reduced excessive struct parkeduser.peername[] size.
........
r341312 | may | 2011-10-18 23:20:53 +0000 (Tue, 18 Oct 2011) | 3 lines
fix issue on channel numbering (calls could have same channel number
on heavy loaded system)
........
r341314 | twilson | 2011-10-18 23:37:57 +0000 (Tue, 18 Oct 2011) | 12 lines
Don't resolve numeric hosts or contact unresolved hosts
If a SIP dial string contains a numeric hostname that is not a peer name,
don't try to resolve it as it is unlikely that someone really means
Dial(SIP/0.0.4.26) when Dial(SIP/1050) is called. Also, make sure that
create_addr returns -1 if an address isn't resolved so that we don't
attempt to send SIP requests to an address that doesn't resolve.
(closes issue ASTERISK-17146, ASTERISK-17716)
Review: https://reviewboard.asterisk.org/r/1532/
........
r341366 | schmidts | 2011-10-19 07:15:51 +0000 (Wed, 19 Oct 2011) | 2 lines
Don't sent in-dialog requests like UPDATE when Asterisk has not yet received a Contact URI from a UAS
........
r341379 | twilson | 2011-10-19 07:38:52 +0000 (Wed, 19 Oct 2011) | 7 lines
Don't use is_int() since it doesn't link well on all platforms
Just create an normal API function in strings.h that does the same thing
just to be safe.
ASTERISK-17146
........
r341435 | pabelanger | 2011-10-19 18:59:39 +0000 (Wed, 19 Oct 2011) | 12 lines
Outgoing calls with Google Voice
Google has recently make some changes (again) to their protocol. Rather then
patching asterisk to flip between the two different methods, we now allow both.
Lets hope this keeps Google Voice happy for a while.
(closes issue ASTERISK-18714)
Reported by: Iordan Iordanov
Patches:
chan_gtalk.patch uploaded by Iordan Iordanov (licenses 6311)
........
r341529 | twilson | 2011-10-20 15:11:44 +0000 (Thu, 20 Oct 2011) | 6 lines
Clean up ast_check_digits
The code was originally copied from the is_int() function in the AEL
code. wdoekes pointed out that the function should take a const char*
and that their was an unneeded variable. This is now fixed.
........
r341664 | pabelanger | 2011-10-20 20:46:58 +0000 (Thu, 20 Oct 2011) | 2 lines
Updated documentation for the optional CID parameter with CALLERID
........
r341704 | pabelanger | 2011-10-20 21:26:41 +0000 (Thu, 20 Oct 2011) | 2 lines
Fixed typo from previous commit
........
r341717 | rmudgett | 2011-10-20 21:54:11 +0000 (Thu, 20 Oct 2011) | 18 lines
Fix AGI exec Park to honor the Park application parameters.
The fix for ASTERISK-12715 and ASTERISK-12685 added a check for the Park
application because the channel needed to be masqueraded to prevent a
crash. Since the Park application now always masquerades the channel into
the parking lot, the special check is no longer needed. The fix also
resulted in AGI exec Park attempting to double park the call and not honor
the Park application parameters.
* Removed no longer necessary call to ast_masq_park_call() by AGI exec for
the Park application. (Reverts -r146923)
* Fix Park application to only return 0 or -1. The AGI exec Park was
causing broken pipe error messages because the Park application returned 1
on successful park.
(closes issue ASTERISK-18737)
........
r341806 | mnicholson | 2011-10-21 16:18:51 +0000 (Fri, 21 Oct 2011) | 4 lines
don't limit the length of app and function arguments
ASTERISK-18395
........
r341809 | mnicholson | 2011-10-21 16:41:59 +0000 (Fri, 21 Oct 2011) | 4 lines
only process args that exist
ASTERISK-18395
........
r341906 | irroot | 2011-10-23 11:09:42 +0000 (Sun, 23 Oct 2011) | 5 lines
Whitespace Fixups / Add Braces
This janitorial patch is related to work on RB1538
........
r341921 | irroot | 2011-10-23 11:36:01 +0000 (Sun, 23 Oct 2011) | 1 line
Revert Janitor patch 341906 For now
........
r342061 | jrose | 2011-10-24 19:49:51 +0000 (Mon, 24 Oct 2011) | 11 lines
Outbound SIP OPTIONS messages will now include fromuser of related peer.
This behavior matches up more closely with the way invite/register/etc are handled.
This patch also modifies some adjacent code for code style compliance. Pretty minor.
(closes issue ASTERISK-17616)
Reported by: Jeremy Kister
Patches:
chan_sip.c-options-fromuser-fix-v1.patch uploaded by Jeremy Kister (license #6232)
........
r342223 | twilson | 2011-10-25 01:23:29 +0000 (Tue, 25 Oct 2011) | 8 lines
Return NULL when no results returned for realtime_multientry
It was not documented what the return value should be when no entries
were returned with the multientry realtime callback. This change forces
consistent behavior even if the backends return an empty ast_config.
Review: https://reviewboard.asterisk.org/r/1521/
........
r342276 | kmoore | 2011-10-25 16:06:57 +0000 (Tue, 25 Oct 2011) | 18 lines
Fix spool handling to allow call files to be hardlinked into place
This fixes the inotify code to handle call files being hardlinked into the
spool directory.
The smsq utility does this, instead of rename(), to ensure that it cannot
accidentally overwrite an existing spool file. A rename() might do that, but
link() will definitely not.
The inotify code had broken this, because it would wait for an IN_CLOSE_WRITE
event on the file... which was never forthcoming, since it was never opened.
Now we look for IN_OPEN events following the IN_CREATE event, and only wait
for an IN_CLOSE_WRITE if the file was actually opened.
Patch-by: dwmw2
(closes issue ASTERISK-18331)
Review: https://reviewboard.asterisk.org/r/1391/
........
r342328 | kmoore | 2011-10-25 19:08:04 +0000 (Tue, 25 Oct 2011) | 6 lines
Fix compilation on Snow Leopard/FreeBSD for pbx_spool.c
One of the changes in the recent spool handling of hardlinks patch was just
outside a HAVE_INOTIFY block and caused compilation to fail in some build
environments. This has been corrected.
........
r342380 | twilson | 2011-10-25 19:52:16 +0000 (Tue, 25 Oct 2011) | 9 lines
Properly update membercount for reloaded members
Since q->membercount is set to 0 before reloading, it is important
to increment it again for reloaded members as well as added.
(closes issue AST-676)
Review: https://reviewboard.asterisk.org/r/1541/
........
r342383 | twilson | 2011-10-25 20:02:55 +0000 (Tue, 25 Oct 2011) | 21 lines
Simplify queue membercount code
Despite an ominous sounding comment stating that membercount was for "logged
in" members only and thus we couldn't use ao2_container_count(), I could not
find a single place in the code where that seemed to be accurate. The only time
we decremented membercount was when we were marking something dead or actually
removing it. The only places we incremented it were either after ao2_link(), or
trying to correct for having set it to 0 during a reload. In every case where
we were correcting the value, it seemed that we were trying to make the count
actually match what ao2_container_count() would return. The only place I could
find where we made a determination about something being "logged in" or not, we
didn't trust the membercount, but instead looked at devicestate, paused, etc.
This patch removes membercount, replaces its use with ao2_container_count, and
manually adds the results of ao2_container_count to a "membercount" field for
ast_data queue query results. This patch also would fix AST-676, but as it is
slightly riskier than the previously committed fix, the two commits have been
made separately.
Reivew: https://reviewboard.asterisk.org/r/1541/
........
r342435 | twilson | 2011-10-25 21:08:23 +0000 (Tue, 25 Oct 2011) | 4 lines
Use int for storing ao2_container_count instad of size_t
AST-676
........
r342484 | rmudgett | 2011-10-25 21:45:54 +0000 (Tue, 25 Oct 2011) | 12 lines
Change D-channel warning to be less confusing on non-NFAS setups.
The "No D-channels available! Using Primary channel as D-channel anyway!"
WARNING message has been confusing on non-NFAS setups. The message refers
to things that are NFAS specific.
* Changed the warning to several different warnings to be more accurate
for the situation and less confusing as a result:
"No D-channels up! Switching selected D-channel from X to Y.",
"No D-channels up!", and
"D-channel is down!".
........
r342487 | rmudgett | 2011-10-25 22:04:59 +0000 (Tue, 25 Oct 2011) | 7 lines
Check fopen return value for ao2 reference debug output.
Reported by: wdoekes
Patched by: wdoekes
Review: https://reviewboard.asterisk.org/r/1539/
........
r342545 | jrose | 2011-10-27 13:58:21 +0000 (Thu, 27 Oct 2011) | 8 lines
Cleanup reference leaks in res_jabber
res_jabber.c had a number of places where astobjs would be referenced and have their
reference counts bumped without having a dereference made before the object lost scope.
This patch adds a number of ASTOBJ_UNREFs to resolve that.
Review: https://reviewboard.asterisk.org/r/1478/
........
r342602 | jrose | 2011-10-27 19:34:29 +0000 (Thu, 27 Oct 2011) | 15 lines
Fix sequence number overflow over 16 bits causing codec change in RTP packets.
Sequence number was handled as an unsigned integer (usually 32 bits I think, more
depending on the architecture) and was put into the rtp packet which is basically
just a bunch of bits using an or operation. Sequence number only has 16 bits
allocated to it in an RTP packet anyway, so it would add to the next field which
just happened to be the codec. This makes sure the sequence number is set to be
a 16 bit integer regardless of architecture (hopefully) and also makes it so the
incrementing of the sequence number does bitwise or at the peak of a 16 bit number
so that the value will be set back to 0 when going beyond 65535 anyway.
(closes issue ASTERISK-18291)
Reported by: Will Schick
Review: https://reviewboard.asterisk.org/r/1542/
........
r342661 | rmudgett | 2011-10-29 04:19:42 +0000 (Sat, 29 Oct 2011) | 14 lines
Fix AST_LIST_INSERT_BEFORE_CURRENT() updating the wrong variable.
AST_LIST_INSERT_BEFORE_CURRENT() could not be used twice in an iteration
or before AST_LIST_REMOVE_CURRENT() without corrupting the list.
AST_LIST_INSERT_BEFORE_CURRENT() could also corrupt the list if
AST_LIST_INSERT_BEFORE_CURRENT() or AST_LIST_REMOVE_CURRENT() is used on
the next iteration.
* Fixed cut and paste error using the wrong variable in
AST_LIST_INSERT_BEFORE_CURRENT().
* Added linked list unit tests for AST_LIST_INSERT_BEFORE_CURRENT(),
AST_LIST_APPEND_LIST(), and AST_LIST_INSERT_LIST_AFTER().
........
r342769 | mjordan | 2011-10-31 15:58:06 +0000 (Mon, 31 Oct 2011) | 24 lines
Fixed invalid memory access when adding extension to pattern match tree
When an extension is removed from a context, its entry in the pattern match
tree is not deleted. Instead, the extension is marked as deleted. When an
extension is removed and re-added, if that extension is also a prefix of
another extension, several log messages would report an error and did not
check whether or not the extension was deleted before accessing the memory.
Additionally, if the extension was already in the tree but previously
deleted, and the pattern was at the end of a match, the findonly flag was
not honored and the extension would be erroneously undeleted.
Additionaly, it was discovered that an IAX2 peer could be unregistered
via the CLI, while at the same time it could be scheduled for unregistration
by Asterisk. The unregistration method now checks to see if the peer
was already unregistered before continuing with an unregistration.
(closes issue ASTERISK-18135)
Reported by: Jaco Kroon, Henry Fernandes, Kristijan Vrban
Tested by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1526
........
r342869 | wdoekes | 2011-11-01 19:37:47 +0000 (Tue, 01 Nov 2011) | 11 lines
Cleanup references to sipusers and sipfriends dynamic realtime families
Somewhere between 1.4 and 1.8 the sipusers family has become completely
unused. Before that, the sipfriends family had been obsoleted in favor
of separate sipusers and sippeers families. Apparently, they have been
merged back again into a single family which is now called "sippeers".
Reviewed by: irroot, oej, pabelanger
Review: https://reviewboard.asterisk.org/r/1523
........
r342927 | wdoekes | 2011-11-01 20:53:37 +0000 (Tue, 01 Nov 2011) | 27 lines
Several fixes to the chan_sip dynamic realtime peer/user lookup
There were several problems with the dynamic realtime peer/user lookup
code. The lookup logic had become rather hard to read due to lots of
incremental changes to the realtime_peer function. And, during the
addition of the sipregs functionality, several possibilities for memory
leaks had been introduced. The insecure=port matching has always been
broken for anyone using the sipregs family. And, related, the broken
implementation forced those using sipregs to *still* have an ipaddr
column on their sippeers table.
Thanks Terry Wilson for comprehensive testing and finding and fixing
unexpected behaviour from the multientry realtime call which caused
the realtime_peer to have a completely unused code path.
This changeset fixes the leaks, the lookup inconsistenties and that
you won't need an ipaddr column on your sippeers table anymore (when
you're using sipregs). Beware that when you're using sipregs, peers
with insecure=port will now start matching!
(closes issue ASTERISK-17792)
(closes issue ASTERISK-18356)
Reported by: marcelloceschia, Walter Doekes
Reviewed by: Terry Wilson
Review: https://reviewboard.asterisk.org/r/1395
........
r342990 | kpfleming | 2011-11-02 13:44:17 +0000 (Wed, 02 Nov 2011) | 9 lines
Modify comments in MeetMe application documentation about DAHDI.
The MeetMe application documentation has some comments about usage of DAHDI,
and they were a bit outdated relative to modern DAHDI releases. This patch
changes the comment to just tell the user that a functional DAHDI timing
source is required, and no longer mention 'dahdi_dummy', since that module
does not exist in current DAHDI releases.
........
Merged revisions 340279,340284,340365,340418,340470,340522,340534,340576,340662,340715,340717,340809,340863,340878,340970,341022,341074,341088,341108,341112,341189,341254,341312,341314,341366,341379,341435,341529,341664,341704,341717,341806,341809,341906,341921,342061,342223,342276,342328,342380,342383,342435,342484,342487,342545,342602,342661,342769,342869,342927,342990 from http://svn.asterisk.org/svn/asterisk/branches/1.8
Added:
team/schmidts/unleash-the-beast/contrib/realtime/mysql/sippeers.sql
- copied unchanged from r342990, branches/1.8/contrib/realtime/mysql/sippeers.sql
Removed:
team/schmidts/unleash-the-beast/contrib/realtime/mysql/sipfriends.sql
Modified:
team/schmidts/unleash-the-beast/ (props changed)
team/schmidts/unleash-the-beast/Makefile.moddir_rules
team/schmidts/unleash-the-beast/UPGRADE.txt
team/schmidts/unleash-the-beast/addons/chan_ooh323.c
team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c
team/schmidts/unleash-the-beast/apps/app_meetme.c
team/schmidts/unleash-the-beast/apps/app_queue.c
team/schmidts/unleash-the-beast/apps/app_system.c
team/schmidts/unleash-the-beast/apps/app_voicemail.c
team/schmidts/unleash-the-beast/build_tools/cflags.xml
team/schmidts/unleash-the-beast/build_tools/embed_modules.xml
team/schmidts/unleash-the-beast/channels/chan_dahdi.c
team/schmidts/unleash-the-beast/channels/chan_gtalk.c
team/schmidts/unleash-the-beast/channels/chan_iax2.c
team/schmidts/unleash-the-beast/channels/chan_mgcp.c
team/schmidts/unleash-the-beast/channels/chan_sip.c
team/schmidts/unleash-the-beast/channels/sig_analog.c
team/schmidts/unleash-the-beast/channels/sig_pri.c
team/schmidts/unleash-the-beast/channels/sig_ss7.c
team/schmidts/unleash-the-beast/channels/sig_ss7.h
team/schmidts/unleash-the-beast/channels/sip/include/dialog.h
team/schmidts/unleash-the-beast/channels/sip/include/sip.h
team/schmidts/unleash-the-beast/codecs/codec_dahdi.c
team/schmidts/unleash-the-beast/configs/dbsep.conf.sample
team/schmidts/unleash-the-beast/configs/extconfig.conf.sample
team/schmidts/unleash-the-beast/configs/res_config_mysql.conf.sample
team/schmidts/unleash-the-beast/configs/res_ldap.conf.sample
team/schmidts/unleash-the-beast/funcs/func_callerid.c
team/schmidts/unleash-the-beast/funcs/func_realtime.c
team/schmidts/unleash-the-beast/include/asterisk/config.h
team/schmidts/unleash-the-beast/include/asterisk/features.h
team/schmidts/unleash-the-beast/include/asterisk/linkedlists.h
team/schmidts/unleash-the-beast/include/asterisk/manager.h
team/schmidts/unleash-the-beast/include/asterisk/strings.h
team/schmidts/unleash-the-beast/main/astobj2.c
team/schmidts/unleash-the-beast/main/channel.c
team/schmidts/unleash-the-beast/main/config.c
team/schmidts/unleash-the-beast/main/features.c
team/schmidts/unleash-the-beast/main/manager.c
team/schmidts/unleash-the-beast/main/pbx.c
team/schmidts/unleash-the-beast/pbx/pbx_lua.c
team/schmidts/unleash-the-beast/pbx/pbx_realtime.c
team/schmidts/unleash-the-beast/pbx/pbx_spool.c
team/schmidts/unleash-the-beast/res/res_agi.c
team/schmidts/unleash-the-beast/res/res_config_sqlite.c
team/schmidts/unleash-the-beast/res/res_curl.c
team/schmidts/unleash-the-beast/res/res_fax.c
team/schmidts/unleash-the-beast/res/res_jabber.c
team/schmidts/unleash-the-beast/res/res_realtime.c
team/schmidts/unleash-the-beast/res/res_rtp_asterisk.c
team/schmidts/unleash-the-beast/res/res_rtp_multicast.c
team/schmidts/unleash-the-beast/tests/test_linkedlists.c
team/schmidts/unleash-the-beast/utils/utils.xml
Propchange: team/schmidts/unleash-the-beast/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Nov 2 16:41:26 2011
@@ -1,1 +1,1 @@
-/branches/1.8:1-340276
+/branches/1.8:1-343045
Modified: team/schmidts/unleash-the-beast/Makefile.moddir_rules
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/Makefile.moddir_rules?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/Makefile.moddir_rules (original)
+++ team/schmidts/unleash-the-beast/Makefile.moddir_rules Wed Nov 2 16:41:26 2011
@@ -1,6 +1,6 @@
#
# Asterisk -- A telephony toolkit for Linux.
-#
+#
# Makefile rules for subdirectories containing modules
#
# Copyright (C) 2006, Digium, Inc.
@@ -46,7 +46,7 @@
C_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_C_MODS))
CC_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_CC_MODS))
-ifneq ($(findstring $(MENUSELECT_CATEGORY),$(MENUSELECT_EMBED)),)
+ifneq ($(findstring EMBED_$(MENUSELECT_CATEGORY),$(MENUSELECT_EMBED)),)
EMBEDDED_MODS:=$(C_MODS) $(CC_MODS)
else
LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
Modified: team/schmidts/unleash-the-beast/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/UPGRADE.txt?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/UPGRADE.txt (original)
+++ team/schmidts/unleash-the-beast/UPGRADE.txt Wed Nov 2 16:41:26 2011
@@ -159,6 +159,9 @@
changes to the files will not be detected. You can revert to polling the
directory by specifying --without-inotify to configure before compiling.
+* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
+ table with type 'user' for user type objects.
+
From 1.6.1 to 1.6.2:
* SIP no longer sends the 183 progress message for early media by
Modified: team/schmidts/unleash-the-beast/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/addons/chan_ooh323.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/addons/chan_ooh323.c (original)
+++ team/schmidts/unleash-the-beast/addons/chan_ooh323.c Wed Nov 2 16:41:26 2011
@@ -353,10 +353,10 @@
/* Don't hold a h323 pvt lock while we allocate a channel */
ast_mutex_unlock(&i->lock);
+ ast_mutex_lock(&ooh323c_cn_lock);
ch = ast_channel_alloc(1, state, i->callerid_num, i->callerid_name,
i->accountcode, i->exten, i->context, linkedid, i->amaflags,
"OOH323/%s-%ld", host, callnumber);
- ast_mutex_lock(&ooh323c_cn_lock);
callnumber++;
ast_mutex_unlock(&ooh323c_cn_lock);
Modified: team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c (original)
+++ team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c Wed Nov 2 16:41:26 2011
@@ -22,6 +22,10 @@
*
* \ingroup applications
*/
+
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
#include "asterisk.h"
Modified: team/schmidts/unleash-the-beast/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/apps/app_meetme.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/apps/app_meetme.c (original)
+++ team/schmidts/unleash-the-beast/apps/app_meetme.c Wed Nov 2 16:41:26 2011
@@ -142,10 +142,13 @@
</option>
<option name="p" hasparams="optional">
<para>Allow user to exit the conference by pressing <literal>#</literal> (default)
- or any of the defined keys. If keys contain <literal>*</literal> this will override
- option <literal>s</literal>. The key used is set to channel variable
+ or any of the defined keys. The key used is set to channel variable
<variable>MEETME_EXIT_KEY</variable>.</para>
<argument name="keys" required="true" />
+ <note>
+ <para>Option <literal>s</literal> has priority for <literal>*</literal>
+ since it cannot change its activation code.</para>
+ </note>
</option>
<option name="P">
<para>Always prompt for the pin even if it is specified.</para>
@@ -180,6 +183,10 @@
<para>Allow user to exit the conference by entering a valid single digit
extension <variable>MEETME_EXIT_CONTEXT</variable> or the current context
if that variable is not defined.</para>
+ <note>
+ <para>Option <literal>s</literal> has priority for <literal>*</literal>
+ since it cannot change its activation code.</para>
+ </note>
</option>
<option name="1">
<para>Do not play message when first person enters</para>
@@ -214,7 +221,7 @@
<para>Enters the user into a specified MeetMe conference. If the <replaceable>confno</replaceable>
is omitted, the user will be prompted to enter one. User can exit the conference by hangup, or
if the <literal>p</literal> option is specified, by pressing <literal>#</literal>.</para>
- <note><para>The DAHDI kernel modules and at least one hardware driver (or dahdi_dummy)
+ <note><para>The DAHDI kernel modules and a functional DAHDI timing source (see dahdi_test)
must be present for conferencing to operate properly. In addition, the chan_dahdi channel driver
must be loaded for the <literal>i</literal> and <literal>r</literal> options to operate at
all.</para></note>
@@ -3535,7 +3542,10 @@
}
conf_flush(fd, chan);
- /* Since this option could absorb DTMF meant for the previous (menu), we have to check this one last */
+ /*
+ * Since options using DTMF could absorb DTMF meant for the
+ * conference menu, we have to check them after the menu.
+ */
} else if ((f->frametype == AST_FRAME_DTMF) && ast_test_flag64(confflags, CONFFLAG_EXIT_CONTEXT) && ast_exists_extension(chan, exitcontext, dtmfstr, 1, "")) {
if (ast_test_flag64(confflags, CONFFLAG_PASS_DTMF)) {
conf_queue_dtmf(conf, user, f);
Modified: team/schmidts/unleash-the-beast/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/apps/app_queue.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/apps/app_queue.c (original)
+++ team/schmidts/unleash-the-beast/apps/app_queue.c Wed Nov 2 16:41:26 2011
@@ -1170,12 +1170,6 @@
int autofill; /*!< Ignore the head call status and ring an available agent */
struct ao2_container *members; /*!< Head of the list of members */
- /*!
- * \brief Number of members _logged in_
- * \note There will be members in the members container that are not logged
- * in, so this can not simply be replaced with ao2_container_count().
- */
- int membercount;
struct queue_ent *head; /*!< Head of the list of callers */
AST_LIST_ENTRY(call_queue) list; /*!< Next call queue */
AST_LIST_HEAD_NOLOCK(, penalty_rule) rules; /*!< The list of penalty rules to invoke */
@@ -2136,7 +2130,6 @@
ao2_link(q->members, m);
ao2_ref(m, -1);
m = NULL;
- q->membercount++;
}
}
}
@@ -2151,7 +2144,6 @@
while ((cur = ao2_iterator_next(&mem_iter))) {
if (all || !cur->dynamic) {
ao2_unlink(q->members, cur);
- q->membercount--;
}
ao2_ref(cur, -1);
}
@@ -2254,7 +2246,6 @@
ao2_lock(q);
clear_queue(q);
q->realtime = 1;
- q->membercount = 0;
/*Before we initialize the queue, we need to set the strategy, so that linear strategy
* will allocate the members properly
*/
@@ -2294,11 +2285,9 @@
queue_set_param(q, tmp_name, v->value, -1, 0);
}
- /* Temporarily set realtime members dead so we can detect deleted ones.
- * Also set the membercount correctly for realtime*/
+ /* Temporarily set realtime members dead so we can detect deleted ones. */
mem_iter = ao2_iterator_init(q->members, 0);
while ((m = ao2_iterator_next(&mem_iter))) {
- q->membercount++;
if (m->realtime)
m->dead = 1;
ao2_ref(m, -1);
@@ -2320,7 +2309,6 @@
if (m->dead) {
ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
ao2_unlink(q->members, m);
- q->membercount--;
}
ao2_ref(m, -1);
}
@@ -2441,7 +2429,6 @@
if (m->dead) {
ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
ao2_unlink(q->members, m);
- q->membercount--;
}
ao2_ref(m, -1);
}
@@ -4054,7 +4041,8 @@
static int calc_metric(struct call_queue *q, struct member *mem, int pos, struct queue_ent *qe, struct callattempt *tmp)
{
/* disregarding penalty on too few members? */
- unsigned char usepenalty = (q->membercount <= q->penaltymemberslimit) ? 0 : 1;
+ int membercount = ao2_container_count(q->members);
+ unsigned char usepenalty = (membercount <= q->penaltymemberslimit) ? 0 : 1;
if (usepenalty) {
if ((qe->max_penalty && (mem->penalty > qe->max_penalty)) ||
@@ -4063,7 +4051,7 @@
}
} else {
ast_debug(1, "Disregarding penalty, %d members and %d in penaltymemberslimit.\n",
- q->membercount, q->penaltymemberslimit);
+ membercount, q->penaltymemberslimit);
}
switch (q->strategy) {
@@ -4406,7 +4394,7 @@
if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY || qe->parent->strategy == QUEUE_STRATEGY_LINEAR || qe->parent->strategy == QUEUE_STRATEGY_RRORDERED)
(*tries)++;
else
- *tries = qe->parent->membercount;
+ *tries = ao2_container_count(qe->parent->members);
*noption = 1;
break;
case 'i':
@@ -5200,7 +5188,6 @@
queue_t_unref(q, "Interface wasn't dynamic, expiring temporary reference");
return RES_NOT_DYNAMIC;
}
- q->membercount--;
manager_event(EVENT_FLAG_AGENT, "QueueMemberRemoved",
"Queue: %s\r\n"
"Location: %s\r\n"
@@ -5246,7 +5233,6 @@
if ((new_member = create_queue_member(interface, membername, penalty, paused, state_interface))) {
new_member->dynamic = 1;
ao2_link(q->members, new_member);
- q->membercount++;
manager_event(EVENT_FLAG_AGENT, "QueueMemberAdded",
"Queue: %s\r\n"
"Location: %s\r\n"
@@ -6009,7 +5995,7 @@
}
/* exit after 'timeout' cycle if 'n' option enabled */
- if (noption && tries >= qe.parent->membercount) {
+ if (noption && tries >= ao2_container_count(qe.parent->members)) {
ast_verb(3, "Exiting on time-out cycle\n");
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
record_abandoned(&qe);
@@ -6220,7 +6206,7 @@
}
ao2_iterator_destroy(&mem_iter);
} else /* must be "count" */
- count = q->membercount;
+ count = ao2_container_count(q->members);
ao2_unlock(q);
queue_t_unref(q, "Done with temporary reference in QUEUE_MEMBER()");
} else
@@ -6610,8 +6596,6 @@
if (cur) {
ao2_ref(cur, -1);
- } else {
- q->membercount++;
}
}
@@ -6627,19 +6611,11 @@
static int kill_dead_members(void *obj, void *arg, int flags)
{
struct member *member = obj;
- struct call_queue *q = arg;
if (!member->delme) {
- if (member->dynamic) {
- /* dynamic members were not counted toward the member count
- * when reloading members from queues.conf, so we do that here
- */
- q->membercount++;
- }
member->status = get_queue_member_status(member);
return 0;
} else {
- q->membercount--;
return CMP_MATCH;
}
}
@@ -6718,7 +6694,6 @@
init_queue(q);
}
if (member_reload) {
- q->membercount = 0;
ao2_callback(q->members, OBJ_NODATA, mark_member_dead, NULL);
}
[... 5651 lines stripped ...]
More information about the asterisk-commits
mailing list