Commit Graph

146 Commits

Author SHA1 Message Date
paulc 747e32afd8 Added helper class to keep extra account parameters for calls and registration.
Added extra account parameters handling to SIP channel.


git-svn-id: http://voip.null.ro/svn/yate@6066 acf43c95-373e-0410-b603-e72c3f656dc1
2015-11-18 14:20:00 +00:00
paulc 846279a784 Make sure we don't dereference a channel whose disconnect() was called from destroyed().
git-svn-id: http://voip.null.ro/svn/yate@5966 acf43c95-373e-0410-b603-e72c3f656dc1
2015-04-07 14:07:14 +00:00
paulc 4de603cda1 Force a (last) peer ID cache flush when a Channel is disconnected.
This fixes stale "peerid" and "lastpeerid" parameters when a channel is reconnected to another channel that happens to be allocated at the same address in memory.


git-svn-id: http://voip.null.ro/svn/yate@5816 acf43c95-373e-0410-b603-e72c3f656dc1
2014-04-04 09:14:04 +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 623c4701df Retry taking the lock on CallEndpoint mutex keeping the Engine congested.
This should allow recovering from performance problems as new calls are blocked.


git-svn-id: http://voip.null.ro/svn/yate@5704 acf43c95-373e-0410-b603-e72c3f656dc1
2014-01-07 16:08:37 +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 f7ad9ee3d0 Reduced contention on CallEndpoint::commonMutex() when getting current or last peer ID.
Added a variable and separate mutex for the last peer ID, also used as cache for current one.


git-svn-id: http://voip.null.ro/svn/yate@5702 acf43c95-373e-0410-b603-e72c3f656dc1
2014-01-07 16:07:34 +00:00
marian 18ae05c63c Added post dial delay timeout in outgoing channel started from 'maxpdd' routing parameter. It stops when status is called with 'ringing', 'progressing' or 'answered'.
git-svn-id: http://voip.null.ro/svn/yate@5666 acf43c95-373e-0410-b603-e72c3f656dc1
2013-10-11 12:46:20 +00:00
marian 2ab24ed2e2 Changed im.execute relay id. Removed im.route message relay. Route chat using call.route message.
git-svn-id: http://voip.null.ro/svn/yate@5618 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-13 07:54:00 +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 b3e87ed1a6 Send Alarm from several places instead of just Debug.
git-svn-id: http://voip.null.ro/svn/yate@5563 acf43c95-373e-0410-b603-e72c3f656dc1
2013-07-05 12:49:44 +00:00
paulc 00f61dac6e Copy all call.drop parameters into the channel disconnected list.
git-svn-id: http://voip.null.ro/svn/yate@5505 acf43c95-373e-0410-b603-e72c3f656dc1
2013-05-14 09:28:14 +00:00
paulc 44e89f8bcd Apply only strictly positive driver default timeouts.
git-svn-id: http://voip.null.ro/svn/yate@5466 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-15 12:46:48 +00:00
paulc 7c8b2d4c38 Added a shared static list of Atom strings and an YATOM macro.
This speeds up signifficantly the Yate RTTI on compilers that HAVE_BLOCK_RETURN.
Made the String comparison operator inline to shave off a few cycles.
Fast handle the comparison in identity case.


git-svn-id: http://voip.null.ro/svn/yate@5449 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:19:14 +00:00
marian e6d40c50e5 Fixed bug: remove relay from relays list when uninstalled to avoid keeping an invalid pointer.
git-svn-id: http://voip.null.ro/svn/yate@5321 acf43c95-373e-0410-b603-e72c3f656dc1
2012-11-13 11:30:30 +00:00
paulc f5230b501c Changed the handling of the "timeout" parameter so it (re)starts when call is answered.
Added "maxcall" and "timeout" setting and handling to channels that lacked it.


git-svn-id: http://voip.null.ro/svn/yate@5282 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-25 09:39:49 +00:00
oana e4f1433541 Keep channel count in a member variable. Replace the use of count() on the channel list with this variable.
git-svn-id: http://voip.null.ro/svn/yate@5222 acf43c95-373e-0410-b603-e72c3f656dc1
2012-08-15 12:36:53 +00:00
paulc 326b6940d4 Copy parameters to the disconnect list after prerouting.
This allows setting parameters in chan.hangup and CDR for calls cancelled during routing.


git-svn-id: http://voip.null.ro/svn/yate@5174 acf43c95-373e-0410-b603-e72c3f656dc1
2012-07-02 15:30:52 +00:00
paulc e4e08d488e Copy the parameters in "copyparams" to chan.hangup if the call failed to craete an outbound call leg.
This allows setting custom parameters in CDR from routing or disconnect.


