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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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().
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342661 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342602 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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!".
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342383 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342328 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342276 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342061 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341435 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* 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.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341254 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341189 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@341022 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340970 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340878 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340534 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* 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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* 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.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340284 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* 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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
RFC 6234 is an update to RFC 3174 from which the code was originally taken.
It has a slightly better code, and a better phrased license (simple 3-clause
BSD).
* main/sha1.c is sha1.c from RFC 6234 with formatting changes only.
* include/asterisk/sha1.h merges sha.h and sha-private.h from RFC 6234.
* Removed unused include of asterisk/sha1.h from main/channels.c
Review: https://reviewboard.asterisk.org/r/1503/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@340263 65c4cc65-6c06-0410-ace0-fbb531ad65f3