Commit Graph

4624 Commits

Author SHA1 Message Date
Tilghman Lesher
db334a1edc It's possible for a hangup to be received, even just after the initial cid
spill.
(closes issue #12453)
 Reported by: Alex728
 Patches: 
       20080604__bug12453.diff.txt uploaded by Corydon76 (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@124182 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-19 22:53:22 +00:00
Mark Michelson
524f305187 Make chan_sip build under dev mode with compilers >= GCC 4.2
Thanks to jpeeler for alerting me of this



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123485 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 20:26:38 +00:00
Tilghman Lesher
5b0a9ddd36 Fix 3 more places where not locking the structure could cause the wrong lock to be
unlocked.  (Closes issue #12795)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123391 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 18:56:53 +00:00
Mark Michelson
1335983061 Cisco BTS sends SIP responses with a tab between the Cseq number and
SIP request method in the Cseq: header. Asterisk did not handle this
properly, but with this patch, all is well.

(closes issue #12834)
Reported by: tobias_e
Patches:
      12834.patch uploaded by putnopvut (license 60)
Tested by: tobias_e



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 18:09:16 +00:00
Tilghman Lesher
cc09f7c8ef Port "hasvoicemail" change from SIP to other channel drivers
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 19:50:12 +00:00
Tilghman Lesher
b815ecf349 People expect that if "hasvoicemail" is set in users.conf, even if "mailbox"
isn't set, that SIP will detect a mailbox.
(closes issue #12855)
 Reported by: PLL
 Patches: 
       20080614__bug12855__2.diff.txt uploaded by Corydon76 (license 14)
 Tested by: PLL


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123110 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 19:21:58 +00:00
Joshua Colp
461020bed4 Only compare the first 15 characters so that even if the charset is specified we still accept it as SDP.
(closes issue #12803)
Reported by: lanzaandrea
Patches:
      chan_sip.c.diff uploaded by lanzaandrea (license 496)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122919 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 12:31:09 +00:00
Joshua Colp
5ce568d24d Don't send a BYE on a dialog that is already gone during a REFER.
(closes issue #12865)
Reported by: flefoll
Patches:
      chan_sip.c.br14.121495.patch-ALREADYGONE uploaded by flefoll (license 244)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 12:08:28 +00:00
Jeff Peeler
f9818af8dd Adds DAHDI support alongside Zaptel. DAHDI usage favored, but all Zap stuff should continue working. Release announcement to follow.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 19:08:20 +00:00
Russell Bryant
836d5c5afa Fix some race conditions that cause ast_assert() to report that chan_iax2 tried
to remove an entry that wasn't in the scheduler


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 18:22:44 +00:00
Tilghman Lesher
1c7d9e4c9a Make calls to ast_assert() actually test something, so that the error message
printed is not nonsensical (reported by mvanbaak via #asterisk-bugs).


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@121861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-11 18:18:16 +00:00
Christian Richter
21152f98f8 fixed issue with previous commit, the find_free_channel test for channels which where inuse was broken.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@121751 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-11 09:28:04 +00:00
Joshua Colp
fb87cc02f9 If we are destroying a dialog only set the MWI dialog pointer on the related peer to NULL if it is the dialog currently being destroyed.
(closes issue #12828)
Reported by: ramonpeek


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@121495 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-10 13:34:27 +00:00
Mark Michelson
c9915a8f27 A unique situation of timeouts brought forth a failure situation for
autologoff in chan_agent. If using AgentCallbackLogin-style agents, 
then if the timeout specified by the Dial() to reach the agent's phone
was shorter than the timeout specified in queues.conf, then autologoff
would only work if the caller hung up while the agent's phone was ringing.
This patch allows autologoff to work in this situation when the call in
queue transfers to the next available agent (as it would have if the timeout
in queues.conf were less than the timeout in the Dial()).

(closes issue #12754)
Reported by: Rodrigo
Patches:
      12754.patch uploaded by putnopvut (license 60)
Tested by: Rodrigo



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@121229 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-09 15:02:37 +00:00
Russell Bryant
7e3b1dc9ac Don't run LIST_HEAD_DESTROY on a STATIC list
(closes issue #12807)
Reported by: ys
Patches: 
      chan_agent_local.diff uploaded by ys (license 281)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@121078 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-07 14:10:56 +00:00
Jeff Peeler
4162c566ad add another LOW_MEMORY define I forgot
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-06 18:29:14 +00:00
Jeff Peeler
b9eb1170df only define thread storage variable if necessary for LOW_MEMORY
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120908 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-06 18:05:15 +00:00
Jeff Peeler
a8281b2bcc Correction to commmit 120863, make sure proper destructor function is called as well define two thread storage local variables.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120885 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-06 16:39:20 +00:00
Jeff Peeler
6d12307629 This fixes a crash when LOW_MEMORY is turned on. Two allocations of the ast_rtp struct that were previously allocated on the stack have been modified to use thread local storage instead.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-06 15:33:15 +00:00
Tilghman Lesher
547e232ef4 If we fail to setup the PRI request channel, don't continue, exit with an error.
(closes issue #11989)
 Reported by: Corydon76
 Patches: 
       20080213__zap_memleak.diff.txt uploaded by Corydon76 (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-04 18:35:47 +00:00
Russell Bryant
a5f4960b3c Fix another place where peer->callno could change at a very bad time, and also
fix a place where a peer was used after the reference was released.
(inspired by rev 120001)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120168 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-03 21:34:55 +00:00
Tilghman Lesher
088ac37bfc Save the callno when we're poking, because our peer structure could change
during destruction (and thus we unlock the wrong callno, causing a
cascade failure).
(closes issue #12717)
 Reported by: gewfie
 Patches: 
       20080525__bug12717.diff.txt uploaded by Corydon76 (license 14)
 Tested by: gewfie


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120001 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-03 16:10:53 +00:00
Joshua Colp
6d78e78947 Treat ECONNREFUSED as an error that will stop further retransmissions. (issue #AST-58, patch from Switchvox)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119926 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-03 14:46:24 +00:00
Russell Bryant
f4cd9e3958 Revert a change made for issue #12479. This change caused a regression such that
a dial string such as (IAX2/foo) did not automatically fall back to dialing the 's'
extension anymore.

(closes issue #12770)
Reported by: dagmoller


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-02 20:08:04 +00:00
Philippe Sultan
59410a3f01 Do not link the guest account with any configured XMPP client (in
jabber.conf). The actual connection is made when a call comes in
Asterisk.

Fix the ast_aji_get_client function that was not able to retrieve an
XMPP client from its JID.

(closes issue #12085)
Reported by: junky
Tested by: phsultan

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-02 14:32:53 +00:00
Russell Bryant
35ea2643d4 Even of the first PING or LAGRQ doesn't get sent because it comes up too soon,
make sure to reschedule so it gets sent later.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119687 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-02 12:30:17 +00:00
Christian Richter
b145e2f8da fixed compile issue when dev-mode is enabled
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119636 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-02 09:29:21 +00:00
Christian Richter
a3fe7673a9 Added counter for unhandled_bmsg Print, this prevents the logs to be flooded to fast and save CPU in this error scenario. Added 'last_used' element to bc structure, when a bchannel changes from used to free this exact time will be marked in last_used. When a new channel is requested the find_free_chan function will check if the new empty channel was used within the last second, if yes it will search for the next channel, if no it will return this channel. This simple mechanism has prooven to prevent race conditions where the NT and TE tried to allocate the exact same channel at the same time (RELEASE cause: 44).
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119585 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-02 08:35:28 +00:00
Russell Bryant
69213c8eb6 Change a debug message to an actual debug message
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-02 01:06:09 +00:00
Russell Bryant
31d518c8e6 Merged revisions 119237 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r119237 | russell | 2008-05-30 07:49:39 -0500 (Fri, 30 May 2008) | 7 lines

- Instead of only enforcing destination call number checking on an ACK, check
  all full frames except for PING and LAGRQ, which may be sent by older versions
  too quickly to contain the destination call number.
  (As suggested by Tim Panton on the asterisk-dev list)
- Merge changes from team/russell/iax2-frame-race, which prevents PING and LAGRQ
  from being sent before the destination call number is known.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119238 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-30 12:55:36 +00:00
Tilghman Lesher
b2f0add41c Call waiting tone occurs too often, because it's getting serviced by both
subchannels.
(closes issue #11354)
 Reported by: cahen
 Patches: 
       20080512__bug11354.diff.txt uploaded by Corydon76 (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119071 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-29 20:24:11 +00:00
Russell Bryant
e0c741c5e3 Merged revisions 119008 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r119008 | russell | 2008-05-29 13:45:21 -0500 (Thu, 29 May 2008) | 7 lines

Merge changes from team/russell/iax2-another-fix-to-the-fix

As described in the following post to the asterisk-dev mailing list, only
enforce destination call numbers when processing an ACK.

http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html

(closes issue #12631)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@119009 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-29 18:49:12 +00:00
Tilghman Lesher
65808210e9 Add some debugging code that ensures that when we do deadlock avoidance, we
don't lose the information about how a lock was originally acquired.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@118953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-29 17:20:16 +00:00
Brett Bryant
3ab48f9299 merge revision 118702 from trunk to 1.4 -- Fixes a bug in chan_iax that uses send_command to poke a peer while a channel is unlocked in some cases, and because it can cause seemingly random failures could be related to some bugs in the tracker...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@118716 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-28 16:10:48 +00:00
Joshua Colp
405dfcb54a Add an option to use the source IP address of RTP as the destination IP address of UDPTL when a specific option is enabled. If the remote side is properly configured (ports forwarded) then UDPTL will flow.
(closes issue #10417)
Reported by: cstadlmann


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@118646 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-28 14:23:34 +00:00
Joshua Colp
a403fd8ea1 Fix an issue where codec preferences were not set on dialogs that were not authenticated via a user or peer and allow framing to work without rtpmap in the SDP.
(closes issue #12501)
Reported by: slimey


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@118558 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-27 19:32:38 +00:00
Tilghman Lesher
0dab692af5 Realtime flag affects construction in multiple ways, so consulting whether
rtcachefriends was set was done too soon (needed to be done inside build_peer,
not just as a flag to build_peer).
Also, fullcontact needed to be reconstructed, because realtime separates the
embedded ';' into multiple fields.
(closes issue #12722)
 Reported by: barthpbx
 Patches: 
       20080525__bug12722.diff.txt uploaded by Corydon76 (license 14)
 Tested by: barthpbx
 (Much of the discussion happened on #asterisk-dev for diagnosing this issue)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@118251 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-25 16:02:04 +00:00
Jeff Peeler
ac177d4459 Fix a few things I missed to ensure zt_chan_conf structure is not modified in mkintf
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@118163 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-23 21:21:35 +00:00
Jeff Peeler
b77e30e6f5 Ensure that passed in zt_chan_conf structure is not modified in mkintf.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@117582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 20:11:14 +00:00
Joshua Colp
6627976f63 Apply the autoframing setting to dialogs that do not get matched against a user or peer.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@117574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 19:38:28 +00:00
Jeff Peeler
e9e2df2283 Pass a pointer for the conf parameter to the function mkintf rather than the whole zt_chan_conf structure.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@117462 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 16:58:40 +00:00
Joshua Colp
48f4538a8d Make chan_h323 work with pwlib 1.12.0
(closes issue #12682)
Reported by: bamby
Patches:
      pwlib_nopipe.diff uploaded by bamby (license 430)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@117081 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-19 15:22:10 +00:00
Russell Bryant
915e1b570f Avoid access of uninitialized memory. This caused a bunch of crashes for me
while doing load testing of development branch where I'm working on some
performance improvements.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-19 03:44:04 +00:00
Joshua Colp
53061c109f Check to make sure an RTP structure exists before calling ast_rtp_new_source on it.
(closes issue #12669)
Reported by: sbisker


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-16 20:28:11 +00:00
Russell Bryant
4b2a679f9e Add ast_assert(), which can be used to handle fatal errors. It is only compiled
in if dev-mode is enabled, and only aborts if DO_CRASH is defined.
(inspired by issue #12650)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116463 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-14 21:32:00 +00:00
Olle Johansson
59adcca238 Accept text messages even with
Content-Type: text/plain;charset=Södermanländska


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116230 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-14 12:51:06 +00:00
Russell Bryant
01de8fa419 Fix a deadlock involving channel autoservice and chan_local that was debugged
and fixed by mmichelson and me.

We observed a system that had a bunch of threads stuck in ast_autoservice_stop().
The reason these threads were waiting around is because this function waits to
ensure that the channel list in the autoservice thread gets rebuilt before the
stop() function returns.  However, the autoservice thread was also locked, so
the autoservice channel list was never getting rebuilt.

The autoservice thread was stuck waiting for the channel lock on a local channel.
However, the local channel was locked by a thread that was stuck in the autoservice
stop function.

It turned out that the issue came down to the local_queue_frame() function in
chan_local.  This function assumed that one of the channels passed in as an
argument was locked when called.  However, that was not always the case.  There
were multiple cases in which this channel was not locked when the function was
called.  We fixed up chan_local to indicate to this function whether this channel
was locked or not.  The previous assumption had caused local_queue_frame() to
improperly return with the channel locked, where it would then never get unlocked.

(closes issue #12584)
(related to issue #12603)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116038 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-13 21:17:23 +00:00
Joshua Colp
48dd08e321 Use the right flag to open the audio in non-blocking.
(closes issue #12616)
Reported by: nicklewisdigiumuser


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@115944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-13 20:28:23 +00:00
Russell Bryant
09c28afa6d Remove debug output.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@115568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-08 19:19:50 +00:00
Russell Bryant
03c5a410ad Merged revisions 115564 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r115564 | russell | 2008-05-08 14:14:04 -0500 (Thu, 08 May 2008) | 25 lines

Fix a race condition that bbryant just found while doing some IAX2 testing.
He was running Asterisk trunk running IAX2 calls through a few Asterisk boxes,
however, the audio was extremely choppy.  We looked at a packet trace and saw
a storm of INVAL and VNAK frames being sent from one box to another.

It turned out that what had happened was that one box tried to send a CONTROL
frame before the 3 way handshake had completed.  So, that frame did not include
the destination call number, because it didn't have it yet.  Part of our recent
work for security issues included an additional check to ensure that frames that
are supposed to include the destination call number have the correct one.  This
caused the frame to be rejected with an INVAL.  The frame would get retransmitted
for forever, rejected every time ...

This race condition exists in all versions that got the security changes,
in theory.  However, it is really only likely that this would cause a problem in
Asterisk trunk.  There was a control frame being sent (SRCUPDATE) at the _very_
beginning of the call, which does not exist in 1.2 or 1.4.  However, I am fixing
all versions that could potentially be affected by the introduced race condition.

These changes are what bbryant and I came up with to fix the issue.  Instead of
simply dropping control frames that get sent before the handshake is complete,
the code attempts to wait a little while, since in most cases, the handshake
will complete very quickly.  If it doesn't complete after yielding for a little
while, then the frame gets dropped.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@115565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-08 19:15:25 +00:00