Commit Graph

133 Commits

Author SHA1 Message Date
marian d820fed4b8 Added RWLockPool class.
Added atomic number class(es).
Pass atomic operation availability to everybody in configure script.
Use atomic number in NamedCounter.
Use atomic number for MessageHandler unsafe. Fixes concurrent increment introduced by RLock usage in dispatcher.
2023-05-31 15:54:22 +03:00
marian a590b6083f Use separate RWLock(s) (for handlers, queue, posthooks) in message dispatcher.
Added command (status dispatcher handlers <name>) used to show installed handlers info.
2023-05-26 14:56:22 +03:00
Ioana Stanciu c56216f5a8 Updated copyright notices. 2023-05-23 17:01:06 +03:00
marian ebf8bcc9b2 Added support for multiple filters in MessageHandler.
Added javascript matching item class.
Added javascript support to set multiple filters when installing message handlers.
2023-03-27 16:07:39 +03:00
marian dcfe3ddf66 Added option used to extend the number of configuration max include file depth.
git-svn-id: http://voip.null.ro/svn/yate@6577 acf43c95-373e-0410-b603-e72c3f656dc1
2022-12-13 10:12:28 +00:00
marian 8a46774099 Added support to create arbitrary named lists of shared vars (separate from Engine's global). Added extra functions to shared vars list. Export in javascript.
git-svn-id: http://voip.null.ro/svn/yate@6521 acf43c95-373e-0410-b603-e72c3f656dc1
2021-09-28 10:55:08 +00:00
marian bb26b4e217 Added support to track message enqueue/dispatch time. Added support to track the time spent by a message in handler.
git-svn-id: http://voip.null.ro/svn/yate@6513 acf43c95-373e-0410-b603-e72c3f656dc1
2021-08-16 08:02:49 +00:00
paulc 71014c9de7 Added support for resetting the Engine's maxqueue and maxmsgrate after returning them in status.
git-svn-id: http://voip.null.ro/svn/yate@6500 acf43c95-373e-0410-b603-e72c3f656dc1
2021-06-04 13:00:07 +00:00
marian f4e809d074 Added support to set a Regexp in message handler filter. Added missing file to previous commit.
git-svn-id: http://voip.null.ro/svn/yate@6426 acf43c95-373e-0410-b603-e72c3f656dc1
2020-09-22 11:27:09 +00:00
paulc 22ebf95683 Added support for configuring a larger number of worker threads.
git-svn-id: http://voip.null.ro/svn/yate@6411 acf43c95-373e-0410-b603-e72c3f656dc1
2020-06-26 10:29:53 +00:00
paulc f099430479 Added support for checking if a module is loaded.
Added support for configuration conditionals on module loaded.


git-svn-id: http://voip.null.ro/svn/yate@6399 acf43c95-373e-0410-b603-e72c3f656dc1
2020-04-15 13:50:14 +00:00
paulc 23947f2f01 Fixed compile time bugs and warnings exposed by Visual Studio.
git-svn-id: http://voip.null.ro/svn/yate@6256 acf43c95-373e-0410-b603-e72c3f656dc1
2017-09-07 15:29:32 +00:00
paulc d57fe18d4d Added computation and congestion limit for average dequeued messages age.
git-svn-id: http://voip.null.ro/svn/yate@6217 acf43c95-373e-0410-b603-e72c3f656dc1
2017-05-15 15:28:47 +00:00
paulc 8186097e28 Don't allow included config files to change current section, it is too risky.
Skip over some known backup or temporary files when including a directory.


git-svn-id: http://voip.null.ro/svn/yate@6180 acf43c95-373e-0410-b603-e72c3f656dc1
2017-02-01 14:49:04 +00:00
paulc 609a5371a0 Added support for including other files or directories in configuration files.
Added support for disabling portions of a configuration file.


git-svn-id: http://voip.null.ro/svn/yate@6178 acf43c95-373e-0410-b603-e72c3f656dc1
2017-02-01 13:11:05 +00:00
paulc 3e15d042df Fixed a JS deadlock caused by uninstalling a message handler from itself (even indirectly).
This required exposing some internal methods of MessageHandler.


git-svn-id: http://voip.null.ro/svn/yate@6173 acf43c95-373e-0410-b603-e72c3f656dc1
2017-01-23 19:53:55 +00:00
paulc 2c615905ef Added setting to automatically enter congested mode over a queue size threshold.
Added access to Engine's call accept state from Javascript and regexroute.
Optimized MessageDispatcher::messageCount() using the enqueue / dequeue counters.


git-svn-id: http://voip.null.ro/svn/yate@6163 acf43c95-373e-0410-b603-e72c3f656dc1
2017-01-09 15:04:04 +00:00
paulc e043cf9378 Added setting to create more than one worker at a time.
Added setting to automatically enter congested mode over a message rate threshold.
Extended range for some configurable engine limits and made them reloadable.


git-svn-id: http://voip.null.ro/svn/yate@6162 acf43c95-373e-0410-b603-e72c3f656dc1
2017-01-09 13:46:41 +00:00
paulc 9b19906f3f Added a "maxmsgrate" to the "status engine" output.
git-svn-id: http://voip.null.ro/svn/yate@6159 acf43c95-373e-0410-b603-e72c3f656dc1
2016-12-29 16:26:27 +00:00
paulc 2d20aae81a Added message queue and dispatcher stats to the "status engine" response.
git-svn-id: http://voip.null.ro/svn/yate@6158 acf43c95-373e-0410-b603-e72c3f656dc1
2016-12-29 15:10:30 +00:00
paulc bb7da7914b Added API method for checking if the Engine has finished starting up, expose it to JS.
Added separate javascript.conf section that loads scripts after the engine.start message.


git-svn-id: http://voip.null.ro/svn/yate@6081 acf43c95-373e-0410-b603-e72c3f656dc1
2016-01-04 12:49:52 +00:00
marian 1960b82520 Debug output can now be hooked using a custom function. Added Debugger method used to relay preformatted strings. Added Engine method used to build a command line from current settings. Added Engine methods used to init and cleanup libyate based applications.
git-svn-id: http://voip.null.ro/svn/yate@5942 acf43c95-373e-0410-b603-e72c3f656dc1
2015-02-26 09:32:36 +00:00
paulc 6f941b4282 Added getInt64Value to NamedList and Configuration classes.
Added getIntValue and getBoolValue to Javascript ConfigFile and ConfigSection.


git-svn-id: http://voip.null.ro/svn/yate@5930 acf43c95-373e-0410-b603-e72c3f656dc1
2014-12-22 11:56:16 +00:00
paulc d56cecb40e Added copyright notices to sources and scripts missing them.
Updated copyright notices for 2014.
Fixed end of lines in many files.


git-svn-id: http://voip.null.ro/svn/yate@5755 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-05 11:42:17 +00:00
paulc 424feb6aad Added support for counting allocated objects for memory leaks troubleshooting.
git-svn-id: http://voip.null.ro/svn/yate@5752 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-04 16:36:23 +00:00
paulc 2c78e79121 Added and Engine congestion counter and call accept status override.
Send alarms when entering or exiting congestion state.
The Driver now refuses to route calls while engine is congested or rejecting calls.


git-svn-id: http://voip.null.ro/svn/yate@5703 acf43c95-373e-0410-b603-e72c3f656dc1
2014-01-07 16:08:09 +00:00
paulc 888654b983 No longer require =true on a line that requests to load a module.
git-svn-id: http://voip.null.ro/svn/yate@5617 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-09 12:42:58 +00:00
paulc 18e10bfd69 Changed license terms in each source file to reference an external file.
git-svn-id: http://voip.null.ro/svn/yate@5609 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-06 13:38:10 +00:00
paulc d23655dace Fixed several race conditions in message post-dispatch hooks and extmodule watchers.
Engine status now reports the number of post-dispatch hooks installed.


git-svn-id: http://voip.null.ro/svn/yate@5458 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 14:17:31 +00:00
andrei c8acd6ee0a Added MessageHook and MessageQueue classes.
git-svn-id: http://voip.null.ro/svn/yate@5455 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:54:55 +00:00
andrei c4f1e3e1aa Added count() method for Configuration object.
git-svn-id: http://voip.null.ro/svn/yate@5417 acf43c95-373e-0410-b603-e72c3f656dc1
2013-03-15 11:15:51 +00:00
paulc 5c94610625 Added module that creates a combined CDR of all legs of a call.
Modified cdrfile and register to be able to write combined CDR.


git-svn-id: http://voip.null.ro/svn/yate@5382 acf43c95-373e-0410-b603-e72c3f656dc1
2013-01-25 11:45:58 +00:00
paulc 855c963e53 Added a lockable class implementing variables shared between modules.
A static set of such variables is kept in Engine and can be initialized by yate.conf


git-svn-id: http://voip.null.ro/svn/yate@5159 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-27 17:48:50 +00:00
paulc bd4b52d949 Add :priority to track name even if priority is zero.
git-svn-id: http://voip.null.ro/svn/yate@5112 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-13 07:29:43 +00:00
paulc 7e77fd2cfb Added possibility to track message progress through handlers.
git-svn-id: http://voip.null.ro/svn/yate@5107 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-12 23:47:01 +00:00
oana 962647b836 Do load and unload of modules on the main thread. Added the possibility of replacing themain loop of the engine.
git-svn-id: http://voip.null.ro/svn/yate@4999 acf43c95-373e-0410-b603-e72c3f656dc1
2012-04-06 15:27:35 +00:00
oana 3d323905a0 Added support to run the client on the main thread. Run the Qt4 Client on the main thread.
git-svn-id: http://voip.null.ro/svn/yate@4990 acf43c95-373e-0410-b603-e72c3f656dc1
2012-04-04 12:31:32 +00:00
paulc a7198f5e6b Added support for holding in memory and retrieving events from startup or arbitrary sources.
git-svn-id: http://voip.null.ro/svn/yate@4887 acf43c95-373e-0410-b603-e72c3f656dc1
2012-02-10 13:59:36 +00:00
paulc 9a9076a90a Added marker in Engine for runtime analyzers like callgrind to start collecting data.
git-svn-id: http://voip.null.ro/svn/yate@4671 acf43c95-373e-0410-b603-e72c3f656dc1
2011-11-03 14:40:58 +00:00
paulc 40abd053c0 Fixed meaning of parameter: clump -> clamp.
git-svn-id: http://voip.null.ro/svn/yate@4563 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-23 15:47:01 +00:00
marian 4fc28f755c String to integer conversion can now check the result against allowed min/max values. Use it in sip module.
git-svn-id: http://voip.null.ro/svn/yate@4562 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-23 15:14:28 +00:00
paulc 164211949e Allow Engine::loadPluginDir(), Engine::extraPath() and yate -x to load a single module file, not an entire directory.
git-svn-id: http://voip.null.ro/svn/yate@4211 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-24 13:56:10 +00:00
paulc 8e61c980ee Moved DebugEnabler and name from Module to Plugin, made name mandatory.
Added API and command to reload configuration of a single plugin.


git-svn-id: http://voip.null.ro/svn/yate@4203 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-23 16:26:25 +00:00
andrei 458b21019e Added support for CPU loading notification, and engine call congestion level update, based on CPU loading.
git-svn-id: http://voip.null.ro/svn/yate@3905 acf43c95-373e-0410-b603-e72c3f656dc1
2010-12-03 16:02:11 +00:00
paulc 0cdbe20050 Added a broadcast flag to class Message so it can continue dispatching even if one of the handlers returned true.
Use the broadcast flag in the messages emitted by the engine.


git-svn-id: http://voip.null.ro/svn/yate@3384 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-16 11:42:52 +00:00
paulc e5e9753e15 Added a YNOCOPY macro that declares private inaccessible assignment operator and copy constructor to prevent using the compiler generated ones.
Fixed a bug exposed by this change.


git-svn-id: http://voip.null.ro/svn/yate@3375 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-11 15:46:06 +00:00
paulc 6e23c56d28 Spelling cleanup of a very common error: Retrive -> Retrieve
git-svn-id: http://voip.null.ro/svn/yate@3371 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-11 11:25:10 +00:00
paulc d9b07638b6 Made a lot of constructors explicit to prevent undesirable automatic conversions.
Fixed two undesirable automatic conversions exposed by this change.


git-svn-id: http://voip.null.ro/svn/yate@3366 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-08 15:25:05 +00:00
marian 6aa91970b2 Return found configuration section when asked to check or create one.
git-svn-id: http://voip.null.ro/svn/yate@3303 acf43c95-373e-0410-b603-e72c3f656dc1
2010-05-10 14:02:21 +00:00
paulc 0212e32bab Added a ClientProxy engine run mode for clients with no local UI.
git-svn-id: http://voip.null.ro/svn/yate@2759 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-14 15:49:20 +00:00