git-svn-id: http://voip.null.ro/svn/yate@5167 acf43c95-373e-0410-b603-e72c3f656dc1
2012-07-01 20:47:55 +00:00
paulc b218206af1 Set the call leg "direction" parameter in channel messages.
git-svn-id: http://voip.null.ro/svn/yate@5121 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-15 10:52:12 +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 d47c9acafe Use const String references for specifying type of data inCallEndpoint. Added method to return the default audio type.
git-svn-id: http://voip.null.ro/svn/yate@5087 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-01 11:52:50 +00:00
paulc 97aff2cd54 When routing set the default reason only if also using the default error.
This prevents mismatched messages like "401 No Route".


git-svn-id: http://voip.null.ro/svn/yate@5084 acf43c95-373e-0410-b603-e72c3f656dc1
2012-05-31 17:40:33 +00:00
paulc 708fa999a5 Allow chan.masquerade to provide only minimal completion of parameters.
git-svn-id: http://voip.null.ro/svn/yate@5076 acf43c95-373e-0410-b603-e72c3f656dc1
2012-05-29 08:48:54 +00:00
paulc 13e4852085 Trim any leading or trailing whitespaces from returned route.
An empty route causes a "noroute" error.


git-svn-id: http://voip.null.ro/svn/yate@4790 acf43c95-373e-0410-b603-e72c3f656dc1
2011-12-22 13:46:09 +00:00
paulc 4d74b5138f Added new static mutex to protect channel disconnect parameters during access.
git-svn-id: http://voip.null.ro/svn/yate@4662 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-28 18:23:26 +00:00
marian 02c3052c36 Avoid destroying a Channel with its driver locked.
git-svn-id: http://voip.null.ro/svn/yate@4462 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-22 11:38:57 +00:00
paulc 471dd0d96d 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://voip.null.ro/svn/yate@4423 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-03 12:26:53 +00:00
paulc b8e2817f13 Protect the channel status variable while changing it.
git-svn-id: http://voip.null.ro/svn/yate@4375 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-13 13:26:07 +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
paulc 5e47c82025 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://voip.null.ro/svn/yate@4193 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-17 20:57:34 +00:00
paulc 49c8f201aa 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://voip.null.ro/svn/yate@4141 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-01 16:06:22 +00:00
paulc e70e1a0110 Return the chan.disconnected from getDisconnected() with the Channel already set as userData.
git-svn-id: http://voip.null.ro/svn/yate@4101 acf43c95-373e-0410-b603-e72c3f656dc1
2011-02-09 11:16:43 +00:00
paulc fa661af327 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://voip.null.ro/svn/yate@4052 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-21 10:21:01 +00:00
paulc a2102dfbf1 Emit a chan.connected notification message when a Channel was just connected.
git-svn-id: http://voip.null.ro/svn/yate@3755 acf43c95-373e-0410-b603-e72c3f656dc1
2010-10-26 15:48:36 +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 717a87c5af 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://voip.null.ro/svn/yate@3023 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-16 21:04:08 +00:00
paulc 5950cdd9df Modified the CallEndpoint::getPeerId() API so it copies the string while holding CallEndpoint::commonMutex().
git-svn-id: http://voip.null.ro/svn/yate@3019 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-14 00:01:38 +00:00
paulc 657bfc063c Apply "maxcall" and "timeout" parameters on the "chan.control" message.
git-svn-id: http://voip.null.ro/svn/yate@2995 acf43c95-373e-0410-b603-e72c3f656dc1
2009-12-20 15:17:37 +00:00
paulc 455b6dbf81 Automatically reset the maxcall timer when entering "answered" status.
git-svn-id: http://voip.null.ro/svn/yate@2991 acf43c95-373e-0410-b603-e72c3f656dc1
2009-12-18 19:08:41 +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 51e203934c 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://voip.null.ro/svn/yate@2787 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-12 15:31:05 +00:00
paulc 09b07f4b00 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://voip.null.ro/svn/yate@2761 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-22 12:57:14 +00:00
paulc c163a762f9 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://voip.null.ro/svn/yate@2634 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-20 12:30:57 +00:00
paulc 5227505c00 Added names to the Mutex class to ease debugging of deadlocks.
git-svn-id: http://voip.null.ro/svn/yate@2611 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 12:25:31 +00:00
paulc cb2e516f13 Do not handle Progress, Ringing or Answered messages by channels that are already answered.
git-svn-id: http://voip.null.ro/svn/yate@2562 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-02 15:52:21 +00:00
paulc c546face0d Added channel disconnect parameter list and methods to use them.
git-svn-id: http://voip.null.ro/svn/yate@2549 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-29 18:11:54 +00:00
paulc 14e16c86d7 Added a static helper method to complete one item, use it where applicable.
git-svn-id: http://voip.null.ro/svn/yate@2202 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-16 13:30:04 +00:00
paulc 9439ffcb52 Added the basic IM related messages.
git-svn-id: http://voip.null.ro/svn/yate@2147 acf43c95-373e-0410-b603-e72c3f656dc1
2008-08-06 17:21:44 +00:00