API docs can be built with doxygen. Also cleaned headers to generate
proper documentation. git-svn-id: http://voip.null.ro/svn/yate@845 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
50af5cbd8b
commit
ad7f82e9f3
|
@ -0,0 +1,214 @@
|
|||
# Doxyfile 1.3.5
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = Yate
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = docs
|
||||
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 =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = YES
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = NO
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
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 = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = yatecbase.h \
|
||||
yateclass.h \
|
||||
yatengine.h \
|
||||
yatephone.h \
|
||||
contrib/ysip/yatesip.h \
|
||||
contrib/yrtp/yatertp.h \
|
||||
contrib/ypbx/yatepbx.h \
|
||||
contrib/yss7/yatess7.h
|
||||
FILE_PATTERNS =
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER = ./kdoc-filter.sh
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
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 = api
|
||||
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 = NO
|
||||
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 = NO
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = NO
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions 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 = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = NO
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
24
Makefile.in
24
Makefile.in
|
@ -31,6 +31,14 @@ CLEANS = $(PROGS) $(SLIBS) $(LIBS) $(OBJS) yatepaths.h core
|
|||
COMPILE = $(CXX) $(DEFS) $(DEBUG) $(INCLUDES) $(CFLAGS)
|
||||
LINK = $(CXX) $(LDFLAGS)
|
||||
|
||||
DOCGEN :=
|
||||
ifneq (_@KDOC_BIN@,_)
|
||||
DOCGEN := @KDOC_BIN@ -C ./kdoc-filter.sh -d docs/api/ $(INCS) contrib/ysip/yatesip.h contrib/yrtp/yatertp.h
|
||||
endif
|
||||
ifneq (_@DOXYGEN_BIN@,_)
|
||||
DOCGEN := @DOXYGEN_BIN@ Doxyfile
|
||||
endif
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
|
@ -88,7 +96,7 @@ clean-tables: check-topdir
|
|||
$(MAKE) -C ./tables -f Makefile.tables mrproper
|
||||
|
||||
clean-apidocs: check-topdir
|
||||
-rm docs/api/*.html
|
||||
-rm docs/api/*.html docs/api/*.png
|
||||
|
||||
distclean: check-topdir clean clean-config-files
|
||||
|
||||
|
@ -99,11 +107,16 @@ cvsclean: check-topdir clean clean-tables clean-apidocs clean-config-files
|
|||
engine: tables library libyate.so $(PROGS)
|
||||
|
||||
apidocs-build: check-topdir
|
||||
kdoc -C ./kdoc-filter.sh -d docs/api/ $(INCS) contrib/ysip/yatesip.h contrib/yrtp/yatertp.h
|
||||
@if [ -n "$(DOCGEN)" ]; then \
|
||||
$(DOCGEN) ; \
|
||||
else \
|
||||
echo "Neither kdoc or doxygen is installed!" ; exit 1 ; \
|
||||
fi
|
||||
|
||||
apidocs: @srcdir@/docs/api/index.html
|
||||
|
||||
@srcdir@/docs/api/index.html: @srcdir@/yateclass.h @srcdir@/yatengine.h \
|
||||
@srcdir@/docs/api/index.html: Doxyfile \
|
||||
@srcdir@/yateclass.h @srcdir@/yatengine.h \
|
||||
@srcdir@/yatephone.h @srcdir@/yatecbase.h \
|
||||
@srcdir@/contrib/ysip/yatesip.h @srcdir@/contrib/yrtp/yatertp.h
|
||||
$(MAKE) apidocs-build
|
||||
|
@ -181,8 +194,9 @@ install-noapi: all
|
|||
done ;
|
||||
|
||||
install-api: apidocs
|
||||
mkdir -p "$(DESTDIR)$(docdir)/api/" && \
|
||||
install -m 0644 @srcdir@/docs/*.html "$(DESTDIR)$(docdir)/" && \
|
||||
install -m 0644 @srcdir@/docs/api/*.html "$(DESTDIR)$(docdir)/api/"
|
||||
install -m 0644 @srcdir@/docs/api/*.* "$(DESTDIR)$(docdir)/api/"
|
||||
|
||||
uninstall uninstall-root:
|
||||
@-for i in $(SLIBS) ; do \
|
||||
|
@ -268,6 +282,6 @@ help:
|
|||
@echo -e 'Usual make targets:\n\
|
||||
all engine contrib modules clients apidocs test everything\n\
|
||||
install uninstall install-noapi install-root uninstall-root\n\
|
||||
clean distclean cvsclean (avoid this one!)\n\
|
||||
clean distclean cvsclean (avoid this one!) clean-apidocs\n\
|
||||
debug ddebug xdebug (carefull!)\n\
|
||||
snapshot tarball'
|
||||
|
|
31
configure.in
31
configure.in
|
@ -626,6 +626,37 @@ AC_SUBST(MODULE_LDRELAX)
|
|||
AC_SUBST(MODULE_LDFLAGS)
|
||||
AC_SUBST(MODULE_SYMBOLS)
|
||||
|
||||
DOXYGEN_BIN=""
|
||||
AC_ARG_WITH(doxygen,AC_HELP_STRING([--with-doxygen=EXE],[use doxygen to generate API docs (default: PATH)]),[ac_cv_use_doxygen=$withval],[ac_cv_use_doxygen=yes])
|
||||
if [[ "x$ac_cv_use_doxygen" != "xno" ]]; then
|
||||
test "x$ac_cv_use_doxygen" = "xyes" && ac_cv_use_doxygen=`which doxygen 2>/dev/null`
|
||||
AC_MSG_CHECKING([for doxygen version])
|
||||
if [[ "x$ac_cv_use_doxygen" != "x" -a -x "$ac_cv_use_doxygen" ]]; then
|
||||
DOXYGEN_BIN="$ac_cv_use_doxygen"
|
||||
ac_cv_use_doxygen=`$DOXYGEN_BIN --version 2>/dev/null`
|
||||
else
|
||||
ac_cv_use_doxygen="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_cv_use_doxygen])
|
||||
fi
|
||||
AC_SUBST(DOXYGEN_BIN)
|
||||
|
||||
KDOC_BIN=""
|
||||
AC_ARG_WITH(kdoc,AC_HELP_STRING([--with-kdoc=EXE],[use kdoc to generate API docs (default: PATH)]),[ac_cv_use_kdoc=$withval],[ac_cv_use_kdoc=yes])
|
||||
if [[ "x$ac_cv_use_kdoc" != "xno" ]]; then
|
||||
test "x$ac_cv_use_kdoc" = "xyes" && ac_cv_use_kdoc=`which kdoc 2>/dev/null`
|
||||
AC_MSG_CHECKING([for kdoc version])
|
||||
if [[ "x$ac_cv_use_kdoc" != "x" -a -x "$ac_cv_use_kdoc" ]]; then
|
||||
KDOC_BIN="$ac_cv_use_kdoc"
|
||||
ac_cv_use_kdoc=`$KDOC_BIN --version 2>&1 | awk '{ print $2 }'`
|
||||
else
|
||||
ac_cv_use_kdoc="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_cv_use_kdoc])
|
||||
fi
|
||||
AC_SUBST(KDOC_BIN)
|
||||
|
||||
|
||||
AC_CONFIG_FILES([yate.spec
|
||||
yate.pc
|
||||
yateversn.h
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatepbx.h
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatertp.h
|
||||
* Yet Another RTP Stack
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
|
@ -148,13 +148,13 @@ public:
|
|||
protected:
|
||||
/**
|
||||
* Add a RTP processor to this group
|
||||
* @param processor Pointer to the RTP processor to add
|
||||
* @param proc Pointer to the RTP processor to add
|
||||
*/
|
||||
void join(RTPProcessor* proc);
|
||||
|
||||
/**
|
||||
* Remove a RTP processor from this group
|
||||
* @param processor Pointer to the RTP processor to remove
|
||||
* @param proc Pointer to the RTP processor to remove
|
||||
*/
|
||||
void part(RTPProcessor* proc);
|
||||
|
||||
|
@ -170,6 +170,9 @@ private:
|
|||
class YRTP_API RTPTransport : public RTPProcessor
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Activation status of the transport
|
||||
*/
|
||||
enum Activation {
|
||||
Inactive,
|
||||
Bound,
|
||||
|
@ -178,7 +181,6 @@ public:
|
|||
|
||||
/**
|
||||
* Constructor, creates an unconnected transport
|
||||
* @param grp RTP group to join
|
||||
*/
|
||||
RTPTransport();
|
||||
|
||||
|
@ -613,6 +615,9 @@ private:
|
|||
class YRTP_API RTPSession : public RTPProcessor
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Direction of the session
|
||||
*/
|
||||
enum Direction {
|
||||
FullStop = 0,
|
||||
RecvOnly = 1,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatesip.h
|
||||
* Yet Another SIP Stack
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
|
@ -774,6 +774,7 @@ protected:
|
|||
/**
|
||||
* Constructor from previous auto authenticated transaction. This is used only internally
|
||||
* @param original Original transaction that failed authentication
|
||||
* @param answer SIP answer that creates the new transaction
|
||||
*/
|
||||
SIPTransaction(SIPTransaction& original, SIPMessage* answer);
|
||||
|
||||
|
@ -1011,6 +1012,7 @@ public:
|
|||
|
||||
/**
|
||||
* Add a message into the transaction list
|
||||
* @param ep Party of the received message
|
||||
* @param buf A buffer containing the SIP message text
|
||||
* @param len The length of the message or -1 to interpret as C string
|
||||
* @return Pointer to the transaction or NULL if message was invalid
|
||||
|
|
|
@ -119,7 +119,6 @@ bool SS7Label::assign(SS7CodePoint::Type type, const SS7MSU& msu)
|
|||
m_spc.unpack(type,((s[2] & 0xc0) >> 6) | (s[3] << 2) | ((s[4] & 0x0f) << 10));
|
||||
m_sls = (s[4] >> 4) & 0x0f;
|
||||
return true;
|
||||
return 4;
|
||||
case SS7CodePoint::ANSI:
|
||||
m_type = type;
|
||||
m_dpc.assign(s[3],s[2],s[1]);
|
||||
|
|
|
@ -194,8 +194,10 @@ void SS7MTP2::timerTick(const Time& when)
|
|||
m_interval = 0;
|
||||
unlock();
|
||||
if (operational()) {
|
||||
if (tout)
|
||||
if (tout) {
|
||||
Debug(engine(),DebugInfo,"Proving period ended, link operational [%p]",this);
|
||||
SS7Layer2::notify();
|
||||
}
|
||||
transmitFISU();
|
||||
}
|
||||
else {
|
||||
|
@ -423,6 +425,7 @@ void SS7MTP2::abortAlignment()
|
|||
m_interval = Time::now() + 1000000;
|
||||
m_queue.clear();
|
||||
unlock();
|
||||
SS7Layer2::notify();
|
||||
}
|
||||
|
||||
bool SS7MTP2::startProving()
|
||||
|
|
|
@ -23,9 +23,12 @@
|
|||
|
||||
#include "yatess7.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
using namespace TelEngine;
|
||||
|
||||
typedef GenPointer<SS7Layer2> L2Pointer;
|
||||
|
||||
void SS7Layer3::attach(SS7L3User* l3user)
|
||||
{
|
||||
if (m_l3user == l3user)
|
||||
|
@ -40,33 +43,87 @@ void SS7Layer3::attach(SS7L3User* l3user)
|
|||
|
||||
|
||||
SS7MTP3::SS7MTP3(SS7CodePoint::Type type)
|
||||
: SS7Layer3(type)
|
||||
: SS7Layer3(type), m_total(0), m_active(0)
|
||||
{
|
||||
setName("mtp3");
|
||||
}
|
||||
|
||||
unsigned int SS7MTP3::countLinks()
|
||||
{
|
||||
unsigned int total = 0;
|
||||
unsigned int active = 0;
|
||||
ObjList* l = &m_links;
|
||||
for (; l; l = l->next()) {
|
||||
L2Pointer* p = static_cast<L2Pointer*>(l->get());
|
||||
if (!(p && *p))
|
||||
continue;
|
||||
total++;
|
||||
if ((*p)->operational())
|
||||
active++;
|
||||
}
|
||||
m_total = total;
|
||||
m_active = active;
|
||||
return active;
|
||||
}
|
||||
|
||||
void SS7MTP3::attach(SS7Layer2* link)
|
||||
{
|
||||
if (!link)
|
||||
return;
|
||||
Debug(toString(),DebugStub,"Please implement SS7MTP3::attach()");
|
||||
SignallingComponent::insert(link);
|
||||
if (!m_links.find(link))
|
||||
m_links.append(new GenPointer<SS7Layer2>(link));
|
||||
if (!m_links.find(link)) {
|
||||
m_links.append(new L2Pointer(link));
|
||||
countLinks();
|
||||
}
|
||||
link->attach(this);
|
||||
}
|
||||
|
||||
bool SS7MTP3::transmitMSU(const SS7MSU& msu, int sls)
|
||||
int SS7MTP3::transmitMSU(const SS7MSU& msu, int sls)
|
||||
{
|
||||
Debug(toString(),DebugStub,"Please implement SS7MTP3::transmitMSU(%p,%d) type=%d [%p]",
|
||||
&msu,sls,type(),this);
|
||||
return false;
|
||||
|
||||
if (!m_active) {
|
||||
Debug(toString(),DebugMild,"Could not transmit MSU, %s [%p]",
|
||||
m_total ? "all links are down" : "no data links attached",this);
|
||||
return -1;
|
||||
}
|
||||
ObjList* l = (sls >= 0) ? &m_links : 0;
|
||||
for (; l; l = l->next()) {
|
||||
L2Pointer* p = static_cast<L2Pointer*>(l->get());
|
||||
if (!(p && *p))
|
||||
continue;
|
||||
SS7Layer2* link = *p;
|
||||
if (link->sls() == sls) {
|
||||
if (link->operational())
|
||||
return link->transmitMSU(msu) ? sls : -1;
|
||||
// found link but is down - reroute
|
||||
Debug(toString(),DebugMild,"Rerouting MSU for SLS=%d, link is down",sls);
|
||||
sls = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int n = ::random() % m_active;
|
||||
l = &m_links;
|
||||
for (; l; l = l->next()) {
|
||||
L2Pointer* p = static_cast<L2Pointer*>(l->get());
|
||||
if (!(p && *p))
|
||||
continue;
|
||||
SS7Layer2* link = *p;
|
||||
// wait until Nth operational link
|
||||
if (link->operational() && (--n < 0) && link->transmitMSU(msu))
|
||||
return link->sls();
|
||||
// FIXME: try to rescan the list
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool SS7MTP3::receivedMSU(const SS7MSU& msu, SS7Layer2* link)
|
||||
bool SS7MTP3::receivedMSU(const SS7MSU& msu, SS7Layer2* link, int sls)
|
||||
{
|
||||
Debug(toString(),DebugStub,"Please implement SS7MTP3::receivedMSU(%p,%p) type=%d [%p]",
|
||||
&msu,link,type(),this);
|
||||
Debug(toString(),DebugStub,"Please implement SS7MTP3::receivedMSU(%p,%p,%d) type=%d [%p]",
|
||||
&msu,link,sls,type(),this);
|
||||
unsigned int llen = SS7Label::length(type());
|
||||
if (!llen) {
|
||||
Debug(toString(),DebugWarn,"Received MSU but codepoint type is unconfigured [%p]",this);
|
||||
|
@ -90,4 +147,10 @@ bool SS7MTP3::receivedMSU(const SS7MSU& msu, SS7Layer2* link)
|
|||
return false;
|
||||
}
|
||||
|
||||
void SS7MTP3::notify(SS7Layer2* link)
|
||||
{
|
||||
Debug(toString(),DebugStub,"Please implement SS7MTP3::notify(%p) [%p]",
|
||||
link,this);
|
||||
}
|
||||
|
||||
/* vi: set ts=8 sw=4 sts=4 noet: */
|
||||
|
|
|
@ -48,15 +48,15 @@ void SS7Router::attach(SS7Layer4* service)
|
|||
service->attach(this);
|
||||
}
|
||||
|
||||
bool SS7Router::transmitMSU(const SS7MSU& msu, int sls)
|
||||
int SS7Router::transmitMSU(const SS7MSU& msu, int sls)
|
||||
{
|
||||
Debug(toString(),DebugStub,"Please implement SS7Router::transmitMSU(%p,%d)",&msu,sls);
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool SS7Router::receivedMSU(const SS7MSU& msu, SS7Layer3* network)
|
||||
bool SS7Router::receivedMSU(const SS7MSU& msu, SS7Layer3* network, int sls)
|
||||
{
|
||||
Debug(toString(),DebugStub,"Please implement SS7Router::receivedMSU(%p,%p)",&msu,network);
|
||||
Debug(toString(),DebugStub,"Please implement SS7Router::receivedMSU(%p,%p,%d)",&msu,network,sls);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatess7.h
|
||||
* Yet Another SS7 Stack
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
|
@ -388,7 +388,7 @@ public:
|
|||
|
||||
/**
|
||||
* Attach a receiver to the interface
|
||||
* @param iface Pointer to receiver to attach
|
||||
* @param receiver Pointer to receiver to attach
|
||||
*/
|
||||
virtual void attach(SignallingReceiver* receiver);
|
||||
|
||||
|
@ -894,7 +894,7 @@ private:
|
|||
/**
|
||||
* Operator to write a routing label to a string
|
||||
* @param str String to append to
|
||||
* @param cp Label to append to the string
|
||||
* @param label Label to append to the string
|
||||
*/
|
||||
String& operator<<(String& str, const SS7Label& label);
|
||||
|
||||
|
@ -938,7 +938,7 @@ public:
|
|||
|
||||
/**
|
||||
* Attach an user to this SS7 SCCP
|
||||
* @param sccp Pointer to the SCCP user
|
||||
* @param user Pointer to the SCCP user
|
||||
*/
|
||||
virtual void attach(SCCPUser* user);
|
||||
|
||||
|
@ -1023,9 +1023,17 @@ protected:
|
|||
* Process a MSU received from the Layer 2 component
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param link Data link that delivered the MSU
|
||||
* @param sls Signalling Link the MSU was received from
|
||||
* @return True if the MSU was processed
|
||||
*/
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer2* link) = 0;
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer2* link, int sls) = 0;
|
||||
|
||||
/**
|
||||
* Process a notification generated by the attached data link
|
||||
* @param link Data link that generated the notification
|
||||
* @return True if notification was processed
|
||||
*/
|
||||
virtual void notify(SS7Layer2* link) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1116,6 +1124,20 @@ public:
|
|||
inline SS7L2User* user() const
|
||||
{ return m_l2user; }
|
||||
|
||||
/**
|
||||
* Get the Signalling Link Selection number allocated to this link
|
||||
* @return SLS value assigned by the upper layer
|
||||
*/
|
||||
inline int sls() const
|
||||
{ return m_sls; }
|
||||
|
||||
/**
|
||||
* Assign a new Signalling Link Selection number
|
||||
* @param linkSel New SLS to assign to this link
|
||||
*/
|
||||
inline void sls(int linkSel)
|
||||
{ if ((m_sls < 0) || !m_l2user) m_sls = linkSel; }
|
||||
|
||||
/**
|
||||
* Execute a control operation. Operations can change the link status or
|
||||
* can query the aligned status.
|
||||
|
@ -1131,7 +1153,7 @@ protected:
|
|||
* Constructor
|
||||
*/
|
||||
inline SS7Layer2()
|
||||
: m_l2user(0)
|
||||
: m_l2user(0), m_sls(-1)
|
||||
{ }
|
||||
|
||||
/**
|
||||
|
@ -1140,10 +1162,17 @@ protected:
|
|||
* @return True if message was successfully delivered to the user component
|
||||
*/
|
||||
inline bool receivedMSU(const SS7MSU& msu)
|
||||
{ return m_l2user && m_l2user->receivedMSU(msu,this); }
|
||||
{ return m_l2user && m_l2user->receivedMSU(msu,this,m_sls); }
|
||||
|
||||
/**
|
||||
* Notify out user part about a status change
|
||||
*/
|
||||
inline void notify()
|
||||
{ if (m_l2user) m_l2user->notify(this); }
|
||||
|
||||
private:
|
||||
SS7L2User* m_l2user;
|
||||
int m_sls;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1164,10 +1193,11 @@ protected:
|
|||
/**
|
||||
* Process a MSU received from the Layer 3 component
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param link Network layer that delivered the MSU
|
||||
* @param network Network layer that delivered the MSU
|
||||
* @param sls Signalling Link the MSU was received from
|
||||
* @return True if the MSU was processed
|
||||
*/
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer3* network) = 0;
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer3* network, int sls) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1181,9 +1211,9 @@ public:
|
|||
* Push a Message Signal Unit down the protocol stack
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param sls Signalling Link Selection, negative to choose best
|
||||
* @return True if message was successfully queued to a link
|
||||
* @return Link the message was successfully queued to, negative for error
|
||||
*/
|
||||
virtual bool transmitMSU(const SS7MSU& msu, int sls = -1) = 0;
|
||||
virtual int transmitMSU(const SS7MSU& msu, int sls = -1) = 0;
|
||||
|
||||
/**
|
||||
* Attach a Layer 3 user component to this network
|
||||
|
@ -1217,10 +1247,11 @@ protected:
|
|||
/**
|
||||
* Push a received Message Signal Unit up the protocol stack
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param sls Signalling Link the MSU was received from
|
||||
* @return True if message was successfully delivered to the user component
|
||||
*/
|
||||
inline bool receivedMSU(const SS7MSU& msu)
|
||||
{ return m_l3user && m_l3user->receivedMSU(msu,this); }
|
||||
inline bool receivedMSU(const SS7MSU& msu, int sls)
|
||||
{ return m_l3user && m_l3user->receivedMSU(msu,this,sls); }
|
||||
|
||||
private:
|
||||
SS7L3User* m_l3user;
|
||||
|
@ -1236,7 +1267,7 @@ class YSS7_API SS7Layer4 : public SS7L3User
|
|||
public:
|
||||
/**
|
||||
* Attach a SS7 network or router to this service
|
||||
* @param router Pointer to network or router to attach
|
||||
* @param network Pointer to network or router to attach
|
||||
*/
|
||||
virtual void attach(SS7Layer3* network);
|
||||
|
||||
|
@ -1263,9 +1294,9 @@ public:
|
|||
* Push a Message Signal Unit down the protocol stack
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param sls Signalling Link Selection, negative to choose best
|
||||
* @return True if message was successfully queued to a link
|
||||
* @return Link the message was successfully queued to, negative for error
|
||||
*/
|
||||
virtual bool transmitMSU(const SS7MSU& msu, int sls = -1);
|
||||
virtual int transmitMSU(const SS7MSU& msu, int sls = -1);
|
||||
|
||||
/**
|
||||
* Attach a SS7 Layer 3 (network) to the router
|
||||
|
@ -1283,10 +1314,11 @@ protected:
|
|||
/**
|
||||
* Process a MSU received from the Layer 3 component
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param link Network layer that delivered the MSU
|
||||
* @param network Network layer that delivered the MSU
|
||||
* @param sls Signalling Link the MSU was received from
|
||||
* @return True if the MSU was processed
|
||||
*/
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer3* network);
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer3* network, int sls);
|
||||
|
||||
ObjList m_layer3;
|
||||
ObjList m_layer4;
|
||||
|
@ -1473,9 +1505,9 @@ public:
|
|||
* Push a Message Signal Unit down the protocol stack
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param sls Signalling Link Selection, negative to choose best
|
||||
* @return True if message was successfully queued to a link
|
||||
* @return Link the message was successfully queued to, negative for error
|
||||
*/
|
||||
virtual bool transmitMSU(const SS7MSU& msu, int sls = -1);
|
||||
virtual int transmitMSU(const SS7MSU& msu, int sls = -1);
|
||||
|
||||
/**
|
||||
* Attach a SS7 Layer 2 (data link) to the network transport
|
||||
|
@ -1483,16 +1515,47 @@ public:
|
|||
*/
|
||||
virtual void attach(SS7Layer2* link);
|
||||
|
||||
/**
|
||||
* Get the total number of links attached
|
||||
* @return Number of attached data links
|
||||
*/
|
||||
inline unsigned int linksTotal() const
|
||||
{ return m_total; }
|
||||
|
||||
/**
|
||||
* Get the number of links that are currently operational
|
||||
* @return Number of operational data links
|
||||
*/
|
||||
inline unsigned int linksActive() const
|
||||
{ return m_active; }
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Process a MSU received from the Layer 2 component
|
||||
* @param msu Message data, starting with Service Indicator Octet
|
||||
* @param link Data link that delivered the MSU
|
||||
* @param sls Signalling Link the MSU was received from
|
||||
* @return True if the MSU was processed
|
||||
*/
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer2* link);
|
||||
virtual bool receivedMSU(const SS7MSU& msu, SS7Layer2* link, int sls);
|
||||
|
||||
/**
|
||||
* Process a notification generated by the attached data link
|
||||
* @param link Data link that generated the notification
|
||||
* @return True if notification was processed
|
||||
*/
|
||||
virtual void notify(SS7Layer2* link);
|
||||
|
||||
/**
|
||||
* Count the total and active number of links
|
||||
* @return Number of active links
|
||||
*/
|
||||
unsigned int countLinks();
|
||||
|
||||
private:
|
||||
ObjList m_links;
|
||||
unsigned int m_total;
|
||||
unsigned int m_active;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
core*
|
||||
*.html
|
||||
*.png
|
||||
*.orig
|
||||
*~
|
||||
.*.swp
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Filter the Yate header files so they can be parsed by kdoc
|
||||
# Filter the Yate header files so they can be parsed by kdoc or doxygen
|
||||
|
||||
if [ -n "$2" -a -f "$2" ]; then
|
||||
f="$2"
|
||||
else
|
||||
if [ -n "$1" -a -f "$1" ]; then
|
||||
f="$1"
|
||||
else
|
||||
echo "Could not find file to process" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
filter='s/FORMAT_CHECK(.*)//; s/[A-Z]*_API//'
|
||||
|
||||
test -f "$2" && sed "$filter" "$2"
|
||||
sed "$filter" "$f"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatecbase.h
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
*
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
#ifndef __YATECBASE_H
|
||||
#define __YATECBASE_H
|
||||
|
||||
|
||||
#ifndef __cplusplus
|
||||
#error C++ is required
|
||||
#endif
|
||||
|
@ -109,6 +109,7 @@ public:
|
|||
/**
|
||||
* Set an element as receiving input in the window
|
||||
* @param name Name of the element
|
||||
* @param select Also select the content of the focused element
|
||||
* @return True if the operation was successfull
|
||||
*/
|
||||
virtual bool setFocus(const String& name, bool select = false) = 0;
|
||||
|
|
58
yateclass.h
58
yateclass.h
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yateclass.h
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
*
|
||||
|
@ -260,6 +260,7 @@ public:
|
|||
/**
|
||||
* Constructor
|
||||
* @param level The initial local debug level
|
||||
* @param enabled Enable debugging on this object
|
||||
*/
|
||||
inline DebugEnabler(int level = TelEngine::debugLevel(), bool enabled = true)
|
||||
: m_level(DebugFail), m_enabled(enabled), m_chain(0), m_name(0)
|
||||
|
@ -345,7 +346,7 @@ private:
|
|||
const char* m_name;
|
||||
};
|
||||
|
||||
#if 0
|
||||
#if 0 /* for documentation generator */
|
||||
/**
|
||||
* Convenience macro.
|
||||
* Does the same as @ref Debug if DEBUG is #defined (compiling for debugging)
|
||||
|
@ -475,7 +476,6 @@ YATE_API void Debug(const DebugEnabler* local, int level, const char* format, ..
|
|||
|
||||
/**
|
||||
* Outputs a string to the debug console with formatting
|
||||
* @param facility Facility that outputs the message
|
||||
* @param format A printf() style format string
|
||||
*/
|
||||
YATE_API void Output(const char* format, ...) FORMAT_CHECK(1);
|
||||
|
@ -537,12 +537,36 @@ private:
|
|||
* A table of such structures must end with an entry with a null token
|
||||
*/
|
||||
struct TokenDict {
|
||||
/**
|
||||
* Token to match
|
||||
*/
|
||||
const char* token;
|
||||
|
||||
/**
|
||||
* Value the token translates to
|
||||
*/
|
||||
int value;
|
||||
};
|
||||
|
||||
class String;
|
||||
|
||||
#if 0 /* for documentation generator */
|
||||
/**
|
||||
* Macro to create a GenObject class from a base class and implement @ref GenObject::getObject
|
||||
* @param type Class that is declared
|
||||
* @param base Base class that is inherited
|
||||
*/
|
||||
void YCLASS(class type,class base);
|
||||
|
||||
/**
|
||||
* Macro to retrive a typed pointer to an interface from an object
|
||||
* @param type Class we want to return
|
||||
* @param pntr Pointer to the object we want to get the interface from
|
||||
* @return Pointer to the class we want or NULL
|
||||
*/
|
||||
class* YOBJECT(class type,GenObject* pntr);
|
||||
#endif
|
||||
|
||||
#define YCLASS(type,base) \
|
||||
public: virtual void* getObject(const String& name) const \
|
||||
{ return (name == #type) ? const_cast<type*>(this) : base::getObject(name); }
|
||||
|
@ -966,7 +990,7 @@ public:
|
|||
|
||||
/**
|
||||
* Delete this list item
|
||||
* @param delold True to delete the object (default)
|
||||
* @param delobj True to delete the object (default)
|
||||
* @return Pointer to the object if not destroyed
|
||||
*/
|
||||
GenObject* remove(bool delobj = true);
|
||||
|
@ -1074,6 +1098,7 @@ public:
|
|||
|
||||
/**
|
||||
* Store an object in the array
|
||||
* @param obj Object to store in the array
|
||||
* @param column Number of the column in the array
|
||||
* @param row Number of the row in the array
|
||||
* @return True for success, false if indexes were out of bounds
|
||||
|
@ -2285,7 +2310,7 @@ public:
|
|||
/**
|
||||
* Constructs an initialized data block
|
||||
* @param value Data to assign, may be NULL to fill with zeros
|
||||
* @param len Length of data, may be zero (then @ref value is ignored)
|
||||
* @param len Length of data, may be zero (then value is ignored)
|
||||
* @param copyData True to make a copy of the data, false to just insert the pointer
|
||||
*/
|
||||
DataBlock(void* value, unsigned int len, bool copyData = true);
|
||||
|
@ -2337,7 +2362,7 @@ public:
|
|||
/**
|
||||
* Assign data to the object
|
||||
* @param value Data to assign, may be NULL to fill with zeros
|
||||
* @param len Length of data, may be zero (then @ref value is ignored)
|
||||
* @param len Length of data, may be zero (then value is ignored)
|
||||
* @param copyData True to make a copy of the data, false to just insert the pointer
|
||||
*/
|
||||
DataBlock& assign(void* value, unsigned int len, bool copyData = true);
|
||||
|
@ -2431,8 +2456,8 @@ public:
|
|||
MD5(const void* buf, unsigned int len);
|
||||
|
||||
/**
|
||||
* Construct a digest from a String
|
||||
* @param str String to be included in digest
|
||||
* Construct a digest from a binary DataBlock
|
||||
* @param data Binary data to be included in digest
|
||||
*/
|
||||
MD5(const DataBlock& data);
|
||||
|
||||
|
@ -2810,7 +2835,7 @@ public:
|
|||
* Copy constructor creates a shared mutex
|
||||
* @param original Reference of the mutex to share
|
||||
*/
|
||||
Mutex(const Mutex& orginal);
|
||||
Mutex(const Mutex& original);
|
||||
|
||||
/**
|
||||
* Destroy the mutex
|
||||
|
@ -3122,14 +3147,14 @@ public:
|
|||
|
||||
/**
|
||||
* Sleep for a number of milliseconds
|
||||
* @param sec Number of milliseconds to sleep
|
||||
* @param msec Number of milliseconds to sleep
|
||||
* @param exitCheck Terminate the thread if asked so
|
||||
*/
|
||||
static void msleep(unsigned long msec, bool exitCheck = false);
|
||||
|
||||
/**
|
||||
* Sleep for a number of microseconds
|
||||
* @param sec Number of microseconds to sleep, may be rounded to
|
||||
* @param usec Number of microseconds to sleep, may be rounded to
|
||||
* milliseconds on some platforms
|
||||
* @param exitCheck Terminate the thread if asked so
|
||||
*/
|
||||
|
@ -3754,6 +3779,7 @@ public:
|
|||
|
||||
/**
|
||||
* Set socket options
|
||||
* @param level Level of the option to set
|
||||
* @param name Socket option for which the value is to be set
|
||||
* @param value Pointer to a buffer holding the value for the requested option
|
||||
* @param length Size of the supplied buffer
|
||||
|
@ -3763,8 +3789,9 @@ public:
|
|||
|
||||
/**
|
||||
* Get socket options
|
||||
* @param level Level of the option to set
|
||||
* @param name Socket option for which the value is to be set
|
||||
* @param value Pointer to a buffer to return the value for the requested option
|
||||
* @param buffer Pointer to a buffer to return the value for the requested option
|
||||
* @param length Pointer to size of the supplied buffer, will be filled on return
|
||||
* @return True if operation was successfull, false if an error occured
|
||||
*/
|
||||
|
@ -3903,7 +3930,7 @@ public:
|
|||
* @param buffer Buffer for data transfer
|
||||
* @param length Length of the buffer
|
||||
* @param addr Address to send the message to
|
||||
* @param addrlen Length of the address structure
|
||||
* @param adrlen Length of the address structure
|
||||
* @param flags Operating system specific bit flags that change the behaviour
|
||||
* @return Number of bytes transferred, @ref socketError() if an error occurred
|
||||
*/
|
||||
|
@ -3942,7 +3969,7 @@ public:
|
|||
* @param buffer Buffer for data transfer
|
||||
* @param length Length of the buffer
|
||||
* @param addr Address to fill in with the address of the incoming data
|
||||
* @param addrlen Length of the address structure on input, length of address data on return
|
||||
* @param adrlen Length of the address structure on input, length of address data on return
|
||||
* @param flags Operating system specific bit flags that change the behaviour
|
||||
* @return Number of bytes transferred, @ref socketError() if an error occurred
|
||||
*/
|
||||
|
@ -4030,6 +4057,9 @@ protected:
|
|||
class YATE_API SysUsage
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Type of time usage requested
|
||||
*/
|
||||
enum Type {
|
||||
WallTime,
|
||||
UserTime,
|
||||
|
|
12
yatengine.h
12
yatengine.h
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatengine.h
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
*
|
||||
|
@ -638,7 +638,8 @@ public:
|
|||
|
||||
/**
|
||||
* Destroys the plugin.
|
||||
* The destructor must never be called directly - the Loader will do it when @ref refCount() reaches zero.
|
||||
* The destructor must never be called directly - the Loader will do it
|
||||
* when the shared object's reference count reaches zero.
|
||||
*/
|
||||
virtual ~Plugin();
|
||||
|
||||
|
@ -662,10 +663,14 @@ public:
|
|||
{ return false; }
|
||||
};
|
||||
|
||||
#if 0 /* for documentation generator */
|
||||
/**
|
||||
* Macro to create static instance of the plugin
|
||||
* @param pclass Class of the plugin to create
|
||||
*/
|
||||
void INIT_PLUGIN(class pclass);
|
||||
#endif
|
||||
|
||||
#define INIT_PLUGIN(pclass) static pclass __plugin
|
||||
|
||||
/**
|
||||
|
@ -692,7 +697,7 @@ public:
|
|||
* @param argc Argument count
|
||||
* @param argv Argument array
|
||||
* @param env Environment variables
|
||||
* @param client True to parse arguments and run as a client
|
||||
* @param mode Mode the engine must run as - Console, Client or Server
|
||||
* @param fail Fail and return after parsing command line arguments
|
||||
* @return Program exit code
|
||||
*/
|
||||
|
@ -701,6 +706,7 @@ public:
|
|||
|
||||
/**
|
||||
* Display the help information on console
|
||||
* @param client Display help for client running mode
|
||||
* @param errout Display on stderr intead of stdout
|
||||
*/
|
||||
static void help(bool client, bool errout = false);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* yatephone.h
|
||||
* This file is part of the YATE Project http://YATE.null.ro
|
||||
*
|
||||
|
@ -861,14 +861,14 @@ public:
|
|||
inline DataConsumer* getCallRecord() const
|
||||
{ return m_callRecord; }
|
||||
|
||||
/*
|
||||
/**
|
||||
* Get a pointer to the peer endpoint
|
||||
* @return A pointer to the peer endpoint or NULL
|
||||
*/
|
||||
inline DataEndpoint* getPeer() const
|
||||
{ return m_peer; }
|
||||
|
||||
/*
|
||||
/**
|
||||
* Get a pointer to the owner call
|
||||
* @return A pointer to the owner call or NULL
|
||||
*/
|
||||
|
@ -1354,7 +1354,7 @@ public:
|
|||
/**
|
||||
* Notification on remote tone(s)
|
||||
* @param msg Notification message
|
||||
* @param tones Pointer to the received tone(s)
|
||||
* @param tone Pointer to the received tone(s)
|
||||
* @return True to stop processing the message, false to let it flow
|
||||
*/
|
||||
virtual bool msgTone(Message& msg, const char* tone);
|
||||
|
|
Loading…
Reference in New Issue