marian
d81d1f7452
Added extmodule support to put a script requested debug message in yate output/logging. Added support to change script's debug level and debug name.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6472 acf43c95-373e-0410-b603-e72c3f656dc1
2021-04-01 09:10:07 +00:00
marian
63aee844a7
Avoid abrupt listener thread exit leading to memory leak.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6434 acf43c95-373e-0410-b603-e72c3f656dc1
2020-10-05 06:17:11 +00:00
paulc
03985c7dbb
Added a limit of how many messages can be queued to an external script.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6400 acf43c95-373e-0410-b603-e72c3f656dc1
2020-04-15 15:39:14 +00:00
paulc
7ac83d9218
Added support for checking if a module is loaded.
...
Added support for configuration conditionals on module loaded.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6399 acf43c95-373e-0410-b603-e72c3f656dc1
2020-04-15 13:50:14 +00:00
paulc
02331a839b
Added support for setting the current timestamp in external to yate messages.
...
Always set the current time if protocol did not set it.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6359 acf43c95-373e-0410-b603-e72c3f656dc1
2019-10-03 13:25:17 +00:00
paulc
de29658a7a
Fixed handling of a full read buffer containing one or more processable lines.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6344 acf43c95-373e-0410-b603-e72c3f656dc1
2019-02-06 13:36:08 +00:00
marian
5e965dd90f
Use a timed lock (if answer timeout is set) when serializing message send to script. Don't send the message to script if failed to lock for configured timeout.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6325 acf43c95-373e-0410-b603-e72c3f656dc1
2018-10-01 11:31:59 +00:00
paulc
49de800994
Fixed unescaping of handler filter parameters.
...
This allows filter name or value to contain characters like : or %.
Patch provided by Vasily i. Redkin.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6303 acf43c95-373e-0410-b603-e72c3f656dc1
2018-03-21 13:31:09 +00:00
paulc
e2060c65fe
Workaround for a race to watch a message result while its ExtModReceiver is being destroyed.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6263 acf43c95-373e-0410-b603-e72c3f656dc1
2017-09-13 14:55:58 +00:00
paulc
c4c9e994f0
Renamed DebugGoOn to DebugCrit so it better matches its purpose.
...
Swapped order of DebugCall and DebugNote so DebugCall is less visible.
Changed default debug level to DebugNote.
Modified a few inadequate uses of DebugCrit.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6250 acf43c95-373e-0410-b603-e72c3f656dc1
2017-08-01 13:08:23 +00:00
paulc
515d38fdbc
Added possibility to stop and restart specific external instances.
...
Added line completion for external command arguments.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6228 acf43c95-373e-0410-b603-e72c3f656dc1
2017-06-07 12:04:18 +00:00
paulc
dde447c2f5
Fixed ExtModReceiver leak when destroyed from cleanup()
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6145 acf43c95-373e-0410-b603-e72c3f656dc1
2016-11-07 14:50:07 +00:00
paulc
d3ba52e3e0
Changed the way ExtModReceivers are (de)referenced and destroyed.
...
Fixes destruction of external channels that have or had a watcher.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6105 acf43c95-373e-0410-b603-e72c3f656dc1
2016-03-18 10:17:55 +00:00
paulc
78e486e6c0
Allow restarting external modules only if we started them.
...
Add address in status information for inbound connections.
Added Yate::Quit() function in PHP library.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6078 acf43c95-373e-0410-b603-e72c3f656dc1
2015-12-15 11:30:07 +00:00
paulc
9a2ddd019e
Added support for resizing the extmodule read buffer.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@6075 acf43c95-373e-0410-b603-e72c3f656dc1
2015-12-02 16:16:52 +00:00
paulc
f4be507305
Allow substitutions in extmodule [general] scripts_dir, [scripts] and [execute].
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5910 acf43c95-373e-0410-b603-e72c3f656dc1
2014-08-28 16:56:04 +00:00
paulc
7c7d9e2a16
Fixed cleanup for TCP connections where same stream is used for In and Out.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5858 acf43c95-373e-0410-b603-e72c3f656dc1
2014-06-30 16:07:15 +00:00
paulc
c33cb114e5
Terminate I/O streams instead of deleting them when an external module exits.
...
This prevents a race condition causing random memory corruption.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5850 acf43c95-373e-0410-b603-e72c3f656dc1
2014-06-23 10:18:21 +00:00
marian
365e0a299b
Added help for 'external' command.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5818 acf43c95-373e-0410-b603-e72c3f656dc1
2014-04-09 09:36:06 +00:00
paulc
e5cfa7a2ff
Apply the extmodule timeout whenever we try to grab the socket to write to the external script.
...
This should avoid complete locks if the external application reads too slow.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5779 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-18 14:01:57 +00:00
paulc
37a72e4bc1
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://yate.null.ro/svn/yate/trunk@5755 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-05 11:42:17 +00:00
paulc
22abbfc150
Added "status" command to extmodule, reports count of scripts and channels.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5748 acf43c95-373e-0410-b603-e72c3f656dc1
2014-01-29 13:31:25 +00:00
paulc
cf5d0fd71a
Changed license terms in each source file to reference an external file.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5609 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-06 13:38:10 +00:00
paulc
3cf42e2828
Use Alarm() in places that could prevent normal operation.
...
This allows sending SNMP traps when parts of the service become non-operational.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5569 acf43c95-373e-0410-b603-e72c3f656dc1
2013-07-08 12:21:26 +00:00
paulc
d5a5d0f8f3
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://yate.null.ro/svn/yate/trunk@5458 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 14:17:31 +00:00
paulc
210494aa15
Keep the external receiver referenced while processing a watched message.
...
This avoids a race condition leading to segfault.
Idle instead of yielding while waiting for a socket to absorb data.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5423 acf43c95-373e-0410-b603-e72c3f656dc1
2013-03-20 14:54:42 +00:00
marian
94b6e06060
Make sure the user data pointer carried by handled message is a CallEndpoint one.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5287 acf43c95-373e-0410-b603-e72c3f656dc1
2012-10-01 11:00:30 +00:00
paulc
a1ec767e08
Allow setting the handler tracking name by individual external scripts.
...
This must be set before installing the handlers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5123 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-15 11:19:31 +00:00
paulc
bf57830c7f
Added possibility to track message progress through handlers.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@5107 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-12 23:47:01 +00:00
paulc
28983898f8
New "execute" command in extmodule allows executing arbitrary programs logged through Yate.
...
The behavior is the same as listing in the [execute] section.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4796 acf43c95-373e-0410-b603-e72c3f656dc1
2012-01-05 17:52:01 +00:00
paulc
c9a5bcd5dc
Made exmodule setlocal return something useful for checking existence of a section in yate.conf
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@4653 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-25 08:55:30 +00:00
paulc
4626b42e1f
Addded capability to read parameters from main engine config file.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@4641 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-06 11:42:56 +00:00
paulc
1ae0546b45
Added class for pseudo random number generation.
...
Replace library ::random() and ::rand() calls with shared Random method.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4470 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-29 11:19:02 +00:00
paulc
e1e90f89d7
List running external modules in "external stop" and "external restart" completion.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@4454 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-10 15:49:42 +00:00
paulc
b94f4c4239
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://yate.null.ro/svn/yate/trunk@4203 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-23 16:26:25 +00:00
paulc
a9400f2e7b
Explicitely initialize the m_running field of ExtModChan too.
...
This was lost from a previous correct patch of Allan Sandfeld Jensen.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3396 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-24 12:17:11 +00:00
paulc
2b6441ca9e
Retain the external channel connect reason if available in call.execute message.
...
This is needed for some PBX operations.
Patch by Allan Sandfeld Jensen.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3395 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-24 12:12:34 +00:00
paulc
c4e30ab83d
Initialize all fields of ExtModChan, clean up safer, use the safer version of getPeerId().
...
Patch by Allan Sandfeld Jensen.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3394 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-24 12:09:17 +00:00
paulc
682c4c9d2a
Use static const Regexps wherever possible to speed up code.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@3391 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-17 11:38:46 +00:00
paulc
d45f8dd8c5
Changed logged output so it's obvious when global external modules are loaded and unloaded.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@3196 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-15 09:54:56 +00:00
paulc
9eb8e98bd5
Use a binary semaphore to wait for messages to be handled by external modules.
...
Reduces the CPU load when there are many scripts handling messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3169 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-06 11:13:47 +00:00
paulc
66e1945048
Reference the ExtReceiver just before trying to start it.
...
Prevents crashes and memory corruption caused by race conditions, especially when the script des not start or terminates early.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3027 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-17 17:47:01 +00:00
paulc
2186793f38
The worker thread of ThreadedSource now keeps it referenced.
...
New methods of DataEndpoint, CallEndpoint and ThreadedSource allow easier handling of concurrent operations.
Modules using ThreadedSource were modified to use the new API.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2827 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-07 23:49:12 +00:00
paulc
a2881258bc
Once a thread was started for an external module let it do the destruction in its cleanup, only unuse() if thread failed to start.
...
Bug report and solution by Allan.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2797 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-19 13:55:22 +00:00
paulc
8520218d2d
Added flags to data forwarded through DataNodes.
...
The amount of consumed data is returned to the source.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2745 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-02 09:24:33 +00:00
paulc
f4b1496a46
Added an unified Thread::idle method, use it instead of arbitrary
...
sleeps.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2737 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-24 16:47:29 +00:00
paulc
5499650213
Changed thread names to be uniform and easily readable.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@2733 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-22 14:48:26 +00:00
paulc
00105b6b53
Warn if we never received a valid line from an external script.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@2691 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-08 10:56:01 +00:00
paulc
c669a24f90
Added mutex names to most Yate modules.
...
git-svn-id: http://yate.null.ro/svn/yate/trunk@2613 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 14:06:39 +00:00
paulc
b745abe0f5
Stdio pipe or socket operation are executed with the mutex locked.
...
Wait a configurable time after flushing relays and pending messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2593 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-24 11:18:35 +00:00