Commit Graph

301 Commits

Author SHA1 Message Date
paulc 1350c52677 Fixed a number of concurrency issues regarding reINVITE processing.
git-svn-id: http://voip.null.ro/svn/yate@4332 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-20 18:38:30 +00:00
paulc 23bee28ded Terminate a SIP call for which we had a timeout on a reINVITE as media state becomes uncertain.
Bug report and patch provided by Matthew.


git-svn-id: http://voip.null.ro/svn/yate@4310 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-18 11:17:50 +00:00
paulc 74178c73fc Clear the initiated reINVITE transaction on completion, allow further reINVITEs.
Bug report and patch provided by Matthew.


git-svn-id: http://voip.null.ro/svn/yate@4309 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-18 11:03:23 +00:00
paulc 3736466398 The default RFC 2833 payload can be configured and overriden per call.
git-svn-id: http://voip.null.ro/svn/yate@4287 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-12 15:41:49 +00:00
paulc 7d6644c96e Decode MIME type message/sipfrag as lines of text.
Allow generic processing of SIP INFO messages that are not used for DTMFs.
Properly add lines of text bodies to generic SIP messages.


git-svn-id: http://voip.null.ro/svn/yate@4273 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-07 12:16:12 +00:00
paulc 5bcf9bba3e Honor an earlymedia=false parameter even when using RTP forwarding.
git-svn-id: http://voip.null.ro/svn/yate@4267 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-06 09:13:16 +00:00
oana 7a374f6c37 Fixed checking if a engine.status module is indeed intended for that module. Fixed bug: don't print for a second time the status message for IAX module.
git-svn-id: http://voip.null.ro/svn/yate@4221 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-28 12:40:44 +00:00
paulc 95e866418e Sanitize the custom SIP cause codes, must be >= 300.
Allow altering the SIP code in the chan.disconnected message.


git-svn-id: http://voip.null.ro/svn/yate@4195 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-18 14:03:42 +00:00
paulc 3228166268 Leave the tel: URIs untouched when sent on an outbound SIP call.
Also don't add sip: in front of sip:number URIs (we turned to sip:sip:number).


git-svn-id: http://voip.null.ro/svn/yate@4194 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-18 13:14:36 +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 b2283a0c2e Added flags that control how SIP message components are automatically completed.
These flags can be configured per engine and can be overridden in some messages by setting an "xsip_flags" parameter.


git-svn-id: http://voip.null.ro/svn/yate@4161 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-07 13:50:59 +00:00
paulc 9cb25fc845 Added capability to set response code and additional parameters when redirecting a SIP call as UAS.
git-svn-id: http://voip.null.ro/svn/yate@4149 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-02 16:58:22 +00:00
paulc 233a5f74a1 Copy SIP headers and decode ISUP (SIP-T/SIP-I) body to disconnect parameters.
Parameters are put in local chan.hangup and peer's chan.disconnected messages.


git-svn-id: http://voip.null.ro/svn/yate@4142 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-01 16:08:52 +00:00
paulc 8b851caa08 Translate between SIP Remote-Party-ID fields "party" and "id-type" and Yate parameters "remote_party" and "remote_id_type".
git-svn-id: http://voip.null.ro/svn/yate@4083 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-28 13:53:30 +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
oana 5abf18900b Changed the format of the accounts, links and interfaces status reported through engine.status. Added accountUsername OID. Modified the monitoring module to deal with the status change and the need to handle the accountUsername OID information.
git-svn-id: http://voip.null.ro/svn/yate@3938 acf43c95-373e-0410-b603-e72c3f656dc1
2010-12-09 14:30:47 +00:00
oana 55813dcbe3 Added SNMP support.
git-svn-id: http://voip.null.ro/svn/yate@3776 acf43c95-373e-0410-b603-e72c3f656dc1
2010-11-03 16:27:30 +00:00
paulc e8f806c950 Added thread priority setting for the SIP module.
git-svn-id: http://voip.null.ro/svn/yate@3753 acf43c95-373e-0410-b603-e72c3f656dc1
2010-10-25 13:13:35 +00:00
paulc b19d86b8e0 Made several Regexps static const so they are compiled only once, speeds up processing.
One instance spotted by Allan Sandfeld Jensen, others by grep.


git-svn-id: http://voip.null.ro/svn/yate@3389 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-17 11:08:00 +00:00
paulc 629339b292 Check the line before using it to alter the domain.
git-svn-id: http://voip.null.ro/svn/yate@3245 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-26 21:30:28 +00:00
paulc cf29c804f9 Added support for detecting the domain of incoming SIP requests, gets copied to the generic "domain" parameter.
git-svn-id: http://voip.null.ro/svn/yate@3242 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-26 13:38:03 +00:00
paulc 9e7255048f Allow setting the outbound SIP proxy as host:port
git-svn-id: http://voip.null.ro/svn/yate@3209 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-19 13:25:08 +00:00
paulc 543d105246 Emit a BYE only if we have a SIP dialog - either early or established.
git-svn-id: http://voip.null.ro/svn/yate@3175 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-08 22:49:58 +00:00
paulc 2fc128e21e Store initially guessed local address, re-register only if it changed.
git-svn-id: http://voip.null.ro/svn/yate@3172 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-07 11:27:30 +00:00
paulc 1c9e786a74 Lock the module while accessing or changing SIP dialog information.
git-svn-id: http://voip.null.ro/svn/yate@3125 acf43c95-373e-0410-b603-e72c3f656dc1
2010-03-12 16:25:37 +00:00
paulc 638ffc277c Copy RTP stats in SIP to the CDR and to BYE or 200 message.
git-svn-id: http://voip.null.ro/svn/yate@3106 acf43c95-373e-0410-b603-e72c3f656dc1
2010-03-03 19:05:01 +00:00
paulc 98df7e335f Preserve the Call-ID across REGISTER messages in a single login session.
git-svn-id: http://voip.null.ro/svn/yate@3096 acf43c95-373e-0410-b603-e72c3f656dc1
2010-02-23 18:22:59 +00:00
paulc 8be9e9991a Add the REGISTER request URI and Call-ID to the user.(un)register messages.
git-svn-id: http://voip.null.ro/svn/yate@3063 acf43c95-373e-0410-b603-e72c3f656dc1
2010-02-02 23:59:54 +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 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 6a433cfe25 Copy by default some parameters from call.execute to chan.startup of outgoing calls.
git-svn-id: http://voip.null.ro/svn/yate@2964 acf43c95-373e-0410-b603-e72c3f656dc1
2009-11-25 18:34:54 +00:00
paulc 84b7cefe3d Emit call.update only when the SIP dialog tags have changed.
Avoids flooding the system with useless call.update and call.cdr messages.


