Commit Graph

66 Commits

Author SHA1 Message Date
paulc 11a02cf913 Resolved or silenced a number of compile warnings.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5891 acf43c95-373e-0410-b603-e72c3f656dc1
2014-07-31 16:30:15 +00:00
paulc 11fcab1ab1 Implement independent CSeq generators for INVITE dialogs and REGISTER sessions.
Always parse CSeq in base 10, some implementations left pad with zeros.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5855 acf43c95-373e-0410-b603-e72c3f656dc1
2014-06-25 12:27:56 +00:00
paulc fce2aa8548 Allow retrieving and setting more SIP dialog components.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5846 acf43c95-373e-0410-b603-e72c3f656dc1
2014-06-18 08:38:30 +00:00
paulc 41241ca8fc Allow controlling the number of (re)transmission per SIP transaction.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5844 acf43c95-373e-0410-b603-e72c3f656dc1
2014-06-12 09:50:50 +00:00
paulc f2fe82537c Generate monotonic per-dialog Command Sequence numbers (CSeq) derived from the global sequence.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5841 acf43c95-373e-0410-b603-e72c3f656dc1
2014-06-11 12:02:40 +00:00
paulc 3e29286042 When building a default SIP domain from local address include port if not 5060.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5815 acf43c95-373e-0410-b603-e72c3f656dc1
2014-04-02 11:23:58 +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 6c99ac9558 Added reporting the number of SIP transactions to "status sip" command.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5746 acf43c95-373e-0410-b603-e72c3f656dc1
2014-01-29 13:26:24 +00:00
marian 1385c6ae07 Fixed debug message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5690 acf43c95-373e-0410-b603-e72c3f656dc1
2013-11-27 14:00:21 +00:00
marian 0c55017c41 Added SIP IPv6 support.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5673 acf43c95-373e-0410-b603-e72c3f656dc1
2013-10-18 18:30:41 +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
marian a0b11fc63d Propagate non-retryable send errors to transaction. Terminate outgoing transactions in Trying state if first send attempt failed. Reset failed message party otherwise.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5599 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-02 10:01:39 +00:00
paulc 3843f27737 Ignore To tags in 100 answers, they are not supposed to establish a dialog.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5587 acf43c95-373e-0410-b603-e72c3f656dc1
2013-07-18 12:55:01 +00:00
paulc 326a3d43d4 Added some more SIP errors from recent standards.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5452 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:33:49 +00:00
paulc 3b49b78ecb 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://yate.null.ro/svn/yate/trunk@5449 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:19:14 +00:00
paulc 8aa902352c Retrieve and reuse Time::now() at most twice per SIPEngine::getEvent()
Avoids making too many calls to gettimeofday() when there are many SIP transactions.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5254 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-11 10:27:56 +00:00
marian a77586a7a9 Added configurable option (defaults to disable) used to change remote party's ip/port when a channel receives a response or a new transaction from a different address.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5250 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-03 09:41:46 +00:00
paulc 955f946503 Downgraded branck/non-branch SIP ACK from MILD to NOTE, they are too frequent.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5005 acf43c95-373e-0410-b603-e72c3f656dc1
2012-04-12 13:34:46 +00:00
paulc ab2222ef67 Changed the way SIP authentication is performed by UAS.
This allows implementing custom authentication schemes.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4975 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-26 00:25:00 +00:00
marian 60102b4db6 Don't quote the qop and nc parameters in Authorization response. Patch suggested by billsimon in Mantis issue #285.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4807 acf43c95-373e-0410-b603-e72c3f656dc1
2012-01-17 16:26:46 +00:00
marian 5845857da0 Double the timeout period before using it. Decreased retransmission counters default values to keep the same overall timeout.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4559 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-22 15:16:26 +00:00
marian df8ec5d64d Made configurable the number of times to transmit a request or a final response when retransmission is required.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4556 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-22 14:11:51 +00:00
marian 80cd472913 Don't retransmit non 2xx final responses to INVITE on reliable transports.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4555 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-22 12:29:22 +00:00
marian 34924962aa Added support for tcp/tls sip transport. The sip module can now use (bind on) more then one address for udp.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4493 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-12 14:55:02 +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 51111b0f6d Optimized const String usage in the SIP library.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4427 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-03 13:04:21 +00:00
marian b77429d566 Use a global (per engine) nonce counter. Increase it each time we need it.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4378 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-16 08:18:56 +00:00
marian 8c5ca9bc71 Handle qop=auth authentication requested by UAS when acting as UAC.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4365 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-10 13:37:44 +00:00
paulc ef393de662 Added method to check easily if a SIP transaction can send a response message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4192 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-17 20:31:18 +00:00
paulc 6a09c86bad 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://yate.null.ro/svn/yate/trunk@4161 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-07 13:50:59 +00:00
paulc 453fe76909 Set the value of rport parameter (RFC 3581) in the topmost Via header only if the parameter is already set by the client or proxy and has no value.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4160 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-07 11:56:43 +00:00
paulc 3400667350 Consistently use the branch from the last Via header in matching transactions.
Fixes bug #237.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4080 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-28 09:49:55 +00:00
paulc 313d1bb82a Added optional parameter to retrieve the last header or its parameters from a SIP message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4079 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-28 09:48:00 +00:00
paulc d95cb2fec6 Spelling cleanup of a very common error: Retrive -> Retrieve
git-svn-id: http://yate.null.ro/svn/yate/trunk@3371 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-11 11:25:10 +00:00
paulc 15904daef1 Reorder libraries so that Yate libraries and modules can be linked using --as-needed avoiding underlinking or overlinking.
Reported by Mandriva (bug report #206).


git-svn-id: http://yate.null.ro/svn/yate/trunk@3143 acf43c95-373e-0410-b603-e72c3f656dc1
2010-03-24 13:46:12 +00:00
paulc c7d6f8c029 Use static Regexps instead of allocating them on stack. Multiplies 2.5x the parser performance.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3048 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-31 20:30:02 +00:00
paulc 717d48cd77 Minor performance improvement parsing non-SIP/2.0 branches.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3047 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-31 20:27:56 +00:00
paulc 9e536a65cf Bumped SVN trunk version to 3.0.0 alpha 1.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2883 acf43c95-373e-0410-b603-e72c3f656dc1
2009-11-03 09:48:34 +00:00
paulc 0533a9baf6 Made the SIP transactions list protected, added methods to add or remove transactions from list that lock the engine.
Remove transactions from engine's list on destroyed() as later access to their virtual methods is unsafe.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2868 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-16 12:08:22 +00:00
paulc 7ba9fb751c Fixed documentation generating comments for SIP classes.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2823 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-06 14:58:18 +00:00
paulc 9fa5281f19 Added new methods to SIPDialog to compare only callid and tags (RFC 3261) and to retrieve the From and To URI or tags depending on direction.
Documented members of SIPDialog.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2822 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-06 14:50:36 +00:00
paulc eeafea378b Prevent the escaping of user-unreserved characters (RFC 3261 25.1 Page 222) when building the user part of SIP From and Contact.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2817 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-01 14:42:28 +00:00
paulc a2835ec68d Added separate method to actually process a SIP message after identifying its transaction.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2791 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-14 12:51:05 +00:00
paulc df88815dfe Transmit the internally generated 408 answer, prevent the stack from immediately cleaning up the transaction.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2790 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-14 11:34:04 +00:00
paulc 65fa4adbd4 Fixed warnings and a few minor bugs when compiling on a different architecture.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2724 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-19 11:19:20 +00:00
paulc 2c03a9624d Use the system detected CFLAGS instead of hardcoding -O2
git-svn-id: http://yate.null.ro/svn/yate/trunk@2673 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-01 16:06:14 +00:00
paulc c069997056 Link the libraries using the C++ linker so it properly links against libstdc++ and compiler support.
Not required on ELF systems as libyate.so would pull in the required libraries but was confusing and could cause problems on other platforms.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2667 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-31 18:58:25 +00:00
paulc 6017353332 Add a Contact header to INVITE even if user part of URI is empty.
Properly escape the user component of the URI.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2645 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-21 20:57:51 +00:00
paulc 2c3d47c29c Added mutex names to most Yate libraries.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2612 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 12:37:55 +00:00
paulc bcdef30339 Set the latest message in SIP client transactions. Compute user timeout from standard SIP timers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2442 acf43c95-373e-0410-b603-e72c3f656dc1
2009-01-16 14:59:27 +00:00