Commit Graph

120 Commits

Author SHA1 Message Date
paulc cd83ba0fce Added new static mutex to protect channel disconnect parameters during access.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4662 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-28 18:23:26 +00:00
marian 25d640a2aa Avoid destroying a Channel with its driver locked.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4462 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-22 11:38:57 +00:00
paulc fa0269ba4f New YSTRING macro that creates an ad-hoc static const String to speed up comparations and conversions from literal strings.
On unsupported compilers the literal string is returned unchanged.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4423 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-03 12:26:53 +00:00
paulc 980815c723 Protect the channel status variable while changing it.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4375 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-13 13:26:07 +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 c9a2c40f32 Moved the post-disconnect hooking code from ysigchan to the Channel class.
Added capability of sending arbitrary SIP headers on call disconnect.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4193 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-17 20:57:34 +00:00
paulc b1bcd4d95b Clear disconnect parameters after retrieving them once.
Being set by the peer we don't want them in our chan.hangup message.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4141 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-01 16:06:22 +00:00
paulc e45b1405db Return the chan.disconnected from getDisconnected() with the Channel already set as userData.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4101 acf43c95-373e-0410-b603-e72c3f656dc1
2011-02-09 11:16:43 +00:00
paulc 7c4801873f Automatically copy disconnect parameters to the chan.hangup message.
Provide those parameters to the peer call endpoint when disconnecting it.
Add numeric cause_q931 to disconnect params of h323chan.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4052 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-21 10:21:01 +00:00
paulc d5d51a5ab2 Emit a chan.connected notification message when a Channel was just connected.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3755 acf43c95-373e-0410-b603-e72c3f656dc1
2010-10-26 15:48:36 +00:00
paulc 6eeb68bb1a Added Channel::initChan() method to add the channel to the driver explicitely, after the object is fully constructed.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3033 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-26 10:31:32 +00:00
paulc 53dd0297d1 Reduced contention on mutex in CallEndpoint::getPeerId() when there is no peer.
Report the name of the thread holding CallEndpoint::commonMutex() locked.


