Commit Graph

4094 Commits

Author SHA1 Message Date
Joshua Colp
fcee92481e (closes issue #10514)
Reported by: casper
Patches:
      chan_sip.c.80129.diff uploaded by casper (license 55)
Remove needless check for AUTH_UNKNOWN_DOMAIN. It was impossible for it to ever be that value.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 21:23:50 +00:00
Russell Bryant
5f336e5a67 Add missing checks for the PTRACING define.
(closes issue #10559, paravoid)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81383 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 15:38:29 +00:00
Christian Richter
f4126ffe68 Fixed some warnings.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 14:43:33 +00:00
Christian Richter
6576e93697 Fixed a severe issue where a misdn_read would lock the channel, but read would
not return because it blocks. later chan_misdn would try to queue a frame like
a AST_CONTROL_ANSWER which could result in a deadlock situation. misdn_read
will now not block forever anymore, and we don't queue the ANSWER frame at all
when we already was called with misdn_answer -> answer would be called twice.

Also we don't explicitly send a RELEASE_COMPLETE on receiption of a RELEASE
anymore, because mISDN does that for us, this resulted in a problem on some
switches, which would block our port after some calls for a short while.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81367 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 08:31:59 +00:00
Joshua Colp
8fcc537329 (closes issue #9690)
Reported by: mattv
Make rtp timeouts work even if two RTP streams are directly bridged in the RTP stack.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81331 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 14:13:55 +00:00
Russell Bryant
587478ac3f Change the message about receiving a mini-frame before the first full voice
frame to a DEBUG message.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81291 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-28 21:38:26 +00:00
Mark Michelson
284c7cde35 DTMF begin frames should be ignored so that when an agent acks a call with the '#' key,
he doesn't cause a queue's announce file to be interrupted. Also went ahead and did the
same for the '*' key and for ending a call.

(closes issue #10528, reported by deskhack, patched by me)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 21:08:48 +00:00
Joshua Colp
7a47ac4960 (closes issue #10561)
Reported by: jesselang
Patches:
      chan_sip-ChannelReload-20080825.patch uploaded by jesselang (license 202)
Remove an extra \r\n to make the ChannelReload event conform with every other event.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81012 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 15:01:59 +00:00
Russell Bryant
73275955bb Remove an extra signal_condition() for the scheduler thread.
(closes issue #10564, patch from casper)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-26 18:11:26 +00:00
Russell Bryant
f3d98a5f3c Fix some issues with the handling of the scheduler in chan_iax2. Most of the
places that scheduled items to be executed by the scheduler thread did not
signal the scheduler thread to wake up so that it could recalculate the time
until the next action.  These changes will make the scheduler thread more
responsive and ensure that actions get executed as close to when intended as
possible instead of it being possible for very long delays.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80895 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-25 17:37:39 +00:00
Russell Bryant
a4e418458b If dnsmgr is in use, and no DNS servers are available when Asterisk first
starts, then don't give up on poking peers.  Allow the poke to get rescheduled
so that it will work once the dnsmgr is able to resolve the host.
(closes issue #10521, patch by jamesgolovich)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80849 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 21:22:50 +00:00
Philippe Sultan
0518339c30 Closes issue #10509
Googletalk calls are answered too early, which results in CDRs wrongly
stating that a call was ANSWERED when the calling party cancelled a
call before before being established.

We must not answer the call upon reception of a 'transport-accept' iq
packet, but this packet still needs to be acknowledged, otherwise the
remote peer would close the call (like in #8970).

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80661 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 11:42:46 +00:00
Dwayne M. Hubbard
2aff2acf0a make misdn/isdn_lib compile without warnings
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 21:34:16 +00:00
Dwayne M. Hubbard
4cf31ac7e1 make chan_misdn compile without warnings
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80601 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 21:07:50 +00:00
Kevin P. Fleming
9a118809b4 report the actual channel number that was unregistered, instead of assuming that the interface list consists of channels 1 through <x> with no gaps in the sequence
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80501 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 17:08:25 +00:00
Russell Bryant
a44c1d55a2 Fix some code where it was possible for a reference to a peer to not get
released when it should.  Thank you to Marta Carbone for pointing this out!


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80499 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 17:02:50 +00:00
Russell Bryant
b2c65cf51d This is a hack to maintain old behavior of chan_iax2. This ensures that if
the peers and users are being stored in a linked list, that they go in the
list in the same order that the older code used.  This is necessary to maintain
the behavior of which peers and users get matched when traversing the container.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 16:53:52 +00:00
Russell Bryant
c5cf1e50ac Don't crash when using realtime in chan_sip without an insecure setting in the database.
(closes issue #10348, reported by link55, fixed by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80390 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 21:00:44 +00:00
Russell Bryant
566371bd50 Merge changes from team/russell/iax_refcount.
This set of changes fixes problems with the handling of iax2_user and iax2_peer
objects.  It was very possible for a thread to still hold a reference to one of
these objects while a reload operation tries to delete them.  The fix here is to
ensure that all references to these objects are tracked so that they can't go away
while still in use.

To accomplish this, I used the astobj2 reference counted object model.  This
code has been in one of Luigi Rizzo's branches for a long time and was primarily
developed by one of his students, Marta Carbone.  I wanted to go ahead and bring
this in to 1.4 because there are other problems similar to the ones fixed by these
changes, so we might as well go ahead and use the new astobj if we're going to go
through all of the work necessary to fix the problems.

As a nice side benefit of these changes, peer and user handling got more efficient.
Using astobj2 lets us not hold the container lock for peers or users nearly as long
while iterating.  Also, by changing a define at the top of chan_iax2.c, the objects
will be distributed in a hash table, drastically increasing lookup speed in these
containers, which will have a very big impact on systems that have a large number of
users or peers.

The use of the hash table will be made the default in trunk.  It is not the default
in 1.4 because it changes the behavior slightly.  Previously, since peers and users
were stored in memory in the same order they were specified in the configuration file,
you could influence peer and user matching order based on the order they are specified
in the configuration.  The hash table does not guarantee any order in the container,
so this behavior will be going away.  It just means that you have to be a little
more careful ensuring that peers and users are matched explicitly and not forcing
chan_iax2 to have to guess which user is the right one based on secret, host, and
access list settings, instead of simply using the username.

If you have any questions, feel free to ask on the asterisk-dev list.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80362 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 20:21:36 +00:00
Russell Bryant
3c2eae9ab4 Don't record SIP dialog history if it's not turned on. Also, put an upper
limit on how many history entires will be stored for each SIP dialog.  It is
currently set to 50, but can be increased if deemed necessary.
(closes issue #10421, closes issue #10418, patches suggested by jmoldenhauer,
 patches updated by me)
(Security implications documented in AST-2007-020)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-21 18:42:15 +00:00
Russell Bryant
db1f93048f Don't try to dereference the owner channel when it may not exist
(issue #10507, maxper)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-21 15:22:22 +00:00
Russell Bryant
467ceebc82 Avoid a crash in the handling of DTMF based Caller ID. It is valid for
ast_read to return NULL in the case that the channel has been hung up.
(crash reported by anonymouz666 on IRC in #asterisk-dev)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79912 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-17 21:01:43 +00:00
Jason Parker
f1cb3f70b7 Don't send a semicolon over the wire in sip notify messages.
Caused by fix for issue 9938.

I basically took the code that existed before 9938 was fixed, and
 copied it into a new function - ast_unescape_semicolon

There should be very few places this will be needed (pbx_config
 does NOT need this (see issue 9938 for details))

Issue 10430, patch by me, with help/ideas from murf (thanks murf).


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-17 19:12:19 +00:00
Jason Parker
e9ab13fa81 Re-add the setting of callerid name and number.
Issue 10485, reported by and fix explained by paradise.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79902 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-17 17:44:22 +00:00
Russell Bryant
9be377d89f Fix some crashes in chan_sip. This patch changes various places that add items
to the scheduler to ensure that they don't overwrite the ID of a previously
scheduled item.  If there is one, it should be removed.
(closes issue #10391, closes issue #10256, probably others, patch by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79857 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-17 13:37:08 +00:00
Christian Richter
c71c5098b7 sometimes we don't need to signal dtmf tones to asterisk, we just want them to go through as inband. Otherwise they might be generated by the other channel partner and then there is a double tone.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79833 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-17 08:22:36 +00:00
Russell Bryant
0dbd8e04af Fix more deadlocks in chan_iax2 that were introduced by making frame handling
and scheduling multi-threaded.  Unfortunately, we have to do some expensive
deadlock avoidance when queueing frames on to the ast_channel owner of the IAX2
pvt struct.  This was already handled for regular frames, but ast_queue_hangup
and ast_queue_control were still used directly.  Making these changes introduced
even more places where the IAX2 pvt struct can disappear in the context of a
function holding its lock due to calling a function that has to unlock/lock it
to avoid deadlocks.  I went through and fixed all of these places to account for
this possibility.
(issue #10362, patch by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79756 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-16 21:29:24 +00:00
Mark Michelson
6ec280adfc Fixes a problem where agents would get stuck busy due to their wrapuptime being longer than the queue's wrapuptime and
ringinuse=no for the queue.

(closes issue #10215, reported by Doug, repaired by me)

Special thanks to fkasumovic for pointing out the source of the problem and to bweschke for helping to come up with a solution!



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79748 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-16 21:16:40 +00:00
Christian Richter
6d6a045cc0 0x80 + protocol is wrong for USERUSER when we want to send IA5 Chars.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79642 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-16 08:21:21 +00:00
Joshua Colp
e856a6fb34 (closes issue #10456)
Reported by: irroot
Patches:
      sip_timeout.patch uploaded by irroot (license 52)
Change hardcoded timer value to defined value. I'm doing this in 1.4 as well so if it needs to be changed in the future this place would not have been forgotten.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-15 14:18:44 +00:00
Russell Bryant
e3ecc74dc1 Fix another spot where an iax2_peer would be leaked if realtime was in use.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-14 18:49:10 +00:00
Russell Bryant
a713275c1b Fix some memory leaks throughout chan_iax2 related to the use of realtime.
I found these while working on iax2_peer object reference tracking.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-14 17:31:39 +00:00
Russell Bryant
f2de04d1d1 Don't call find_peer in registry_authrequest with the pvt lock held to avoid a
deadlock.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79301 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 20:37:50 +00:00
Russell Bryant
68faf63811 Release the pvt lock before calling find_peer in register_verify to avoid a
deadlock.  Also, remove some unnecessary locking in auth_fail that was only done
recursively.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79276 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 20:18:30 +00:00
Russell Bryant
c06aba4c8a Don't call find_peer within update_registry with a pvt lock held. This can
cause a deadlock as the code will eventually call find_callno.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 20:02:57 +00:00
Russell Bryant
60bcd4e03c I am fighting deadlocks in chan_iax2. I have tracked them down to a single
core issue.  You can not call find_callno() while holding a pvt lock as this
function has to lock another (every) other pvt lock.  Doing so can lead to a
classic deadlock.  So, I am tracking down all of the code paths where this
can happen and fixing them.

The fix I committed earlier today was along the same theme.  This patch fixes
some code down the path of authenticate_reply.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 19:27:39 +00:00
Russell Bryant
4f785d7d28 Fix a potential deadlock in socket_process. check_provisioning can eventually
call find_callno.  You can't hold a pvt lock while calling find_callno because
it goes through and locks every single one looking for a match.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79214 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 15:28:13 +00:00
Joshua Colp
9a35428295 (closes issue #10437)
Reported by: haklin
Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79174 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 14:18:04 +00:00
Christian Richter
1f62b98d45 fixed a bug with the useruser information element. We send them now also in the disconnect message.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-10 13:24:03 +00:00
Mark Michelson
6c3d28a231 I broke canreinvite...Now I'm fixing it. I put some new code in the wrong place and so I've reverted the canreinvite section to how it was and put my new code where it should be.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78826 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-09 19:52:43 +00:00
Jason Parker
cb0701052c Allow chan_sip to build in devmode
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78416 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 19:11:50 +00:00
Jason Parker
1b58e7a828 Properly check the capabilities count to avoid a segfault.
(ASA-2007-019)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 18:25:15 +00:00
Russell Bryant
c40325aecc Merged revisions 78370 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r78370 | russell | 2007-08-07 12:44:04 -0500 (Tue, 07 Aug 2007) | 4 lines

Revert patch committed for issue #9660.  It broke E&M trunks.
(closes issue #10360)
(closes issue #10364)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 17:45:30 +00:00
Russell Bryant
2e8439052f Fix an issue where dynamic threads can get free'd, but still exist in the
dynamic thread list.
(closes issue #10392, patch from Mihai, with credit to his colleague, Pete)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78242 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-06 20:44:09 +00:00
Joshua Colp
03bcbd11c1 It is possible for a transfer to occur before the remote device has our tag in which case they send none in the transfer. In this case we need to not fail the transfer dialog lookup.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78182 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-06 16:32:44 +00:00
Mark Michelson
b463a8dcbb Fixed a mistake I made in realtime_peer which caused it to return NULL every time.
Thanks to Jon Fealy for emailing me the correction.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78164 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-06 13:33:07 +00:00
Tilghman Lesher
a7ade6f213 If peer is not found, the error message is misleading (should be peer not found, not ACL failure)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78139 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-05 03:29:01 +00:00
Mark Michelson
05ba4d90d4 Changed the behavior of sip's realtime_peer function to match the corresponding way of matching for non-realtime peers.
Now matches are made on both the IP address and port number, or if the insecure setting is set to "port" then just match on the
IP address.

In order to accomplish this, I also added a new API call, ast_category_root, which returns the first variable of an ast_category struct



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78103 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-03 20:25:22 +00:00
Russell Bryant
9c3f16e023 Only pass through HOLD and UNHOLD control frames when the mohinterpret option
is set to "passthrough".  This was pointed out by Kevin in the middle of a
training session.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78063 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-03 17:01:07 +00:00
Russell Bryant
f58354525f Don't reuse the timespec that was set to 0 in the previous timedwait as it
will just return immediately.  Also, fix some logic so the thread's lock
isn't unlocked twice in the weird case of dynamic threads getting acquired
right after a timeout.
(pointed out by SteveK)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-03 02:04:22 +00:00