Commit Graph

86 Commits

Author SHA1 Message Date
paulc 291a8b9d14 Use a RefPointer for DataEndpoint when it could be obtained from setEndpoint instead of being carried (and referenced) by a message.
Prevents crashes caused by race conditions when a CallEndpoint is having its DataEndpoints deleted or replaced.
Bug spotted and patch idea provided by Matthew.


git-svn-id: http://voip.null.ro/svn/yate@3654 acf43c95-373e-0410-b603-e72c3f656dc1
2010-09-15 10:30:35 +00:00
paulc 8c02021eeb Use static const Regexps wherever possible to speed up code.
git-svn-id: http://voip.null.ro/svn/yate@3391 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-17 11:38:46 +00:00
paulc b7f9fd8331 Allow attaching an opposite type (consumer for tone and wave/play, source for wave/record) data node for tone and wave channels.
Simplifies creation of simple test routes.


git-svn-id: http://voip.null.ro/svn/yate@3260 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-30 15:19:51 +00:00
paulc 33a98e83aa Added Channel::initChan() method to add the channel to the driver explicitely, after the object is fully constructed.
git-svn-id: http://voip.null.ro/svn/yate@3033 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-26 10:31:32 +00:00
paulc cc722c33d0 Added format info for G.729/G.729A.
Wavefile module can play or record raw G.729 files with extension .g729


git-svn-id: http://voip.null.ro/svn/yate@2856 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-23 15:07:50 +00:00
paulc 2d0f41a0e4 Added parameter to ThreadedSource::looping() so it can keep running while it has consumers.
Fixed behavior of wave and tone "override" and "replace" methods.


git-svn-id: http://voip.null.ro/svn/yate@2835 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-14 11:02:27 +00:00
paulc 2ebf04b2a3 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://voip.null.ro/svn/yate@2827 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-07 23:49:12 +00:00
paulc 4e9abe5c08 Remember the WaveConsumer that must be disconnected, remove it from the proper consumer, call record or peer record.
git-svn-id: http://voip.null.ro/svn/yate@2785 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-12 14:09:32 +00:00
paulc 2f1a5ff2f6 Added flags to data forwarded through DataNodes.
The amount of consumed data is returned to the source.


git-svn-id: http://voip.null.ro/svn/yate@2745 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-02 09:24:33 +00:00
paulc 85ef8e4d49 Changed thread names to be uniform and easily readable.
git-svn-id: http://voip.null.ro/svn/yate@2733 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-22 14:48:26 +00:00
paulc c791b1677c Suppress CDR tracking on wave or tone originated call legs since these utility channels don't emit a chan.hangup anyway.
git-svn-id: http://voip.null.ro/svn/yate@2657 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-28 14:33:07 +00:00
paulc 2b8a5e0614 Made DataSource inherit Mutex instead of having it as a field.
git-svn-id: http://voip.null.ro/svn/yate@2614 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 20:49:05 +00:00
paulc b971d57006 Restored the public readable functionality broken by the commit in Rev 2515.
git-svn-id: http://voip.null.ro/svn/yate@2584 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-15 13:57:14 +00:00
paulc 2cbc917c3c Identifiers for chan.notify can be specified separately for each type of source or consumer.
Simplified some older code to get the value of maxlen.


git-svn-id: http://voip.null.ro/svn/yate@2573 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-13 10:09:41 +00:00
paulc 0379bacefe Allow passing streams or data blocks to be played or recorded instead of disk files.
git-svn-id: http://voip.null.ro/svn/yate@2532 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-22 21:38:29 +00:00
paulc 22d39076a6 Use Stream objects instead of operating system handles.
git-svn-id: http://voip.null.ro/svn/yate@2515 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-05 15:46:27 +00:00
paulc 30a5c0e98a Fixed several places in wavefile where ntoh* was used instead on the hton* functions. Harmless but confusing.
git-svn-id: http://voip.null.ro/svn/yate@2480 acf43c95-373e-0410-b603-e72c3f656dc1
2009-02-10 13:45:52 +00:00
paulc 25d0593974 Added callConnect() to several utility channels to enable tone detection.
git-svn-id: http://voip.null.ro/svn/yate@2110 acf43c95-373e-0410-b603-e72c3f656dc1
2008-07-29 14:28:36 +00:00
paulc e45ef1419e Added notify where could be missed under tight timings.
git-svn-id: http://voip.null.ro/svn/yate@1577 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-03 14:41:08 +00:00
paulc ca4b734b33 Start counting time position after successfully reading from file.
Alleviates problems caused by slow file systems.