git-svn-id: http://voip.null.ro/svn/yate@2874 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-21 14:10:47 +00:00
paulc 3624562f55 Added an extra parameter to SDPSession::updateFormats() allowing it to add or remove media.
Use the SDPSession::updateFormats() method in SIP instead of reimplementing it.


git-svn-id: http://voip.null.ro/svn/yate@2873 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-20 22:54:56 +00:00
paulc 6620daff86 Chain the debugging of the SIP engine to the SIP channels plugin.
git-svn-id: http://voip.null.ro/svn/yate@2867 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-16 12:04:32 +00:00
paulc f9e2c83d85 Fixed the way the SIP transaction answer code is returned to xsip.generate, it wasn't dealing well with timeouts.
While waiting for the arbitrary transaction to finish call Thread::idle() instead of yield().


git-svn-id: http://voip.null.ro/svn/yate@2845 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-18 11:17:50 +00:00
paulc 657c2fef63 Dispatch a chan.rtp with terminate=true when a SIP media is removed or replaced.
Added several channel parameters to the chan.rtp message.


git-svn-id: http://voip.null.ro/svn/yate@2839 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-14 18:52:53 +00:00
paulc cea5f52b61 Provide the entire SDPMedia to the mediaChanged() mthod, not only the name of the media.
Add the "rtpid" parameter to the chan.rtp message if the media id() is available.


git-svn-id: http://voip.null.ro/svn/yate@2832 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-14 09:06:16 +00:00
paulc 6857c9b34b Use the newly added SIPDialog methods.
Identify the dialogs RFC 3261 style (only by Call-ID, From-tag, To-tag) ignoring the From-URI and To-URI.


git-svn-id: http://voip.null.ro/svn/yate@2824 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-06 15:00:22 +00:00
paulc 555f945213 Fixed a few bugs introduced by Rev. 2805: Clear the data endpoints when the transport info changes, use the proper default audio formats when none specified.
git-svn-id: http://voip.null.ro/svn/yate@2818 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-01 15:18:21 +00:00
paulc aaa1c2048d Use the new SDP library in SIP and MGCP.
The PSTN channel can negotiate RTP forwarding if the circuits are terminated on a MGCP gateway.


git-svn-id: http://voip.null.ro/svn/yate@2805 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-24 12:09:34 +00:00
paulc 645a72b5d7 Process a 2xx answer to a forked SIP call after changing the disalog tag to match.
git-svn-id: http://voip.null.ro/svn/yate@2792 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-14 12:52:40 +00:00
paulc 07daf0aa54 In the outbound SIP call legs put the generated Call-ID in chan.startup to be available for CDR building.
git-svn-id: http://voip.null.ro/svn/yate@2788 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-13 11:39:44 +00:00
paulc 71f34fd5cf Added code and setting to prevent rebuilding the RTP when only the remote port has changed in the SDP offer.
This can prevent a neverending sequence of reINVITEs, each end trying to adjust to the changes of the other.


git-svn-id: http://voip.null.ro/svn/yate@2786 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-12 15:18:36 +00:00
paulc c56c469f0f Use the platform idle time in various sleeps in SIP and Jabber.
Fixed a compiler warning about the copy constructor of Mutex and 
Semaphore.


git-svn-id: http://voip.null.ro/svn/yate@2763 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-22 15:41:28 +00:00
paulc c4b6af8c24 Obey expires interval enforced by the SIP registrar.
git-svn-id: http://voip.null.ro/svn/yate@2749 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-07 10:29:32 +00:00
paulc d92348b8a2 New parameter "rtp_localip" overrides configured local RTP address for outbound SIP call legs.
git-svn-id: http://voip.null.ro/svn/yate@2740 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-26 15:33:22 +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 eb2a9cd5e0 Fixed warnings and a few minor bugs when compiling on a different architecture.
git-svn-id: http://voip.null.ro/svn/yate@2724 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-19 11:19:20 +00:00
paulc ba98f4f9fe Fixed filtering of SDP parameters in case of using RTP forward.
The local RTP case was fixed in Rev. 2606.


git-svn-id: http://voip.null.ro/svn/yate@2654 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-27 14:34:35 +00:00
paulc 2f86089c56 Add the sip: protocol on outgoing calls if none is specified.
git-svn-id: http://voip.null.ro/svn/yate@2648 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-22 18:15:48 +00:00