Don't duplicate variables on the sip_pvt. Just reset the variable list each
time.
(closes issue #19202)
Reported by: wdoekes
Patches:
issue19202_destroy_challenged_invite_chanvars.patch uploaded by wdoekes (license 717)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317867 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Don't block doing silly deadlock avoidance. Just return and try again later.
The funciton gets called often enough that it's fine. Also, this change was
already made in trunk.
(closes issue #18791)
Reported by: irroot
Patches:
chan_sip.rtptimeout.patch uploaded by irroot (license 52)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317865 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If this change causes any problems, we will need to backport the more extensive
uri encoding and decoding handling changes that are in trunk/1.10.
(closes issue #18686)
Reported by: wolfgang
Patches:
quick-and-dirty.patch uploaded by wdoekes (license 717)
Tested by: wdoekes, devellow, wolfgang, mav3rick
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch fixes a couple SIP connected line update problems:
1) The connected line needs to be updated when the initial INVITE is sent
if there is a peer callerid configured. Previously, the connected line
information did not get reported until the call was connected so SIP could
not report connected line information in ringing or progress messages.
2) The connected line should not be updated on initial connect if there is
no connected line information. Previously, all it did was wipe out any
default preset CONNECTEDLINE information set by the dialplan with empty
strings.
(closes issue #18367)
Reported by: GeorgeKonopacki
Patches:
issue18367_v1.8.patch uploaded by rmudgett (license 664)
Tested by: rmudgett
Review: https://reviewboard.asterisk.org/r/1199/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317670 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Store the defaults noted in the sample config files in the jitterbuffer config
data structure. This makes the CLI commands that output these settings show
the right thing. Also only show the settings that are relevant in the settings
CLI commands, based on which jitterbuffer is selected and whether it's enabled.
(closes issue #19083)
Reported by: rgagnon
Patches:
issue-19083-trunk-r313139.diff uploaded by rgagnon (license 1202)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317478 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This is based on an uncommitted patch by jpeeler for the issue. Instead of
relocking and then unlocking the channel though, we keep the lock on the channel
until we are finished doing what we need to the channel.
(closes issue #18441)
Reported by: Alric
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317283 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r317255 | russell | 2011-05-05 13:29:53 -0500 (Thu, 05 May 2011) | 22 lines
Merged revisions 317211 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r317211 | russell | 2011-05-05 13:20:29 -0500 (Thu, 05 May 2011) | 15 lines
chan_sip: fix broken realtime peer count, fix memory leak
This patch addresses two bugs in chan_sip:
1) The count of realtime peers and users was off. The increment checked the
value of the caching option, while the decrement did not.
2) Add a missing regfree() for a regex.
(closes issue #19108)
Reported by: vrban
Patches:
missing_regfree.patch uploaded by vrban (license 756)
sip_object_counter.patch uploaded by vrban (license 756)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317281 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r316616 | dvossel | 2011-05-04 08:40:41 -0500 (Wed, 04 May 2011) | 12 lines
Fixes session-timers=refuse not being enforced for *caller*
During handle_request_invite, the session timer mode was retrieved from
a cached variable. This patch forces a peer lookup of the session timer
mode in the case of an incoming invite.
(closes issue #18804)
Reported by: wdoekes
Patches:
issue18804_session_timer_refuse_caller.patch uploaded by wdoekes (license 717)
issue_18804_v2.diff uploaded by dvossel (license 671)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@316617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
After dahdi_hangup() has supposedly hungup an ISDN channel there is still
traffic on the S0-bus because the channel was not cleaned up fully.
Shuffled the hangup code to include some missing cleanup. Also fixed some
code formatting in the area. I think the primary missing clean up code
was the call to tone_zone_play_tone() to turn off any active tones on the
channel.
(closes issue #19188)
Reported by: jg1234
Patches:
issue19188_v1.8.patch uploaded by rmudgett (license 664)
Tested by: jg1234
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@316224 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This has already been discussed and should have been resolved earlier. View
revsion 285565's log for more information about why it is important to not
put timer in the Require header.
(closes issue #18704)
Reported by: mfrager
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@316217 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r315893 | mnicholson | 2011-04-27 14:03:05 -0500 (Wed, 27 Apr 2011) | 21 lines
Merged revisions 315891 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r315891 | mnicholson | 2011-04-27 13:57:56 -0500 (Wed, 27 Apr 2011) | 14 lines
Fix our compliance with RFC 3261 section 18.2.2.
This change optimizes the free_via() function and removes some redundant null
checking. It also fixes compliance with RFC 3261 section 18.2.2 by always using
the port specified in the Via header for routing responses (even when maddr is
not set). Also the htons() function is now used when setting the port.
Additional documentation comments have been added in various places to make the
logic in the code clearer.
(closes issue #18951)
Reported by: jmls
Patches:
issue18951_set_proper_port_from_via.patch uploaded by wdoekes (license 717) (modified)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@315894 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r315672 | twilson | 2011-04-26 15:52:25 -0700 (Tue, 26 Apr 2011) | 18 lines
Merged revisions 315671 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r315671 | twilson | 2011-04-26 15:47:56 -0700 (Tue, 26 Apr 2011) | 11 lines
Make sure unregistering a peer unlinks it from the peer container
Instead of mostly copying the code from expire_register, just use the function
that "does the right thing".
(closes issue #16033)
Reported by: kkm
Patches:
016033-tilgman-fixed-refcount.diff uploaded by kkm (license 888)
Tested by: kkm, tilghman, twilson
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@315673 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch resolves a fairly complex deadlock that can occur with the
combination of chan_local and a dialplan switch, such as dynamic realtime
extensions, which pulls autoservice into the picture when doing a dialplan
lookup.
(closes issue #18818)
Reported by: nic
Patches:
issue18818.patch uploaded by jthurman (license 614)
18818.v1.txt uploaded by russell (license 2)
Tested by: nic, jthurman, kterzi, steve-howes, sysreq, IshMalik
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@315446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r314620 | mnicholson | 2011-04-21 13:22:19 -0500 (Thu, 21 Apr 2011) | 20 lines
Merged revisions 314607 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r314607 | mnicholson | 2011-04-21 13:19:21 -0500 (Thu, 21 Apr 2011) | 14 lines
Added limits to the number of unauthenticated sessions TCP based protocols are allowed to have open simultaneously. Also added timeouts for unauthenticated sessions where it made sense to do so.
Unrelated, the manager interface now properly checks if the user has the "system" privilege before executing shell commands via the Originate action.
AST-2011-005
AST-2011-006
(closes issue #18787)
Reported by: kobaz
(related to issue #18996)
Reported by: tzafrir
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@314628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r314549 | twilson | 2011-04-20 17:17:34 -0700 (Wed, 20 Apr 2011) | 6 lines
Don't allocate more space than necessary for a sip_pkt
This extra allocation is a hold-over from when pkt->data was a
character array. Now that it is an allocated string, just allocate
enough for the sip_pkt.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@314550 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Deadlock avoidance between the sip pvt and the pvt->owner is
very difficult. Now that channel's are ao2 objects, this complication
is no longer necessary. It turns out the pvt's msg queue only
exists because of deadlock avoidance (when deadlock avoidance fails
msgs were added to a queue to be processed later), so this goes away as well.
The technique used in the new sip_lock_pvt_full() function should
be used as a template for replacing all locations where deadlock
avoidance occurs between a channel tech_pvt and the pvt's owner.
My hope is that this will begin a reversal of the invalid channel
driver locking architecture we have been using for so long.
This patch also resolves an issue where the pvt->owner gets
unlocked during processing the msg queue.
(closes issue #18690)
Reported by: dvossel
Review: https://reviewboard.asterisk.org/r/1182/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@314067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch fixes how chan_sip handles dynamic rtp payload types
it does not understand. At the moment if a dynamic payload's mime
type does not match one we understand, the payload does not get
removed from our payload table. As a result of this, the payload
is set to whatever dynamic codec we use internally for that payload
number on outgoing INVITES. This is incorrect.
This patch fixes this by properly checking the rtpmap set function's
return code to make sure it was found. The function can return both
-1 and -2 depending on the source of the mismatch. We were just
checking -1 explicitly.
Review: https://reviewboard.asterisk.org/r/1169/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@314017 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Executing Dial(DAHDI/1/18475551212,300,) with the echotraining config
option enabled outputs the following debug messages unconditionally:
Dialing T1847555121 on 1
Dialing www2w on 1
* Made debug messages in my_dial_digits() normal debug messages that do
not get output unless enabled.
* Reworded some debug messages in my_dial_digits() to be clearer.
* Replace strncpy() with ast_copy_string() in my_dial_digits() which does
the same job better.
(closes issue #18847)
Reported by: vmikhelson
Tested by: rmudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@313780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
........
Merged revisions 313435 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r313432 | jrose | 2011-04-12 13:12:29 -0500 (Tue, 12 Apr 2011) | 14 lines
reload Chan_dahdi memory leak caused by variables
chan_dahdi reloading with variables set via setvar in chan_dahdi.conf would
stay in the dahdi_pvt structs for individual channels (causing them to just
continue adding the new ones to the list) and also there was a memory leak
causes by the conf objects. This patch resolves both of these by using
ast_variables_destroy during the loading process.
(closes issue #17450)
Reported by: nahuelgreco
Patches:
patch.diff uploaded by jrose (license 1225)
Tested by: tilghman, jrose
Review: https://reviewboard.asterisk.org/r/1170/
........
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@313436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r313432 | jrose | 2011-04-12 13:12:29 -0500 (Tue, 12 Apr 2011) | 14 lines
reload Chan_dahdi memory leak caused by variables
chan_dahdi reloading with variables set via setvar in chan_dahdi.conf would
stay in the dahdi_pvt structs for individual channels (causing them to just
continue adding the new ones to the list) and also there was a memory leak
causes by the conf objects. This patch resolves both of these by using
ast_variables_destroy during the loading process.
(closes issue #17450)
Reported by: nahuelgreco
Patches:
patch.diff uploaded by jrose (license 1225)
Tested by: tilghman, jrose
Review: https://reviewboard.asterisk.org/r/1170/
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@313434 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r313189 | rmudgett | 2011-04-11 10:32:53 -0500 (Mon, 11 Apr 2011) | 32 lines
Merged revisions 313188 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r313188 | rmudgett | 2011-04-11 10:27:52 -0500 (Mon, 11 Apr 2011) | 25 lines
Stuck channel using FEATD_MF if caller hangs up at the right time.
The cause was actually a caller hanging up just at the end of the Feature
Group D DTMF tones that setup the call. The reason for this is a "guard
timer" that's implemented using ast_safe_sleep(100). If the caller
happens to hang up AFTER the final tone of the DTMF string but BEFORE the
end of that ast_safe_sleep(), then ast_safe_sleep() will return non-zero.
This causes the code to bounce to the end of ss_thread(), but it does NOT
tear down the call properly.
This should be a rare occurrence because the caller has to hang up at
EXACTLY the right time. Nonetheless, it was happening quite regularly on
the reporter's system. It's not easily reproducible, unless you purposely
increase the guard-time to 2000 or more. Once you do that, you can
reproduce it every time by watching the DTMF debug and hanging up just as
it ends.
Simply add an ast_hangup() before goto quit.
(closes issue #15671)
Reported by: jcromes
Patches:
issue15671.patch uploaded by pabelanger (license 224)
Tested by: jcromes
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@313190 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Calculation of the Odd/Even flag was wrong.
Implement correct algo, and set odd/even=0 if data would be truncated.
Only allow automatic calculation of the O/E flag, don't let dialplan influence.
(closes issue #19062)
Reported by: festr
Patches:
bug19062.diff2.txt uploaded by alecdavis (license 585)
Tested by: festr, alecdavis, rmudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@313001 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Regression from -r312575 B channel shifting during negotiation.
* Also combine updating the alarm flag with clearing the resetting flag.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@312949 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The get_destination() function was not using the "s" extension when the
request URI did not specify an extension. This is a regression caused
when the URI parsing code was extracted into parse_uri().
Made get_destination() substitute the "s" extension when the parsed URI
results in an empty string.
(closes issue #18348)
Reported by: shmaize
Patches:
issue18348_v1.8.patch uploaded by rmudgett (license 664)
Tested by: shmaize
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@312866 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r312574 | rmudgett | 2011-04-04 11:00:02 -0500 (Mon, 04 Apr 2011) | 45 lines
Merged revisions 312573 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r312573 | rmudgett | 2011-04-04 10:49:30 -0500 (Mon, 04 Apr 2011) | 38 lines
Issues with ISDN calls changing B channels during call negotiations.
The handling of the PROCEEDING message was not using the correct call
structure if the B channel was changed. (The same for PROGRESS.) The call
was also not hungup if the new B channel is not provisioned or is busy.
* Made all call connection messages (SETUP_ACKNOWLEDGE, PROCEEDING,
PROGRESS, ALERTING, CONNECT, CONNECT_ACKNOWLEDGE) ensure that they are
using the correct structure and B channel. If there is any problem with
the operations then the call is now hungup with an appropriate cause code.
* Made miscellaneous messages (INFORMATION, FACILITY, NOTIFY) find the
correct structure by looking for the call and not using the channel ID.
NOTIFY is an exception with versions of libpri before v1.4.11 because a
call pointer is not available for Asterisk to use.
* Made all hangup messages (DISCONNECT, RELEASE, RELEASE_COMPLETE) find
the correct structure by looking for the call and not using the channel
ID.
(closes issue #18313)
Reported by: destiny6628
Tested by: rmudgett
JIRA SWP-2620
(closes issue #18231)
Reported by: destiny6628
Tested by: rmudgett
JIRA SWP-2924
(closes issue #18488)
Reported by: jpokorny
JIRA SWP-2929
JIRA AST-437 (The issues fixed here are most likely causing this JIRA issue.)
JIRA DAHDI-406
JIRA LIBPRI-33 (Stuck resetting flag likely fixed)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@312575 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If a call is sent to an ISDN phone that rejects the call with
RELEASE_COMPLETE(cause: call reject(21), or busy(17)) Asterisk crashes.
I could not get my setup to crash. However, I could see the possibility
from a race condition between queuing an AST_CONTROL_BUSY to the core and
then queueing an AST_CONTROL_HANGUP. If the AST_CONTROL_BUSY is processed
before the AST_CONTROL_HANGUP is queued, the ast_channel could be
destroyed out from under chan_misdn.
Avoid this particular crash scenario by not queueing the
AST_CONTROL_HANGUP if the AST_CONTROL_BUSY was queued.
(closes issue #18408)
Reported by: wimpy
Patches:
issue18408_v1.8.patch uploaded by rmudgett (license 664)
Tested by: rmudgett, wimpy
JIRA SWP-2679
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@312509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The segfault happens because jb->mutexjb is uninitialized from the
ast_malloc(). The internals of ast_mutex_init() were assuming a nonzero
value meant mutex tracking initialization had already happened. Recent
changes to mutex tracking code to reduce excessive memory consumption
exposed this uninitialized value.
Converted misdn_jb_init() to use ast_calloc() instead of ast_malloc().
Also eliminated redundant zero initialization code in the routine.
(closes issue #18975)
Reported by: irroot
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@312022 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This function isn't used anywhere yet, but we definitely don't want
to keep the same value for buf between calls to the function.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@311558 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This is supposed to improve Solaris compatibility since Solaris goes berserk when trying to output NULL strings.
(closes issue #18759)
Reported by: bklang
Patches:
null-strings.patch uploaded by bklang (license 919)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@311352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The queued AST_CONTROL_BUSY could sometimes be processed before the
call_forward dial string is recognized.
* Moved setting the call_forwarding dial string after sending a response
to the initiator and just queue an empty frame to wake up the media thread
instead of an AST_CONTROL_BUSY.
* Added check for empty rerouting/deflection number and respond with an
error.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@311297 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r309251 | tilghman | 2011-03-01 19:06:02 -0600 (Tue, 01 Mar 2011) | 7 lines
Revert previous 2 commits, and instead conditionally redefine the same macro used in flex 2.5.35 that clashed with our workaround.
Not surprisingly, the workaround was exactly the same code as was provided by
the Flex maintainers, albeit in two different places, in different macros.
This should fix the FreeBSD builds, which have an older version of Flex.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@309808 65c4cc65-6c06-0410-ace0-fbb531ad65f3