These are all instances of an object being put into a container just
before it goes out of scope. Use move semantics to avoid copying.
Change-Id: I9c40a56c4a67df2b8e244d51f068b50ec286f5bf
Warned-by: Coverity
Fall through so that the shutdown flag gets set and so that the SIP
control sockets get shut down.
Change-Id: I205db4c7aa72dd9576f42b0d9bc2ec4960fd5415
Use overloading for the various flavours of str2int functions. This has
the benefit of automatically choosing the appropriate function for
aliased types that may be one or the other underlying type, such as
size_t.
Do a mass renaming of all relevant instances.
Change-Id: I7abb6b9031ee53332d2b04a6cba4a6cc667a4807
AmThread::stop() detaches the thread, which makes it impossible to
::join() it. Only call one or the other.
Change-Id: Icc9301dc9b31856ec7f963835cffd315bbc925bb
Use std::condition_variable and std::mutex to implement AmCondition.
Only bools are used for conditions in the code, so make it not a
template.
Change-Id: I57d67492e29c220a5ce941ef67d142b34dcebbff
SIGHUP - broadcast shutdown, usually sends BYE and stops all calls. The server does not terminate.
SIGINT - broadcast shutdown (usually sends BYE and stops all calls), and stop.
SIGTERM - stop the server, without broadcasting shutdown (no BYEs sent).
- session container needs to be stopped first, with everything else still in place, so sessions can stop/send BYE
- UDP SIP transport is needed in shutdown procedure
- event dispatcher is needed until the end (may be needed to post events while destructing things)
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1916 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- options now properly override configuration settings
- fix arguments checking and cleanup error messages
- "-D" accepts string level (eg, "info"), etc.
[ ...prepare for switching to getopt soon... ]
* signal handling and more gracious shutdown procedure
- fix possible race condition in the signal handler (eg, static
AmMutex and AmCondition)
- dispose instances synchronously in main() instead of in
the signal handler
- replace multiple "exit()"s by a single exit point
- remove PID file on failure exit
* add possibility to disable daemon mode at compile-time (see
DISABLE_DAEMON_MODE macro)
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1872 8eb893ce-cfd4-0310-b710-fb5ebe64c474
to use it, set USE_THREADPOOL in Makefile.defs and configure thread pool
size with session_processor_threads= parameter in sems.conf :
+# compile with session thread pool support?
+# use this for very high concurrent call count
+# applications (e.g. for signaling only)
+# if compiled with thread pool, there will be a
+# thread pool of configurable size processing the
+# signaling and application logic of the calls.
+# if compiled without thread pool support, every
+# session will have its own thread.
+#
+#USE_THREADPOOL = yes
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1782 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- static library sip_stack.a (with dependencies on the core).
- removed AmServer and moved SipCtrlInterface into the core directory.
- TODO:
- CMake support to make core/sip/sip_stack.a and link against it in the core.
- merge AmSipRequest/AmSipReply and sip_msg structures.
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1758 8eb893ce-cfd4-0310-b710-fb5ebe64c474
icmpwatcher has not been used for some time, as it is a
quite dangerous method of checking for the remote party
(in the beginning of a call due to delays in signalling,
the port on the remote end could for example still be not
open for some time)
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1652 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- active sessions and other event receivers
get a SystemEvent::ServerShutdown,
default behaviour of AmSession is setStopped()
- session container waits for all sessions to be ended
- signaling server, rtp receiver, media processor, event dispatcher
are stopped and deleted
based on a patch by Rui Jin Zheng rjzheng at boronetworks dot com
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1087 8eb893ce-cfd4-0310-b710-fb5ebe64c474
- removed AmSIPEventHandler (its functionalities are now in AmEventDispatcher).
- added possibility for each plug-in to receive out-of-dialog messages (any kind).
- added possibility to handle dialogs without creating a session (=AmSession).
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1006 8eb893ce-cfd4-0310-b710-fb5ebe64c474