git-svn-id: http://voip.null.ro/svn/yate@1460 acf43c95-373e-0410-b603-e72c3f656dc1
2007-10-24 17:34:14 +00:00
paulc ef998a3420 Added setting to make the written files world readable.
git-svn-id: http://voip.null.ro/svn/yate@1425 acf43c95-373e-0410-b603-e72c3f656dc1
2007-08-17 16:13:20 +00:00
paulc 1a79d8b770 Changed the unlocking order to prevent races. Perform cleanups in the
destroyed() method instead of the destructor.


git-svn-id: http://voip.null.ro/svn/yate@1357 acf43c95-373e-0410-b603-e72c3f656dc1
2007-06-08 18:33:33 +00:00
paulc 82bec2bc00 Added feature (default enabled) to pad files to full buffer size.
git-svn-id: http://voip.null.ro/svn/yate@1339 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-25 19:50:23 +00:00
paulc 13ff077a7c Added support for play/record raw stereo PCM and G.711 files.
git-svn-id: http://voip.null.ro/svn/yate@1298 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-06 17:46:24 +00:00
paulc 2a89916a5c Solved one very narrow timeframe where destruction race was possible.
git-svn-id: http://voip.null.ro/svn/yate@1284 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-20 16:53:40 +00:00
paulc 0c1be8a37e Added extra variable to solve asynchronous destruction race between data
and disconnector threads.


git-svn-id: http://voip.null.ro/svn/yate@1283 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-20 00:08:33 +00:00
paulc 7f41857bf1 Set the disconnector thread name to help in debugging.
git-svn-id: http://voip.null.ro/svn/yate@1278 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-18 00:47:57 +00:00
marian 406daad7e9 Au headers are written for all alaw, mulaw and slin formats
git-svn-id: http://voip.null.ro/svn/yate@1249 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-06 16:08:38 +00:00
paulc df7c0f7a20 Support for stereo a-law and mu-law, capability to write them to .au file.
git-svn-id: http://voip.null.ro/svn/yate@1248 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-06 13:37:56 +00:00
paulc 4f6688f5b3 Fixed race of starting thread in constructor. Added "replace" attach method.
Added capability to write .lbc and .au files with headers.


git-svn-id: http://voip.null.ro/svn/yate@1222 acf43c95-373e-0410-b603-e72c3f656dc1
2007-03-19 23:06:06 +00:00
paulc 6061d202e3 Clear the owner channel in zombie sources - noone is referencing them
anymore.


git-svn-id: http://voip.null.ro/svn/yate@1210 acf43c95-373e-0410-b603-e72c3f656dc1
2007-03-05 13:48:19 +00:00
paulc 21d55cf471 Added a quick workaround for asynchronous deletion problem.
Setting asyncdelete=no in [hacks] of yate.conf reverts to synchronous
thread termination.


git-svn-id: http://voip.null.ro/svn/yate@1199 acf43c95-373e-0410-b603-e72c3f656dc1
2007-02-22 21:40:21 +00:00
paulc fba53dfec5 Implemented an alternative way of destroying a ThreadedSource from the data
pumping thread itself, should fix most threading related problems.


