Joshua Colp [Mon, 5 Mar 2007 20:13:51 +0000 (20:13 +0000)]
Add zap show version CLI command. This pulls the version/echo canceller in use directly using the ZT_GETVERSION ioctl. (issue #9094 reported by tootai)
Tilghman Lesher [Sat, 3 Mar 2007 14:40:18 +0000 (14:40 +0000)]
Expand datastores to add the notion of inheritance. This will be needed for
the conversion of IAX2 variables from the current custom method to ast_storage.
Steve Murphy [Fri, 2 Mar 2007 05:57:06 +0000 (05:57 +0000)]
Merged revisions 57426 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r57426 | murf | 2007-03-01 22:21:36 -0700 (Thu, 01 Mar 2007) | 1 line
I almost had comma escapes right, but 9184 points out the problem-- the escape is removed by pbx_config, and pbx_ael should also, before sending it down into the pbx engine. Also, you have to insert it back in, if you are generating extensions.conf code from the AEL.
........
Russell Bryant [Thu, 1 Mar 2007 23:44:09 +0000 (23:44 +0000)]
Merged revisions 57364 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r57364 | russell | 2007-03-01 17:42:53 -0600 (Thu, 01 Mar 2007) | 16 lines
Merge changes from svn/asterisk/team/russell/sla_updates
* Originally, I put in the documentation that only Zap interfaces would be
supported on the trunk side. However, after a discussion with Qwell, we came
up with a way to make IP trunks work as well, using some things already in
Asterisk. So, here it is, this now officially supports IP trunks.
* Update the SLA documentation to reflect how to setup IP trunks.
* Add a section in sla.txt that describes how to set up an SLA system with
voicemail.
* Simplify the way DTMF passthrough is handled in MeetMe.
* Fix a bug that exposed itself when using a Local channel on the trunk side
in SLA. The station's channel needs to be passed to the dial API when
dialing the trunk.
* Change a WARNING message to DEBUG in channel.h. This message is of no use
to users.
Don't even attempt to optimize things when a proxy channel is involved. It will just explode in weird and unexplaineable ways. (issue #9175 reported by clegall_proformatique)
Russell Bryant [Wed, 28 Feb 2007 22:09:33 +0000 (22:09 +0000)]
Merged revisions 57203 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r57203 | russell | 2007-02-28 16:07:05 -0600 (Wed, 28 Feb 2007) | 7 lines
Merge more changes from svn/asterisk/team/russell/sla_updates
* Add support for private hold. By setting "hold=private" for a trunk, only
the station that put the call on hold will be able to retrieve it from hold.
Also, by setting "hold=private" for a station, any call that station puts
on hold can only be retrieved by that station.
Joshua Colp [Wed, 28 Feb 2007 20:46:01 +0000 (20:46 +0000)]
Convert the PBX core to use read/write locks. This yields a nifty performance improvement when it comes to simultaneous calls going through the dialplan. Using murf's test the old mutex based core took an average of 57.3 seconds while the rwlock based core took 31.1 seconds. That's a nifty 26.2 seconds performance improvement. The other good part is that if we do need to switch back then we just have to change the lock/unlock API calls. I converted everywhere that used to touch the mutex locks directly to use them.
Russell Bryant [Wed, 28 Feb 2007 19:57:41 +0000 (19:57 +0000)]
Merged revisions 57144 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r57144 | russell | 2007-02-28 13:56:20 -0600 (Wed, 28 Feb 2007) | 6 lines
Merge changes from svn/asterisk/team/russell/sla_updates
* Add support for the "barge=no" option for trunks. If this option is set,
then stations will not be able to join in on a call that is on progress
on this trunk.
Russell Bryant [Wed, 28 Feb 2007 18:21:47 +0000 (18:21 +0000)]
Merged revisions 57089 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r57089 | russell | 2007-02-28 12:20:05 -0600 (Wed, 28 Feb 2007) | 8 lines
Merge current set of changes from svn/asterisk/team/russell/sla_updates
* Add support for station ring delays. Ring delays can be set globally for a
station or for specific trunks on the station.
* Fix a few bugs in existing code.
* Restructure and Reorganize code to improve readability and maintainability.
* Improve formatting of the "sla show (trunks|stations)" CLI commands.
Steve Murphy [Wed, 28 Feb 2007 17:22:45 +0000 (17:22 +0000)]
Merged revisions 57049 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r57049 | murf | 2007-02-28 10:15:27 -0700 (Wed, 28 Feb 2007) | 1 line
I was surprised that I had not yet downgraded missing goto targets and macro call defs to a warning, in case they are in extensions.conf; I rectified this problem. Also, A goto in a macro to a target in a catch block was not being found; I fixed this too; the cause was that I needed to treat catch statements like an extension in the find_match code.
........
Russell Bryant [Tue, 27 Feb 2007 17:38:57 +0000 (17:38 +0000)]
(also issue #9159)
Merged revisions 56975 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r56975 | russell | 2007-02-27 11:36:09 -0600 (Tue, 27 Feb 2007) | 4 lines
Fix voicemail email attachments. I missed the conversion of one of the line
endings and there was an extra one where it should not have been.
(issue #9128)
Russell Bryant [Mon, 26 Feb 2007 20:43:18 +0000 (20:43 +0000)]
Merged revisions 56888 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r56888 | russell | 2007-02-26 14:42:21 -0600 (Mon, 26 Feb 2007) | 4 lines
Restore the behavior of Asterisk 1.2 where if a device was not specified in
alsa.conf, then we just use the system default, instead of creating our own
default of hw:0,0. (issue #9139)
Use ast_strlen_zero to see if the language and/or context argument is not present for Background instead of just checking if it is NULL. (issue #9141 reported by mjagdis)
Jason Parker [Sat, 24 Feb 2007 02:23:43 +0000 (02:23 +0000)]
Allow a Skinny device to monitor a dialplan hint (w00t!).
See skinny.conf.sample for configuration example.
Note: Some devices (seen on 12SP+/30VIP) will lock up if they monitor too many hints.
This seems to be a hardware limitation - there isn't anything we can do about it.
Make sure to set a speeddials parent on creation.
Don't crash if hold is pressed when no call is active.
Don't return in places that we shouldn't..
Update softkey map when call is connected
Russell Bryant [Fri, 23 Feb 2007 23:25:22 +0000 (23:25 +0000)]
Merged revisions 56505 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r56505 | russell | 2007-02-23 17:24:18 -0600 (Fri, 23 Feb 2007) | 16 lines
Merged revisions 56504 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r56504 | russell | 2007-02-23 17:20:55 -0600 (Fri, 23 Feb 2007) | 8 lines
Fix up a couple more signal handlers to not do bad things that could cause
various undesirable results. The other day, I made Asterisk deadlock by
hitting Control-C because of a bad signal handler. Now, signal handlers
just set a flag and write to an alert pipe for the flag to be handled. Then,
there is another thread that is monitoring for these flags. If being run in
console mode, it is just the main thread. If Asterisk is in the background,
a thread is created to do it.
Change log notice to debug. It is possible for a scheduled item to execute and be deleted at close to the same time and unavoidable. If this happens this message creeps up.
Russell Bryant [Fri, 23 Feb 2007 21:20:33 +0000 (21:20 +0000)]
Merge team/russell/iax2_performance.
There is not a large amount of code here and the changes are not very invasive.
However, they should significantly improve performance of chan_iax2 under load.
IAX2 media frames only carry the *source* call number. So, when one arrives,
the correct session that it is a part of has to be matched on IP address, port
number, and call number, instead of just a call number. Had these frames
carried the *destination* call number, this would not be an issue, because that
would be a unique identifier that would make it easy to immediately identify
the correct session.
The way that chan_iax2 did this matching was extremely inefficient. It starts
at the first available call number and traverses each call number sequentially,
locking and unlocking a mutex for each one, to try to match against it. It
would do this regardless of whether the call number was in use or not. So,
for a call with a local call number of 25000, every single incoming media
frame would require a traversal that required 25000 mutex lock and unlock
operations. (Note that the max call number is about 32k).
I have introduced a hash table of active IAX2 calls to improve this lookup
process. The hash is done on the IP address, port number, and call number.
So, for the previous example, a few lock/unlock operations may be done versus
25000 for each frame.
Russell Bryant [Fri, 23 Feb 2007 20:21:35 +0000 (20:21 +0000)]
Merged revisions 56407 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r56407 | russell | 2007-02-23 14:20:00 -0600 (Fri, 23 Feb 2007) | 12 lines
Merged revisions 56406 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r56406 | russell | 2007-02-23 14:17:56 -0600 (Fri, 23 Feb 2007) | 4 lines
Don't destroy mutexes before unregistering all of the entry points from the core.
Also, fix a potential memory leak from not destroying the locks for all of the
possible call numbers (about 32k of them).
Russell Bryant [Fri, 23 Feb 2007 18:01:11 +0000 (18:01 +0000)]
Merged revisions 56341 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r56341 | russell | 2007-02-23 11:58:57 -0600 (Fri, 23 Feb 2007) | 8 lines
The IMAP storage code uses the same code to build the email that is used when
voicemail is sent via email using something like sendmail. In the patch from
bug 8033 to fix various IMAP storage problems, the line endings in the email
file were changed in the code from "\n" to "\r\n". However, this breaks
sending regular voicemail to email. So, this change conditionally sets line
endings to "\r\n" only if IMAP_STORAGE is enabled.
(issue #9128, patch by jarjarbinks, modified by me to not break IMAP storage)
Russell Bryant [Fri, 23 Feb 2007 00:45:04 +0000 (00:45 +0000)]
Introduce a new manager action, GetConfigJSON, which is intended to improve
performance of the GUI. This encodes the configuration into the JSON format
in a manager header, "JSON: ". The encoded information can be directly used
as a javascript object, so no parsing is needed. For large configuration
files, this can greatly improve loading times in the GUI. Furthermore, the
encoding takes up a lot less space when being transmitted than the other
alternatives. (Inspired by discussion with Pari)
Here is an example of what you get:
http://localhost:8088/asterisk/rawman?action=getconfigjson&filename=users.conf
Russell Bryant [Thu, 22 Feb 2007 23:12:26 +0000 (23:12 +0000)]
Merged revisions 56277 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r56277 | russell | 2007-02-22 17:08:36 -0600 (Thu, 22 Feb 2007) | 18 lines
Merge changes from team/russell/sla_updates.
This batch of changes to the SLA code does a few different things.
* I made the SLA code event driven instead of having to act in a lot of busy
loops while dialing things to wait for state changes. This makes the code
more efficient and readable at the same time.
* I have implemented a couple of new features. The first is inbound trunk
ringing timeouts. This is an option that defines how long to let an incoming
call on a trunk to ring.
* I have also implemented ring timeouts for stations. They may be specified
for the entire station, meaning it is how long to let the station ring before
giving up. You can also specify a ring timeout for a specific trunk on a
station. So, you can say that you only want a specific station to ring 5
seconds if it is line1 ringing, but otherwise, there is no timeout.
Kevin P. Fleming [Thu, 22 Feb 2007 17:36:46 +0000 (17:36 +0000)]
move the ast_module_info structure into the special section as well, otherwise when restore_globals() is called it will lose its pointer to the ast_module structure that the loader put there
Russell Bryant [Thu, 22 Feb 2007 16:25:22 +0000 (16:25 +0000)]
Fix some compilation problems in app_voicemail. There was a parenthesis missing
in a function prototype, and "#elifdef" is not a valid preprocessor directive.
(issue #9122, akohlsmith)
disable unloading of embedded modules... there is a fundamental problem with doing so that will not be fixed in this version of Asterisk due to its invasiveness
Joshua Colp [Thu, 22 Feb 2007 00:05:00 +0000 (00:05 +0000)]
Make filename on email follow subject message number, purely for cosmetic purposes for individuals like *cough* jsmith *cough*. (issue #9111 reported by sshah)
Change naughty warning message to provide useful information. If a write now fails on a channel in meetme it will tell you the channel name instead of spitting out the wrong error message.