Tilghman Lesher [Thu, 15 Nov 2007 23:50:15 +0000 (23:50 +0000)]
If we're going to be passing a negative value for the size of a stringfield,
in order to indicate something, then using an UNSIGNED parameter is bad,
mmmmmkay?
Russell Bryant [Thu, 15 Nov 2007 17:27:27 +0000 (17:27 +0000)]
Merged revisions 89296 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89296 | russell | 2007-11-15 11:19:28 -0600 (Thu, 15 Nov 2007) | 8 lines
Update the SLAStation application to account for the case where the SLA thread
has a call out to the station, but the user has pressed a line button to answer
the call instead of picking up the handset. If they do, the phone sends out a
new INVITE. So, the SLAStation app must check to see if it is picking up a
ringing trunk, and ensure that the other stations stop ringing.
(reported internally, patched by me, tested by mogorman)
Steve Murphy [Thu, 15 Nov 2007 16:30:13 +0000 (16:30 +0000)]
Perhaps I went overboard on initializing things. I can remove unnecc. stuff later. A few bug fixes. Killing small bugs on the way to killing bigger ones. Removed locking on hashtabs; there's plenty of locks already being taken. A small bug in the root_tree hashtab compare func.
Luigi Rizzo [Thu, 15 Nov 2007 16:20:47 +0000 (16:20 +0000)]
access channel locks through ast_channel_lock/unlock/trylock and not
through ast_mutex primitives.
To detect all occurrences, I have renamed the lock field in struct ast_channel
so it is clear that it shouldn't be used directly.
There are some uses in res/res_features.c (see details of the diff)
that are error prone as they try and lock two channels without
caring about the order (or without explaining why it is safe).
Joshua Colp [Thu, 15 Nov 2007 15:21:04 +0000 (15:21 +0000)]
And file said... let trunk build again! Accomplished by some more constification, and marking a function in chan_sip as purposely unused until it is fixed up.
Olle Johansson [Thu, 15 Nov 2007 12:21:57 +0000 (12:21 +0000)]
Always relying on the responses when crossing NAT's are not a good
solution, it breaks communication.
Rizzo - you need to implement a configuration option for this
code. It's good, but maybe should be off by default.
Olle Johansson [Thu, 15 Nov 2007 10:21:41 +0000 (10:21 +0000)]
Add support for application/dtmf SIP INFO dtmf handling. Yep, another
way of handling DTMF in SIP. Totally undocumented, but implemented
in enough devices so we have to support it.
Steve Murphy [Thu, 15 Nov 2007 01:42:12 +0000 (01:42 +0000)]
Had trouble playing with parking; spent a long time trying to reason out MATCHMORE mode. made these updates and xfers on zaptel lines seem to work ok now
Steve Murphy [Wed, 14 Nov 2007 18:05:50 +0000 (18:05 +0000)]
Rescaled the weights of the patterns to give something more independent of pattern length; and make . less likely to win. Question: which should win for 14102241145-- _1xxxxxxx. or _XXXXXXXXXXX -- right now, the pure X pattern will win.
Steve Murphy [Wed, 14 Nov 2007 15:43:30 +0000 (15:43 +0000)]
A further problem highlighted by 11233 has been resolved; a certain combination of patterns in a certain order, led to a malformed trie, due to a ptr not being initialized in the loop. Also, some tree printing prettifications.
Russell Bryant [Wed, 14 Nov 2007 03:22:09 +0000 (03:22 +0000)]
Fix up various coding guidelines issues ...
- handle memory allocation failures
- add an ast_ prefix to a publicly exported function
- put curly braces in the right places
- add a bunch of spaces where they should be be used
Russell Bryant [Tue, 13 Nov 2007 20:30:13 +0000 (20:30 +0000)]
Update the ParkedCall application to grab the first available parked call if no
parked extension is provided as an argument.
(closes issue #10803)
Reported by: outtolunc
Patches:
res_features-parkedcall-any.diff4 uploaded by outtolunc (license 237)
- modified by me to work a bit differently ...
Revert change from revision 67064.
It is documented behavior that if a parking extension already exists while using PARKINGEXTEN,
dialplan execution will continue. If blind transferring to a Park with PARKINGEXTEN, you
must keep this in mind, and handle the failure yourself.
Debugging is running into the 16-lock limit. Increase to avoid.
(This define is only effective when debugging is turned on, so there's
no effect for most installations.)
Some sanity checking for MixMonitor. If only 1 argument is given, then the args.options
and args.post_process strings are uninitialized and could contain garbage. This change
handles this situation properly by only using arguments that we have parsed.
If two config writes collide, file corruption could result. Use a mkstemp() file, instead.
Reported by: paravoid
Patch by: tilghman
Closes issue #10781
Steve Murphy [Mon, 12 Nov 2007 18:44:36 +0000 (18:44 +0000)]
Based on a note in asterisk-dev by Brian Capouch, I determined I too agressive in not initializing arrays passed to pbx_substitute_variables_xxxx; I reviewed the code (again) and hopefully found every possible spot where substitute_variables is called conditionally, and made sure the char array involved was set to a null string.
Merged revisions 89173 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89173 | crichter | 2007-11-12 12:26:48 +0100 (Mo, 12 Nov 2007) | 1 line
if we're NT and no number was dialed and overlapdial is set, we wait for the ISDN timeout instead of starting our own timer. added a comment for the misdn.conf.sample for the overlapdial config option.
........
Merged revisions 89172 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89172 | crichter | 2007-11-12 12:23:57 +0100 (Mo, 12 Nov 2007) | 1 line
added restart all interfaces Restart_Indicator, to automatically send a RESTART after the L2 of a PTP Port comes up. Also fixed some places where we have send a RELEASE without need for it.
........
Joshua Colp [Mon, 12 Nov 2007 13:26:45 +0000 (13:26 +0000)]
Fix building on FreeBSD by including/not including some headers.
(closes issue #11218)
Reported by: ys
Patches:
trunk89169.diff uploaded by ys (license 281)
Merged revisions 89171 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89171 | crichter | 2007-11-12 12:13:13 +0100 (Mo, 12 Nov 2007) | 1 line
fixed a state/event issue with overlapdial=yes when no extension matched. removed the general sending of a RELEASE_COMPLETE when we receive a RELEASE, this is done by mISDNuser/mISDN. This makes it possible to use asterisk-1.4 with mISDN trunk, but requires users of mISDN/mISDNuser-1.1.X to upgrade to at least mISDNuser-1.1.6 (when using the NT mode at all)
........
Merged revisions 89169 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89169 | crichter | 2007-11-12 10:45:36 +0100 (Mo, 12 Nov 2007) | 1 line
aded ntkeepcalls option, to avoid droÃpping calls when the L2 goes down on a PTP link. There are some pbx which do turn off the L1 for a very short while and restart it immediately. normally T310 should be started and after 10 seconds or so the calls should be dropped, this is a simple fix wihtout this timer.
........
Steve Murphy [Fri, 9 Nov 2007 16:00:22 +0000 (16:00 +0000)]
This is the perhaps the biggest, boldest, most daring change I've ever committed to trunk. Forgive me in advance any disruption this may cause, and please, report any problems via the bugtracker. The upside is that this can speed up large dialplans by 20 times (or more). Context, extension, and priority matching are all fairly constant-time searches. I introduce here my hashtables (hashtabs), and a regression for them. I would have used the ast_obj2 tables, but mine are resizeable, and don't need the object destruction capability. The hashtab stuff is well tested and stable. I introduce a data structure, a trie, for extension pattern matching, in which knowledge of all patterns is accumulated, and all matches can be found via a single traversal of the tree. This is per-context. The trie is formed on the first lookup attempt, and stored in the context for future lookups. Destruction routines are in place for hashtabs and the pattern match trie. You can see the contents of the pattern match trie by using the 'dialplan show' cli command when 'core set debug' has been done to put it in debug mode. The pattern tree traversal only traverses those parts of the tree that are interesting. It uses a scoreboard sort of approach to find the best match. The speed of the traversal is more a function of the length of the pattern than the number of patterns in the tree. The tree also contains the CID matching patterns. See the source code comments for details on how everything works. I believe the approach general enough that any issues that might come up involving fine points in the pattern matching algorithm, can be solved by just tweaking things. We shall see. The current pattern matcher is fairly involved, and replicating every nuance of it is difficult. If you find and report problems, I will try to resolve than as quickly as I can. The trie and hashtabs are added to the existing context and exten structs, and none of the old machinery has been removed for the sake of the multitude of functions that use them. In the future, we can (maybe) weed out the linked lists and save some space.
Luigi Rizzo [Thu, 8 Nov 2007 09:15:05 +0000 (09:15 +0000)]
initialize a variable to silence compiler.
The type of warnings emitted depends on the optimization level,
at the lower levels the compiler doesn't always understand what the
programmer has in mind. In this case I could not understand it either.
improve linked-list macros in two ways:
- the *_CURRENT macros no longer need the list head pointer argument
- add AST_LIST_MOVE_CURRENT to encapsulate the remove/add operation when moving entries between lists
Improve the devicestate logic for multiple devices. If any are available then the extension is considered available.
(closes issue #10164)
Reported by: nic_bellamy
Patches:
sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299)
Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support.
(closes issue #10946)
Reported by: flefoll
(closes issue #10915)
Reported by: ramonpeek
(closes issue #9567)
Reported by: atca_pres
The member refcount must be incremented, to avoid using it after deallocation.
A huge thanks go to lvl- for patiently providing the necessary valgrind output
that was necessary to finding this problem of memory corruption.
Reported by: lvl-
Patch by: tilghman
Closes issue #11174
This patch makes it possible for SIP phones to dial extensions defined with '#' characters
in extensions.conf AND maintain their escaped characters when forming URI's
(closes issue #10681, reported by cahen, patched by me, code review by file)
Steve Murphy [Wed, 7 Nov 2007 22:09:10 +0000 (22:09 +0000)]
Merged revisions 89088 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89088 | murf | 2007-11-07 14:40:28 -0700 (Wed, 07 Nov 2007) | 1 line
In response to 10578, I just ran 1.4 thru valgrind; some of the config leakage I've already fixed, but it doesn't hurt to double check. I found and fixed leaks in res_jabber, cdr_tds, pbx_ael. Nothing major, tho.
........
Tilghman Lesher [Wed, 7 Nov 2007 02:14:40 +0000 (02:14 +0000)]
Provide the ability to directly manipulate the TON/NPI bits in the dialstring.
Reported by: thetatag
Patch by: thetatag/stevens/tilghman
Closes issue #5331