git-svn-id: http://voip.null.ro/svn/yate@1162 acf43c95-373e-0410-b603-e72c3f656dc1
2007-01-12 22:16:38 +00:00
paulc 69e150b56f Added autorepeat support for the wave source (play).
git-svn-id: http://voip.null.ro/svn/yate@1125 acf43c95-373e-0410-b603-e72c3f656dc1
2006-12-14 18:09:46 +00:00
paulc bbc4acfa60 Added channel ID (if any) and notify reason to "chan.notify" message.
git-svn-id: http://voip.null.ro/svn/yate@1071 acf43c95-373e-0410-b603-e72c3f656dc1
2006-10-09 14:15:14 +00:00
paulc 4f0b6e3529 Added more debug messages when compiling with DEBUG.
git-svn-id: http://voip.null.ro/svn/yate@1066 acf43c95-373e-0410-b603-e72c3f656dc1
2006-10-03 17:10:56 +00:00
paulc 9b64424e3d Fixed a race bug in in removing the data source.
git-svn-id: http://voip.null.ro/svn/yate@1065 acf43c95-373e-0410-b603-e72c3f656dc1
2006-10-03 16:42:49 +00:00
paulc bef614c844 On Windows wave files are opened in binary mode.
git-svn-id: http://voip.null.ro/svn/yate@918 acf43c95-373e-0410-b603-e72c3f656dc1
2006-07-01 00:02:45 +00:00
paulc 30a742d1df Fixed bug related to removal of attached non-notifying wave sources.
git-svn-id: http://voip.null.ro/svn/yate@908 acf43c95-373e-0410-b603-e72c3f656dc1
2006-06-28 15:43:23 +00:00
paulc 6c45ee1d3a WaveSources with no channel or autoclose get deleted when thread ends.
Thanks Maciek Kaminski for finding this problem.


git-svn-id: http://voip.null.ro/svn/yate@897 acf43c95-373e-0410-b603-e72c3f656dc1
2006-06-21 21:46:55 +00:00
paulc 3a1938c2c7 Updated copyright and FSF address.
git-svn-id: http://voip.null.ro/svn/yate@815 acf43c95-373e-0410-b603-e72c3f656dc1
2006-05-27 15:08:43 +00:00
paulc 7f57bba0fc Moved all classes in all modules in anonymous namespaces.
Added RTLD_GLOBAL dlopen()ing so symbols exported by libraries loaded by
modules will be available.


git-svn-id: http://voip.null.ro/svn/yate@813 acf43c95-373e-0410-b603-e72c3f656dc1
2006-05-27 14:53:18 +00:00
paulc 62cef8367c Fixed bug in debugging found by Olaf Conradi the hard way :(
git-svn-id: http://voip.null.ro/svn/yate@751 acf43c95-373e-0410-b603-e72c3f656dc1
2006-04-17 17:45:08 +00:00
paulc 0bdae61caf Added RADIUS client module.
Applied various related and unrelated changes and fixes.


git-svn-id: http://voip.null.ro/svn/yate@714 acf43c95-373e-0410-b603-e72c3f656dc1
2006-03-22 18:22:34 +00:00
paulc b19be21992 Added caller channel id in rmanager output.
Analyzer outputs quality estimation.


git-svn-id: http://voip.null.ro/svn/yate@707 acf43c95-373e-0410-b603-e72c3f656dc1
2006-02-28 14:39:58 +00:00
paulc 9211f29772 Fixed several race and deadlock conditions.
RTPGroup no longer corrupts memory if transports are removed from its own thread.


git-svn-id: http://voip.null.ro/svn/yate@654 acf43c95-373e-0410-b603-e72c3f656dc1
2006-01-19 21:13:49 +00:00
paulc 59e70f442a Fixed "Floating point exception" and spurious notify on "wave/play/-"
git-svn-id: http://voip.null.ro/svn/yate@602 acf43c95-373e-0410-b603-e72c3f656dc1
2005-12-14 13:50:44 +00:00
paulc ca2ef8cf29 Added common pre-answer timeout in class Channel.
Fixed bugs in disconnecting wave sources.
Added option settings for external modules.


git-svn-id: http://voip.null.ro/svn/yate@559 acf43c95-373e-0410-b603-e72c3f656dc1
2005-11-04 19:30:47 +00:00
paulc e0e593b0f7 Preparation for iLBC support.
git-svn-id: http://voip.null.ro/svn/yate@532 acf43c95-373e-0410-b603-e72c3f656dc1
2005-09-30 22:46:16 +00:00
paulc 828e234fac Override (local announcement) fully supported in tone and wavefile.
Inband DTMF for PRI channels by using the tone generator.
Reduced the default PRI buffer from 60 to 20 msec.


git-svn-id: http://voip.null.ro/svn/yate@528 acf43c95-373e-0410-b603-e72c3f656dc1
2005-09-28 22:06:11 +00:00