Joshua Colp [Thu, 17 Aug 2006 16:29:44 +0000 (16:29 +0000)]
Add 'l' option to CDR dialplan function which will cause it to pass the last CDR record to getvar instead of the first. (issue #7689 reported by voipgate)
Steve Murphy [Thu, 17 Aug 2006 15:48:49 +0000 (15:48 +0000)]
In app_macro, changed the previously changed upper recursion depth limit to a variable, default of the original val of 7. MACRO_RECURSION is a channel variable that will override the limit, but until I can understand and fix why this limit is neccessary, I am not advertising this variable in the docs.
Joshua Colp [Wed, 16 Aug 2006 16:22:13 +0000 (16:22 +0000)]
Remove the old ODBC_STORAGE and make EXTENDED_ODBC_STORAGE the one to use. This means that if you're using this and upgrade to the revision where this was committed, you will need to update your table to the schema provided in doc/odbcstorage.txt
Joshua Colp [Wed, 16 Aug 2006 15:34:50 +0000 (15:34 +0000)]
Move things around a bit more for onhold support, and add a check to only decrement the onhold variable if it's greater then 0. (issue #7740 reported by AuPix)
Russell Bryant [Wed, 16 Aug 2006 03:43:47 +0000 (03:43 +0000)]
move the calls to ast_jb_configure() to before the PBX thread is started on the
channel to remove the theoretical race condition that the channel could get
bridged before the channel's jitterbuffer gets configured. This was pointed
out by PCadach on IRC. Thanks!
Steve Murphy [Tue, 15 Aug 2006 21:25:19 +0000 (21:25 +0000)]
This change fixes bug 7731, macros not executing more than one level deep in a hung-up situation; also increased maximum recursion depth from 7 to 20, to keep serious coders from painful toe-stubbings
Steve Murphy [Tue, 15 Aug 2006 16:35:06 +0000 (16:35 +0000)]
Made "style" change requested by Kevin Fleming... used initializer in declaration,
brought decl down to block where the variable is used, got rid of memset.
Russell Bryant [Mon, 14 Aug 2006 03:24:06 +0000 (03:24 +0000)]
add MacroExclusive application, a Macro that only one call can executed at
a time (issue #7366, Steve Davies, with mods by me as discussed in the report)
Russell Bryant [Mon, 14 Aug 2006 02:14:14 +0000 (02:14 +0000)]
When taking a substring and a negative length is provided, instead of just
ignoring it, allow this to mean that we want that many characters off of
the end of the string so that ${EXTEN:0:$[${LEN(${EXTEN}) - 1]} can become
${EXTEN:0:-1}. (issue #7586, Corydon)
Nadi Sarrar [Tue, 8 Aug 2006 18:13:40 +0000 (18:13 +0000)]
* first bits of decoding facility information elements
* fail on misdn_cfg_init() if elements in the config enum don't match with the config structs in misdn_config.c
* implemented first bits for encoding ISDN facility information elements via ASN.1 descriptions
* using unnamed semaphore for syncing in misdn_thread
* advanced fax detection: configurable detect timeout and context to jump into
Joshua Colp [Tue, 8 Aug 2006 17:02:45 +0000 (17:02 +0000)]
Add support for Sigma Designs cards. These basically allow you to offload dialtone generation to the board. If you're using a quicknet board where this might work, give it a try as well. (issue #6092 reported by ywalther - minor mods by moi)
* added possibility to change echocancel settings during calls
* removed the holded element from the chan_list struct, we know this from the
state already
* added a few tweaks to make HOLD/RETRIEVE work again (TRANSFER does not work
yet)
* added possibility to debug mISDN frames via syslog
* added misdn_lib_port_is_blocked function to check if a port is blocked
* removed ec_training=1 from empty_bc, we don't use ec_training anymore
* removed unused misdn_lib_get_l2_status function
* added the nt bit to dummy misdn_bchannel objects
* setting bc->out_fac_type to FACILITY_NONE defaultly
* removed HANDLER_DEBUG stuff for better readability
Russell Bryant [Tue, 8 Aug 2006 06:32:04 +0000 (06:32 +0000)]
Merge team/russell/ast_verbose_threadstorage
- instead of defining a free() wrapper in a bunch of files, define it as
ast_free() in utils.h and remove the copies from all the files.
- centralize and abstract the code used for doing thread storage. The code
lives in threadstorage.h, with one function being implemented in utils.c.
This new API includes generic thread storage as well as special functions
for handling thread local dynamic length string buffers.
- update ast_inet_ntoa() to use the new threadstorage API
- update ast_state2str() to use the new threadstorage API
- update ast_cli() to use the new threadstorage API
- Modify manager_event() to use thread storage. Instead of using a buffer of
4096 characters as the workspace for building the manager event, use a thread
local dynamic string. Now there is no length limitation on the length of the
body of a manager event.
- Significantly simplify the handling of ast_verbose() ...
- Instead of using a static char buffer and a lock to make sure only one
thread can be using ast_verbose() at a time, use a thread local dynamic
string as the workspace for preparing the verbose message. Instead of
locking around the entire function, the only locking done now is when the
message has been built and is being deliviered to the list of registered
verbose message handlers.
- This function was doing a strdup() on every message passed to it and
keeping a queue of the last 200 messages in memory. This has been
completely removed. The only place this was used was that if there were
any messages in the verbose queue when a verbose handler was registered,
all of the messages in the queue would be fed to it. So, I just made sure
that the console verbose handler and the network verbose handler (for
remote asterisk consoles) were registered before any verbose messages.
pbx_gtkconsole and pbx_kdeconsole will now lose a few verbose messages at
startup, but I didn't feel the performance hit of this message queue was
worth saving the initial verbose output for these very rarely used modules.
- I have removed the last three arguments to the verbose handlers, leaving
only the string itself because they aren't needed anymore. For example,
ast_verbose had some logic for telling the verbose handler to add
a newline if the buffer was completely full. Now that the buffer can grow
as needed, this doesn't matter anymore.
- remove unused function, ast_verbose_dmesg() which was to dispatch the
message queue
- Convert the list of verbose handlers to use the linked list macros.
- add missing newline characters to a few ast_verbose() calls
- convert the list of log channels to use the linked list macros in logger.c
- fix close_logger() to close all of the files it opened for logging
- update ast_log() to use a thread local dynamic string for its workspace
for preparing log messages instead of a buffer of size BUFSIZ (8kB on my
system) allocated on the stack. The dynamic string in this case is limited
to only growing to a maximum size of BUFSIZ.
Steve Murphy [Mon, 7 Aug 2006 18:12:51 +0000 (18:12 +0000)]
This commit folds in changes to both stringfields (some enhancements to the ...field_set() macro, to optimize setting strings to empty, resetting strings to shorter contents, etc.) and to chan_iax2.c, to use stringfields in the user, peer, and pvt structs. Has been running stably on iaxtel, but while iaxtel has a large registration volume, it doesn't seem to have a high call volume. So far, it seems to reduce heap usage by over half. YMMV\! Please report any IAX bugs that might involve stringfields\!
Olle Johansson [Mon, 7 Aug 2006 17:01:40 +0000 (17:01 +0000)]
Add placeholder for sla.conf sample in configs/. Please update with
correct information not to overload the switchboard with calls to sales.
Thank you! ;-)
Russell Bryant [Mon, 7 Aug 2006 04:15:52 +0000 (04:15 +0000)]
Merge my applicationmap_fixup branch to address the issues described in this
post to the asterisk-dev mailing list:
http://lists.digium.com/pipermail/asterisk-dev/2006-August/022174.html
This implements full control over both which channel(s) can activate a dynamic
feature, as well as which channel to run the application on. I also updated
the documentation on the applicationmap in features.conf.sample in hopes that
the configuration is more clear.
Russell Bryant [Mon, 7 Aug 2006 01:32:51 +0000 (01:32 +0000)]
Merged revisions 39081 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r39081 | russell | 2006-08-06 21:28:29 -0400 (Sun, 06 Aug 2006) | 7 lines
Fix a crash reported to me by hads on IRC. This crash would occur with the use
of the "distinctiveringaftercid" option. Also, on this user's system, the crash
would only occur when built without optimizations. This is because the bug is
that the code would write past the end of an array that was allocated on the
stack, and the structure of the stack is different with or without optimizations
enabled.
Russell Bryant [Mon, 7 Aug 2006 00:26:11 +0000 (00:26 +0000)]
minor cleanups
- use appropriate types in some assignments
- use ast_strlen_zero()
- don't manually free cid fields since ast_set_callerid() will handle it
Reset our stream and vstream pointers back to NULL so that any generator that uses them (file based MOH) will not try to close them again. (issue #7668 reported by jmls)
Russell Bryant [Sat, 5 Aug 2006 20:58:47 +0000 (20:58 +0000)]
- add DIALING_OFFHOOK and PRERING to ast_state2str
- don't include a newline character when building a response for an unknown
state
(issue #7645, jonty)
Russell Bryant [Sat, 5 Aug 2006 09:03:27 +0000 (09:03 +0000)]
Merged revisions 38982 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r38982 | russell | 2006-08-05 05:01:37 -0400 (Sat, 05 Aug 2006) | 6 lines
Always generate a Newstate event in ast_setstate() instead of making it a
Newchannel event if the state was AST_STATE_DOWN. The Newchannel event will
always be generated in ast_request(), so this just causes a duplicated
Newchannel event in some cases.
(issue #7506, repoted by capouch, fixed by me)
Russell Bryant [Sat, 5 Aug 2006 05:26:29 +0000 (05:26 +0000)]
Merged revisions 38903-38904 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r38903 | russell | 2006-08-05 01:07:39 -0400 (Sat, 05 Aug 2006) | 2 lines
suppress a compiler warning about the usage of a potentially uninitialized variable
........
r38904 | russell | 2006-08-05 01:08:50 -0400 (Sat, 05 Aug 2006) | 10 lines
Fix an issue that would cause a NewCallerID manager event to be generated
before the channel's NewChannel event. This was due to a somewhat recent
change that included using ast_set_callerid() where it wasn't before. This
function should not be used in the channel driver "new" functions.
(issue #7654, fixed by me)
Also, fix a couple minor bugs in usecount handling. chan_iax2 could have
increased the usecount but then returned an error. The place where chan_sip
increased the usecount did not call ast_update_usecount()
* removed pp_l2_check (fixed L2 bug in mISDNuser)
* added blocking flag to stack object. A port can be blocked/unblocked from the
cli
* added EVENT_PORT_ALARM to send alarm infos to the chan_misdn.c layer (later
we can add a manager event for that)
* added block_on_alarm option, to block the port whenever a ALARM occurs
* added need_busy flag to indicate if we've sended a CONTROL_BUSY already
* changed a bunch of cb_log(-1,..) to cb_log(0,..) due to funny behaviour in
recent asterisk ast_log messages..
* fixed a few ETSI state violations, especially when finishing calls in
different seldom states
* changed debug levels a lot to make the log more readable in low debuglevels
* some first fixes for the HOLD/RETRIEVE stuff (doesn't work totally still)
* removed the PRECONNECTED state stuff
* added cause 27 when we get a CLEANUP directly after a outgoing SETUP, this
creates a CHANISUNAVAIL instead of a NOANSWER
* removed the addr pointer from "misdn show stacks" that's not needed anymore
and makes the output more unreadable
* added cause saving on RELEASE/RELEASE_COMPLETE
* set cause to 16 on prepare_bc
* removed stack getting from ph_control functions, we don't really need it
there
* added beroec api