git-svn-id: http://yate.null.ro/svn/yate/trunk@3023 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-16 21:04:08 +00:00
paulc 6318a02e9d Modified the CallEndpoint::getPeerId() API so it copies the string while holding CallEndpoint::commonMutex().
git-svn-id: http://yate.null.ro/svn/yate/trunk@3019 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-14 00:01:38 +00:00
paulc a4e2f58dbd Apply "maxcall" and "timeout" parameters on the "chan.control" message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2995 acf43c95-373e-0410-b603-e72c3f656dc1
2009-12-20 15:17:37 +00:00
paulc 5cde9ef2be Automatically reset the maxcall timer when entering "answered" status.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2991 acf43c95-373e-0410-b603-e72c3f656dc1
2009-12-18 19:08:41 +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 800c9fd8b2 When masquerading a call.answered message change the status but don't call status() that would set the isAnswered() flag and prevent a call.answered in the other direction from working.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2787 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-12 15:31:05 +00:00
paulc a2812051f2 Added Semaphore class, made Mutex derive from (new class) Lockable, made Lock able to get a lock on any Lockable - Mutex or Semaphore.
Use pthread_mutex_timedlock and sem_timedwait if available on platform.
Fixed a bug in the IAX channel exposed by Mutex having virtual methods.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2761 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-22 12:57:14 +00:00
paulc 34d758ec07 Clear the DataEndpoint's owner early, do not assume the CallEndpoint will still be valid when the DataEndpoint is finally destroyed.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2634 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-20 12:30:57 +00:00
paulc 85da36395b Added names to the Mutex class to ease debugging of deadlocks.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2611 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 12:25:31 +00:00
paulc 1c5056ab43 Do not handle Progress, Ringing or Answered messages by channels that are already answered.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2562 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-02 15:52:21 +00:00
paulc 0213a02666 Added channel disconnect parameter list and methods to use them.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2549 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-29 18:11:54 +00:00
paulc c3135a1b52 Added a static helper method to complete one item, use it where applicable.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2202 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-16 13:30:04 +00:00
paulc 300a9d816e Added the basic IM related messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2147 acf43c95-373e-0410-b603-e72c3f656dc1
2008-08-06 17:21:44 +00:00
paulc 380b59f1f6 Merged branches/marian/client up to rev. 2134.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2135 acf43c95-373e-0410-b603-e72c3f656dc1
2008-08-04 02:06:00 +00:00
paulc 43b9cf0f81 Added capability to route to "line/..." no matter what protocol it uses.
Added driver method to query the existence of a line, use it in routing.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2073 acf43c95-373e-0410-b603-e72c3f656dc1
2008-07-16 09:48:49 +00:00
marian a4ac7e7c93 Added channel data to keep the last connected peer id.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2052 acf43c95-373e-0410-b603-e72c3f656dc1
2008-07-04 07:51:44 +00:00
paulc 4321764321 Duplicate detector now ignores the last DTMF method after 4 seconds.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1956 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-28 16:54:03 +00:00
paulc 799dcc7e55 Made DTMF duplicate dropping messages a little more visible.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1955 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-25 13:23:43 +00:00
paulc 0f630bd627 Added capability to mark or block duplicate DTMFs detected by different methods.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1954 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-25 13:11:49 +00:00
paulc ab5450f60c Disallow installing relays at priority zero.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1939 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-23 12:54:20 +00:00
paulc 2a962c0267 Apply the "timeout" parameter if available.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1897 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-14 09:40:48 +00:00
paulc a889183a6f Made custom relay installer protected so it can be used for private messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1697 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-28 17:24:55 +00:00
paulc af1924c595 Added methods to remove just one message relay from module.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1683 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-27 10:04:42 +00:00
paulc 39424ad04d Custom message relays can be installed in Modules, relays can be uninstalled.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1682 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-26 20:43:05 +00:00
paulc 6063d1b43e Added capability for plugins to request early init order.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1496 acf43c95-373e-0410-b603-e72c3f656dc1
2007-11-26 23:56:37 +00:00
paulc dbb2d9982d The "peerid" takes precedence over "targetid". Masquerading rules are applied
before the message is completed.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1385 acf43c95-373e-0410-b603-e72c3f656dc1
2007-07-05 11:39:43 +00:00
paulc da79946d6e Changed the unlocking order to prevent races. Perform cleanups in the
destroyed() method instead of the destructor.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1357 acf43c95-373e-0410-b603-e72c3f656dc1
2007-06-08 18:33:33 +00:00
paulc e39385fdd5 Use TelEngine::destruct(obj) or GenObject::destruct() wherever applicable.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1325 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-15 15:40:50 +00:00
paulc f2d39ae988 Removed Driver::msgStatus() since was identical to the base class Module.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1311 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-12 13:41:50 +00:00
paulc 81eab01b7c Added method to copy multiple parameters from a list of names.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1310 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-12 13:27:44 +00:00
paulc 3671f4172f Removed extra timeout checks, checkTimers() does all verifications.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1214 acf43c95-373e-0410-b603-e72c3f656dc1
2007-03-12 18:13:56 +00:00
paulc d55815d450 Minor typo not catched by gcc (weird...)
git-svn-id: http://yate.null.ro/svn/yate/trunk@1208 acf43c95-373e-0410-b603-e72c3f656dc1
2007-03-01 17:15:09 +00:00
paulc 2b2d1df989 Minor optimisation, avoid copying one string over and over.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1207 acf43c95-373e-0410-b603-e72c3f656dc1
2007-03-01 17:14:03 +00:00
paulc 6b562ead96 Added capability to copy parameters from call.execute to outgoing channel's
chan.startup (and from there to call.cdr).


git-svn-id: http://yate.null.ro/svn/yate/trunk@1174 acf43c95-373e-0410-b603-e72c3f656dc1
2007-01-23 00:17:11 +00:00
paulc 014bfe1ec2 Added method to inject a foreign DataEndpoint into a CallEndpoint.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1149 acf43c95-373e-0410-b603-e72c3f656dc1
2006-12-22 16:48:51 +00:00
paulc 9766b24cb7 Added DTMF sequence number so that reordering can be detected.
Added post-masquerade handler, by default updates channel state on call
progress, ringing and answered - should fix bug #54.3 globally.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1140 acf43c95-373e-0410-b603-e72c3f656dc1
2006-12-19 17:48:57 +00:00
paulc e779649871 Try to match peerid if targetid does not match.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1105 acf43c95-373e-0410-b603-e72c3f656dc1
2006-11-08 23:16:28 +00:00
paulc 93719a4fcc Character mode telnet server allows for interactive line edit.
Support for line completion on TAB key.
The Windows telnet client should be happy with line endings.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1076 acf43c95-373e-0410-b603-e72c3f656dc1
2006-10-17 20:40:01 +00:00
paulc 458dd32fbe Added almost uniform debug details in all Module derived classes.
Implemented "status overview" in all modules.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1055 acf43c95-373e-0410-b603-e72c3f656dc1
2006-09-26 09:54:11 +00:00