From df041a16ed7a67e035b8c528b9f4cc84298de3b5 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Mon, 24 Sep 2007 17:37:04 +0000 Subject: [PATCH] train ride doxygen documentation git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@457 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- Makefile | 4 + apps/ann_b2b/AnnounceB2B.h | 2 + apps/announce_transfer/AnnounceTransfer.h | 2 + apps/announcement/Announcement.h | 2 + apps/conference/AmRingTone.h | 1 + apps/conference/Conference.h | 3 + apps/early_announce/EarlyAnnounce.h | 2 + apps/ivr/Ivr.h | 7 +- apps/ivr/IvrAudio.h | 2 +- apps/ivr/IvrAudioMixIn.h | 2 +- apps/ivr/IvrDialogBase.cpp | 5 +- apps/ivr/IvrSipDialog.cpp | 2 +- apps/ivr/IvrSipReply.cpp | 2 +- apps/ivr/IvrSipRequest.cpp | 1 + apps/ivr/IvrUAC.h | 2 +- apps/py_sems/PySems.cpp | 6 + apps/py_sems/PySems.h | 2 + apps/py_sems/PySemsAudio.h | 2 +- apps/py_sems/PySemsB2ABDialog.h | 2 + apps/py_sems/PySemsB2BDialog.h | 1 + apps/py_sems/PySemsDialog.h | 1 + apps/voicemail/AnswerMachine.h | 2 + core/AmAdvancedAudio.h | 3 + core/AmApi.h | 1 + core/AmArg.h | 8 +- core/AmAudio.cpp | 1 + core/AmAudio.h | 2 +- core/AmAudioMixIn.h | 2 +- core/AmB2ABSession.h | 4 + core/AmB2BSession.h | 2 +- core/AmCachedAudioFile.cpp | 2 +- core/AmCachedAudioFile.h | 4 +- core/AmCallWatcher.h | 9 +- core/AmConferenceChannel.h | 1 + core/AmConferenceStatus.h | 2 +- core/AmConfig.h | 2 +- core/AmConfigReader.h | 1 + core/AmCtrlInterface.h | 1 + core/AmDtmfDetector.cpp | 2 +- core/AmDtmfDetector.h | 3 +- core/AmEvent.h | 1 + core/AmEventQueue.h | 1 + core/AmIcmpWatcher.h | 1 + core/AmInterfaceHandler.h | 2 +- core/AmJitterBuffer.h | 2 +- core/AmMail.h | 2 +- core/AmMediaProcessor.h | 2 +- core/AmMultiPartyMixer.h | 2 +- core/AmPlaylist.h | 4 +- core/AmPlayoutBuffer.h | 2 +- core/AmPlugIn.h | 2 +- core/AmPromptCollection.h | 5 +- core/AmRtpAudio.h | 2 +- core/AmRtpPacket.h | 1 + core/AmRtpReceiver.h | 2 +- core/AmRtpStream.h | 4 +- core/AmServer.h | 3 +- core/AmSession.cpp | 1 - core/AmSession.h | 2 + core/AmSessionContainer.h | 2 +- core/AmSipDialog.h | 27 +++ core/AmSipEvent.h | 27 +++ core/AmSipReply.h | 31 ++- core/AmSipRequest.h | 27 +++ core/AmSmtpClient.h | 2 +- core/AmStats.h | 27 +++ core/AmThread.h | 2 +- core/AmUAC.h | 2 +- core/AmUtils.cpp | 2 + core/AmUtils.h | 18 +- core/Makefile | 9 +- core/amci/amci.h | 29 +-- core/amci/codecs.h | 1 + core/doxygen_fulldoc | 227 ++++++++++++++++++++++ core/doxygen_proj | 59 +----- core/plug-in/echo/AmAudioEcho.cpp | 2 + core/plug-in/echo/AmAudioEcho.h | 1 + core/plug-in/echo/Echo.h | 3 +- core/plug-in/session_timer/SessionTimer.h | 3 +- core/plug-in/session_timer/UserTimer.cpp | 1 + core/plug-in/session_timer/UserTimer.h | 8 +- core/plug-in/stats/Statistics.cpp | 2 +- core/plug-in/stats/Statistics.h | 1 + core/plug-in/stats/StatsUDPServer.h | 1 + core/plug-in/uac_auth/UACAuth.cpp | 10 +- core/plug-in/uac_auth/UACAuth.h | 4 + core/plug-in/wav/wav_hdr.c | 6 +- core/rtp/rtp.h | 5 +- core/sems.h | 2 +- doc/CHANGELOG | 53 ++++- doc/COMPILING | 38 ++++ doc/Makefile | 6 + doc/doxyref.h | 4 +- 93 files changed, 649 insertions(+), 139 deletions(-) create mode 100644 core/doxygen_fulldoc diff --git a/Makefile b/Makefile index 35750f5a..2a0f31fa 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,10 @@ bundle: ser-0.9.6-sems tar doc: make -C core/ doc +.PHONY: fulldoc +fulldoc: + make -C core/ fulldoc + .PHONY: install-ser-cfg install-ser-cfg: make -C core/ install-ser-cfg diff --git a/apps/ann_b2b/AnnounceB2B.h b/apps/ann_b2b/AnnounceB2B.h index a28d0f86..2d6b8cce 100644 --- a/apps/ann_b2b/AnnounceB2B.h +++ b/apps/ann_b2b/AnnounceB2B.h @@ -37,6 +37,7 @@ #include using std::string; +/** \brief Factory for AnnounceB2B sessions */ class AnnounceB2BFactory: public AmSessionFactory { public: @@ -49,6 +50,7 @@ public: AmSession* onInvite(const AmSipRequest& req); }; +/** \brief Session logic implementation of A leg in announce_b2b sessions */ class AnnounceCallerDialog: public AmB2BCallerSession { AmAudioFile wav_file; diff --git a/apps/announce_transfer/AnnounceTransfer.h b/apps/announce_transfer/AnnounceTransfer.h index 7b482ce9..ae2ccc07 100644 --- a/apps/announce_transfer/AnnounceTransfer.h +++ b/apps/announce_transfer/AnnounceTransfer.h @@ -35,6 +35,7 @@ #include using std::string; +/** \brief session factory for announce_transfer sessions */ class AnnounceTransferFactory: public AmSessionFactory { public: @@ -47,6 +48,7 @@ public: AmSession* onInvite(const AmSipRequest& req); }; +/** \brief session logic implementation for announce_transfer sessions */ class AnnounceTransferDialog : public AmSession { string callee_uri; diff --git a/apps/announcement/Announcement.h b/apps/announcement/Announcement.h index 618f97c2..dd025177 100644 --- a/apps/announcement/Announcement.h +++ b/apps/announcement/Announcement.h @@ -38,6 +38,7 @@ using std::string; #include +/** \brief Factory for announcement sessions */ class AnnouncementFactory: public AmSessionFactory { inline string getAnnounceFile(const AmSipRequest& req); @@ -54,6 +55,7 @@ public: }; +/**\brief announcement session logic implementation */ class AnnouncementDialog : public AmSession, public CredentialHolder { diff --git a/apps/conference/AmRingTone.h b/apps/conference/AmRingTone.h index 9196643f..995704a3 100644 --- a/apps/conference/AmRingTone.h +++ b/apps/conference/AmRingTone.h @@ -3,6 +3,7 @@ #include "AmAudio.h" +/** \brief audio device that generates ring tones with uesr specified period, f and f2 */ class AmRingTone: public AmAudio { int on_period; // ms diff --git a/apps/conference/Conference.h b/apps/conference/Conference.h index 570c41f5..8628c0c1 100644 --- a/apps/conference/Conference.h +++ b/apps/conference/Conference.h @@ -59,6 +59,7 @@ enum { DoConfConnect = 100, DoConfError }; +/** \brief Event to trigger connecting/disconnecting between dialout session and main conference session */ struct DialoutConfEvent : public AmEvent { string conf_id; @@ -70,6 +71,7 @@ struct DialoutConfEvent : public AmEvent { {} }; +/** \brief Factory for conference sessions */ class ConferenceFactory : public AmSessionFactory { public: @@ -90,6 +92,7 @@ public: virtual int onLoad(); }; +/** \brief session logic implementation of conference sessions */ class ConferenceDialog : public AmSession { AmPlaylist play_list; diff --git a/apps/early_announce/EarlyAnnounce.h b/apps/early_announce/EarlyAnnounce.h index 095e2b23..ec9ccc69 100644 --- a/apps/early_announce/EarlyAnnounce.h +++ b/apps/early_announce/EarlyAnnounce.h @@ -34,6 +34,7 @@ #include using std::string; +/** \brief Factory for early_announce sessions */ class EarlyAnnounceFactory: public AmSessionFactory { public: @@ -46,6 +47,7 @@ public: AmSession* onInvite(const AmSipRequest& req); }; +/** \brief session logic implementation for early_announce sessions */ class EarlyAnnounceDialog : public AmSession { AmAudioFile wav_file; diff --git a/apps/ivr/Ivr.h b/apps/ivr/Ivr.h index f0d839f4..88ddceae 100644 --- a/apps/ivr/Ivr.h +++ b/apps/ivr/Ivr.h @@ -40,6 +40,7 @@ using std::map; class IvrDialog; +/** \brief C++ wrapper for extra thread created by Python IVR script */ class PythonScriptThread : public AmThread { PyObject* py_thread_object; protected: @@ -50,7 +51,7 @@ class PythonScriptThread : public AmThread { : py_thread_object(py_thread_object_) { } }; - +/** \brief binds a script module and the python dialog class */ struct IvrScriptDesc { PyObject* mod; @@ -73,7 +74,7 @@ IvrScriptDesc(PyObject* mod, {} }; - +/** \brief session factory for python IVR sessions */ class IvrFactory: public AmSessionFactory { PyObject* ivr_module; @@ -112,7 +113,7 @@ class IvrFactory: public AmSessionFactory void addDeferredThread(PyObject* pyCallable); }; - +/** \brief python IVR wrapper for session base implementation */ class IvrDialog : public AmB2BCallerSession { PyObject *py_mod; diff --git a/apps/ivr/IvrAudio.h b/apps/ivr/IvrAudio.h index 56ed8d09..29d0ea7f 100644 --- a/apps/ivr/IvrAudio.h +++ b/apps/ivr/IvrAudio.h @@ -14,7 +14,7 @@ #include "flite.h" #endif -// Data definition +/** \brief IVR wrapper of AmAudioFile */ typedef struct { PyObject_HEAD diff --git a/apps/ivr/IvrAudioMixIn.h b/apps/ivr/IvrAudioMixIn.h index 057362d1..80c0e39a 100644 --- a/apps/ivr/IvrAudioMixIn.h +++ b/apps/ivr/IvrAudioMixIn.h @@ -7,7 +7,7 @@ #include "AmAudioMixIn.h" -// Data definition +/** \brief python IVR wrapper for AmAudioMixIn */ typedef struct { PyObject_HEAD diff --git a/apps/ivr/IvrDialogBase.cpp b/apps/ivr/IvrDialogBase.cpp index ff567f6a..9ad3b560 100644 --- a/apps/ivr/IvrDialogBase.cpp +++ b/apps/ivr/IvrDialogBase.cpp @@ -1,15 +1,14 @@ #include "IvrDialogBase.h" #include "IvrAudio.h" #include "IvrAudioMixIn.h" -# + #include "Ivr.h" #include "IvrSipDialog.h" #include "AmMediaProcessor.h" -//#include "AmSessionTimer.h" -// Data definition +/** \brief python wrapper of IvrDialog, the base class for python IVR sessions */ typedef struct { PyObject_HEAD diff --git a/apps/ivr/IvrSipDialog.cpp b/apps/ivr/IvrSipDialog.cpp index 98f3dd9b..59093099 100644 --- a/apps/ivr/IvrSipDialog.cpp +++ b/apps/ivr/IvrSipDialog.cpp @@ -3,7 +3,7 @@ #include "AmSipDialog.h" #include "log.h" -// Data definition +/** \brief IVR wrapper class of AmSipDialog */ typedef struct { PyObject_HEAD diff --git a/apps/ivr/IvrSipReply.cpp b/apps/ivr/IvrSipReply.cpp index 705c7a6e..be765753 100644 --- a/apps/ivr/IvrSipReply.cpp +++ b/apps/ivr/IvrSipReply.cpp @@ -24,7 +24,7 @@ #include "log.h" -// Data definition +/** \brief IVR wrapper of AmSipReply */ typedef struct { PyObject_HEAD diff --git a/apps/ivr/IvrSipRequest.cpp b/apps/ivr/IvrSipRequest.cpp index 7522b602..90427f46 100644 --- a/apps/ivr/IvrSipRequest.cpp +++ b/apps/ivr/IvrSipRequest.cpp @@ -25,6 +25,7 @@ #include "log.h" // Data definition +/** \brief IVR wrapper of AmSipRequest */ typedef struct { PyObject_HEAD diff --git a/apps/ivr/IvrUAC.h b/apps/ivr/IvrUAC.h index 24105101..474cddcf 100644 --- a/apps/ivr/IvrUAC.h +++ b/apps/ivr/IvrUAC.h @@ -27,7 +27,7 @@ #include #include "structmember.h" -// Data definition +/** \brief python IVR wrapper for AmUAC functions */ typedef struct { PyObject_HEAD diff --git a/apps/py_sems/PySems.cpp b/apps/py_sems/PySems.cpp index f189b548..07cadc21 100644 --- a/apps/py_sems/PySems.cpp +++ b/apps/py_sems/PySems.cpp @@ -55,6 +55,12 @@ EXPORT_SESSION_FACTORY(PySemsFactory,MOD_NAME); PyMODINIT_FUNC initpy_sems_lib(); +/** + * \brief gets python global interpreter lock (GIL) + * + * structure to acquire the python global interpreter lock (GIL) + * while the structure is allocated. + */ struct PythonGIL { PyGILState_STATE gst; diff --git a/apps/py_sems/PySems.h b/apps/py_sems/PySems.h index ec48ecff..b7701f7f 100644 --- a/apps/py_sems/PySems.h +++ b/apps/py_sems/PySems.h @@ -76,6 +76,7 @@ PySemsScriptDesc(PyObject* mod, }; +/** \brief Factory for PySems sessions */ class PySemsFactory: public AmSessionFactory { PyObject* py_sems_module; @@ -110,6 +111,7 @@ class PySemsFactory: public AmSessionFactory AmSession* onInvite(const AmSipRequest& req); }; +/** \brief wrapper for pySems dialog bas class */ class PySemsDialogBase { PyObject *py_mod; PyObject *py_dlg; diff --git a/apps/py_sems/PySemsAudio.h b/apps/py_sems/PySemsAudio.h index 98869a66..7e3181fe 100644 --- a/apps/py_sems/PySemsAudio.h +++ b/apps/py_sems/PySemsAudio.h @@ -14,7 +14,7 @@ #include "flite.h" #endif -// Data definition +/** \brief pySems wrapper for AmAudioFile */ typedef struct { PyObject_HEAD diff --git a/apps/py_sems/PySemsB2ABDialog.h b/apps/py_sems/PySemsB2ABDialog.h index f98c379d..3efea576 100644 --- a/apps/py_sems/PySemsB2ABDialog.h +++ b/apps/py_sems/PySemsB2ABDialog.h @@ -29,6 +29,7 @@ class PySemsB2ABCalleeDialog; +/** \brief pySems wrapper for base of pySems dialog classes */ class PySemsB2ABDialog : public AmB2ABCallerSession, public PySemsDialogBase { @@ -57,6 +58,7 @@ struct PySemsB2ABEvent: public B2ABEvent {} }; +/** \brief pySems wrapper for B leg in pysems B2AB session */ class PySemsB2ABCalleeDialog : public AmB2ABCalleeSession { public: diff --git a/apps/py_sems/PySemsB2BDialog.h b/apps/py_sems/PySemsB2BDialog.h index db6ae286..1be3c404 100644 --- a/apps/py_sems/PySemsB2BDialog.h +++ b/apps/py_sems/PySemsB2BDialog.h @@ -28,6 +28,7 @@ #include "AmB2BSession.h" #include "AmPlaylist.h" +/** \brief IVR wrapper of AmB2BSession */ class PySemsB2BDialog : public AmB2BCallerSession, public PySemsDialogBase { diff --git a/apps/py_sems/PySemsDialog.h b/apps/py_sems/PySemsDialog.h index 7976578c..c445e9fa 100644 --- a/apps/py_sems/PySemsDialog.h +++ b/apps/py_sems/PySemsDialog.h @@ -30,6 +30,7 @@ #include "AmPlaylist.h" #include "PySems.h" +/** \brief implementation of session logic/script execution in pySems */ class PySemsDialog : public AmSession, public PySemsDialogBase { diff --git a/apps/voicemail/AnswerMachine.h b/apps/voicemail/AnswerMachine.h index 655b990e..f5830fce 100644 --- a/apps/voicemail/AnswerMachine.h +++ b/apps/voicemail/AnswerMachine.h @@ -43,6 +43,7 @@ using std::string; class AmMail; +/** \brief Factory for voicemail sessions */ class AnswerMachineFactory: public AmSessionFactory { map email_tmpl; @@ -72,6 +73,7 @@ public: AmSession* onInvite(const AmSipRequest& req); }; +/** \brief implementation of voicemail session logic */ class AnswerMachineDialog : public AmSession { AmAudioFile a_greeting,a_beep; diff --git a/core/AmAdvancedAudio.h b/core/AmAdvancedAudio.h index 78768736..271279cf 100644 --- a/core/AmAdvancedAudio.h +++ b/core/AmAdvancedAudio.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmAdvancedAudio.h */ #ifndef _AmAdvancedAudio_h_ #define _AmAdvancedAudio_h_ @@ -87,6 +88,8 @@ class AmAudioQueue : public AmAudio { }; /** + * \brief AmAudio device with a playlist and a background AmAudio + * * AmAudioFrontlist is an AmAudio device, that has a playlist * in front of a AmAudio entry, the 'back' device. The back device * is only used if the playlist is empty. - This can be useful when diff --git a/core/AmApi.h b/core/AmApi.h index 620ab958..1b4c2dc2 100644 --- a/core/AmApi.h +++ b/core/AmApi.h @@ -25,6 +25,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmApi.h */ #ifndef _AmApi_h_ #define _AmApi_h_ diff --git a/core/AmArg.h b/core/AmArg.h index 0b9974bd..bb4e8137 100644 --- a/core/AmArg.h +++ b/core/AmArg.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmArg.h */ #ifndef _AmArg_h_ #define _AmArg_h_ @@ -34,7 +35,10 @@ #include using std::vector; -/** base for Objects as @see AmArg parameter, not owned by AmArg (!) */ +/** \brief base for Objects as @see AmArg parameter + * + * not owned by AmArg (!) + */ class ArgObject { public: ArgObject() { } @@ -57,10 +61,12 @@ class AmArg Array }; + /** \brief exception thrown on access beyond array limits */ struct OutOfBoundsException { OutOfBoundsException() { } }; + /** \brief exception thrown if the on argument type mismatch */ struct TypeMismatchException { TypeMismatchException() { } }; diff --git a/core/AmAudio.cpp b/core/AmAudio.cpp index 51dc1694..c6e45f92 100644 --- a/core/AmAudio.cpp +++ b/core/AmAudio.cpp @@ -39,6 +39,7 @@ #include +/** \brief structure to hold loaded codec instances */ struct CodecContainer { amci_codec_t *codec; diff --git a/core/AmAudio.h b/core/AmAudio.h index a0c1d61b..0ae3793a 100644 --- a/core/AmAudio.h +++ b/core/AmAudio.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmAudio.h */ #ifndef _AmAudio_h_ #define _AmAudio_h_ diff --git a/core/AmAudioMixIn.h b/core/AmAudioMixIn.h index 7f33dc20..0f9aac2d 100644 --- a/core/AmAudioMixIn.h +++ b/core/AmAudioMixIn.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmAudioMixIn.h */ #ifndef _AM_AUDIO_MIX_IN_H #define _AM_AUDIO_MIX_IN_H diff --git a/core/AmB2ABSession.h b/core/AmB2ABSession.h index d49ebaf9..0f7b8d94 100644 --- a/core/AmB2ABSession.h +++ b/core/AmB2ABSession.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmB2ABSession.h */ #ifndef B2ABSession_H #define B2ABSession_H @@ -53,6 +54,7 @@ struct B2ABEvent: public AmEvent {} }; +/** \brief event fired if B leg is ringing in b2ab session */ struct B2ABOtherLegRingingEvent: public B2ABEvent { B2ABOtherLegRingingEvent() @@ -95,6 +97,7 @@ struct B2ABConnectLegEvent: public B2ABEvent {} }; +/** \brief event fired if an exception occured while creating B leg */ struct B2ABConnectOtherLegExceptionEvent: public B2ABEvent { unsigned int code; @@ -107,6 +110,7 @@ struct B2ABConnectOtherLegExceptionEvent: public B2ABEvent { {} }; +/** \brief event fired if the B leg could not be connected (e.g. busy) */ struct B2ABConnectOtherLegFailedEvent: public B2ABEvent { unsigned int code; diff --git a/core/AmB2BSession.h b/core/AmB2BSession.h index be0ad91d..895bef64 100644 --- a/core/AmB2BSession.h +++ b/core/AmB2BSession.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmB2BSession.h */ #ifndef AmB2BSession_h #define AmB2BSession_h diff --git a/core/AmCachedAudioFile.cpp b/core/AmCachedAudioFile.cpp index 02d3bb0a..27d38b5a 100644 --- a/core/AmCachedAudioFile.cpp +++ b/core/AmCachedAudioFile.cpp @@ -52,7 +52,7 @@ AmFileCache::~AmFileCache() { } } -int AmFileCache::load(const string& filename) { +int AmFileCache::load(const std::string& filename) { int fd; struct stat sbuf; diff --git a/core/AmCachedAudioFile.h b/core/AmCachedAudioFile.h index ca9584cd..371c5fd9 100644 --- a/core/AmCachedAudioFile.h +++ b/core/AmCachedAudioFile.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmCachedAudioFile.h */ #ifndef _AMFILECACHE_H #define _AMFILECACHE_H @@ -33,6 +33,8 @@ #include /** + * \brief memory cache for AmAudioFile + * * The AmFileCache class loads a file once into memory * to be used e.g. by AmCachedAudioFile. */ diff --git a/core/AmCallWatcher.h b/core/AmCallWatcher.h index 575b6b63..9617e839 100644 --- a/core/AmCallWatcher.h +++ b/core/AmCallWatcher.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmCallWatcher.h */ #ifndef _AM_CALL_WATCHER_H #define _AM_CALL_WATCHER_H @@ -54,7 +54,7 @@ using std::pair; class CallStatus; /** - * event that carries out call status update + * \brief event that carries out call status update */ class CallStatusUpdateEvent : public AmEvent { string call_id; @@ -82,7 +82,7 @@ class CallStatusUpdateEvent : public AmEvent { }; /** - * interface for an update-able call status + * \brief interface for an update-able call status (AmCallWatcher) */ class CallStatus { @@ -100,6 +100,7 @@ class CallStatus class AmCallWatcherGarbageCollector; /** + * \brief manages call status to be queried by external processes * call watcher is an entity for managing call status * via events that change status. Events are executed in a * separate thread serially by processing the event queue, @@ -142,6 +143,8 @@ class AmCallWatcher }; /** + * \brief garbage collector for the AmCallWatcher + * * checks garbage every two seconds. * A bit inefficient with two threads, but AmCallWatcher * shouldn't be blocked by event. diff --git a/core/AmConferenceChannel.h b/core/AmConferenceChannel.h index a31a8cad..fa8ca820 100644 --- a/core/AmConferenceChannel.h +++ b/core/AmConferenceChannel.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmConferenceChannel.h */ #ifndef AmConferenceChannel_h #define AmConferenceChannel_h diff --git a/core/AmConferenceStatus.h b/core/AmConferenceStatus.h index 54e54ccd..4d30c423 100644 --- a/core/AmConferenceStatus.h +++ b/core/AmConferenceStatus.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmConferenceStatus.h */ #ifndef _ConferenceStatus_h_ #define _ConferenceStatus_h_ diff --git a/core/AmConfig.h b/core/AmConfig.h index 3608e746..49b5451f 100644 --- a/core/AmConfig.h +++ b/core/AmConfig.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmConfig.h */ #ifndef _AmConfig_h_ #define _AmConfig_h_ diff --git a/core/AmConfigReader.h b/core/AmConfigReader.h index 07048b20..619ae21b 100644 --- a/core/AmConfigReader.h +++ b/core/AmConfigReader.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmConfigReader.h */ #ifndef AmConfigReader_h #define AmConfigReader_h diff --git a/core/AmCtrlInterface.h b/core/AmCtrlInterface.h index 136fba91..9eac1a49 100644 --- a/core/AmCtrlInterface.h +++ b/core/AmCtrlInterface.h @@ -1,3 +1,4 @@ +/** @file AmCtrlInterface.h */ #ifndef AmCtrlInterface_h #define AmCtrlInterface_h diff --git a/core/AmDtmfDetector.cpp b/core/AmDtmfDetector.cpp index 012bcc0b..62b574ac 100644 --- a/core/AmDtmfDetector.cpp +++ b/core/AmDtmfDetector.cpp @@ -383,7 +383,7 @@ static int IVR_dtmf_matrix[4][4] = #define PI 3.1415926 #define NELEMSOF(x) (sizeof(x)/sizeof(*x)) - +/** \brief DTMF tone filter type */ typedef struct { int freq; /* frequency */ int grp; /* low/high group */ diff --git a/core/AmDtmfDetector.h b/core/AmDtmfDetector.h index b9fd4228..1be2b8f7 100644 --- a/core/AmDtmfDetector.h +++ b/core/AmDtmfDetector.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmDtmfDetector.h */ #ifndef _AmDtmfDetector_h_ #define _AmDtmfDetector_h_ @@ -102,7 +103,7 @@ class AmDtmfEvent : public AmEvent int duration() const { return m_duration_msec; } }; /** - * this is the Interface for a sink for KeyPresses. + * \brief Interface for a sink for KeyPresses. */ class AmKeyPressSink { public: diff --git a/core/AmEvent.h b/core/AmEvent.h index a7e6d53a..261ec6a0 100644 --- a/core/AmEvent.h +++ b/core/AmEvent.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmEvent.h */ #ifndef AmEvent_h #define AmEvent_h diff --git a/core/AmEventQueue.h b/core/AmEventQueue.h index 3489c2ee..061d7c53 100644 --- a/core/AmEventQueue.h +++ b/core/AmEventQueue.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmEventQueue.h */ #ifndef _AMEVENTQUEUE_H_ #define _AMEVENTQUEUE_H_ diff --git a/core/AmIcmpWatcher.h b/core/AmIcmpWatcher.h index e9a0d722..f4cd2d02 100644 --- a/core/AmIcmpWatcher.h +++ b/core/AmIcmpWatcher.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmIcmpWatcher.h */ #ifndef _AmIcmpWatcher_h_ #define _AmIcmpWatcher_h_ diff --git a/core/AmInterfaceHandler.h b/core/AmInterfaceHandler.h index 7939eaa5..f3a171a2 100644 --- a/core/AmInterfaceHandler.h +++ b/core/AmInterfaceHandler.h @@ -25,7 +25,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmInterfaceHandler.h */ #ifndef AmInterfaceHandler_h #define AmInterfaceHandler_h diff --git a/core/AmJitterBuffer.h b/core/AmJitterBuffer.h index f07e8302..7707e564 100644 --- a/core/AmJitterBuffer.h +++ b/core/AmJitterBuffer.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmJitterBuffer.h */ #ifndef _AmJitterBuffer_h_ #define _AmJitterBuffer_h_ diff --git a/core/AmMail.h b/core/AmMail.h index beb5981b..7a6c9dbe 100644 --- a/core/AmMail.h +++ b/core/AmMail.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmMail.h */ #ifndef _AmMail_h_ #define _AmMail_h_ diff --git a/core/AmMediaProcessor.h b/core/AmMediaProcessor.h index 63277902..04ae8622 100644 --- a/core/AmMediaProcessor.h +++ b/core/AmMediaProcessor.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmMediaProcessor.h */ #ifndef _AmMediaProcessor_h_ #define _AmMediaProcessor_h_ diff --git a/core/AmMultiPartyMixer.h b/core/AmMultiPartyMixer.h index 7c59dc7d..1ab55841 100644 --- a/core/AmMultiPartyMixer.h +++ b/core/AmMultiPartyMixer.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmMultiPartyMixer.h */ #ifndef _MultiPartyMixer_h_ #define _MultiPartyMixer_h_ diff --git a/core/AmPlaylist.h b/core/AmPlaylist.h index eb3605d9..582ee0a2 100644 --- a/core/AmPlaylist.h +++ b/core/AmPlaylist.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmPlaylist.h */ #ifndef AmPlaylist_h #define AmPlaylist_h @@ -99,6 +99,8 @@ public: }; /** + * \brief playlistelement to notify session about the playlist progress + * * null-playlist element which notifies session that this position in * playlist is reached. It fies a AmPlaylistSeparatorEvent if it is * read or written. diff --git a/core/AmPlayoutBuffer.h b/core/AmPlayoutBuffer.h index 71fd376f..4d0fc2c0 100644 --- a/core/AmPlayoutBuffer.h +++ b/core/AmPlayoutBuffer.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmPlayoutBuffer.h */ #ifndef _AmPlayoutBuffer_h_ #define _AmPlayoutBuffer_h_ diff --git a/core/AmPlugIn.h b/core/AmPlugIn.h index 145076f2..4a2d40e2 100644 --- a/core/AmPlugIn.h +++ b/core/AmPlugIn.h @@ -25,7 +25,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmPlugIn.h */ #ifndef _AmPlugIn_h_ #define _AmPlugIn_h_ diff --git a/core/AmPromptCollection.h b/core/AmPromptCollection.h index 043f8b72..ce26c4d2 100644 --- a/core/AmPromptCollection.h +++ b/core/AmPromptCollection.h @@ -25,11 +25,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmPromptCollection.h */ #ifndef AM_PROMPT_COLLECTION_H #define AM_PROMPT_COLLECTION_H - /** * * Example how to use: @@ -108,7 +107,7 @@ class AmPromptCollection { }; /** - * AudioFile with filename + * \brief AmAudioFile with filename and open flag */ class AudioFileEntry : public AmAudioFile { diff --git a/core/AmRtpAudio.h b/core/AmRtpAudio.h index be193f99..71b90ee5 100644 --- a/core/AmRtpAudio.h +++ b/core/AmRtpAudio.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmRtpAudio.h */ #ifndef _AmRtpAudio_h_ #define _AmRtpAudio_h_ diff --git a/core/AmRtpPacket.h b/core/AmRtpPacket.h index ed91b0a2..3faeff4b 100644 --- a/core/AmRtpPacket.h +++ b/core/AmRtpPacket.h @@ -24,6 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmRtpPacket.h */ #ifndef _AmRtpPacket_h_ #define _AmRtpPacket_h_ diff --git a/core/AmRtpReceiver.h b/core/AmRtpReceiver.h index ef2533b1..23a4800c 100644 --- a/core/AmRtpReceiver.h +++ b/core/AmRtpReceiver.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmRtpReceiver.h */ #ifndef _AmRtpReceiver_h_ #define _AmRtpReceiver_h_ diff --git a/core/AmRtpStream.h b/core/AmRtpStream.h index 5c1a6c00..4503de19 100644 --- a/core/AmRtpStream.h +++ b/core/AmRtpStream.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmRtpStream.h */ #ifndef _RtpStream_h_ #define _RtpStream_h_ @@ -243,6 +243,7 @@ public: virtual unsigned int bytes2samples(unsigned int) const = 0; }; + /** \brief represents info about an \ref AmRtpStream */ struct AmRtpStreamInfo { @@ -263,6 +264,7 @@ struct AmRtpStreamInfo AmAudio* audio_rec = NULL); }; +/** \brief event fired on RTP timeout */ class AmRtpTimeoutEvent : public AmEvent { diff --git a/core/AmServer.h b/core/AmServer.h index eeb4df6b..33f36674 100644 --- a/core/AmServer.h +++ b/core/AmServer.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmServer.h */ #ifndef _AmServer_h_ #define _AmServer_h_ @@ -45,6 +45,7 @@ using std::greater; class AmCtrlInterface; class AmInterfaceHandler; +/** \brief binds a AmCtrlInterface and an AmInterfaceHandler*/ struct IfaceDesc { AmCtrlInterface* ctrl; diff --git a/core/AmSession.cpp b/core/AmSession.cpp index 6938b17d..578f3600 100644 --- a/core/AmSession.cpp +++ b/core/AmSession.cpp @@ -119,7 +119,6 @@ bool AmSessionEventHandler::onSendReply(const AmSipRequest& req, #endif - AmSession::AmSession() : AmEventQueue(this), // AmDialogState(), dlg(this), diff --git a/core/AmSession.h b/core/AmSession.h index 6c010467..61581c60 100644 --- a/core/AmSession.h +++ b/core/AmSession.h @@ -51,6 +51,8 @@ using std::pair; class AmSessionFactory; class AmDtmfEvent; +/** @file AmSession.h */ + /* definition imported from Ser parser/msg_parser.h */ #define FL_FORCE_ACTIVE 2 diff --git a/core/AmSessionContainer.h b/core/AmSessionContainer.h index 923461de..5dbc5a23 100644 --- a/core/AmSessionContainer.h +++ b/core/AmSessionContainer.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmSessionContainer.h */ #ifndef AmSessionContainer_h #define AmSessionContainer_h diff --git a/core/AmSipDialog.h b/core/AmSipDialog.h index 552066a6..40c9120c 100644 --- a/core/AmSipDialog.h +++ b/core/AmSipDialog.h @@ -1,3 +1,30 @@ +/* + * $Id$ + * + * Copyright (C) 2002-2003 Fhg Fokus + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/** @file AmSipDialog.h */ #ifndef AmSipDialog_h #define AmSipDialog_h diff --git a/core/AmSipEvent.h b/core/AmSipEvent.h index fb03c3a5..f4130471 100644 --- a/core/AmSipEvent.h +++ b/core/AmSipEvent.h @@ -1,3 +1,30 @@ +/* + * $Id$ + * + * Copyright (C) 2002-2003 Fhg Fokus + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/** @file AmSipEvent.h */ #ifndef AmSipEvent_h #define AmSipEvent_h diff --git a/core/AmSipReply.h b/core/AmSipReply.h index ebaaedda..095b0284 100644 --- a/core/AmSipReply.h +++ b/core/AmSipReply.h @@ -1,5 +1,32 @@ -#ifndef _AmReply_h_ -#define _AmReply_h_ +/* + * $Id$ + * + * Copyright (C) 2002-2003 Fhg Fokus + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/** @file AmSipReply.h */ +#ifndef _AmSipReply_h_ +#define _AmSipReply_h_ #include "AmEventQueue.h" diff --git a/core/AmSipRequest.h b/core/AmSipRequest.h index 6b42ab0d..4de557a4 100644 --- a/core/AmSipRequest.h +++ b/core/AmSipRequest.h @@ -1,3 +1,30 @@ +/* + * $Id$ + * + * Copyright (C) 2002-2003 Fhg Fokus + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/** @file AmSipRequest.h */ #ifndef AmSipRequest_h #define AmSipRequest_h diff --git a/core/AmSmtpClient.h b/core/AmSmtpClient.h index 83168055..e72ee6a0 100644 --- a/core/AmSmtpClient.h +++ b/core/AmSmtpClient.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmSmtpClient.h */ #ifndef _AmSmtpClient_h_ #define _AmSmtpClient_h_ diff --git a/core/AmStats.h b/core/AmStats.h index 7c2919f7..3627f753 100644 --- a/core/AmStats.h +++ b/core/AmStats.h @@ -1,3 +1,30 @@ +/* + * $Id$ + * + * Copyright (C) 2002-2003 Fhg Fokus + * + * This file is part of sems, a free SIP media server. + * + * sems is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version + * + * For a license to use the ser software under conditions + * other than those described here, or to purchase support for this + * software, please contact iptel.org by e-mail at the following addresses: + * info@iptel.org + * + * sems is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/** @file AmStats.h */ #ifndef _AmStats_h_ #define _AmStats_h_ diff --git a/core/AmThread.h b/core/AmThread.h index 7453d8a5..5b28de1e 100644 --- a/core/AmThread.h +++ b/core/AmThread.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmThread.h */ #ifndef _AmThread_h_ #define _AmThread_h_ diff --git a/core/AmUAC.h b/core/AmUAC.h index 9fad9c74..23d59c49 100644 --- a/core/AmUAC.h +++ b/core/AmUAC.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file AmUAC.h */ #ifndef AmUAC_H #define AmUAC_H diff --git a/core/AmUtils.cpp b/core/AmUtils.cpp index 4f28fab7..1ff2f488 100644 --- a/core/AmUtils.cpp +++ b/core/AmUtils.cpp @@ -25,6 +25,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/** @file AmUtils.cpp */ + #include "AmUtils.h" #include "AmThread.h" #include "AmConfig.h" diff --git a/core/AmUtils.h b/core/AmUtils.h index 6c07ae2a..ebca5312 100644 --- a/core/AmUtils.h +++ b/core/AmUtils.h @@ -233,6 +233,7 @@ short get_port_v6(struct sockaddr_storage* ss); */ int create_unix_socket(const string& path); +/** \brief microseconds sleep using select */ #define sleep_us(nusecs) \ { \ struct timeval tval; \ @@ -247,12 +248,14 @@ int write_to_socket(int sd, const char* to_addr, const char * buf, unsigned int string extract_tag(const string& addr); -// returns true if key is in s_list, a list of items delimited by list_delim -// skips whitespaces, too +/** returns true if key is in s_list, a list of items delimited by list_delim + *skips whitespaces, too */ bool key_in_list(const string& s_list, const string& key, char list_delim = ','); -// return string with trailing spaces and everything after ; including ; itself removed + +/** return string with trailing spaces and everything after ; including ; itself removed */ string strip_header_params(const string& hdr_string); -// get a header parameter value + +/** get a header parameter value */ string get_header_param(const string& hdr_string, const string& param_name); /** get the value of key @param name from the list param_hdr*/ @@ -261,14 +264,15 @@ string get_header_keyvalue(const string& param_hdr, const string& name); /** get the value of key @param name from P-Iptel-Param header in hdrs */ string get_session_param(const string& hdrs, const string& name); -// support for thread-safe pseudo-random numbers +/** support for thread-safe pseudo-random numbers - init function */ void init_random(); +/** support for thread-safe pseudo-random numbers - make a random number function */ unsigned int get_random(); -// Explode string by a separator to a vector +/** Explode string by a separator to a vector */ std::vector explode(string s, string e); -// add a directory to an environement variable +/** add a directory to an environement variable */ void add_env_path(const char* name, const string& path); #endif diff --git a/core/Makefile b/core/Makefile index 3652dfc1..672e079c 100644 --- a/core/Makefile +++ b/core/Makefile @@ -31,8 +31,13 @@ deps: $(DEPS) .PHONY: doc doc: - rm -Rf doxygen_output; rm -rf ../doc/doxygen_doc ; \ - doxygen doxygen_proj ; mv doxygen_output ../doc/doxygen_doc + rm -Rf doxygen_output; doxygen doxygen_proj ; \ + rm -rf ../doc/doxygen_doc ; mv doxygen_output ../doc/doxygen_doc + +.PHONY: fulldoc +fulldoc: + rm -Rf doxygen_output; doxygen doxygen_fulldoc ; \ + rm -rf ../doc/doxygen_fulldoc ; mv doxygen_output ../doc/doxygen_fulldoc include ../Makefile.defs diff --git a/core/amci/amci.h b/core/amci/amci.h index 7160c3de..a791ef15 100644 --- a/core/amci/amci.h +++ b/core/amci/amci.h @@ -77,9 +77,8 @@ extern "C" { struct amci_codec_t; /** - * File format declaration + * \brief File format declaration */ - struct amci_file_desc_t { /** subtype from current file format */ @@ -96,7 +95,7 @@ struct amci_file_desc_t { }; /** - * Sound converter function pointer. + * \brief Sound converter function pointer. * @param out [out] output buffer * @param in [in] input buffer * @param size [in] size of input buffer @@ -120,7 +119,7 @@ typedef int (*amci_converter_t)( unsigned char* out, ); /** - * Codec specific packet loss concealment function pointer. + * \brief Codec specific packet loss concealment function pointer. * @param out [out] output buffer * @param size [in] required size of output * @param channels [in] number of channels @@ -140,7 +139,7 @@ typedef int (*amci_plc_t)( unsigned char* out, long h_codec ); /** - * File format handler's open function + * \brief File format handler's open function * @param fptr [in] fresh opened file pointer * @param fmt_desc [out] file description * @param options [in] options (see amci_inoutfmt_t) @@ -210,7 +209,8 @@ typedef int (*amci_file_mem_close_t)( unsigned char* mptr, ); /** - * Codec's init function pointer. + * \brief Codec's init function pointer. + * * @param format_parameters [in] parameters as passed by fmtp tag, 0 if none * @param format_description [out] pointer to describing block, with amci_codec_fmt_info_t array; zero-terminated. 0 if none * @@ -230,23 +230,23 @@ typedef int (*amci_file_mem_close_t)( unsigned char* mptr, typedef long (*amci_codec_init_t)(const char* format_parameters, amci_codec_fmt_info_t* format_description); /** - * Codec's destroy function pointer. + * \brief Codec's destroy function pointer. * @param h_codec Codec handle (from init function). */ typedef void (*amci_codec_destroy_t)(long h_codec); /** - * Codec's function for calculating the number of samples from bytes + * \brief Codec's function for calculating the number of samples from bytes */ typedef unsigned int (*amci_codec_bytes2samples_t)(long h_codec, unsigned int num_bytes); /** - * Codec's function for calculating the number of bytes from samples + * \brief Codec's function for calculating the number of bytes from samples */ typedef unsigned int (*amci_codec_samples2bytes_t)(long h_codec, unsigned int num_samples); /** - * Codec description + * \brief Codec description */ struct amci_codec_t { @@ -276,7 +276,8 @@ struct amci_codec_t { /** Function for calculating the number of samples from bytes. */ amci_codec_samples2bytes_t samples2bytes; }; - + + /** \brief supported subtypes for a file */ struct amci_subtype_t { /** ex. 0x06 for Wav's Mu-Law */ @@ -304,7 +305,7 @@ struct amci_subtype_t { }; /** - * File format declaration. + * \brief File format declaration. */ struct amci_inoutfmt_t { @@ -340,7 +341,7 @@ struct amci_inoutfmt_t { #define AMCI_PT_AUDIO_FRAME 1 /** - * Payload declaration + * \brief ayload declaration */ struct amci_payload_t { @@ -374,7 +375,7 @@ struct amci_payload_t { /** - * Complete plug-in declaration. + * \brief Complete plug-in declaration. */ struct amci_exports_t { diff --git a/core/amci/codecs.h b/core/amci/codecs.h index 982f4c81..8b5fcf61 100644 --- a/core/amci/codecs.h +++ b/core/amci/codecs.h @@ -32,6 +32,7 @@ * @file codecs.h * Centralized definition of all codec IDs. * Look at the source file for declarations. + * they just need to be different from each other. */ #define CODEC_PCM16 0 diff --git a/core/doxygen_fulldoc b/core/doxygen_fulldoc new file mode 100644 index 00000000..5c60e784 --- /dev/null +++ b/core/doxygen_fulldoc @@ -0,0 +1,227 @@ +# Doxyfile 1.5.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = SEMS +PROJECT_NUMBER = +OUTPUT_DIRECTORY = doxygen_output +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = NO +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= NO +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../core \ + ../apps \ + ../doc +FILE_PATTERNS = +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = ../doc ../apps ../core +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = YES +IMAGE_PATH = ../doc/figures/png/ +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/core/doxygen_proj b/core/doxygen_proj index a38fb567..b4ef9a00 100644 --- a/core/doxygen_proj +++ b/core/doxygen_proj @@ -17,7 +17,7 @@ # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. -PROJECT_NAME = Sems +PROJECT_NAME = SEMS # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or @@ -450,27 +450,9 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = amci etc lib plug-in rpm rtp scripts . \ - plug-in/echo \ - plug-in/gsm \ - plug-in/ilbc \ - plug-in/session_timer \ - plug-in/stats \ - plug-in/uac_auth \ - plug-in/wav \ - ../apps/ann_b2b \ - ../apps/announce_transfer \ - ../apps/announcement \ - ../apps/conf_auth \ - ../apps/conference \ - ../apps/early_announce \ - ../apps/ivr \ - ../apps/py_sems \ - ../apps/mailbox \ - ../apps/mp3 \ - ../apps/voicemail \ - ../doc/doxyref.h - +INPUT = ../core \ + ../apps \ + ../doc # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp @@ -485,13 +467,13 @@ FILE_PATTERNS = # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. -RECURSIVE = NO +RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = +EXCLUDE = .svn # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -509,30 +491,7 @@ EXCLUDE_PATTERNS = # directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = ../doc ../ . ../apps/examples/announce_auth \ - ../apps/examples/di_dialer \ - ../apps/examples/mixin_announce \ - ../apps/examples/py_sems_ex \ - ../apps/examples/tutorial \ - ../apps/examples/cacheannounce \ - ../apps/examples/db_announce \ - ../apps/examples/di_log \ - ../apps/examples/jukecall \ - ../apps/examples/pinauthconference \ - ../apps/examples/simple_conference \ - ../apps/examples/xmlrpc2di/ \ - ../apps/examples/serviceline/ \ - ../apps/examples/tutorial/ \ - ../apps/examples/tutorial/annc_service \ - ../apps/examples/tutorial/cc_acc \ - ../apps/examples/tutorial/cc_acc_xmlrpc \ - ../apps/examples/tutorial/ivr_announce \ - ../apps/examples/tutorial/myannounceapp \ - ../apps/examples/tutorial/myapp \ - ../apps/examples/tutorial/mycc \ - ../apps/examples/tutorial/myconfigurableapp \ - ../apps/examples/tutorial/myjukebox - +EXAMPLE_PATH = ../doc ../apps ../core # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp @@ -546,13 +505,13 @@ EXAMPLE_PATTERNS = # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. -EXAMPLE_RECURSIVE = NO +EXAMPLE_RECURSIVE = YES # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = +IMAGE_PATH = ../doc/figures/png # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program diff --git a/core/plug-in/echo/AmAudioEcho.cpp b/core/plug-in/echo/AmAudioEcho.cpp index 8605fbb7..b71eb26f 100644 --- a/core/plug-in/echo/AmAudioEcho.cpp +++ b/core/plug-in/echo/AmAudioEcho.cpp @@ -28,12 +28,14 @@ #include "AmAudioEcho.h" #include "log.h" +/** read audio from echo device*/ int AmAudioEcho::read(unsigned int user_ts, unsigned int size) { timed_buffer.get(user_ts,(ShortSample*)((unsigned char*)samples),size); return size; } +/** write audio to echo device */ int AmAudioEcho::write(unsigned int user_ts, unsigned int size) { timed_buffer.put(user_ts,(ShortSample*)((unsigned char*)samples),size); diff --git a/core/plug-in/echo/AmAudioEcho.h b/core/plug-in/echo/AmAudioEcho.h index 767528b6..d7eaedd3 100644 --- a/core/plug-in/echo/AmAudioEcho.h +++ b/core/plug-in/echo/AmAudioEcho.h @@ -31,6 +31,7 @@ #include "AmAudio.h" #include "SampleArray.h" +/** \brief audio device that echos audio from input to output */ class AmAudioEcho : public AmAudio { SampleArrayShort timed_buffer; diff --git a/core/plug-in/echo/Echo.h b/core/plug-in/echo/Echo.h index 5a3d722c..b6ea405a 100644 --- a/core/plug-in/echo/Echo.h +++ b/core/plug-in/echo/Echo.h @@ -34,7 +34,7 @@ #include using std::string; - +/** \brief Factory for echo sessions */ class EchoFactory: public AmSessionFactory { AmSessionEventHandlerFactory* session_timer_f; @@ -45,6 +45,7 @@ public: virtual AmSession* onInvite(const AmSipRequest& req); }; +/** \brief echo session logic implementation */ class EchoDialog : public AmSession { AmAudioEcho echo; diff --git a/core/plug-in/session_timer/SessionTimer.h b/core/plug-in/session_timer/SessionTimer.h index f33d5fdf..ae344822 100644 --- a/core/plug-in/session_timer/SessionTimer.h +++ b/core/plug-in/session_timer/SessionTimer.h @@ -40,7 +40,7 @@ class AmTimeoutEvent; #define ID_SESSION_INTERVAL_TIMER -1 #define ID_SESSION_REFRESH_TIMER -2 - +/** \brief Factory of the session timer event handler */ class SessionTimerFactory: public AmSessionEventHandlerFactory { bool checkSessionExpires(const AmSipRequest& req); @@ -55,6 +55,7 @@ class SessionTimerFactory: public AmSessionEventHandlerFactory AmSessionEventHandler* getHandler(AmSession* s); }; +/** \brief SessionEventHandler for implementing session timer logic for a session */ class SessionTimer: public AmSessionEventHandler { AmSession* s; diff --git a/core/plug-in/session_timer/UserTimer.cpp b/core/plug-in/session_timer/UserTimer.cpp index 7e80b3d6..4d0b3a58 100644 --- a/core/plug-in/session_timer/UserTimer.cpp +++ b/core/plug-in/session_timer/UserTimer.cpp @@ -6,6 +6,7 @@ #define SESSION_TIMER_GRANULARITY 100 // check every 100 millisec +/** \brief component for providing user_timer DI interface */ class UserTimerFactory: public AmDynInvokeFactory { public: diff --git a/core/plug-in/session_timer/UserTimer.h b/core/plug-in/session_timer/UserTimer.h index 89202d9f..f73179f7 100644 --- a/core/plug-in/session_timer/UserTimer.h +++ b/core/plug-in/session_timer/UserTimer.h @@ -24,7 +24,7 @@ #define TIMEOUTEVENT_NAME "timer_timeout" /** - * Timer Event: class + * \brief User Timer Event * data[0]: int timer_id */ class AmTimeoutEvent : public AmPluginEvent @@ -34,7 +34,7 @@ class AmTimeoutEvent : public AmPluginEvent }; /** - * Timer struct containing the alarm time. + * \brief Timer struct containing the alarm time. */ struct AmTimer { @@ -53,7 +53,8 @@ bool operator < (const AmTimer& l, const AmTimer& r); bool operator == (const AmTimer& l, const AmTimer& r); /** - * session timer class. + * \brief user timer class. + * * Implements a timer with session granularity. * On timeout an AmTimeoutEvent with the ID is posted. */ @@ -96,6 +97,7 @@ class UserTimer: public AmDynInvoke void on_stop(); #endif + /** DI API */ void invoke(const string& method, const AmArg& args, AmArg& ret); }; diff --git a/core/plug-in/stats/Statistics.cpp b/core/plug-in/stats/Statistics.cpp index baa875dc..b232ff1e 100644 --- a/core/plug-in/stats/Statistics.cpp +++ b/core/plug-in/stats/Statistics.cpp @@ -40,7 +40,7 @@ using std::string; EXPORT_SESSION_FACTORY(StatsFactory,MOD_NAME); -StatsFactory::StatsFactory(const string& _app_name) +StatsFactory::StatsFactory(const std::string& _app_name) : AmSessionFactory(_app_name) { } diff --git a/core/plug-in/stats/Statistics.h b/core/plug-in/stats/Statistics.h index d78e3f1d..41f46ec2 100644 --- a/core/plug-in/stats/Statistics.h +++ b/core/plug-in/stats/Statistics.h @@ -35,6 +35,7 @@ class AmSessionContainer; +/** \brief starts the stats UDP server */ class StatsFactory: public AmSessionFactory, public AmInterfaceHandler { diff --git a/core/plug-in/stats/StatsUDPServer.h b/core/plug-in/stats/StatsUDPServer.h index d117eb8a..7f44ad0a 100644 --- a/core/plug-in/stats/StatsUDPServer.h +++ b/core/plug-in/stats/StatsUDPServer.h @@ -38,6 +38,7 @@ using std::string; class AmSessionContainer; +/** \brief UDP server running to provide statistics via simple UDP queries */ class StatsUDPServer: public AmThread { static StatsUDPServer* _instance; diff --git a/core/plug-in/uac_auth/UACAuth.cpp b/core/plug-in/uac_auth/UACAuth.cpp index 6d3ee819..d177470c 100644 --- a/core/plug-in/uac_auth/UACAuth.cpp +++ b/core/plug-in/uac_auth/UACAuth.cpp @@ -220,7 +220,7 @@ void w_MD5Update(MD5_CTX *ctx, const string& s) { } -string UACAuth::find_attribute(const string& name, const string& header) { +string UACAuth::find_attribute(const std::string& name, const std::string& header) { string res; size_t pos1 = header.find(name); if (pos1!=string::npos) { @@ -236,7 +236,7 @@ string UACAuth::find_attribute(const string& name, const string& header) { return res; } -bool UACAuth::parse_header(const string& auth_hdr, UACAuthDigestChallenge& challenge) { +bool UACAuth::parse_header(const std::string& auth_hdr, UACAuthDigestChallenge& challenge) { size_t p = auth_hdr.find_first_not_of(' '); if (auth_hdr.substr(p, 6) != "Digest") { ERROR("only Digest auth supported\n"); @@ -338,7 +338,7 @@ static inline void cvt_hex(HASH bin, HASHHEX hex) * calculate H(A1) */ void UACAuth::uac_calc_HA1(UACAuthDigestChallenge& challenge, - string cnonce, + std::string cnonce, HASHHEX sess_key) { MD5_CTX Md5Ctx; @@ -371,7 +371,7 @@ void UACAuth::uac_calc_HA1(UACAuthDigestChallenge& challenge, /* * calculate H(A2) */ -void UACAuth::uac_calc_HA2( const string& method, const string& uri, +void UACAuth::uac_calc_HA2( const std::string& method, const std::string& uri, UACAuthDigestChallenge& challenge, HASHHEX hentity, HASHHEX HA2Hex ) @@ -402,7 +402,7 @@ void UACAuth::uac_calc_HA2( const string& method, const string& uri, */ void UACAuth::uac_calc_response( HASHHEX ha1, HASHHEX ha2, UACAuthDigestChallenge& challenge, - const string& nc, const string& cnonce, + const std::string& nc, const std::string& cnonce, HASHHEX response) { unsigned char hc[1]; hc[0]=':'; diff --git a/core/plug-in/uac_auth/UACAuth.h b/core/plug-in/uac_auth/UACAuth.h index e084a0b9..4b154fb0 100644 --- a/core/plug-in/uac_auth/UACAuth.h +++ b/core/plug-in/uac_auth/UACAuth.h @@ -43,6 +43,7 @@ typedef unsigned char HASH[HASHLEN]; #define HASHHEXLEN 32 typedef unsigned char HASHHEX[HASHHEXLEN+1]; +/** \brief Challenge in uac auth */ struct UACAuthDigestChallenge { std::string realm; std::string qop; @@ -53,6 +54,7 @@ struct UACAuthDigestChallenge { std::string algorithm; }; +/** \brief factory for uac_auth session event handlers */ class UACAuthFactory : public AmSessionEventHandlerFactory, public AmDynInvokeFactory, @@ -78,6 +80,7 @@ class UACAuthFactory void invoke(const string& method, const AmArg& args, AmArg& ret); }; +/** \brief contains necessary information for UAC auth of a SIP request */ struct SIPRequestInfo { string method; string content_type; @@ -95,6 +98,7 @@ struct SIPRequestInfo { }; +/** \brief SessionEventHandler for implementing uac authentication */ class UACAuth : public AmSessionEventHandler { map sent_requests; diff --git a/core/plug-in/wav/wav_hdr.c b/core/plug-in/wav/wav_hdr.c index dc170571..779b879d 100644 --- a/core/plug-in/wav/wav_hdr.c +++ b/core/plug-in/wav/wav_hdr.c @@ -35,8 +35,10 @@ sr = fread(buf,s,1,fp);\ if((sr != 1) || ferror(fp)) return -1; -/* The file header of RIFF-WAVE files (*.wav). Files are always in - little-endian byte-order. */ +/** \brief The file header of RIFF-WAVE files (*.wav). + * Files are always in + * little-endian byte-order. + */ struct wav_header { diff --git a/core/rtp/rtp.h b/core/rtp/rtp.h index 4c3c366c..f7203b0b 100644 --- a/core/rtp/rtp.h +++ b/core/rtp/rtp.h @@ -45,8 +45,8 @@ typedef unsigned int u_int32; */ #define RTP_VERSION 2 -/* - * RTP data header +/** + * \brief RTP data header type */ typedef struct { @@ -70,6 +70,7 @@ typedef struct { u_int32 ssrc; /* synchronization source */ } rtp_hdr_t; +/** \brief RTP extension header type */ typedef struct { u_int16 profile; /* xhdr type */ u_int16 len; /* xhdr length */ diff --git a/core/sems.h b/core/sems.h index 357bed25..570a70c1 100644 --- a/core/sems.h +++ b/core/sems.h @@ -24,7 +24,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/** @file sems.h */ #ifndef _ans_machine_h_ #define _ans_machine_h_ diff --git a/doc/CHANGELOG b/doc/CHANGELOG index a6760792..1a1f87d8 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,4 +1,50 @@ -Changelog for SEMS (from 0.10.0 rc1) +Changelog for SEMS + +Version 0.10.0 (final) + - new module for exposing internal DI APIs via XMLRPC + + - new module for triggering calls via DI interface + + - new DI/XMLRPC controlled conference application, that can for example + be used for conference rooms with web interface + + - CallWatcher and a more powerful dialout function simplifies + interfacing to external applications + + - many examples for quick start of custom service development, + for example new serviceline application + + - b2bua implementation with media relay + + - language awareness of conference application + + - DB support for conference and voicemail prompts, and announcements + + - PromptCollection simplifies usage of prompts in applications + + - b2bua support in py_sems embedded python interpreter + + - corrected RTP timeout detection + + - new api for custom logging modules, new in-memory ring buffer + logging module + + - accept all possible payloads and payload switching on the fly + (thanks to Maxim Sobolyev/sippysoft) + + - changing callgroups (media processing threads) in running sessions + + - support for setting sessions on hold + + - support for OpenSer 1.3 + + - substantially improved documentation + + - 'bundle' install method for easy installation + + ... and many bugfixes + +Version 0.10.0 rc2 - new Adaptive jitter buffer as alternative playout method Contributed by Andriy Pylypenko/Sippy Software @@ -16,6 +62,9 @@ Changelog for SEMS (from 0.10.0 rc1) - new pre call announcement method using REFER + - new plug-in py_sems using a Python/C++ binding generator for even more power + in python scripts + - stats server can be used for monitoring custom modules/applications - session specific parameters by default taken from unified @@ -33,3 +82,5 @@ Changelog for SEMS (from 0.10.0 rc1) - ...and a lot of other bug fixes +Version 0.10.0 rc1 + ... \ No newline at end of file diff --git a/doc/COMPILING b/doc/COMPILING index 75771787..4da630e0 100644 --- a/doc/COMPILING +++ b/doc/COMPILING @@ -17,6 +17,44 @@ variables. accepts SERPREFIX variable (default /opt/ser-sems), which should be the installation path of the used ser-sems. + $ make tar +make a source tarball (.tar.gz) + + $ make bundle +make a source tarball bundle (.tar.gz), a combination of SEMS and SER +for SEMS. + + $ make doc +make doxygen documentation (output in doc/doxygen_doc) + + $ make fulldoc +make doxygen documentation (output in doc/doxygen_doc) will full +xreff'd source + +Defines and Variables +--------------------- + ++-------------+-------------+---------------------------------------+ +| Variable | Default | Comment | ++-------------+-------------+---------------------------------------+ + GPP g++ C++ compiler + GCC gcc C compiler + INSTALL install + TAR tar + + CXX_FLAGS ... C++ compiler + C_FLAGS ... C compiler + + BASEDIR destination base + DESTDIR/PREFIX /usr/local destination prefix + (installs to /basedir/prefix) + + PYTHON_VERSION 2.4 ivr and py_sems modules + TTS n flite tts in ivr and py_sems modules + (y or n) + + USE_MYSQL not set use anouncements from mysql db + in conference and voicemail apps IVR diff --git a/doc/Makefile b/doc/Makefile index 6ae38eee..959d6995 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,2 +1,8 @@ +.PHONY: doc doc: make -C ../core doc + +.PHONY: fulldoc +fulldoc: + make -C ../core/ fulldoc + diff --git a/doc/doxyref.h b/doc/doxyref.h index a788f44c..9ac3221f 100644 --- a/doc/doxyref.h +++ b/doc/doxyref.h @@ -51,7 +51,7 @@ * */ -/*! \page Compiling Additional compiling instructions (ivr and mp3) +/*! \page Compiling Compilation instructions * \verbinclude COMPILING * */ @@ -83,7 +83,7 @@ * can be found in the apps/ directory and are installed by default if they do not * depend on special libraries (eg. liblame). * A set of \ref AppDocExample that illustrate how to - * make use certain aspects of the SEMS framework rather than can be found in the + * make use certain aspects of the SEMS framework can be found in the * apps/examples directory. These are not installed by default. * * \section announcementappdoc Announcement Applications
keyvalue