From 2b52002e7564f1ecbe85f1e0cc306ebf4ceb6c19 Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Fri, 13 Dec 2024 19:49:44 +0300 Subject: [PATCH] [mod_khomp] Remove from tree --- LICENSE | 12 - build/modules.conf.in | 1 - build/modules.conf.most | 1 - .../vanilla/autoload_configs/modules.conf.xml | 1 - configure.ac | 3 +- debian/bootstrap.sh | 1 - debian/control-modules | 4 - debian/copyright | 12 - debian/license-reconcile.yml | 12 - freeswitch.spec | 13 +- .../mod_khomp/Install/files/khomp.conf.xml | 511 --- src/mod/endpoints/mod_khomp/Makefile.am | 51 - .../mod_khomp/commons/base/atomic.hpp | 203 - .../mod_khomp/commons/base/config_commons.hpp | 74 - .../mod_khomp/commons/base/config_options.cpp | 302 -- .../mod_khomp/commons/base/config_options.hpp | 798 ---- .../commons/base/configurator/configfile.cpp | 240 -- .../commons/base/configurator/configfile.hpp | 90 - .../commons/base/configurator/option.cpp | 186 - .../commons/base/configurator/option.hpp | 128 - .../commons/base/configurator/restriction.cpp | 358 -- .../commons/base/configurator/restriction.hpp | 269 -- .../commons/base/configurator/section.cpp | 136 - .../commons/base/configurator/section.hpp | 260 -- .../mod_khomp/commons/base/const_this.hpp | 15 - .../mod_khomp/commons/base/flagger.hpp | 102 - .../mod_khomp/commons/base/format.cpp | 337 -- .../mod_khomp/commons/base/format.hpp | 561 --- .../mod_khomp/commons/base/function.hpp | 429 -- .../mod_khomp/commons/base/initializer.hpp | 80 - .../mod_khomp/commons/base/k3lapi.cpp | 318 -- .../mod_khomp/commons/base/k3lapi.hpp | 494 --- .../mod_khomp/commons/base/k3lutil.cpp | 206 - .../mod_khomp/commons/base/k3lutil.hpp | 80 - .../mod_khomp/commons/base/logger.hpp | 557 --- .../mod_khomp/commons/base/noncopyable.hpp | 54 - .../mod_khomp/commons/base/refcounter.hpp | 268 -- .../mod_khomp/commons/base/regex.cpp | 149 - .../mod_khomp/commons/base/regex.hpp | 243 -- .../mod_khomp/commons/base/ringbuffer.cpp | 485 --- .../mod_khomp/commons/base/ringbuffer.hpp | 448 -- .../commons/base/saved_condition.cpp | 46 - .../commons/base/saved_condition.hpp | 61 - .../mod_khomp/commons/base/scoped_lock.hpp | 95 - .../mod_khomp/commons/base/simple_lock.hpp | 104 - .../mod_khomp/commons/base/strings.cpp | 267 -- .../mod_khomp/commons/base/strings.hpp | 113 - .../system/freeswitch/saved_condition.cpp | 62 - .../system/freeswitch/saved_condition.hpp | 136 - .../base/system/freeswitch/simple_lock.hpp | 177 - .../commons/base/system/freeswitch/thread.hpp | 330 -- .../mod_khomp/commons/base/tagged_union.hpp | 313 -- .../mod_khomp/commons/base/thread.hpp | 103 - .../mod_khomp/commons/base/timer.cpp | 366 -- .../mod_khomp/commons/base/timer.hpp | 231 -- .../mod_khomp/commons/base/types.hpp | 99 - .../mod_khomp/commons/base/variable.hpp | 124 - .../mod_khomp/commons/base/verbose.cpp | 2992 -------------- .../mod_khomp/commons/base/verbose.hpp | 303 -- .../commons/tools/generate-verbose-headers.sh | 183 - src/mod/endpoints/mod_khomp/docs/Manual.html | 1091 ----- src/mod/endpoints/mod_khomp/docs/Manual.pdf | Bin 470577 -> 0 bytes src/mod/endpoints/mod_khomp/docs/README.html | 39 - src/mod/endpoints/mod_khomp/docs/README.pdf | Bin 399111 -> 0 bytes .../endpoints/mod_khomp/docs/README_en.html | 39 - .../endpoints/mod_khomp/docs/README_en.pdf | Bin 314423 -> 0 bytes .../endpoints/mod_khomp/docs/User_Guide.html | 1093 ----- .../endpoints/mod_khomp/docs/User_Guide.pdf | Bin 464991 -> 0 bytes .../mod_khomp/examples/intercept.xml | 26 - .../endpoints/mod_khomp/examples/transfer.xml | 43 - .../mod_khomp/include/applications.h | 1037 ----- src/mod/endpoints/mod_khomp/include/cli.h | 1273 ------ src/mod/endpoints/mod_khomp/include/defs.h | 210 - src/mod/endpoints/mod_khomp/include/frame.h | 160 - src/mod/endpoints/mod_khomp/include/globals.h | 121 - src/mod/endpoints/mod_khomp/include/k3l.h | 2009 --------- .../endpoints/mod_khomp/include/khomp_pvt.h | 1349 ------- .../mod_khomp/include/khomp_pvt_fxo.h | 395 -- .../mod_khomp/include/khomp_pvt_gsm.h | 333 -- .../mod_khomp/include/khomp_pvt_kxe1.h | 1198 ------ .../mod_khomp/include/khomp_pvt_passive.h | 305 -- src/mod/endpoints/mod_khomp/include/lock.h | 86 - src/mod/endpoints/mod_khomp/include/logger.h | 141 - src/mod/endpoints/mod_khomp/include/opt.h | 266 -- .../endpoints/mod_khomp/include/revision.h | 1 - src/mod/endpoints/mod_khomp/include/spec.h | 91 - src/mod/endpoints/mod_khomp/include/utils.h | 783 ---- src/mod/endpoints/mod_khomp/mod_khomp.cpp | 1524 ------- .../endpoints/mod_khomp/src/applications.cpp | 976 ----- src/mod/endpoints/mod_khomp/src/cli.cpp | 3141 -------------- src/mod/endpoints/mod_khomp/src/frame.cpp | 124 - src/mod/endpoints/mod_khomp/src/globals.cpp | 68 - src/mod/endpoints/mod_khomp/src/khomp_pvt.cpp | 2607 ------------ .../endpoints/mod_khomp/src/khomp_pvt_fxo.cpp | 821 ---- .../endpoints/mod_khomp/src/khomp_pvt_gsm.cpp | 572 --- .../mod_khomp/src/khomp_pvt_kxe1.cpp | 3590 ----------------- .../mod_khomp/src/khomp_pvt_passive.cpp | 295 -- src/mod/endpoints/mod_khomp/src/lock.cpp | 138 - src/mod/endpoints/mod_khomp/src/logger.cpp | 437 -- src/mod/endpoints/mod_khomp/src/opt.cpp | 694 ---- src/mod/endpoints/mod_khomp/src/spec.cpp | 893 ---- src/mod/endpoints/mod_khomp/src/utils.cpp | 682 ---- .../mod_khomp/support/config_defaults.cpp | 50 - .../mod_khomp/support/config_defaults.hpp | 75 - .../mod_khomp/support/klog-config.cpp | 126 - .../mod_khomp/support/klog-config.hpp | 75 - .../mod_khomp/support/klog-options.cpp | 158 - .../mod_khomp/support/klog-options.hpp | 81 - src/mod/endpoints/mod_khomp/tools/getk3l.sh | 116 - .../endpoints/mod_khomp/tools/getversion.sh | 51 - 110 files changed, 2 insertions(+), 43978 deletions(-) delete mode 100644 src/mod/endpoints/mod_khomp/Install/files/khomp.conf.xml delete mode 100644 src/mod/endpoints/mod_khomp/Makefile.am delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/atomic.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/config_commons.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/config_options.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/config_options.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/option.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/option.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/section.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/configurator/section.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/const_this.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/flagger.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/format.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/format.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/function.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/initializer.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/k3lapi.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/k3lapi.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/k3lutil.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/k3lutil.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/logger.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/noncopyable.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/refcounter.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/regex.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/regex.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/ringbuffer.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/ringbuffer.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/saved_condition.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/saved_condition.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/scoped_lock.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/simple_lock.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/strings.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/strings.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/simple_lock.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/thread.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/tagged_union.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/thread.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/timer.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/timer.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/types.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/variable.hpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/verbose.cpp delete mode 100644 src/mod/endpoints/mod_khomp/commons/base/verbose.hpp delete mode 100755 src/mod/endpoints/mod_khomp/commons/tools/generate-verbose-headers.sh delete mode 100644 src/mod/endpoints/mod_khomp/docs/Manual.html delete mode 100644 src/mod/endpoints/mod_khomp/docs/Manual.pdf delete mode 100644 src/mod/endpoints/mod_khomp/docs/README.html delete mode 100644 src/mod/endpoints/mod_khomp/docs/README.pdf delete mode 100644 src/mod/endpoints/mod_khomp/docs/README_en.html delete mode 100644 src/mod/endpoints/mod_khomp/docs/README_en.pdf delete mode 100644 src/mod/endpoints/mod_khomp/docs/User_Guide.html delete mode 100644 src/mod/endpoints/mod_khomp/docs/User_Guide.pdf delete mode 100644 src/mod/endpoints/mod_khomp/examples/intercept.xml delete mode 100644 src/mod/endpoints/mod_khomp/examples/transfer.xml delete mode 100644 src/mod/endpoints/mod_khomp/include/applications.h delete mode 100644 src/mod/endpoints/mod_khomp/include/cli.h delete mode 100644 src/mod/endpoints/mod_khomp/include/defs.h delete mode 100644 src/mod/endpoints/mod_khomp/include/frame.h delete mode 100644 src/mod/endpoints/mod_khomp/include/globals.h delete mode 100644 src/mod/endpoints/mod_khomp/include/k3l.h delete mode 100644 src/mod/endpoints/mod_khomp/include/khomp_pvt.h delete mode 100644 src/mod/endpoints/mod_khomp/include/khomp_pvt_fxo.h delete mode 100644 src/mod/endpoints/mod_khomp/include/khomp_pvt_gsm.h delete mode 100644 src/mod/endpoints/mod_khomp/include/khomp_pvt_kxe1.h delete mode 100644 src/mod/endpoints/mod_khomp/include/khomp_pvt_passive.h delete mode 100644 src/mod/endpoints/mod_khomp/include/lock.h delete mode 100644 src/mod/endpoints/mod_khomp/include/logger.h delete mode 100644 src/mod/endpoints/mod_khomp/include/opt.h delete mode 100644 src/mod/endpoints/mod_khomp/include/revision.h delete mode 100644 src/mod/endpoints/mod_khomp/include/spec.h delete mode 100644 src/mod/endpoints/mod_khomp/include/utils.h delete mode 100644 src/mod/endpoints/mod_khomp/mod_khomp.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/applications.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/cli.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/frame.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/globals.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/khomp_pvt.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/khomp_pvt_fxo.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/khomp_pvt_gsm.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/khomp_pvt_kxe1.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/khomp_pvt_passive.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/lock.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/logger.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/opt.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/spec.cpp delete mode 100644 src/mod/endpoints/mod_khomp/src/utils.cpp delete mode 100644 src/mod/endpoints/mod_khomp/support/config_defaults.cpp delete mode 100644 src/mod/endpoints/mod_khomp/support/config_defaults.hpp delete mode 100644 src/mod/endpoints/mod_khomp/support/klog-config.cpp delete mode 100644 src/mod/endpoints/mod_khomp/support/klog-config.hpp delete mode 100644 src/mod/endpoints/mod_khomp/support/klog-options.cpp delete mode 100644 src/mod/endpoints/mod_khomp/support/klog-options.hpp delete mode 100755 src/mod/endpoints/mod_khomp/tools/getk3l.sh delete mode 100755 src/mod/endpoints/mod_khomp/tools/getversion.sh diff --git a/LICENSE b/LICENSE index e3c1b831e3..2fb4682ad0 100644 --- a/LICENSE +++ b/LICENSE @@ -1484,18 +1484,6 @@ Copyright: 2010 Ilnitskiy Mixim (max.h323@gmail.com) 2010 Georgiewskiy Yuriy (bottleman@icf.org.ru) License: MPL-1.1 -Files: src/mod/endpoints/mod_khomp/* -Copyright: 2007-2010 Khomp Ind. & Com. -License: MPL-1.1 or LGPL-2.1+ - -Files: src/mod/endpoints/mod_khomp/mod_khomp.cpp -Copyright: 2005-2014, Anthony Minessale II -License: MPL-1.1 - -Files: src/mod/endpoints/mod_khomp/commons/base/atomic.hpp -Copyright: 1998 Doug Rabson -License: BSD-2-clause - Files: src/mod/languages/mod_java/modjava.c Copyright: 2007, Damjan Jovanovic License: MPL-1.1 diff --git a/build/modules.conf.in b/build/modules.conf.in index dd5a6a88ff..95d47294d0 100755 --- a/build/modules.conf.in +++ b/build/modules.conf.in @@ -71,7 +71,6 @@ dialplans/mod_dialplan_xml #directories/mod_ldap #endpoints/mod_alsa #endpoints/mod_h323 -#endpoints/mod_khomp endpoints/mod_loopback #endpoints/mod_opal endpoints/mod_rtc diff --git a/build/modules.conf.most b/build/modules.conf.most index a8e2cde1d0..fdf5d61ac9 100755 --- a/build/modules.conf.most +++ b/build/modules.conf.most @@ -70,7 +70,6 @@ dialplans/mod_dialplan_xml directories/mod_ldap #endpoints/mod_alsa #endpoints/mod_h323 -#endpoints/mod_khomp endpoints/mod_loopback #endpoints/mod_opal endpoints/mod_rtc diff --git a/conf/vanilla/autoload_configs/modules.conf.xml b/conf/vanilla/autoload_configs/modules.conf.xml index 8f7fa9285f..3e48242643 100755 --- a/conf/vanilla/autoload_configs/modules.conf.xml +++ b/conf/vanilla/autoload_configs/modules.conf.xml @@ -41,7 +41,6 @@ - diff --git a/configure.ac b/configure.ac index 1b6a435ae2..cced754c5f 100755 --- a/configure.ac +++ b/configure.ac @@ -1079,7 +1079,7 @@ if test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then fi # Tested and fixed lot of modules, but some are untested. Will be added back when the core team decide it ready -# Untested modules : mod_osp mod_opal mod_h323 mod_khomp +# Untested modules : mod_osp mod_opal mod_h323 # mod_erlang_event mod_snmp mod_perl mod_java mod_managed # #saved_CFLAGS="$CFLAGS" @@ -2160,7 +2160,6 @@ AC_CONFIG_FILES([Makefile src/mod/directories/mod_ldap/Makefile src/mod/endpoints/mod_alsa/Makefile src/mod/endpoints/mod_h323/Makefile - src/mod/endpoints/mod_khomp/Makefile src/mod/endpoints/mod_loopback/Makefile src/mod/endpoints/mod_opal/Makefile src/mod/endpoints/mod_reference/Makefile diff --git a/debian/bootstrap.sh b/debian/bootstrap.sh index e59092b9f3..429110e2f6 100755 --- a/debian/bootstrap.sh +++ b/debian/bootstrap.sh @@ -43,7 +43,6 @@ avoid_mods=( codecs/mod_siren codecs/mod_skel_codec endpoints/mod_h323 - endpoints/mod_khomp endpoints/mod_opal endpoints/mod_reference event_handlers/mod_smpp diff --git a/debian/control-modules b/debian/control-modules index 27361516e8..813247deba 100755 --- a/debian/control-modules +++ b/debian/control-modules @@ -365,10 +365,6 @@ Description: mod_h323 Adds mod_h323. Build-Depends: libopenh323-dev | libh323plus-dev, libpt-dev -Module: endpoints/mod_khomp -Description: mod_khomp - Adds mod_khomp. - Module: endpoints/mod_loopback Description: mod_loopback Adds mod_loopback. diff --git a/debian/copyright b/debian/copyright index 61669a3e06..c39ceefb99 100755 --- a/debian/copyright +++ b/debian/copyright @@ -1484,18 +1484,6 @@ Copyright: 2010 Ilnitskiy Mixim (max.h323@gmail.com) 2010 Georgiewskiy Yuriy (bottleman@icf.org.ru) License: MPL-1.1 -Files: src/mod/endpoints/mod_khomp/* -Copyright: 2007-2010 Khomp Ind. & Com. -License: MPL-1.1 or LGPL-2.1+ - -Files: src/mod/endpoints/mod_khomp/mod_khomp.cpp -Copyright: 2005-2014, Anthony Minessale II -License: MPL-1.1 - -Files: src/mod/endpoints/mod_khomp/commons/base/atomic.hpp -Copyright: 1998 Doug Rabson -License: BSD-2-clause - Files: src/mod/languages/mod_java/modjava.c Copyright: 2007, Damjan Jovanovic License: MPL-1.1 diff --git a/debian/license-reconcile.yml b/debian/license-reconcile.yml index 22fdb40a19..d547556a3c 100644 --- a/debian/license-reconcile.yml +++ b/debian/license-reconcile.yml @@ -149,18 +149,6 @@ Rules: Matches: const\schar\s\*\scopyright\s; Copyright: 1999-2009 Erik de Castro Lopo Justification: prevent false-psitive copyright detection - - - Glob: src/mod/endpoints/mod_khomp/* - Matches: The\scontents\sof\sthis\sfile\sare\ssubject\sto\sthe\sMozilla\sPublic\sLicense\sVersion\s1.1 - Matches: Alternatively,\sthe\scontents\sof\sthis\sfile\smay\sbe\sused\sunder\sthe\sterms\sof\sthe - Matches: GNU\sLesser\sGeneral\sPublic\sLicense\s2\.1.\slicense\s\(the\s.LGPL.\sLicense\),\sin\swhich - Matches: version\s2\.1\sof\sthe\sLicense,\sor\s\(at\syour\soption\)\sany\slater\sversion. - License: MPL-1.1 or LGPL-2.1+ - - - Glob: src/mod/endpoints/mod_khomp/commons/base/atomic.hpp - Matches: Original\scopyright\sfollows[:] - Matches: Copyright\s\(c\)\s1998\sDoug\sRabson - Copyright: 1998 Doug Rabson - Glob: libs/esl/getopt/getopt_long.c Matches: This\scode\sis\sderived\sfrom\ssoftware\scontributed\sto\sThe\sNetBSD\sFoundation diff --git a/freeswitch.spec b/freeswitch.spec index 75ad292bd2..1864521459 100755 --- a/freeswitch.spec +++ b/freeswitch.spec @@ -747,14 +747,6 @@ PostgreSQL native support for FreeSWITCH. #%description endpoint-h323 #H.323 endpoint support for FreeSWITCH open source telephony platform -#%package endpoint-khomp -#Summary: khomp endpoint support for FreeSWITCH open source telephony platform -#Group: System/Libraries -#Requires: %{name} = %{version}-%{release} -# -#%description endpoint-khomp -#Khomp hardware endpoint support for FreeSWITCH open source telephony platform. - %package endpoint-rtmp Summary: RTPM Endpoint support for FreeSWITCH open source telephony platform Group: System/Libraries @@ -1300,7 +1292,7 @@ ENDPOINTS_MODULES=" \ endpoints/mod_loopback endpoints/mod_rtmp \ endpoints/mod_skinny endpoints/mod_verto endpoints/mod_rtc endpoints/mod_sofia" -## DISABLED MODULES DUE TO BUILD ISSUES endpoints/mod_h323 endpoints/mod_khomp +## DISABLED MODULES DUE TO BUILD ISSUES endpoints/mod_h323 ###################################################################################################################### # @@ -2009,9 +2001,6 @@ fi #%files endpoint-h323 #%{MODINSTDIR}/mod_h323.so* -#%files endpoint-khomp -#%{MODINSTDIR}/mod_khomp.so* - %files endpoint-rtmp %{MODINSTDIR}/mod_rtmp.so* diff --git a/src/mod/endpoints/mod_khomp/Install/files/khomp.conf.xml b/src/mod/endpoints/mod_khomp/Install/files/khomp.conf.xml deleted file mode 100644 index 6778ef7cb2..0000000000 --- a/src/mod/endpoints/mod_khomp/Install/files/khomp.conf.xml +++ /dev/null @@ -1,511 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mod/endpoints/mod_khomp/Makefile.am b/src/mod/endpoints/mod_khomp/Makefile.am deleted file mode 100644 index 43e803d073..0000000000 --- a/src/mod/endpoints/mod_khomp/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ -include $(top_srcdir)/build/modmake.rulesam -MODNAME=mod_khomp -mod_LTLIBRARIES = mod_khomp.la -mod_khomp_la_SOURCES = mod_khomp.cpp -mod_khomp_la_CFLAGS = $(AM_CFLAGS) -mod_khomp_la_CFLAGS += -I./ -I./include -I./commons -I./commons/base -I./support -mod_khomp_la_CFLAGS += -D_REENTRANT -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DK3L_HOSTSYSTEM -DCOMMONS_LIBRARY_USING_FREESWITCH -mod_khomp_la_CFLAGS += -DFS_VERSION_MAJOR=`./tools/getversion.sh "SWITCH_VERSION_MAJOR" $(switch_srcdir)` -mod_khomp_la_CFLAGS += -DFS_VERSION_MINOR=`./tools/getversion.sh "SWITCH_VERSION_MINOR" $(switch_srcdir)` -mod_khomp_la_CFLAGS += -DFS_VERSION_MICRO=`./tools/getversion.sh "SWITCH_VERSION_MICRO" $(switch_srcdir)` -mod_khomp_la_LIBADD = $(switch_builddir)/libfreeswitch.la -mod_khomp_la_LDFLAGS = -avoid-version -module -no-undefined -shared -lk3l -KHOMP_MODDIR=$(switch_srcdir)/src/mod/endpoints/mod_khomp -TOOLS_DIR=$(KHOMP_MODDIR)/commons/tools - -mod_khomp_la_SOURCES += ./commons/base/k3lapi.cpp ./commons/base/k3lutil.cpp ./commons/base/config_options.cpp ./commons/base/format.cpp ./commons/base/strings.cpp ./commons/base/ringbuffer.cpp ./commons/base/verbose.cpp ./commons/base/saved_condition.cpp ./commons/base/regex.cpp ./commons/base/timer.cpp ./commons/base/configurator/configfile.cpp ./commons/base/configurator/option.cpp ./commons/base/configurator/section.cpp ./commons/base/configurator/restriction.cpp ./commons/base/verbose_traits.cpp -mod_khomp_la_SOURCES += ./support/klog-config.cpp ./support/klog-options.cpp ./support/config_defaults.cpp -mod_khomp_la_SOURCES += ./src/globals.cpp ./src/opt.cpp ./src/frame.cpp ./src/utils.cpp ./src/lock.cpp ./src/spec.cpp ./src/applications.cpp ./src/khomp_pvt_fxo.cpp ./src/khomp_pvt_gsm.cpp ./src/khomp_pvt_kxe1.cpp ./src/khomp_pvt_passive.cpp ./src/khomp_pvt.cpp ./src/logger.cpp ./src/cli.cpp - -conf_file_name = khomp.conf.xml -conf_file_dir = ./Install/files -conf_file_dir_alt = ./conf -conf_file_install = $(sysconfdir)/autoload_configs - -BUILT_SOURCES=verbose_traits.hpp verbose_traits.cpp - -verbose_traits.hpp verbose_traits.cpp: - @if test ! -f $(KHOMP_MODDIR)/commons/base/verbose_traits.hpp || test ! -f $(KHOMP_MODDIR)/commons/base/verbose_traits.cpp ; then \ - echo "Generating verbose_traits" ;\ - bash $(TOOLS_DIR)/generate-verbose-headers.sh $(KHOMP_MODDIR)/commons/base/ include/k3l.h ;\ - fi; - -install-data-local: - @if test "w`kserver --version 2>/dev/null | grep 2.1`" == "w" ; then \ - echo "###############################################################################" ;\ - echo "Install k3l from KHOMP." ;\ - echo "Run: ./tools/getk3l.sh" ;\ - echo "###############################################################################" ;\ - exit 1;\ - fi; - @echo "Copy $(conf_file_name)" - @if test -d $(conf_file_install) ; then \ - if test -f $(conf_file_dir)/$(conf_file_name) ; then \ - cp $(conf_file_dir)/$(conf_file_name) $(conf_file_install)/$(conf_file_name).new ;\ - else \ - cp $(conf_file_dir_alt)/$(conf_file_name) $(conf_file_install)/$(conf_file_name).new ;\ - fi; \ - if test ! -f "$(conf_file_install)/$(conf_file_name)" ; then \ - mv $(conf_file_install)/$(conf_file_name).new $(conf_file_install)/$(conf_file_name) ;\ - fi; \ - fi; diff --git a/src/mod/endpoints/mod_khomp/commons/base/atomic.hpp b/src/mod/endpoints/mod_khomp/commons/base/atomic.hpp deleted file mode 100644 index 02278b390c..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/atomic.hpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - - This code was based on FreeBSD 7.X SVN (sys/i386/include/atomic.h), - with changes regarding optimizations and generalizations, and a - remake of the interface to fit use C++ features. - - Code is distributed under original license. - Original copyright follows: - - * Copyright (c) 1998 Doug Rabson - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - -*/ - -#ifndef _ATOMIC_HPP_ -#define _ATOMIC_HPP_ - -namespace Atomic -{ - // Macros used to insert compare and exchange instructions easily into functions. - - #define MAKE_CMPXCHG_FUNCTION(INS, PTR, EXP, VAL, TYPE) \ - PunnedType pexp; pexp.valtype = EXP; \ - PunnedType pval; pval.valtype = VAL; \ - TYPE vexp = *(pexp.podtype); \ - TYPE vval = *(pval.podtype); \ - TYPE res; \ - unsigned char chg = 0; \ - asm volatile("lock;" INS "sete %1;" \ - : "=a" (res), /* 0 */ \ - "=q" (chg), /* 1 */ \ - "=m" (*(unsigned char **)(PTR)) /* 2 */ \ - : "r" (vval), /* 3 */ \ - "a" (vexp), /* 4 */ \ - "m" (*(unsigned char **)(PTR)) /* 5 */ \ - : "memory"); \ - *(pexp.podtype) = res; \ - return (chg != 0 ? true : false); - - #define MAKE_CMPXCHG8B_FUNCTION(PTR,EXP,VAL) \ - PunnedType pexp; pexp.valtype = EXP; \ - PunnedType pval; pval.valtype = VAL; \ - unsigned long long vexp = *(pexp.podtype); \ - unsigned long long vval = *(pval.podtype); \ - unsigned long vval32 = (unsigned long)vval; \ - unsigned char chg = 0; \ - asm volatile( \ - "xchgl %%ebx, %4;" \ - "lock; cmpxchg8b %2; sete %1;" \ - "movl %4, %%ebx; " \ - : "+A" (vexp), /* 0 (result) */ \ - "=c" (chg) /* 1 */ \ - : "m" (*(unsigned char**)(PTR)), /* 2 */ \ - "c" ((unsigned long)(vval >> 32)), \ - "m" (vval32)); \ - *(pexp.podtype) = vexp; \ - return (chg != 0 ? true : false); - -// "movl %%ecx, %4;" -// -// "m" (*((unsigned long*)(*(pval.podtype)))), -// "m" ((unsigned long)(vval >> 32)) -// -// "m" (*((unsigned long*)(&vval))), -// "m" ((unsigned long)(vval >> 32)) -// -// unsigned long long vval = *(pval.podtype); -// unsigned long long res = (unsigned long long)exp; -// - // Types used for making CMPXCHG instructions independent from base type. - - template < typename ValType, typename PodType > - union PunnedTypeTemplate - { - ValType * valtype; - PodType * podtype; - }; - - template < int SizeOfType, typename ReturnType > - struct HelperCreateCAS; - - template < typename ValType > - struct HelperCreateCAS<4, ValType> - { - #if !defined(__LP64__) && !defined(__LP64) - typedef unsigned long BaseType; - #else - typedef unsigned int BaseType; - #endif - - typedef PunnedTypeTemplate< ValType, BaseType > PunnedType; - - inline static bool apply(volatile void *p, ValType * exp, ValType now) - { - #if !defined(__LP64__) && !defined(__LP64) - MAKE_CMPXCHG_FUNCTION("cmpxchgl %3,%5;", p, exp, &now, BaseType); - #else - MAKE_CMPXCHG_FUNCTION("cmpxchgl %k3,%5;", p, exp, &now, BaseType); - #endif - } - }; - - template < typename ValType > - struct HelperCreateCAS<8, ValType> - { - #if !defined(__LP64__) && !defined(__LP64) - typedef unsigned long long BaseType; - #else - typedef unsigned long BaseType; - #endif - - typedef PunnedTypeTemplate< ValType, BaseType > PunnedType; - - inline static volatile ValType apply(volatile void *p, ValType * exp, ValType now) - { - #if !defined(__LP64__) && !defined(__LP64) - MAKE_CMPXCHG8B_FUNCTION(p, exp, &now); - #else - MAKE_CMPXCHG_FUNCTION("cmpxchgq %3,%5;", p, exp, &now, BaseType); - #endif - } - - }; - - // The CAS function itself. - - template < typename ValType > - inline bool doCAS(volatile ValType * p, ValType * o, ValType n) - { - return HelperCreateCAS::apply(static_cast(p), o, n); - }; - - template < typename ValType > - inline bool doCAS(volatile ValType * p, ValType o, ValType n) - { - return HelperCreateCAS::apply(static_cast(p), &o, n); - }; - - #undef MAKE_CMPXCHG_32_FUNCTION - #undef MAKE_CMPXCHG_64_FUNCTION - - #define MAKE_LOCKED_TEMPLATE(NAME) \ - template < typename ValType > inline void do##NAME(volatile ValType * p, ValType v); \ - template < typename ValType > inline void do##NAME(volatile ValType * p); - - #define MAKE_LOCKED_FUNCTION(NAME, TYPE, INS, CONS, VAL) \ - template < > inline void do##NAME < TYPE > (volatile TYPE * p, TYPE v){ asm volatile("lock;" INS : "=m" (*p) : CONS (VAL), "m" (*p)); } \ - template < > inline void do##NAME < TYPE > (volatile TYPE * p) { asm volatile("lock;" INS : "=m" (*p) : CONS (1), "m" (*p)); } - - #define MAKE_LOCKED_FUNCTIONS(NAME, TYPE, INS, CONS, VAL) \ - MAKE_LOCKED_FUNCTION(NAME, TYPE, INS, CONS, VAL) \ - MAKE_LOCKED_FUNCTION(NAME, unsigned TYPE, INS, CONS, VAL) - - MAKE_LOCKED_TEMPLATE(Add); - MAKE_LOCKED_TEMPLATE(Sub); - MAKE_LOCKED_TEMPLATE(SetBits); - MAKE_LOCKED_TEMPLATE(ClearBits); - - MAKE_LOCKED_FUNCTIONS(Add, int, "addl %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(Sub, int, "subl %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(SetBits, int, "orl %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(ClearBits, int, "andl %1,%0", "ir", ~v); - - #if !defined(__LP64__) && !defined(__LP64) - - MAKE_LOCKED_FUNCTIONS(Add, long, "addl %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(Sub, long, "subl %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(SetBits, long, "orl %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(ClearBits, long, "andl %1,%0", "ir", ~v); - - #else - - MAKE_LOCKED_FUNCTIONS(Add, long, "addq %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(Sub, long, "subq %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(SetBits, long, "orq %1,%0", "ir", v); - MAKE_LOCKED_FUNCTIONS(ClearBits, long, "andq %1,%0", "ir", ~v); - - #endif -}; - -#endif /* _ATOMIC_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/config_commons.hpp b/src/mod/endpoints/mod_khomp/commons/base/config_commons.hpp deleted file mode 100644 index 14f8a19d2c..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/config_commons.hpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _CONFIG_COMMONS_HPP_ -#define _CONFIG_COMMONS_HPP_ - -/****************************************************************************/ -/* ASTERISK */ -#if defined(COMMONS_LIBRARY_USING_ASTERISK) - #define COMMONS_IMPLEMENTATION asterisk -/****************************************************************************/ -/* CALLWEAVER */ -#elif defined(COMMONS_LIBRARY_USING_CALLWEAVER) - #define COMMONS_IMPLEMENTATION callweaver -/****************************************************************************/ -/* FREESWITCH */ -#elif defined(COMMONS_LIBRARY_USING_FREESWITCH) - #define COMMONS_IMPLEMENTATION freeswitch -/****************************************************************************/ -/* GNU/LINUX (generic) */ -#elif defined(COMMONS_LIBRARY_USING_GNU_LINUX) - #define COMMONS_IMPLEMENTATION gnulinux -/****************************************************************************/ -#else - #error Unknown implementation selected. Please define COMMONS_LIBRARY_USING_* correctly. -#endif - -#define COMMONS_INCLUDE(file) - -#define COMMONS_VERSION_MAJOR 1 -#define COMMONS_VERSION_MINOR 1 - -#define COMMONS_AT_LEAST(x,y) \ - ((COMMONS_VERSION_MAJOR > x) || (COMMONS_VERSION_MAJOR == x && COMMONS_VERSION_MINOR >= y)) - -#endif /* _CONFIG_COMMONS_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/config_options.cpp b/src/mod/endpoints/mod_khomp/commons/base/config_options.cpp deleted file mode 100644 index 7412b4b1a0..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/config_options.cpp +++ /dev/null @@ -1,302 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -void Config::Restriction::checkRange(const std::string & name, const SIntType value, const Range < SIntType > & range) -{ - if (value < range.minimum) - throw Failure(STG(FMT("value '%d' out-of-range for option '%s' (too low)") % value % name)); - - if (value > range.maximum) - throw Failure(STG(FMT("value '%d' out-of-range for option '%s' (too high)") % value % name)); - - if (((value - range.minimum) % range.step) != 0) - throw Failure(STG(FMT("value '%d' out-of-range for option '%s' (outside allowed step)") % value % name)); -} - -void Config::Restriction::checkRange(const std::string & name, const UIntType value, const Range < UIntType > & range) -{ - if (value < range.minimum) - throw Failure(STG(FMT("value '%d' out-of-range for option '%s' (too low)") % value % name)); - - if (value > range.maximum) - throw Failure(STG(FMT("value '%d' out-of-range for option '%s' (too high)") % value % name)); - - if (((value - range.minimum) % range.step) != 0) - throw Failure(STG(FMT("value '%d' out-of-range for option '%s' (outside allowed step)") % value % name)); -} - -void Config::Restriction::checkStringSet(const std::string & name, const StringType & value, const StringSet & allowed) -{ - if (allowed.empty()) - return; - - if (allowed.find(value) != allowed.end()) - return; - - std::string strlist; - - for (StringSet::const_iterator i = allowed.begin(); i != allowed.end(); i++) - { - strlist += " '"; - strlist += (*i); - strlist += "'"; - } - - throw Failure(STG(FMT("value '%s' not allowed for option '%s' (allowed values:%s)") - % value % name % strlist)); -} - -Config::Option::Option(std::string name, Config::Option::StringMemberType value, const StringType defvalue, StringSet & allowed, bool listme) -: _myname(name), _option(InnerStringType(name, value, defvalue, allowed)), _listme(listme), _values(NULL) -{}; - -Config::Option::Option(std::string name, Config::Option::StringMemberType value, const StringType defvalue, bool listme) -: _myname(name), _option(InnerStringType(name, value, defvalue)), _listme(listme), _values(NULL) -{}; - -Config::Option::Option(std::string name, Config::Option::BooleanMemberType value, const BooleanType defvalue, bool listme) -: _myname(name), _option(InnerBooleanType(name, value, defvalue)), _listme(listme), _values(NULL) -{}; - -Config::Option::Option(std::string name, Config::Option::SIntMemberType value, const SIntType defvalue, - SIntType min, SIntType max, SIntType step, bool listme) -: _myname(name), _option(InnerSIntType(name, value, defvalue, min, max, step)), _listme(listme), _values(NULL) -{}; - -Config::Option::Option(std::string name, Config::Option::UIntMemberType value, const UIntType defvalue, - UIntType min, UIntType max, UIntType step, bool listme) -: _myname(name), _option(InnerUIntType(name, value, defvalue, min, max, step)), _listme(listme), _values(NULL) -{}; - -Config::Option::Option(const Config::Option & o) -: _myname(o._myname), _option(o._option), _listme(o._listme), _values(o._values) -{}; - -Config::Option::Option(std::string name, Config::Option::FunctionMemberType value, const StringType defvalue, StringSet & allowed, bool listme) -: _myname(name), _option(InnerFunctionType(name, value, defvalue, allowed)), _listme(listme), _values(NULL) -{}; - -Config::Option::Option(std::string name, Config::Option::FunctionMemberType value, const StringType defvalue, bool listme) -: _myname(name), _option(InnerFunctionType(name, value, defvalue)), _listme(listme), _values(NULL) -{}; - -Config::Option::~Option(void) -{ - if (_values) - { - for (unsigned int i = 0; _values[i] != NULL; i++) - delete _values[i]; - - delete[] _values; - _values = NULL; - } -}; - -const char ** Config::Option::values(void) -{ - if (_values != NULL) - return _values; - - /**/ if (_option.check()) - { - _values = new const char*[3]; - - _values[0] = strdup("yes"); - _values[1] = strdup("no"); - _values[2] = NULL; - - } - else if (_option.check()) - { - const InnerSIntType & tmp = _option.get(); - - unsigned int count = ((tmp._range.maximum - tmp._range.minimum) / tmp._range.step) + 1; - unsigned int index = 0; - - _values = new const char*[count + 1]; - - for (SIntType i = tmp._range.minimum; i <= tmp._range.maximum; i += tmp._range.step, ++index) - _values[index] = strdup(STG(FMT("%d") % i).c_str()); - - _values[index] = NULL; - } - else if (_option.check()) - { - const InnerUIntType & tmp = _option.get(); - - unsigned int count = ((tmp._range.maximum - tmp._range.minimum) / tmp._range.step) + 1; - unsigned int index = 0; - - _values = new const char*[count + 1]; - - for (UIntType i = tmp._range.minimum; i <= tmp._range.maximum; i += tmp._range.step, ++index) - _values[index] = strdup(STG(FMT("%d") % i).c_str()); - - _values[index] = NULL; - } - else if (_option.check()) - { - const InnerStringType & tmp = _option.get(); - - _values = new const char*[ tmp._allowed.size() + 1 ]; - - unsigned int index = 0; - - for (StringSet::iterator i = tmp._allowed.begin(); i != tmp._allowed.end(); ++i, ++index) - _values[index] = strdup((*i).c_str()); - - _values[index] = NULL; - } - else if (_option.check()) - { - const InnerFunctionType & tmp = _option.get(); - - _values = new const char*[ tmp._allowed.size() + 1 ]; - - unsigned int index = 0; - - for (StringSet::iterator i = tmp._allowed.begin(); i != tmp._allowed.end(); ++i, ++index) - _values[index] = strdup((*i).c_str()); - - _values[index] = NULL; - } - else - { - throw Failure(STG(FMT("values() not implemented for type used in option '%s'") % _myname)); - } - - return _values; -}; - -/*********************************/ - -Config::Options::Options(void) -: _values(NULL) -{}; - -Config::Options::~Options() -{ - if (_values) - { - for (unsigned int i = 0; _values[i] != NULL; i++) - free((void*)(_values[i])); - - delete[] _values; - _values = NULL; - } -}; - -bool Config::Options::add(Config::Option option) -{ - std::pair ret = _map.insert(OptionPair(option.name(), option)); - - return ret.second; -} - -bool Config::Options::synonym(std::string equiv_opt, std::string main_opt) -{ - std::pair ret = _syn_map.insert(SynOptionPair(equiv_opt, main_opt)); - - return ret.second; -} - -Config::StringSet Config::Options::options(void) -{ - StringSet res; - - for (OptionMap::iterator i = _map.begin(); i != _map.end(); i++) - res.insert(i->first); - - return res; -} - -const char ** Config::Options::values(const char * name) -{ - OptionMap::iterator iter = find_option(name); - - if (iter == _map.end()) - throw Failure(STG(FMT("unknown option '%s'") % name)); - - return iter->second.values(); -} - -const char ** Config::Options::values(void) -{ - if (_values != NULL) - return _values; - - unsigned int count = 0; - - for (OptionMap::iterator i = _map.begin(); i != _map.end(); ++i) - if (i->second.listme()) - ++count; - - _values = new const char*[ count + 1 ]; - - unsigned int index = 0; - - for (OptionMap::iterator i = _map.begin(); i != _map.end(); ++i) - { - if (i->second.listme()) - { - _values[index] = strdup(i->first.c_str()); - ++index; - } - } - - _values[index] = NULL; - - return _values; -} - -Config::Options::OptionMap::iterator Config::Options::find_option(std::string name) -{ - SynOptionMap::iterator syn_iter = _syn_map.find(name); - - if (syn_iter != _syn_map.end()) - name = syn_iter->second; - - OptionMap::iterator iter = _map.find(name); - - return iter; -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/config_options.hpp b/src/mod/endpoints/mod_khomp/commons/base/config_options.hpp deleted file mode 100644 index 9196f3b5a8..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/config_options.hpp +++ /dev/null @@ -1,798 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _CONFIG_OPTIONS_HPP_ -#define _CONFIG_OPTIONS_HPP_ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace Config -{ - /* exceptions */ - - struct Failure: public std::runtime_error - { - Failure(const std::string & msg) : std::runtime_error(msg) {}; - }; - - struct EmptyValue: public std::runtime_error - { - EmptyValue(): std::runtime_error("accessed option still not loaded from configuration") {}; - }; - - /* types */ - - typedef int SIntType; - typedef unsigned int UIntType; - typedef bool BooleanType; - typedef std::string StringType; - - template < typename Type > - struct Value; - - template < typename Type > - struct InnerOptionBase; - - template < typename Type > - struct InnerOption; - - struct Option; - - /* here we go! */ - - template < typename Type > - struct Range - { - Range(const Type _minimum, const Type _maximum, const Type _step) - : minimum(_minimum), maximum(_maximum), step(_step) {}; - - const Type minimum, maximum, step; - }; - - typedef std::set < std::string > StringSet; - - template < typename Type > - struct Value: COUNTER_SUPER(Value < Type >) - { - friend class COUNTER_CLASS(Value < Type >); - friend class InnerOptionBase< Type >; - friend class InnerOption < Type >; - friend class Option; - - Value() - : _tmpval(0), _stored(0), _loaded(false), _inited(false) - {}; - - Value(const Value & o) - : COUNTER_REFER(o, Value < Type >), - _tmpval(o._tmpval), _stored(o._stored), - _loaded(o._loaded), _inited(o._inited) - {}; - - const Type & operator()(void) const - { - if (!_inited) - throw EmptyValue(); - - if (!_stored) - return *_tmpval; - - return *_stored; - }; - - const Type & get(void) const { return operator()(); }; - bool loaded(void) const { return _loaded; }; - - void store(const Type val) - { - if (_tmpval) - { - delete _tmpval; - _tmpval = 0; - } - - _tmpval = new Type(val); - - _loaded = true; - _inited = true; - } - - protected: - void unreference(void) - { - _inited = false; - _loaded = false; - - if (_tmpval) - { - delete _tmpval; - _tmpval = 0; - } - - if (_stored) - { - delete _stored; - _stored = 0; - } - }; - - protected: - void commit(Type def) - { - if (_tmpval) - { - { - delete _stored; - _stored = 0; - } - - _stored = _tmpval; - _tmpval = 0; - } - else - { - if (!_stored) - _stored = new Type(def); - } - - _loaded = true; - _inited = true; - }; - - void reset(void) - { - _loaded = false; - } - - protected: - const Type * _tmpval; - const Type * _stored; - bool _loaded; - bool _inited; - }; - - struct FunctionValue - { - friend class InnerFunctionType; - friend class Option; - - FunctionValue() - : _loaded(false), _inited(false) {}; - - virtual ~FunctionValue() {}; - - public: - virtual void operator()(const StringType & val) - { - throw Failure("undefined operator() for value"); - } - - const StringType & get(void) const - { - if (!_inited) - throw EmptyValue(); - - return _stored; - }; - - bool loaded(void) const { return _loaded; }; - - protected: - void commit(const StringType def) - { - if (_tmpval.empty()) - { - _stored = def; - } - else - { - _stored = _tmpval; - _tmpval.clear(); - } - - operator()(_stored); - - _loaded = true; - _inited = true; - }; - - void store(const StringType val) - { - _tmpval = val; - _loaded = true; - _inited = true; - } - - void reset(void) - { - _loaded = false; - } - - private: - StringType _tmpval; - StringType _stored; - bool _loaded; - bool _inited; - }; - - /* NOTE: we use a non-templated classe to place this functions inside the .cpp */ - struct Restriction - { - static void checkRange(const std::string & name, const SIntType value, const Range < SIntType > & range); - static void checkRange(const std::string & name, const UIntType value, const Range < UIntType > & range); - static void checkStringSet(const std::string & name, const StringType & value, const StringSet & allowed); - }; - - template < typename Type > - struct InnerOptionBase - { - typedef Variable < Value < Type > > MemberValue; - - InnerOptionBase(const std::string name, MemberValue option, const Type defvalue) - : _name(name), _option(option), _default(defvalue) {}; - - template < typename Object > - void reset(Object * const obj) const - { - _option(obj).reset(); - } - - template < typename Object > - const Type & get(const Object * const obj) const - { - return _option(obj).get(); - } - - template < typename Object > - bool loaded(const Object * const obj) const - { - return _option(obj).loaded(); - } - - protected: - const std::string _name; - MemberValue _option; - const Type _default; - }; - - template < > - struct InnerOption < SIntType >: public InnerOptionBase < SIntType > - { - typedef InnerOptionBase < SIntType > Super; - typedef Super::MemberValue MemberValue; - - InnerOption(const std::string name, MemberValue option, const SIntType defval, - const SIntType min, const SIntType max, const SIntType step) - : Super(name, option, defval), _range(min, max, step) {}; - - template < typename Object > - void commit(Object * const obj) const - { - Restriction::checkRange(_name, _default, _range); - _option(obj).commit(_default); - }; - - template < typename Object > - void store(Object * const obj, const SIntType stored) const - { - Restriction::checkRange(_name, _default, _range); - _option(obj).store(stored); - } - - using Super::reset; - using Super::get; - - const Range< SIntType > _range; - }; - - template < > - struct InnerOption < UIntType >: public InnerOptionBase < UIntType > - { - typedef InnerOptionBase < UIntType > Super; - typedef Super::MemberValue MemberValue; - - InnerOption(const std::string name, MemberValue option, const UIntType defval, - const UIntType min, const UIntType max, const UIntType step) - : Super(name, option, defval), _range(min, max, step) {}; - - template < typename Object > - void commit(Object * const obj) const - { - Restriction::checkRange(_name, _default, _range); - _option(obj).commit(_default); - }; - - template < typename Object > - void store(Object * const obj, const UIntType stored) const - { - Restriction::checkRange(_name, _default, _range); - _option(obj).store(stored); - } - - using Super::reset; - using Super::get; - - const Range< UIntType > _range; - }; - - template < > - struct InnerOption < BooleanType >: public InnerOptionBase < BooleanType > - { - typedef InnerOptionBase < BooleanType > Super; - typedef Super::MemberValue MemberValue; - - InnerOption(std::string name, MemberValue option, BooleanType defval) - : Super(name, option, defval) {}; - - template < typename Object > - void commit(Object * obj) const - { - _option(obj).commit(_default); - }; - - template < typename Object > - void store(Object * obj, BooleanType stored) const - { - _option(obj).store(stored); - } - - using Super::reset; - using Super::get; - }; - - template < > - struct InnerOption < StringType >: public InnerOptionBase < StringType > - { - typedef InnerOptionBase < StringType > Super; - typedef Super::MemberValue MemberValue; - - InnerOption(const std::string name, MemberValue option, const StringType defval, const StringSet & allowed) - : Super(name, option, defval), _allowed(allowed) {}; - - InnerOption(const std::string name, MemberValue option, const StringType defval) - : Super(name, option, defval) {}; - - template < typename Object > - void commit(Object * const obj) const - { - Restriction::checkStringSet(_name, _default, _allowed); - _option(obj).commit(_default); - }; - - template < typename Object > - void store(Object * const obj, const StringType stored) const - { - Restriction::checkStringSet(_name, _default, _allowed); - _option(obj).store(stored); - } - - using Super::reset; - using Super::get; - - const StringSet _allowed; - }; - - struct InnerFunctionType - { - typedef Variable < FunctionValue > MemberValue; - - InnerFunctionType(const std::string name, MemberValue option, const StringType defval, const StringSet & allowed) - : _name(name), _option(option), _default(defval), _allowed(allowed) {}; - - InnerFunctionType(const std::string name, MemberValue option, const StringType defval) - : _name(name), _option(option), _default(defval) {}; - - template < typename Object > - const StringType & get(const Object * const obj) const - { - return _option(obj).get(); - } - - template < typename Object > - bool loaded(const Object * const obj) const - { - return _option(obj).loaded(); - } - - template < typename Object > - void reset(Object * const obj) const - { - _option(obj).reset(); - } - - template < typename Object > - void commit(Object * const obj) const - { - Restriction::checkStringSet(_name, _default, _allowed); - _option(obj).commit(_default); - }; - - template < typename Object > - void store(Object * const obj, const StringType stored) const - { - Restriction::checkStringSet(_name, _default, _allowed); - _option(obj).store(stored); - } - - protected: - const std::string _name; - MemberValue _option; - const StringType _default; - - public: - const StringSet _allowed; - }; - - struct Option - { - typedef InnerOption < SIntType > InnerSIntType; - typedef InnerOption < UIntType > InnerUIntType; - typedef InnerOption < BooleanType > InnerBooleanType; - typedef InnerOption < StringType > InnerStringType; - - typedef Variable < Value < SIntType > > SIntMemberType; - typedef Variable < Value < UIntType > > UIntMemberType; - typedef Variable < Value < BooleanType > > BooleanMemberType; - typedef Variable < Value < StringType > > StringMemberType; - - typedef Variable < FunctionValue > FunctionMemberType; - - typedef Tagged::Union < InnerStringType, - Tagged::Union < InnerBooleanType, - Tagged::Union < InnerSIntType , - Tagged::Union < InnerUIntType, - Tagged::Union < InnerFunctionType > > > > > - InnerType; - - explicit Option(std::string, StringMemberType, const StringType, StringSet & allowed, bool listme = true); - explicit Option(std::string, StringMemberType, const StringType = "", bool listme = true); - explicit Option(std::string, SIntMemberType, const SIntType = 0, SIntType min = INT_MIN, SIntType max = INT_MAX, SIntType step = 1, bool listme = true); - explicit Option(std::string, UIntMemberType, const UIntType = 0, UIntType min = 0, UIntType max = UINT_MAX, UIntType step = 1, bool listme = true); - explicit Option(std::string, BooleanMemberType, const BooleanType = false, bool listme = true); - - explicit Option(std::string, FunctionMemberType, const StringType, StringSet & allowed, bool listme = true); - explicit Option(std::string, FunctionMemberType, const StringType = "", bool listme = true); - - Option(const Option & o); - - ~Option(void); - - template < typename Object > - void set(Object * object, std::string value) - { - try - { - /**/ if (_option.check()) _option.get().store(object, value); - else if (_option.check()) _option.get().store(object, value); - else if (_option.check()) _option.get().store(object, Strings::toboolean(value)); - else if (_option.check()) _option.get().store(object, Strings::tolong(value)); - else if (_option.check()) _option.get().store(object, Strings::toulong(value)); - else - { - throw Failure(STG(FMT("set() not implemented for type used in option '%s'") % _myname)); - } - } - catch (Strings::invalid_value & e) - { - throw Failure(STG(FMT("got invalid value '%s' for option '%s'") % value % _myname)); - } - catch (EmptyVariable & e) - { - throw Failure(STG(FMT("uninitialized variable while setting value '%s' for option '%s'") % value % _myname)); - } - } - - template < typename Object > - std::string get(const Object * const object) const - { - try - { - /**/ if (_option.check()) return _option.get().get(object); - else if (_option.check()) return _option.get().get(object); - else if (_option.check()) return (_option.get().get(object) ? "yes" : "no"); - else if (_option.check()) return STG(FMT("%d") % _option.get().get(object)); - else if (_option.check()) return STG(FMT("%u") % _option.get().get(object)); - else - { - throw Failure(STG(FMT("get() not implemented for type used in option '%s'") % _myname)); - } - } - catch (EmptyVariable & e) - { - throw Failure(STG(FMT("uninitialized variable while getting value for option '%s'") % _myname)); - } - } - - template < typename Object > - bool loaded(const Object * const object) const - { - try - { - /**/ if (_option.check()) return _option.get().loaded(object); - else if (_option.check()) return _option.get().loaded(object); - else if (_option.check()) return _option.get().loaded(object); - else if (_option.check()) return _option.get().loaded(object); - else if (_option.check()) return _option.get().loaded(object); - else - { - throw Failure(STG(FMT("loaded() not implemented for type used in option '%s'") % _myname)); - } - } - catch (EmptyVariable & e) - { - throw Failure(STG(FMT("uninitialized variable while checking load status for option '%s'") % _myname)); - } - } - - template < typename Object > - void reset(Object * const object) - { - try - { - /**/ if (_option.check()) _option.get().reset(object); - else if (_option.check()) _option.get().reset(object); - else if (_option.check()) _option.get().reset(object); - else if (_option.check()) _option.get().reset(object); - else if (_option.check()) _option.get().reset(object); - else - { - throw Failure(STG(FMT("reset() not implemented for type used in option '%s'") % _myname)); - } - } - catch (EmptyVariable & e) - { - throw Failure(STG(FMT("uninitialized variable while reseting status for option '%s'") % _myname)); - } - } - - template < typename Object > - void commit(Object * const object) - { - try - { - /**/ if (_option.check()) _option.get().commit(object); - else if (_option.check()) _option.get().commit(object); - else if (_option.check()) _option.get().commit(object); - else if (_option.check()) _option.get().commit(object); - else if (_option.check()) _option.get().commit(object); - else - { - throw Failure(STG(FMT("commit() not implemented for type used in option '%s'") % _myname)); - } - } - catch (EmptyVariable & e) - { - throw Failure(STG(FMT("uninitialized variable while commiting option '%s'") % _myname)); - } - } - - const std::string & name(void) const { return _myname; } - bool listme(void) const { return _listme; }; - - const char ** values(void); - - template < typename Object > - void copyFrom(const Object * const srcobj, Object * const dstobj, bool force = false) - { - if (loaded(dstobj) && !force) - return; - - if (loaded(srcobj)) - set(dstobj, get(srcobj)); - else - reset(dstobj); - } - - protected: - const std::string _myname; - InnerType _option; - const bool _listme; - const char ** _values; - }; - - struct Options - { - typedef std::vector < std::string > Messages; - - Options(); - ~Options(); - - typedef std::set < std::string > StringSet; - - typedef std::map < std::string, Option > OptionMap; - typedef std::pair < std::string, Option > OptionPair; - - typedef std::map < std::string, std::string > SynOptionMap; - typedef std::pair < std::string, std::string > SynOptionPair; - - bool add(Option option); - - /* only valid in "process" (for backwards compatibility config files) */ - bool synonym(std::string, std::string); - - template < typename Type > - void set(const std::string & name, Type value) - { - OptionMap::iterator iter = find_option(name); - - if (iter == _map.end()) - throw Failure(STG(FMT("unknown option: %s") % name)); - - iter->second.set(value); - } - - template < typename Object > - std::string get(const Object * const object, const std::string & name) - { - OptionMap::iterator iter = find_option(name); - - if (iter == _map.end()) - throw Failure(STG(FMT("unknown option: %s") % name)); - - return iter->second.get(object); - } - - template < typename Object > - void process(Object * const object, const char * name, const char * value) - { - OptionMap::iterator iter = find_option(name); - - if (iter == _map.end()) - throw Failure(STG(FMT("unknown option '%s'") % name)); - - iter->second.set(object, value); - } - - template < typename Object > - Messages commit(Object * const object, const std::string & name) - { - Messages msgs; - - OptionMap::iterator i = _map.find(name); - - if (i != _map.end()) - { - try - { - i->second.commit(object); - } - catch (Failure & e) - { - msgs.push_back(e.what()); - } - } - else - { - msgs.push_back(STG(FMT("unable to find option: %s") % name)); - }; - - return msgs; - } - - template < typename Object > - Messages commit(Object * const object) - { - Messages msgs; - - for (OptionMap::iterator i = _map.begin(); i != _map.end(); ++i) - { - try - { - i->second.commit(object); - } - catch (Failure & e) - { - msgs.push_back(e.what()); - } - } - - return msgs; - } - - template < typename Object > - void reset(Object * object) - { - for (OptionMap::iterator i = _map.begin(); i != _map.end(); ++i) - i->second.reset(object); - } - - template < typename Object > - bool loaded(Object * object, const std::string & name) - { - OptionMap::iterator iter = find_option(name); - - if (iter == _map.end()) - return false; - - return iter->second.loaded(object); - } - - bool exists(const std::string & name) - { - OptionMap::iterator iter = find_option(name); - - return (iter != _map.end()); - } - - StringSet options(void); - - const char ** values(const char *); /* option value */ - const char ** values(void); /* values from options */ - - template < typename Object > - void copyFrom(const std::string & name, const Object * const src_obj, Object * const dst_obj, bool force = false) - { - OptionMap::iterator iter = find_option(name); - - if (iter == _map.end()) - throw Failure(STG(FMT("unknown option '%s'") % name)); - - iter->second.copyFrom(src_obj, dst_obj, force); - } - - template < typename Object > - void copyFrom(Object * src_obj, Object * dst_obj, bool force = false) - { - for (OptionMap::iterator iter = _map.begin(); iter != _map.end(); ++iter) - iter->second.copyFrom(src_obj, dst_obj, force); - } - - protected: - OptionMap::iterator find_option(std::string); - - protected: - OptionMap _map; - SynOptionMap _syn_map; - - const char ** _values; - }; -}; - -#endif /* _CONFIG_OPTIONS_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.cpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.cpp deleted file mode 100644 index 02e43df120..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ -#include - -#include - -#if _MSC_VER >= 1400 -#undef close -#endif - -void Configfile::ignore(const std::string & str) -{ - _ignores.insert(str); -}; - -bool Configfile::select(Section **ptr, const std::string & str) -{ - /* default section == this! */ - *ptr = this; - - /* always success by default */ - return true; -}; - -bool Configfile::adjust(Section * section, const std::string & opt, const std::string & val) -{ - return section->load(opt, val); -}; - -bool Configfile::deserialize(std::ifstream & fd) -{ - Section * section = NULL; - - /* default selection! */ - if (!select(§ion)) - { - _errors.push_back("default selection has failed!"); - return false; - } - - size_t count = 0; - - while (fd.good()) - { - std::string str; - - /* read one line! */ - std::getline(fd, str); - - size_t lst = str.size() - 1; - - if (str.size() >= 1 && str[lst] == '\r') //cuida das quebras de linha do tipo \r\n - { - str.erase(lst,1); - --lst; - } - - /* empty line! */ - if (str.size() == 0) - continue; - - /* comment! */ - if (str[0] == '#') - continue; - - ++count; - - if (str[0] == '[' && str[lst] == ']') - { - str.erase(0,1); --lst; - str.erase(lst,1); --lst; - - if (!select(§ion, str)) - { - _errors.push_back(STG(FMT("erroneous section '%s'") % str)); - - /* ignore this section */ - section = NULL; - continue; - } - } - else - { - std::string::size_type pos = str.find('='); - - if (pos == std::string::npos) - { - _errors.push_back(STG(FMT("erroneous separator '%s'") % str)); - continue; - }; - - if (section == NULL) - { - _errors.push_back(STG(FMT("no section for option '%s'") % str)); - continue; - } - - std::string opt(str.substr(0,pos)); - std::string val(str.substr(pos+1)); - - if (_ignores.find(opt) != _ignores.end()) - continue; - - if (val == "@") val = ""; - - if (adjust(section, opt, val)) - continue; - - _errors.push_back(STG(FMT("option '%s' does not exist or '%s' is not " - "a valid value (at section '%s')") % opt % val % section->name())); - } - } - - // retorna 'true' se arquivo tinha alguma coisa valida. - return (count != 0); -} - -bool Configfile::obtain() -{ - std::ifstream fd(_filename.c_str()); - - if (!fd.is_open()) - { - _errors.push_back(STG(FMT("unable to open file '%s': %s") - % _filename % strerror(errno))); - return false; - }; - - if (!deserialize(fd)) - { - fd.close(); - return false; - } - - fd.close(); - return true; -}; - -void Configfile::recurse(std::ofstream & fd, Section * section) -{ - typedef Section::SectionMap::const_iterator SectionIter; - typedef Section::OptionMap::const_iterator OptionIter; - - for (OptionIter i = section->option_begin(); i != section->option_end(); i++) - { - std::string res; - - if ((*i).second.store(res)) - { - if (res == "") res = "@"; - fd << (*i).first << "=" << res << std::endl; - } - } - - if (!section->recursive()) - return; - - for (SectionIter j = section->section_begin(); j != section->section_end(); j++) - recurse(fd, (*j).second); -} - -bool Configfile::serialize(std::ofstream & fd) -{ - recurse(fd, this); - return true; -} - -bool Configfile::provide() -{ - std::string tmp(_filename); - tmp += ".new"; - - std::ofstream fd(tmp.c_str()); - - if (!fd.good()) - { - _errors.push_back(STG(FMT("unable to open file '%s': %s") - % tmp % strerror(errno))); - return false; - } - - if (!serialize(fd)) - { - fd.close(); - return false; - } - - fd.close(); - - if (rename(tmp.c_str(), _filename.c_str()) != 0) - { - _errors.push_back(STG(FMT("unable to replace config file '%s': %s") - % _filename % strerror(errno))); - return false; - } - - return true; -} - -#if _MSC_VER >= 1400 -#define close _close -#endif diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.hpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.hpp deleted file mode 100644 index e725c09964..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/configfile.hpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include -#include -#include - -#include - -#include - -#ifndef _CONFIG_CONFIGFILE_HPP_ -#define _CONFIG_CONFIGFILE_HPP_ - -struct Configfile: public Section -{ - typedef std::list < std::string > ErrorVector; - typedef std::set < std::string > NameSet; - - Configfile(const std::string & name, const std::string & desc) - : Section(name, desc), _good(false) {}; - - virtual ~Configfile() {}; - - bool good() const { return _good; }; - const std::string & filename() const { return _filename; }; - - const ErrorVector & errors() const { return _errors; }; - - void ignore(const std::string &); - - virtual bool obtain(); - virtual bool provide(); - - protected: - virtual bool select(Section **, const std::string & str = ""); - virtual bool adjust(Section *, const std::string & opt, const std::string & val); - - virtual bool deserialize(std::ifstream &); - virtual bool serialize(std::ofstream &); - - void recurse(std::ofstream &, Section *); - - protected: - bool _good; - ErrorVector _errors; - NameSet _ignores; - std::string _filename; -}; - -#endif /* _CONFIG_CONFIGFILE_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/option.cpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/option.cpp deleted file mode 100644 index 6de9212bf3..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/option.cpp +++ /dev/null @@ -1,186 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -bool Option::equals(const std::string & value) const -{ - switch (_restriction.numeral()) - { - case Restriction::N_UNIQUE: - { - Restriction::Value my_value; - - if (!_restriction.get(Restriction::F_USER, my_value)) - return false; - - return (my_value == value); - } - case Restriction::N_MULTIPLE: - { - Restriction::Vector my_values; - - if (!_restriction.get(Restriction::F_USER, my_values)) - return false; - - for (Restriction::Vector::iterator i = my_values.begin(); i != my_values.end(); i++) - { - if ((*i) == value) - return true; - } - - return false; - } - } - - return false; -} - -bool Option::load(const std::string & value) -{ - bool ret = _restriction.set( (const Restriction::Format)Restriction::F_FILE, value); - - if (ret) _modified = false; - - return ret; -} - -bool Option::change(const std::string & value) -{ - bool ret = _restriction.set(Restriction::F_FILE, value); - - if (ret) _modified = true; - - return ret; -} - -bool Option::store(std::string & value) const -{ - switch (_restriction.numeral()) - { - case Restriction::N_UNIQUE: - return _restriction.get(Restriction::F_FILE, value); - - case Restriction::N_MULTIPLE: - { - Restriction::Vector values; - - if (!_restriction.get(Restriction::F_FILE, values)) - return false; - - Strings::Merger strs; - - for (Restriction::Vector::iterator i = values.begin(); i != values.end(); i++) - strs.add(*i); - - value = strs.merge(","); - - return true; - } - - default: - return false; - } -} - -/* -Option::Flags Option::set(const char * value) -{ - std::string str_value(value); - return set(str_value); -} -*/ - -Option::Flags Option::set(const Restriction::Value & value) -{ - Restriction::Value last_value, curr_value; - Flags flags; - - bool ret1 = _restriction.get(Restriction::F_USER, last_value); - - if (!_restriction.set(Restriction::F_USER, value)) - return flags; - - flags[F_ADJUSTED] = true; - - bool ret2 = _restriction.get(Restriction::F_USER, curr_value); - - if (!ret1 || (ret2 && (last_value != curr_value))) - { - flags[F_MODIFIED] = true; - _modified = true; - } - - return flags; -} - -Option::Flags Option::set(const Restriction::Vector & values) -{ - Restriction::Vector last_values, curr_values; - Flags flags; - - bool ret1 = _restriction.get(Restriction::F_USER, last_values); - - if (!_restriction.set(Restriction::F_USER, values)) - return flags; - - flags[F_ADJUSTED] = true; - - bool ret2 = _restriction.get(Restriction::F_USER, curr_values); - - if (!ret1 || (ret2 && (last_values != curr_values))) - { - flags[F_MODIFIED] = true; - _modified = true; - } - - return flags; -} - -bool Option::get(Restriction::Value & value) const -{ - return _restriction.get(Restriction::F_USER, value); -} - -bool Option::get(Restriction::Vector & values) const -{ - return _restriction.get(Restriction::F_USER, values); -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/option.hpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/option.hpp deleted file mode 100644 index e46ab75902..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/option.hpp +++ /dev/null @@ -1,128 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#include -#include -#include - -#include -#include - -#include - -#ifndef _CONFIG_OPTION_HPP_ -#define _CONFIG_OPTION_HPP_ - -struct Option -{ - enum FlagTypes - { - F_MODIFIED = 0x0, /* if option was modified */ - F_ADJUSTED = 0x1, /* if option was correctly formated */ - }; - - struct Flags: public std::vector - { - Flags(): std::vector(2) {}; - }; - - typedef Restriction::Value Value; - typedef Restriction::Vector Vector; - - /* exception */ - struct InvalidDefaultValue: public std::runtime_error - { - InvalidDefaultValue(const std::string & name, const std::string & value) - : std::runtime_error(STG(FMT("invalid default value '%s' for option '%s'") % value % name)), - _name(name), _value(value) - {}; - - ~InvalidDefaultValue() throw () - {}; - - const std::string & name() const { return _name; }; - const std::string & value() const { return _value; }; - - protected: - const std::string _name; - const std::string _value; - }; - - Option(const std::string & name, const std::string & desc, const std::string & defvalue, const Restriction & restriction) - : _name(name), _description(desc), _restriction(restriction), _modified(true) - { -// std::string value(defvalue); - - if (!(set(defvalue)[F_ADJUSTED])) - throw InvalidDefaultValue(name, defvalue); - } - - const std::string & name() const { return _name; }; - const std::string & description() const { return _description; }; - - const Restriction & restriction() const { return _restriction; }; - bool modified() const { return _modified; }; - - public: - bool load(const std::string &); - bool change(const std::string &); - bool store(std::string &) const; - -// Flags set(const char *); - Flags set(const Value &); - Flags set(const Vector &); - - bool get(Value &) const; - bool get(Vector &) const; - - bool equals(const std::string &) const; - - protected: - const std::string _name; - const std::string _description; - - Restriction _restriction; - bool _modified; -}; - -#endif /* _CONFIG_OPTION_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.cpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.cpp deleted file mode 100644 index 52be1ea881..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.cpp +++ /dev/null @@ -1,358 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include - -#include -#include - -#include - -/* internal helper! */ -bool Restriction::equalNumber(const double a, const double b) -{ - char tmp1[64]; - char tmp2[64]; - - snprintf(tmp1, sizeof(tmp1), "%.3f", a); - snprintf(tmp2, sizeof(tmp2), "%.3f", b); - - if (strncmp(tmp1, tmp2, sizeof(tmp1))) - return false; - - return true; -} - -/* process value to our internal representation */ - -bool Restriction::process(Restriction::Format fmt, - const Restriction::Value & value, Restriction::Value & final) const -{ - switch (_bounds) - { - case B_RANGE: - { - if (_kind != K_NUMBER) - return false; - - std::string tmpvalue; - - Restriction::Value::const_iterator itr = value.begin(); - Restriction::Value::const_iterator end = value.end(); - - tmpvalue.reserve(value.size()); - - // f*cking dot/comma notation! - for (; itr != end; ++itr) - tmpvalue += ((*itr) != ',' ? (*itr) : '.'); - - try - { - double newvalue = Strings::todouble(tmpvalue); - - if (newvalue < _init && newvalue > _fini) - return false; - - double res = (newvalue - _init) / _step; - - if (!Restriction::equalNumber(res, rint(res))) - return false; - - final = value; - return true; - } - catch (...) - { - return false; - } - } - - case B_LIST: - for (List::const_iterator i = _list.begin(); i != _list.end(); i++) - { - const Value & tmp = (*i); - - if (tmp == value) - { - final = value; - return true; - } - } - return false; - - case B_MAPS: - switch (fmt) - { - case F_USER: - { - Map::const_iterator i = _map_from_usr.find(value); - - if (i == _map_from_usr.end()) - return false; - - const Value & tmp = (*i).second; - - final = tmp; - return true; - } - - case F_FILE: - { - Map::const_iterator i = _map_from_cfg.find(value); - - if (i == _map_from_cfg.end()) - return false; - - final = value; - return true; - } - - default: - break; - } - return false; - - case B_FREE: - final = value; - return true; - - default: - break; - } - - return false; -} - -/* unprocess the value (outputs the external representation) */ - -bool Restriction::unprocess(Restriction::Format fmt, - const Restriction::Value & value, Restriction::Value & final) const -{ - switch (_bounds) - { - case B_MAPS: - - switch (fmt) - { - case F_USER: - { - Map::const_iterator i = _map_from_cfg.find(value); - - if (i == _map_from_cfg.end()) - return false; - - final = (*i).second; - return true; - } - default: - break; - } - - default: - final = value; - return true; - } -} - -/***************************** *****************************/ - -bool Restriction::get(Restriction::Format fmt, Restriction::Value & value) const -{ - if (_numeral != N_UNIQUE) - return false; - - if (!unprocess(fmt, _value._unique, value)) - return false; - - return true; -} - -bool Restriction::get(Restriction::Format fmt, Restriction::Vector & values) const -{ - if (_numeral != N_MULTIPLE) - return false; - - const List & my_values = _value._multiple; - - for (List::const_iterator i = my_values.begin(); i != my_values.end(); i++) - { - const Value & value = (*i); - - Value final; - - if (!unprocess(fmt, value, final)) - return false; - - values.push_back(final); - }; - - return true; -} - -/***************************** *****************************/ - -bool Restriction::set(Restriction::Format fmt, const Restriction::Value & value) -{ - switch (_numeral) - { - case N_UNIQUE: - { - Value final; - - if (!constThis().process(fmt, value, final)) - return false; - - _value._unique = final; - return true; - } - - case N_MULTIPLE: - { - if (value == "@" || value == "#" || value == "") - { - _value._multiple.clear(); - return true; - } - - Strings::vector_type values; - Strings::tokenize(value, values, ","); - - return set(fmt, values); - } - - default: - return false; - } -} - -bool Restriction::set(Restriction::Format fmt, const Restriction::Vector & values) -{ - if (_numeral != N_MULTIPLE) - return false; - - if (values.empty()) - { - _value._multiple.clear(); - } - else - { - /* list needed to store temporary values */ - List finals; - - for (Vector::const_iterator i = values.begin(); i != values.end(); i++) - { - const Value & value = (*i); - - Value final; - - if (!constThis().process(fmt, value, final)) - return false; - - finals.push_back(final); - } - - List & lst = _value._multiple; - - /* need to clear values set before */ - lst.clear(); - - for (List::iterator i = finals.begin(); i != finals.end(); i++) - { - Value value = (*i); - lst.push_back(value); - } - }; - - return true; -} - -/***************************** *****************************/ - -void Restriction::allowed(Restriction::Vector & vals) const -{ - switch (_bounds) - { - case B_FREE: - return; - - case B_LIST: - for (List::const_iterator i = _list.begin(); i != _list.end(); i++) - vals.push_back(*i); - break; - - case B_MAPS: - for (Map::const_iterator i = _map_from_usr.begin(); i != _map_from_usr.end(); i++) - vals.push_back(i->first); - break; - - case B_RANGE: - { - if (_kind != K_NUMBER) - return; - - // is there any fraction? - bool has_fraction = - (!Restriction::equalNumber(_init, rint(_init))) || - (!Restriction::equalNumber(_fini, rint(_fini))) || - (!Restriction::equalNumber(_step, rint(_step))); - - const char * format = (has_fraction ? "%.2f" : "%02.0f"); - - for (double i = _init; i <= _fini; i += _step) - { - char tmp[32]; - snprintf(tmp, sizeof(tmp), format, i); - vals.push_back(std::string(tmp)); - } - break; - } - - default: - break; - } -} - -void Restriction::init_class() -{ - _value._unique.clear(); - _value._multiple.clear(); -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.hpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.hpp deleted file mode 100644 index 576560dbd4..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/restriction.hpp +++ /dev/null @@ -1,269 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#include -#include -#include -#include - -#include - -#ifndef _CONFIG_RESTRICTION_HPP_ -#define _CONFIG_RESTRICTION_HPP_ - -struct Restriction: public ConstThis < Restriction > -{ - /* generic types */ - - // TODO: change this type name for something different - // to avoid conflicting with "format.hpp". - enum Format - { - F_USER, - F_FILE - }; - - enum Kind - { - K_STRING, - K_NUMBER // = K_INTEGER // compatibility - }; - - enum Bounds - { - B_FREE, - B_RANGE, - B_LIST, - B_MAPS - }; - - enum Numeral - { - N_UNIQUE, - N_MULTIPLE - }; - - typedef std::string Value; - - /* types used for data input */ - struct Pair - { - const char *pretty; - const char *value; - }; - - typedef std::pair < Value, Value > PairMap; - typedef std::list < PairMap > ListMap; - - /* types used internally */ - typedef std::map < Value, Value > Map; - typedef std::vector < Value > Vector; - - typedef std::list < Value > List; - typedef std::pair < Value, Value > MapPair; - - struct Generic - { - Value _unique; - List _multiple; - }; - - Restriction(Kind kind, Numeral num) - : _kind(kind), _bounds(B_FREE), _numeral(num), _unit(""), - _init(-1), _fini(-1), _step(-1) - { - init_class(); - } - - Restriction(Kind kind, Numeral num, - double init, double fini, double step = 1) - : _kind(kind), _bounds(B_RANGE), _numeral(num), _unit(""), - _init(init), _fini(fini), _step(step) - { - init_class(); - } - - Restriction(Kind kind, Numeral num, - const char *unit, double init, double fini, double step = 1.0) - : _kind(kind), _bounds(B_RANGE), _numeral(num), _unit(unit), - _init(init), _fini(fini), _step(step) - { - init_class(); - } - - Restriction(Kind kind, Numeral num, - std::string unit, double init, double fini, double step = 1.0) - : _kind(kind), _bounds(B_RANGE), _numeral(num), _unit(unit), - _init(init), _fini(fini), _step(step) - { - init_class(); - } - - Restriction(Kind kind, Numeral num, - const char *first, ...) - : _kind(kind), _bounds(B_LIST), _numeral(num), _unit(""), - _init(-1), _fini(-1), _step(-1) - { - _list.push_back(std::string(first)); - - va_list ap; - va_start(ap, first); - - while (true) - { - const char *arg = va_arg(ap, const char *); - - if (arg == NULL) break; - - _list.push_back(std::string(arg)); - } - - init_class(); - } - - Restriction(Kind kind, const char *unit, Numeral num, - const char *first, ...) - : _kind(kind), _bounds(B_LIST), _numeral(num), _unit(unit), - _init(-1), _fini(-1), _step(-1) - { - _list.push_back(std::string(first)); - - va_list ap; - va_start(ap, first); - - while (true) - { - const char *arg = va_arg(ap, const char *); - - if (arg == NULL) break; - - _list.push_back(std::string(arg)); - } - - init_class(); - } - - Restriction(Kind kind, Numeral num, - const struct Pair first, ...) - : _kind(kind), _bounds(B_MAPS), _numeral(num), _unit(""), - _init(-1), _fini(-1), _step(-1) - { - _map_from_usr.insert(MapPair(Value(first.pretty), Value(first.value))); - _map_from_cfg.insert(MapPair(Value(first.value), Value(first.pretty))); - - va_list ap; - va_start(ap, first); - - while (true) - { - Pair arg = va_arg(ap, Pair); - - if (arg.pretty == NULL) break; - - _map_from_usr.insert(MapPair(Value(arg.pretty), Value(arg.value))); - _map_from_cfg.insert(MapPair(Value(arg.value), Value(arg.pretty))); - } - - init_class(); - } - - Restriction(Kind kind, Numeral num, List list) - : _kind(kind), _bounds(B_LIST), _numeral(num), _unit(""), - _init(-1), _fini(-1), _step(-1), _list(list) - { - init_class(); - } - - Restriction(Kind kind, Numeral num, ListMap map) - : _kind(kind), _bounds(B_MAPS), _numeral(num), _unit(""), - _init(-1), _fini(-1), _step(-1) - { - for (ListMap::iterator i = map.begin(); i != map.end(); i++) - { - _map_from_usr.insert(MapPair(Value((*i).first), Value((*i).second))); - _map_from_cfg.insert(MapPair(Value((*i).second), Value((*i).first))); - } - - init_class(); - } - - const Kind kind() const { return _kind; }; - const Bounds bounds() const { return _bounds; }; - const Numeral numeral() const { return _numeral; }; - - const std::string & unit() const { return _unit; }; - - bool set(Format, const Vector &); - bool set(Format, const Value &); - - bool get(Format, Vector &) const; - bool get(Format, Value &) const; - - void allowed(Vector &) const; - - private: - bool process(const Format, const Value &, Value &) const; - bool unprocess(const Format, const Value &, Value &) const; - - void init_class(); - - static bool equalNumber(const double, const double); - - protected: - const Kind _kind; - const Bounds _bounds; - const Numeral _numeral; - - Value _unit; - - const double _init, _fini, _step; - - Map _map_from_usr, - _map_from_cfg; - - List _list; - - Generic _value; -}; - -#endif /* _CONFIG_RESTRICTION_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/section.cpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/section.cpp deleted file mode 100644 index 9ed775b044..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/section.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -void Section::options(Section::OptionVector & vec) const -{ - for (OptionMap::const_iterator it = _options.begin(); it != _options.end();) - { - vec.push_back(const_cast< Option * >(&(it->second))); - ++it; - } -} - -void Section::sections(Section::SectionVector & vec) const -{ - for (SectionMap::const_iterator it = _sections.begin(); it != _sections.end();) - { - vec.push_back(const_cast< Section * >(it->second)); - ++it; - } -} - -/*********/ - -Option * Section::option_find(const std::string & str, bool recurse) const -{ - OptionMap::const_iterator i = _options.find(str); - - if (i == _options.end()) - { - if (!recurse) - throw OptionNotFound(str, _name); -// throw not_found(); - - for (SectionMap::const_iterator i = _sections.begin(); i != _sections.end(); i++) - { - try - { - return i->second->option_find(str, recurse); - } - catch (NotFound & e) - { - /* keep looping! */ - }; - } - -// throw not_found(); - throw OptionNotFound(str, _name); - } - - return const_cast< Option * >(&(i->second)); -} - -/* -Option * Section::option_find(const char * str, bool recurse) -{ - std::string sstr(str); - return option_find(sstr, recurse); -} -*/ - -/*********/ - -Section * Section::section_find(const std::string & str, bool recurse) const -{ - SectionMap::const_iterator i = _sections.find(str); - - if (i == _sections.end()) - { - if (!recurse) - throw SectionNotFound(str, _name); - - for (SectionMap::const_iterator i = _sections.begin(); i != _sections.end(); i++) - { - try - { - return i->second->section_find(str, recurse); - } - catch (NotFound & e) - { - /* keep looping! */ - }; - } - - throw SectionNotFound(str, _name); - } - - return const_cast< Section * >(i->second); -} - -/* -Section * Section::section_find(const char * str, bool recurse) -{ - std::string sstr(str); - return section_find(sstr, recurse); -} -*/ diff --git a/src/mod/endpoints/mod_khomp/commons/base/configurator/section.hpp b/src/mod/endpoints/mod_khomp/commons/base/configurator/section.hpp deleted file mode 100644 index d5a8c95688..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/configurator/section.hpp +++ /dev/null @@ -1,260 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _CONFIG_SECTION_HPP_ -#define _CONFIG_SECTION_HPP_ - -#include -#include -#include -#include -#include - -#include - -#include - -struct Section -{ - typedef std::map < std::string, Option > OptionMap; - typedef std::vector< Option * > OptionVector; - - typedef std::map < std::string, Section * > SectionMap; - typedef std::vector < Section * > SectionVector; - - struct NotFound: public std::runtime_error - { - NotFound(const std::string & type, const std::string & name, const std::string & me) - : std::runtime_error(STG(FMT("%s '%s' not found on section '%s'") % type % name % me)) {}; - }; - - struct OptionNotFound: public NotFound - { - OptionNotFound(const std::string & name, const std::string & me) - : NotFound("option", name, me) {}; - }; - - struct SectionNotFound: public NotFound - { - SectionNotFound(const std::string & name, const std::string & me) - : NotFound("section", name, me) {}; - }; - - typedef NotFound not_found; /* backward compatibility */ - -// protected: - Section(const std::string & name, const std::string & desc, bool recursive = true) - : _name(name), _description(desc), _recursive(recursive) {}; - - void add(const Option & o) - { - _options.insert(std::pair(o.name(), o)); - }; - - void del(const std::string & name) - { - _options.erase(name); - }; - - void add(Section * s) - { - _sections.insert(std::pair< std::string, Section * >(s->name(), s)); - }; - - public: - const std::string & name() const { return _name; }; - const std::string & description() const { return _description; }; - - const bool recursive() const { return _recursive; }; - - OptionMap::const_iterator option_begin() const { return _options.begin(); }; - OptionMap::const_iterator option_end() const { return _options.end(); }; - - SectionMap::const_iterator section_begin() const { return _sections.begin(); }; - SectionMap::const_iterator section_end() const { return _sections.end(); }; - - /**/ - -// Option * option_find(const char *, bool recurse = false) const; -// Section * section_find(const char *, bool recurse = false) const; - - Option * option_find(const std::string &, bool recurse = false) const; - Section * section_find(const std::string &, bool recurse = false) const; - - /**/ - - void options(OptionVector &) const; - void sections(SectionVector &) const; - - /**/ - - template < typename T, typename F > - bool search_and_apply(const std::string & key, T & value, F f) - { - OptionMap::iterator i = _options.find(key); - - if (i != _options.end()) - return f(i->second); - - if (!_recursive) - return false; - - return (find_if(_sections.begin(), _sections.end(), f) != _sections.end()); - } - - private: - struct ConstKeyValue - { - ConstKeyValue(const std::string & k, const std::string &v) - : _k(k), _v(v) {}; - - const std::string & _k; - const std::string & _v; - }; - - struct KeyValue - { - KeyValue(const std::string & k, std::string &v) - : _k(k), _v(v) {}; - - const std::string & _k; - std::string & _v; - }; - - struct load_section: protected ConstKeyValue - { - load_section(const std::string & k, const std::string & v): ConstKeyValue(k,v) {}; - - bool operator()(Option & o) { return o.load(_v); }; - bool operator()(SectionMap::value_type & v) { return v.second->load(_k,_v); }; - }; - - struct change_section: protected ConstKeyValue - { - change_section(const std::string & k, const std::string & v): ConstKeyValue(k,v) {}; - - bool operator()(Option & o) { return o.change(_v); }; - bool operator()(SectionMap::value_type & v) { return v.second->change(_k,_v); }; - }; - - struct store_section: protected KeyValue - { - store_section(const std::string & k, std::string & v): KeyValue(k,v) {}; - - bool operator()(Option & o) { return o.store(_v); }; - bool operator()(SectionMap::value_type & v) { return v.second->store(_k,_v); }; - }; - - struct set_section: protected ConstKeyValue - { - set_section(const std::string & k, const std::string & v): ConstKeyValue(k,v) {}; - - bool operator()(Option & o) { return (o.set(_v))[Option::F_ADJUSTED]; }; - bool operator()(SectionMap::value_type & v) { return v.second->set(_k,_v); }; - }; - - struct get_section: protected KeyValue - { - get_section(const std::string & k, std::string & v): KeyValue(k,v) {}; - - bool operator()(Option & o) { return o.get(_v); }; - bool operator()(SectionMap::value_type & v) { return v.second->get(_k,_v); }; - }; - - struct modified_section - { - bool operator()(const OptionMap::value_type & v) { return v.second.modified(); }; - bool operator()(const SectionMap::value_type & v) { return v.second->modified(); }; - }; - - public: -/* - bool load(const char * key, const std::string value) - { - std::string skey(key); - return search_and_apply(skey, value, load_section(skey, value)); - } -*/ - bool load(const std::string & key, const std::string & value) - { - return search_and_apply(key, value, load_section(key, value)); - } - - bool change(const std::string & key, const std::string & value) - { - return search_and_apply(key, value, change_section(key, value)); - } - - bool store(const std::string & key, std::string & value) - { - return search_and_apply(key, value, store_section(key, value)); - } - - bool set(const std::string & key, const std::string & value) - { - return search_and_apply(key, value, set_section(key, value)); - } - - bool get(const std::string & key, std::string & value) - { - return search_and_apply(key, value, get_section(key, value)); - } - - bool modified() const - { - return ((find_if(_options.begin(), _options.end(), modified_section()) != _options.end()) || - (find_if(_sections.begin(), _sections.end(), modified_section()) != _sections.end())); - } - - private: - Section(): _name(""), _description(""), _recursive(false) {}; - - protected: - const std::string _name; - const std::string _description; - - OptionMap _options; - SectionMap _sections; - - const bool _recursive; -}; - -#endif /* _CONFIG_SECTION_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/const_this.hpp b/src/mod/endpoints/mod_khomp/commons/base/const_this.hpp deleted file mode 100644 index 48e3c1e32f..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/const_this.hpp +++ /dev/null @@ -1,15 +0,0 @@ - -#ifndef _CONST_THIS_H_ -#define _CONST_THIS_H_ - -template < typename T > -struct ConstThis -{ - T const & constThis() const - { - // TODO: will this return the right reference? - return static_cast(*this); - } -}; - -#endif /* _CONST_THIS_H_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/flagger.hpp b/src/mod/endpoints/mod_khomp/commons/base/flagger.hpp deleted file mode 100644 index 49a4adda0f..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/flagger.hpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#include - -#ifndef _FLAGGER_HPP_ -#define _FLAGGER_HPP_ - -template < typename Flag > -struct Flagger -{ - protected: - struct Bool - { - Bool(): value(false) {}; - Bool(bool &v): value(v) {}; - - bool value; - }; - - typedef std::map< Flag, Bool > Map; - - public: - typedef Initializer< Flag > InitFlags; - - Flagger() {}; - - Flagger(InitFlags flags) - { - for (typename InitFlags::iterator i = flags.begin(); i != flags.end(); i++) - { - Flag & flag = (*i); - _map[flag].value = true; - }; - }; - - void set(Flag elt, bool value = true) - { - _map[elt].value = value; - } - - bool is_set(Flag elt) - { - return _map[elt].value; - } - - Flagger & operator&(Flag elt) - { - set(elt); - return *this; - }; - - bool operator[](Flag elt) - { - return is_set(elt); - }; - - protected: - Map _map; -}; - -#endif /* _FLAGGER_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/format.cpp b/src/mod/endpoints/mod_khomp/commons/base/format.cpp deleted file mode 100644 index 74223cc406..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/format.cpp +++ /dev/null @@ -1,337 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include "format.hpp" -//#include - -void FormatTraits::initialize(const char * format_string) -{ - std::string txt; - - const char * ptr = format_string; - - while (*ptr != '\0') - { - if (*ptr != '%') - { - txt += *ptr; - ++ptr; - continue; - } - - const char * ptr2 = ptr+1; - - if (*ptr2 == '%') - { - txt += *ptr; - ptr += 2; - continue; - } - - if (!txt.empty()) - push_argument(txt, T_LITERAL); - - std::string arg(1, *ptr); - - ++ptr; - - bool finished = false; - - short long_count = 0; - short short_count = 0; - - while(*ptr != '\0' && !finished) - { - switch (*ptr) - { - case ' ': - // uncomplete format with ' ', make it a literal. - arg += *ptr; - push_argument(arg, T_LITERAL); - finished = true; - break; - - case '%': - // uncomplete format with '%', make it a literal and start a new format. - push_argument(arg, T_LITERAL); - arg += *ptr; - break; - - case 'h': - short_count = std::min(short_count+1, 2); - long_count = 0; - arg += *ptr; - break; - - case 'l': - long_count = std::min(long_count+1, 2); - short_count = 0; - arg += *ptr; - break; - - case 'd': - case 'i': - arg += *ptr; - switch (long_count - short_count) - { - case 2: - push_argument(arg, T_SIGNED_LONG_LONG); - break; - case 1: - push_argument(arg, T_SIGNED_LONG); - break; - case 0: - push_argument(arg, T_SIGNED_INT); - break; - case -1: - push_argument(arg, T_SIGNED_SHORT); - break; - case -2: - push_argument(arg, T_SIGNED_SHORT_SHORT); - break; - default: - break; - } - finished = true; - break; - - case 'o': - case 'u': - case 'x': - case 'X': - arg += *ptr; - switch (long_count - short_count) - { - case 2: - push_argument(arg, T_UNSIGNED_LONG_LONG); - break; - case 1: - push_argument(arg, T_UNSIGNED_LONG); - break; - case 0: - push_argument(arg, T_UNSIGNED_INT); - break; - case -1: - push_argument(arg, T_UNSIGNED_SHORT); - break; - case -2: - push_argument(arg, T_UNSIGNED_SHORT_SHORT); - break; - default: - break; - } - finished = true; - break; - - case 'e': - case 'E': - case 'f': - case 'F': - case 'g': - case 'G': - case 'a': - case 'A': - arg += *ptr; - push_argument(arg, T_FLOAT); - finished = true; - break; - - case 'c': - arg += *ptr; - push_argument(arg, T_CHAR); - finished = true; - break; - - case 's': - arg += *ptr; - push_argument(arg, T_STRING); - finished = true; - break; - - case 'p': - arg += *ptr; - push_argument(arg, T_POINTER); - finished = true; - break; - - case 'C': - case 'S': - case 'm': - case 'n': // unsupported for now. - arg += *ptr; - push_argument(arg, T_ANYTHING); - finished = true; - break; - - default: - arg += *ptr; - break; - } - - ++ptr; - } - - if (!arg.empty()) - push_argument(arg, T_LITERAL); - } - - if (!txt.empty()) - push_argument(txt, T_LITERAL); -} - -void FormatTraits::push_argument(std::string & data, FormatTraits::Type type) -{ -// std::cerr << "pushing type (" << type << ") with format (" << data << ")" << std::endl; - - _args.push(Argument(data, type)); - data.clear(); -} - -void FormatTraits::pop_argument(void) -{ - _args.pop(); -} - -const FormatTraits::Argument * FormatTraits::next_argument(void) -{ -// std::cerr << "size: " << _args.size() << std::endl; - - while (true) - { -// std::cerr << "loop size: " << _args.size() << std::endl; - - if (_args.empty()) - return NULL; // throw NoArgumentLeft(); - - const Argument & top = _args.front(); - - if (top.type() == T_LITERAL) - { -// std::cerr << "top type == LITERAL, looping..." << std::endl; - _result += top.fmts(); - pop_argument(); - } - else - { -// std::cerr << "top type: " << top.type() << std::endl; - return ⊤ - } - } -} - -/******************************************************************/ - -#if 0 -Format::Format(const char * format_string, bool raise_exception) -: _format(format_string), _valid(true), _raise(raise_exception) -{ - FormatTraits::initialize(format_string); -} - -Format::Format(std::string format_string, bool raise_exception) -: _format(format_string), _valid(true), _raise(raise_exception) -{ - FormatTraits::initialize(format_string.c_str()); -} - -/* -Format::Format(std::string & format_string, bool raise_exception) -: _format(NULL), _valid(true), _raise(raise_exception) -{ - initialize(format_string.c_str()); -} -*/ - -void Format::mark_invalid(std::string & msg) -{ - if (_valid) - { - _valid = false; - - _result = "** INVALID FORMAT: "; - _result += msg; - _result += " **"; - } -} - -void Format::raise(void) const -{ - if (!_valid) - { - // call specialized class - FormatException::raise(_result); - } -} - -bool Format::valid(void) const -{ -// raise(); - return _valid; -} - -std::string Format::str() -{ - if (!valid()) - return _result; - -// try -// { - if (next_argument() != NULL) - { - std::string msg; - - msg += "too few arguments passed for format '"; - msg += _format; - msg += "' ("; - msg += _format; - msg += ")"; - - mark_invalid(msg); - - return _result; - } -// catch (NoArgumentLeft e) -// { -// return _result; -// } -} - -#endif diff --git a/src/mod/endpoints/mod_khomp/commons/base/format.hpp b/src/mod/endpoints/mod_khomp/commons/base/format.hpp deleted file mode 100644 index 0469e4fdf9..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/format.hpp +++ /dev/null @@ -1,561 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _FORMAT_H_ -#define _FORMAT_H_ - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef WIN32 // WINDOWS -# include -#endif - -struct InvalidFormat -{ - InvalidFormat(std::string _msg) : msg(_msg) {} - const std::string msg; -}; - -template < bool E > -struct FormatException -{ - void raise(const std::string & msg) const - { - /* DO NOTHING */ - }; -}; - -template < > -struct FormatException < true > -{ - void raise(const std::string & msg) const - { - throw InvalidFormat(msg); - }; -}; - -struct FormatTraits -{ - enum Type - { - T_ANYTHING = 1, - - T_SIGNED_SHORT, - T_SIGNED_SHORT_SHORT, - T_SIGNED_INT, - T_SIGNED_LONG, - T_SIGNED_LONG_LONG, - - T_UNSIGNED_SHORT, - T_UNSIGNED_SHORT_SHORT, - T_UNSIGNED_INT, - T_UNSIGNED_LONG, - T_UNSIGNED_LONG_LONG, - - T_FLOAT, - T_CHAR, - - T_POINTER, - T_STRING, - - T_LITERAL - }; - - struct Argument - { - Argument(std::string fmts, Type type) - : _fmts(fmts), _type(type) {}; - - const Type type(void) const { return _type; } - const std::string & fmts(void) const { return _fmts; } - - protected: - const std::string _fmts; - const Type _type; - }; - - typedef std::queue < Argument > ArgumentQueue; - - ////////////////////////////////// - - template < typename V > - bool number_verify_signed_short( V value ) const - { - return - ((typeid(V) == typeid(short int) || - typeid(V) == typeid(short) || - typeid(V) == typeid(const short int) || - typeid(V) == typeid(const short) || - typeid(V) == typeid(volatile short int) || - typeid(V) == typeid(volatile short)) && - sizeof(V) == sizeof(short)); - } - - template < typename V > - bool number_verify_unsigned_short( V value ) const - { - return - ((typeid(V) == typeid(unsigned short int) || - typeid(V) == typeid(unsigned short) || - typeid(V) == typeid(const unsigned short int) || - typeid(V) == typeid(const unsigned short) || - typeid(V) == typeid(volatile unsigned short int) || - typeid(V) == typeid(volatile unsigned short)) && - sizeof(V) == sizeof(unsigned short)); - } - - template < typename V > - bool number_verify_signed_long( V value ) const - { - return - ((typeid(V) == typeid(long int) || - typeid(V) == typeid(long) || - typeid(V) == typeid(const long int) || - typeid(V) == typeid(const long) || - typeid(V) == typeid(volatile long int) || - typeid(V) == typeid(volatile long)) && - sizeof(V) == sizeof(long)); - } - - template < typename V > - bool number_verify_unsigned_long( V value ) const - { - return - ((typeid(V) == typeid(unsigned long int) || - typeid(V) == typeid(unsigned long) || - typeid(V) == typeid(const unsigned long int) || - typeid(V) == typeid(const unsigned long) || - typeid(V) == typeid(volatile unsigned long int) || - typeid(V) == typeid(volatile unsigned long)) && - sizeof(V) == sizeof(long long)); - } - - template < typename V > - bool number_verify_signed_long_long( V value ) const - { - return - ((typeid(V) == typeid(long long int) || - typeid(V) == typeid(long long) || - typeid(V) == typeid(const long long int) || - typeid(V) == typeid(const long long) || - typeid(V) == typeid(volatile long long) || - typeid(V) == typeid(volatile long long int)) && - sizeof(V) == sizeof(long long)); - } - - template < typename V > - bool number_verify_unsigned_long_long( V value ) const - { - return - ((typeid(V) == typeid(unsigned long long int) || - typeid(V) == typeid(unsigned long long) || - typeid(V) == typeid(const unsigned long long int) || - typeid(V) == typeid(const unsigned long long) || - typeid(V) == typeid(volatile unsigned long long) || - typeid(V) == typeid(volatile unsigned long long int)) && - sizeof(V) == sizeof(unsigned long long)); - } - - template < typename V > - bool number_verify_signed_int( V value ) const - { - return - (sizeof(V) <= sizeof(int) || - typeid(V) == typeid(int) || - typeid(V) == typeid(const int) || - typeid(V) == typeid(volatile int)); - } - - template < typename V > - bool number_verify_unsigned_int( V value ) const - { - return - (sizeof(V) <= sizeof(unsigned int) || - typeid(V) == typeid(unsigned int) || - typeid(V) == typeid(const unsigned int) || - typeid(V) == typeid(volatile unsigned int)); - } - - template < typename V > - bool generic_verify( V value, const Type type ) const - { - switch (type) - { - /* EXCEPTION: consider any number an valid input. */ - case T_SIGNED_INT: - case T_UNSIGNED_INT: - return - (number_verify_signed_int(value) || - number_verify_unsigned_int(value) || - number_verify_signed_long(value) || - number_verify_unsigned_long(value) || - number_verify_signed_short(value) || - number_verify_unsigned_short(value)); - - case T_SIGNED_SHORT_SHORT: - return (typeid(V) == typeid(char) || typeid(V) == typeid(const char)); - - case T_SIGNED_SHORT: - return number_verify_signed_short(value); - - case T_SIGNED_LONG: - return number_verify_signed_long(value); - - case T_SIGNED_LONG_LONG: - return number_verify_signed_long_long(value); - - case T_UNSIGNED_SHORT_SHORT: - return (typeid(V) == typeid(unsigned char) || typeid(V) == typeid(unsigned char)); - - case T_UNSIGNED_SHORT: - return number_verify_unsigned_short(value); - - case T_UNSIGNED_LONG: - return number_verify_unsigned_long(value); - - case T_UNSIGNED_LONG_LONG: - return number_verify_unsigned_long_long(value); - - case T_FLOAT: - return (typeid(V) == typeid(float)) || (typeid(V) == typeid(double) || - typeid(V) == typeid(const float)) || (typeid(V) == typeid(const double)); - - case T_CHAR: - return (typeid(V) == typeid(char)) || (typeid(V) == typeid(unsigned char) || - typeid(V) == typeid(const char)) || (typeid(V) == typeid(const unsigned char)); - - case T_POINTER: - case T_STRING: - return false; - - case T_ANYTHING: - return true; - - case T_LITERAL: - return false; - } - - return false; - }; - - const Argument * next_argument(void); - - void push_argument(std::string & data, const Type type); - void pop_argument(void); - - void initialize(const char *); - - protected: - ArgumentQueue _args; - std::string _result; - -}; - -template < bool E = false > -struct FormatBase: protected FormatTraits, protected FormatException < E > -{ - static const unsigned int strings_base_length = 64; - static const unsigned int generic_base_length = 64; - - explicit FormatBase(const char * format_string) - : _format(format_string), _valid(true) - { - FormatTraits::initialize(format_string); - }; - - explicit FormatBase(std::string format_string) - : _format(format_string), _valid(true) - { - FormatTraits::initialize(format_string.c_str()); - }; - - bool valid(void) const - { - return _valid; - } - - const std::string str() - { - if (valid() && (next_argument() != NULL)) - { - std::string msg; - - // TODO: why format appears two times? - msg += "too few arguments passed for format '"; - msg += _format; - msg += "' ("; - msg += _format; - msg += ")"; - - mark_invalid(msg); - } - - raise(); - return _result; - }; - - //////////////////////////////////////////////////////////// - - template < typename V > - FormatBase & operator%( V value ) - { - if (!valid()) - return *this; - - const Argument * top = next_argument(); - - if (top == NULL) - { - std::string msg; - - msg += "too many arguments passed for format '"; - msg += _format; - msg += "'"; - - mark_invalid(msg); - } - else - { - char temp[generic_base_length]; - - if (!FormatTraits::generic_verify(value, top->type())) - { - std::string msg; - - msg += "type mismatch: got type '"; - msg += typeid(value).name(); - msg += "' in format '"; - msg += top->fmts(); - msg += "' ("; - msg += _format; - msg += ")"; - - mark_invalid(msg); - return *this; - } - - snprintf(temp, sizeof(temp), top->fmts().c_str(), value); - _result += temp; - - pop_argument(); - } - - raise(); - return *this; - } - - template < typename V > - FormatBase & operator%( V * value ) - { - if (!valid()) - return *this; - - const Argument * top = next_argument(); - - if (top == NULL) - { - std::string msg; - - msg += "too many arguments passed for format '"; - msg += _format; - msg += "'"; - - mark_invalid(msg); - } - else - { - switch (top->type()) - { - case T_POINTER: - { - char temp[generic_base_length]; - snprintf(temp, sizeof(temp), top->fmts().c_str(), value); - _result += temp; - break; - } - - case T_STRING: - { - if ((typeid(const char) == typeid(V)) || - (typeid(char) == typeid(V)) || - (typeid(const unsigned char) == typeid(V)) || - (typeid(unsigned char) == typeid(V)) || - (typeid(const void) == typeid(V)) || - (typeid(void) == typeid(V))) - { - int len = strlen((const char*)value)+strings_base_length+1; - - char * temp = new char[len]; - - snprintf(temp, len, top->fmts().c_str(), value); - _result += temp; - - delete[] temp; - } - else - { - std::string msg; - - msg += "type mismatch: got type '"; - msg += typeid(value).name(); - msg += "' in string format ("; - msg += _format; - msg += ")"; - - mark_invalid(msg); - } - break; - } - - default: - { - std::string msg; - - msg += "type mismatch: got pointer/string type in format '"; - msg += top->fmts(); - msg += "' ("; - msg += _format; - msg += ")"; - - mark_invalid(msg); - break; - } - } - - pop_argument(); - } - - raise(); - return *this; - } - - FormatBase & operator%( const std::string value ) - { - if (!valid()) - return *this; - - const Argument * top = next_argument(); - - if (top == NULL) - { - std::string msg; - - msg += "too many arguments passed for format '"; - msg += _format; - msg += "'"; - - mark_invalid(msg); - } - else - { - if (top->type() == T_STRING) - { - int len = value.length()+strings_base_length+1; - - char * temp = new char[len]; - - snprintf(temp, len, top->fmts().c_str(), value.c_str()); - _result += temp; - - delete[] temp; - } - else - { - std::string msg; - - msg += "type mismatch: got string type in format '"; - msg += top->fmts(); - msg += "' ("; - msg += _format; - msg += ")"; - - mark_invalid(msg); - } - - pop_argument(); - } - - raise(); - return *this; - } - - protected: - void mark_invalid(std::string & msg) - { - if (_valid) - { - _valid = false; - - _result = "** INVALID FORMAT: "; - _result += msg; - _result += " **"; - } - } - - void raise(void) const - { - if (!_valid) - { - // call specialized class - FormatException< E >::raise(_result); - } - } - - private: - const std::string _format; - bool _valid; -}; - -/* useful typedef for general usage (not generating exceptions) */ -typedef FormatBase<> Format; - -/* macros used for shortening lines and making the code clearer */ -#define STG(x) (x).str() -#define FMT(x) Format(x) - -#endif /* _FORMAT_H_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/function.hpp b/src/mod/endpoints/mod_khomp/commons/base/function.hpp deleted file mode 100644 index 7470bf245d..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/function.hpp +++ /dev/null @@ -1,429 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the "LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#ifndef _FUNCTION_HPP_ -#define _FUNCTION_HPP_ - -namespace Function -{ - struct EmptyFunction {}; - struct NonMemberFunction {}; - - /**/ - - template < typename FunctionTraits > - struct StorageBase: COUNTER_SUPER(StorageBase < FunctionTraits >) - { - typedef typename FunctionTraits::BaseType BaseType; - - typedef typename FunctionTraits::FunType FunType; - typedef typename FunctionTraits::ObjType ObjType; - - template < typename Functor > - StorageBase(const Functor f) - : _object(reinterpret_cast< ObjType >(new Functor(f))), - _function(reinterpret_cast< FunType >(&Functor::operator())), - _malloced(true) - {}; - - template < typename Functor > - StorageBase(Functor & f, bool malloced) - : _object(reinterpret_cast< ObjType >((malloced ? new Functor(f) : &f))), - _function(reinterpret_cast< FunType >(&Functor::operator())), - _malloced(malloced) - {}; - - StorageBase(FunType const * member) - : _object(reinterpret_cast< ObjType >(0)), - _function(reinterpret_cast< FunType >(member)), - _malloced(false) - {}; - - StorageBase() - : _object(reinterpret_cast< ObjType >(0)), - _function(reinterpret_cast< FunType >(0)), - _malloced(false) - {}; - - StorageBase(const StorageBase & o) - : COUNTER_REFER(o, StorageBase < FunctionTraits >), - _object(o._object), _function(o._function), _malloced(o._malloced) - {}; - - virtual ~StorageBase() {}; - - void unreference() - { - // TODO: will this work if we delete a different type? // - if (_malloced) - delete _object; - }; - - template < typename Functor > - void operator=(Functor f) - { - _object = reinterpret_cast< ObjType >(new Functor(f)), - _function = reinterpret_cast< FunType >(&Functor::operator()); - _malloced = true; - } - - protected: - ObjType _object; - FunType _function; - bool _malloced; - }; - - /**/ - - template < typename R > - struct VTable0 - { - R operator()(void) { return R(); }; - }; - - template < > - struct VTable0< void > - { - void operator()(void) { return; }; - }; - - template < typename R > - struct Function0Traits - { - typedef VTable0 BaseType; - - typedef R (BaseType::* FunType)(void); - typedef BaseType * ObjType; - }; - - /**/ - - template < typename R, typename A0 > - struct VTable1 - { - R operator()(A0 a0) { return R(); }; - }; - - template < typename A0 > - struct VTable1< void, A0 > - { - void operator()(A0 a0) { return; }; - }; - - template < typename R, typename A0 > - struct Function1Traits - { - typedef VTable1 BaseType; - - typedef R (BaseType::* FunType)(A0); - typedef BaseType * ObjType; - }; - - /**/ - - template < typename R, typename A0, typename A1 > - struct VTable2 - { - R operator()(A0 a0, A1) { return R(); }; - }; - - template < typename A0, typename A1 > - struct VTable2< void, A0, A1 > - { - void operator()(A0 a0, A1 a1) { return; }; - }; - - template < typename R, typename A0, typename A1 > - struct Function2Traits - { - typedef VTable2 BaseType; - - typedef R (BaseType::* FunType)(A0, A1); - typedef BaseType * ObjType; - }; - - /**/ - - template < typename R, typename A0, typename A1, typename A2 > - struct VTable3 - { - R operator()(A0 a0, A1 a1, A2 a2) { return R(); }; - }; - - template < typename A0, typename A1, typename A2 > - struct VTable3< void, A0, A1, A2 > - { - void operator()(A0 a0, A1 a1, A2 a2) { return; }; - }; - - template < typename R, typename A0, typename A1, typename A2 > - struct Function3Traits - { - typedef VTable3 BaseType; - - typedef R (BaseType::* FunType)(A0, A1, A2); - typedef BaseType * ObjType; - }; - - /**/ - - template < typename R, typename A0, typename A1, typename A2, typename A3 > - struct VTable4 - { - R operator()(A0 a0, A1 a1, A2 a2, A3 a3) { return R(); }; - }; - - template < typename A0, typename A1, typename A2, typename A3 > - struct VTable4< void, A0, A1, A2, A3 > - { - void operator()(A0 a0, A1 a1, A2 a2, A3 a3) { return; }; - }; - - template < typename R, typename A0, typename A1, typename A2, typename A3 > - struct Function4Traits - { - typedef VTable4 BaseType; - - typedef R (BaseType::* FunType)(A0, A1, A2, A3); - typedef BaseType * ObjType; - }; - - /**/ - - template < typename R, typename A0 > - struct Function0 : public StorageBase < Function0Traits < R > > - { - typedef StorageBase < Function0Traits < R > > Storage; - - template < typename Functor > - Function0(const Functor f) - : Storage(f) {}; - - template < typename Functor > - Function0(Functor & f, bool m) - : Storage(f, m) {}; - - Function0(const typename Function0Traits < R >::FunType * m) - : Storage(m) {}; - - Function0() {}; - - R operator()(void) - { - if (reinterpret_cast(Storage::_object) == 0) - throw EmptyFunction(); - - return ((Storage::_object)->*(Storage::_function))(); - } - - template < typename Object > - R operator()(Object * object) - { - if (reinterpret_cast(Storage::_function) == 0) - throw EmptyFunction(); - - if (reinterpret_cast(Storage::_object) != 0) - throw NonMemberFunction(); - - return (reinterpret_cast< typename Function0Traits < R >::ObjType *>(object)->*(Storage::_function))(); - } - }; - - template < typename R, typename A0 > - struct Function1 : public StorageBase < Function1Traits < R, A0 > > - { - typedef StorageBase < Function1Traits < R, A0 > > Storage; - - template < typename Functor > - Function1(const Functor f) - : Storage(f) {}; - - template < typename Functor > - Function1(Functor & f, bool m) - : Storage(f, m) {}; - - Function1(const typename Function1Traits < R, A0 >::FunType * m) - : Storage(m) {}; - - Function1() {}; - - R operator()(A0 a0) - { - if (reinterpret_cast(Storage::_object) == 0) - throw EmptyFunction(); - - return ((Storage::_object)->*(Storage::_function))(a0); - } - - template < typename Object > - R operator()(Object * object, A0 a0) - { - if (reinterpret_cast(Storage::_function) == 0) - throw EmptyFunction(); - - if (reinterpret_cast(Storage::_object) != 0) - throw NonMemberFunction(); - - return (reinterpret_cast< typename Function1Traits < R, A0 >::ObjType *>(object)->*(Storage::_function))(a0); - } - }; - - template < typename R, typename A0, typename A1 > - struct Function2 : public StorageBase < Function2Traits < R, A0, A1 > > - { - typedef StorageBase < Function2Traits < R, A0, A1 > > Storage; - - template < typename Functor > - Function2(const Functor f) - : Storage(f) {}; - - template < typename Functor > - Function2(Functor & f, bool m) - : Storage(f, m) {}; - - Function2(const typename Function2Traits < R, A0, A1 >::FunType * m) - : Storage(m) {}; - - Function2() {}; - - R operator()(A0 a0, A1 a1) - { - if (reinterpret_cast(Storage::_object) == 0) - throw EmptyFunction(); - - return ((Storage::_object)->*(Storage::_function))(a0, a1); - } - - template < typename Object > - R operator()(Object * object, A0 a0, A1 a1) - { - if (reinterpret_cast(Storage::_function) == 0) - throw EmptyFunction(); - - if (reinterpret_cast(Storage::_object) != 0) - throw NonMemberFunction(); - - return (reinterpret_cast< typename Function2Traits < R, A0, A1 >::ObjType *>(object)->*(Storage::_function))(a0, a1); - } - }; - - template < typename R, typename A0, typename A1, typename A2 > - struct Function3 : public StorageBase < Function3Traits < R, A0, A1, A2 > > - { - typedef StorageBase < Function3Traits < R, A0, A1, A2 > > Storage; - - template < typename Functor > - Function3(const Functor f) - : Storage(f) {}; - - template < typename Functor > - Function3(Functor & f, bool m) - : Storage(f, m) {}; - - Function3(const typename Function3Traits < R, A0, A1, A2 >::FunType * m) - : Storage(m) {}; - - Function3() {}; - - R operator()(A0 a0, A1 a1, A2 a2) - { - if (reinterpret_cast(Storage::_object) == 0) - throw EmptyFunction(); - - return ((Storage::_object)->*(Storage::_function))(a0, a1, a2); - } - - template < typename Object > - R operator()(Object * object, A0 a0, A1 a1, A2 a2) - { - if (reinterpret_cast(Storage::_function) == 0) - throw EmptyFunction(); - - if (reinterpret_cast(Storage::_object) != 0) - throw NonMemberFunction(); - - return (reinterpret_cast< typename Function3Traits < R, A0, A1, A2 >::ObjType *>(object)->*(Storage::_function))(a0, a1, a2); - } - }; - - template < typename R, typename A0, typename A1, typename A2, typename A3 > - struct Function4 : public StorageBase < Function4Traits < R, A0, A1, A2, A3 > > - { - typedef StorageBase < Function4Traits < R, A0, A1, A2, A3 > > Storage; - - template < typename Functor > - Function4(const Functor f) - : Storage(f) {}; - - template < typename Functor > - Function4(Functor & f, bool m) - : Storage(f, m) {}; - - Function4(const typename Function4Traits < R, A0, A1, A2, A3 >::FunType * m) - : Storage(m) {}; - - Function4() {}; - - R operator()(A0 a0, A1 a1, A2 a2, A3 a3) - { - if (reinterpret_cast(Storage::_object) == 0) - throw EmptyFunction(); - - return ((Storage::_object)->*(Storage::_function))(a0, a1, a2, a3); - } - - template < typename Object > - R operator()(Object * object, A0 a0, A1 a1, A2 a2, A3 a3) - { - if (reinterpret_cast(Storage::_function) == 0) - throw EmptyFunction(); - - if (reinterpret_cast(Storage::_object) != 0) - throw NonMemberFunction(); - - return (reinterpret_cast< typename Function4Traits < R, A0, A1, A2, A3 >::ObjType *>(object)->*(Storage::_function))(a0, a1, a2, a3); - } - }; -}; - -#endif /* _FUNCTION_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/initializer.hpp b/src/mod/endpoints/mod_khomp/commons/base/initializer.hpp deleted file mode 100644 index 16359e8c97..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/initializer.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#ifndef _INITIALIZER_HPP_ -#define _INITIALIZER_HPP_ - -template < typename Type > -struct Initializer: public std::vector< Type > -{ - typedef std::vector< Type > Super; - - Initializer(Type e) { Super::push_back(e); }; - Initializer(Type & e) { Super::push_back(e); }; - - Initializer & operator&(const Initializer v) - { - Super::insert(Super::end(), v.begin(), v.end()); - return *this; - }; - - Initializer & operator&(Initializer & v) - { - Super::insert(Super::end(), v.begin(), v.end()); - return *this; - }; - - Initializer & operator&(Type v) - { - Super::insert(Super::end(), v); - return *this; - }; - - Initializer & operator&(Type & v) - { - Super::insert(Super::end(), v); - return *this; - }; -}; - -#endif /* _INITIALIZER_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/k3lapi.cpp b/src/mod/endpoints/mod_khomp/commons/base/k3lapi.cpp deleted file mode 100644 index ffc9d93435..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/k3lapi.cpp +++ /dev/null @@ -1,318 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#include - -K3LAPIBase::K3LAPIBase() -: _device_count(0), _channel_count(0), _link_count(0), - _device_config(0), _channel_config(0), _link_config(0) -{}; - -/* initialize the whole thing! */ - -void K3LAPIBase::start(void) -{ - /* tie the used k3l to the compiled k3l version */ - char *ret = k3lStart(k3lApiMajorVersion, k3lApiMinorVersion, 0); //k3lApiBuildVersion); - - if (ret && *ret) - throw start_failed(ret); - - /* call init automagically */ - init(); -} - -void K3LAPIBase::stop(void) -{ - k3lStop(); - fini(); -} - -/* envio de comandos para placa */ - -void K3LAPIBase::mixer(int32 dev, int32 obj, byte track, KMixerSource src, int32 index) const -{ - KMixerCommand mix; - - mix.Track = track; - mix.Source = src; - mix.SourceIndex = index; - - command(dev, obj, CM_MIXER, (const char *) &mix); -} - -void K3LAPIBase::mixerRecord(int32 dev, KDeviceType type, int32 obj, byte track, KMixerSource src, int32 index) const -{ - /* estes buffers *NAO PODEM SER ESTATICOS*! */ - char cmd[] = { 0x3f, 0x03, (char)obj, (char)track, 0xff, 0xff }; - - switch (src) - { - case kmsChannel: - cmd[4] = 0x05; - cmd[5] = (char)index; - break; - - case kmsNoDelayChannel: - cmd[4] = 0x0a; - cmd[5] = (char)index; - break; - - case kmsGenerator: - cmd[4] = 0x09; - - switch ((KMixerTone)index) - { - case kmtSilence: - cmd[5] = 0x0F; - break; - case kmtDial: - cmd[5] = 0x08; - break; - case kmtBusy: - cmd[5] = 0x0D; - break; - - case kmtFax: - case kmtVoice: - case kmtEndOf425: - case kmtCollect: - case kmtEndOfDtmf: - /* TODO: exception, unable to generate */ - break; - } - break; - - case kmsCTbus: - case kmsPlay: - /* TODO: exception, not implemented! */ - break; - } - - int32 dsp = get_dsp(type, DSP_AUDIO); - - raw_command(dev, dsp, cmd, sizeof(cmd)); -} - -void K3LAPIBase::mixerCTbus(int32 dev, int32 obj, byte track, KMixerSource src, int32 index) const -{ - KMixerCommand mix; - - mix.Track = track; - mix.Source = src; - mix.SourceIndex = index; - - command(dev, obj, CM_MIXER_CTBUS, (const char *) &mix); -} - -void K3LAPIBase::command(int32 dev, int32 obj, int32 code, std::string & str) const -{ - command(dev, obj, code, str.c_str()); -} - -void K3LAPIBase::command (int32 dev, int32 obj, int32 code, const char * parms) const -{ - K3L_COMMAND cmd; - - cmd.Cmd = code; - cmd.Object = obj; - cmd.Params = (byte *)parms; - - int32 rc = k3lSendCommand(dev, &cmd); - - if (rc != ksSuccess) - throw failed_command(code, dev, obj, rc); -} - -void K3LAPIBase::raw_command(int32 dev, int32 dsp, std::string & str) const -{ - raw_command(dev, dsp, str.data(), str.size()); -} - -void K3LAPIBase::raw_command(int32 dev, int32 dsp, const char * cmds, int32 size) const -{ - std::string str(cmds, size); - - int32 rc = k3lSendRawCommand(dev, dsp, (void *)cmds, size); - - if (rc != ksSuccess) - throw failed_raw_command(dev, dsp, rc); -} - -KLibraryStatus K3LAPIBase::get_param(K3L_EVENT *ev, const char *name, std::string &res) const -{ - char tmp_param[256]; - memset((void*)tmp_param, 0, sizeof(tmp_param)); - - int32 rc = k3lGetEventParam (ev, (sbyte *)name, (sbyte *)tmp_param, sizeof(tmp_param)-1); - - if (rc != ksSuccess) - return (KLibraryStatus)rc; - - res.append(tmp_param, strlen(tmp_param)); - return ksSuccess; -} - -std::string K3LAPIBase::get_param(K3L_EVENT *ev, const char *name) const -{ - std::string res; - - KLibraryStatus rc = get_param(ev, name, res); - - if (rc != ksSuccess) - throw get_param_failed(name, rc); - - return res; -} - -std::string K3LAPIBase::get_param_optional(K3L_EVENT *ev, const char *name) const -{ - std::string res; - - (void)get_param(ev, name, res); - - return res; -} - -void K3LAPIBase::init(void) -{ - if (_device_count != 0) return; - - _device_count = k3lGetDeviceCount(); - - _device_type = new KDeviceType[_device_count]; - _device_config = new device_conf_type[_device_count]; - _channel_config = new channel_ptr_conf_type[_device_count]; - _link_config = new link_ptr_conf_type[_device_count]; - _channel_count = new unsigned int[_device_count]; - _link_count = new unsigned int[_device_count]; - - for (unsigned int dev = 0; dev < _device_count; dev++) - { - _device_type[dev] = (KDeviceType) k3lGetDeviceType(dev); - - /* caches each device config */ - if (k3lGetDeviceConfig(dev, ksoDevice + dev, &(_device_config[dev]), sizeof(_device_config[dev])) != ksSuccess) - throw start_failed("k3lGetDeviceConfig(device)"); - - /* adjust channel/link count for device */ - _channel_count[dev] = _device_config[dev].ChannelCount; - _link_count[dev] = _device_config[dev].LinkCount; - - /* caches each channel config */ - _channel_config[dev] = new channel_conf_type[_channel_count[dev]]; - - for (unsigned int obj = 0; obj < _channel_count[dev]; obj++) - { - if (k3lGetDeviceConfig(dev, ksoChannel + obj, &(_channel_config[dev][obj]), - sizeof(_channel_config[dev][obj])) != ksSuccess) - throw start_failed("k3lGetDeviceConfig(channel)"); - } - - /* adjust link count for device */ - _link_count[dev] = _device_config[dev].LinkCount; - - /* caches each link config */ - _link_config[dev] = new link_conf_type[_link_count[dev]]; - - for (unsigned int obj = 0; obj < _link_count[dev]; obj++) - { - if (k3lGetDeviceConfig(dev, ksoLink + obj, &(_link_config[dev][obj]), - sizeof(_link_config[dev][obj])) != ksSuccess) - throw start_failed("k3lGetDeviceConfig(link)"); - } - } -} - -void K3LAPIBase::fini(void) -{ - for (unsigned int dev = 0; dev < _device_count; dev++) - { - if (_channel_config[dev]) - { - delete[] _channel_config[dev]; - _channel_config[dev] = NULL; - } - - if (_link_config[dev]) - { - delete[] _link_config[dev]; - _link_config[dev] = NULL; - } - } - - _device_count = 0; - - if (_device_type) { delete[] _device_type; _device_type = NULL; } - if (_device_config) { delete[] _device_config; _device_config = NULL; } - if (_channel_config) { delete[] _channel_config; _channel_config = NULL; } - if (_link_config) { delete[] _link_config; _link_config = NULL; } - if (_channel_count) { delete[] _channel_count; _channel_count = NULL; } - if (_link_count) { delete[] _link_count; _link_count = NULL; } -} - -int32 K3LAPIBase::get_dsp(KDeviceType devtype, K3LAPI::DspType type) const -{ - switch (devtype) - { - case kdtFXO: - case kdtFXOVoIP: -#if K3L_AT_LEAST(1,6,0) - case kdtGSM: - case kdtGSMSpx: -#endif -#if K3L_AT_LEAST(2,1,0) - case kdtGSMUSB: - case kdtGSMUSBSpx: -#endif - return 0; - - default: - return (type == DSP_AUDIO ? 1 : 0); - } -} - -int32 K3LAPIBase::get_dsp(const K3LAPIBase::GenericTarget & tgt, K3LAPI::DspType type) const -{ - return get_dsp(_device_type[tgt.device], type); -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/k3lapi.hpp b/src/mod/endpoints/mod_khomp/commons/base/k3lapi.hpp deleted file mode 100644 index f65d52405a..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/k3lapi.hpp +++ /dev/null @@ -1,494 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include - -#include - -#include - -/* if using full k3l.h (for softpbx), version already defined. */ -#ifndef k3lApiMajorVersion -# include -#endif - -#ifdef __GNUC_PREREQ -#if __GNUC_PREREQ(4,3) -#include -#endif -#endif - -#include - -#ifndef _K3LAPI_HPP_ -#define _K3LAPI_HPP_ - -struct K3LAPITraits -{ - struct invalid_device; - struct invalid_channel; - struct invalid_link; - - struct invalid_target: public std::runtime_error - { - friend class invalid_device; - friend class invalid_channel; - friend class invalid_link; - - const int32 device, object; - - protected: - invalid_target(int32 _device, int32 _object, const std::string & msg) - : std::runtime_error(msg), device(_device), object(_object) {}; - }; - - struct invalid_device: public invalid_target - { - invalid_device(int32 _device) - : invalid_target(_device, -1, STG(FMT("invalid device number '%d'") % _device)) {}; - }; - - struct invalid_channel: public invalid_target - { - invalid_channel(int32 _device, int32 _channel) - : invalid_target(_device, _channel, STG(FMT("invalid channel number '%d' on device '%d'") % _channel % _device)) {}; - }; - - struct invalid_link: public invalid_target - { - invalid_link(int32 _device, int32 _link) - : invalid_target(_device, _link, STG(FMT("invalid link number '%d' on device '%d'") % _link % _device)) {}; - }; -}; - -struct K3LAPIBase -{ - /* High level checked object identifier. */ - - struct GenericTarget - { - typedef enum { DEVICE, CHANNEL, MIXER, LINK } Type; - - GenericTarget(const K3LAPIBase & k3lapi, Type _type, int32 _device, int32 _object) - : type(_type), device((unsigned int)_device), object((unsigned int)_object) - { - switch (_type) - { - case DEVICE: - if (!k3lapi.valid_device(_device)) - throw K3LAPITraits::invalid_device(_device); - break; - - case CHANNEL: - case MIXER: - if (!k3lapi.valid_channel(_device, _object)) - throw K3LAPITraits::invalid_channel(_device, _object); - break; - - case LINK: - if (!k3lapi.valid_link(_device, _object)) - throw K3LAPITraits::invalid_link(_device, _object); - break; - } - }; - - const Type type; - - const unsigned int device; - const unsigned int object; - }; - -/* - struct LinkTarget : public GenericTarget - { - LinkTarget(const K3LAPIBase & k3lapi, int32 _device, int32 _object) - : GenericTarget(k3lapi, GenericTarget::LINK, _device, _object) {}; - }; - - struct ChannelTarget : public GenericTarget - { - ChannelTarget(const K3LAPIBase & k3lapi, int32 _device, int32 _object) - : GenericTarget(k3lapi, GenericTarget::CHANNEL, _device, _object) {}; - }; - -*/ - template < GenericTarget::Type T > - struct Target: public GenericTarget - { - Target(const K3LAPIBase & k3lapi, int32 _device, int32 _object) - : GenericTarget(k3lapi, T, _device, _object) {}; - -// operator const GenericTarget&() const { return static_cast(*this); }; - }; - - /* exceptions */ - - struct start_failed: public std::runtime_error - { - start_failed(const char * msg) - : std::runtime_error(msg) {}; - }; - - struct failed_command - { - failed_command(int32 _code, unsigned short _dev, unsigned short _obj, int32 _rc) - : code(_code), dev(_dev), obj(_obj), rc(_rc) {}; - - int32 code; - unsigned short dev; - unsigned short obj; - int32 rc; - }; - - struct failed_raw_command - { - failed_raw_command(unsigned short _dev, unsigned short _dsp, int32 _rc) - : dev(_dev), dsp(_dsp), rc(_rc) {}; - - unsigned short dev; - unsigned short dsp; - int32 rc; - }; - - struct get_param_failed - { - get_param_failed(std::string _name, int32 _rc) - : name(_name), rc((KLibraryStatus)_rc) {}; - - std::string name; - KLibraryStatus rc; - }; - - /* typedefs essenciais */ - - typedef K3L_DEVICE_CONFIG device_conf_type; - typedef K3L_CHANNEL_CONFIG channel_conf_type; - typedef K3L_CHANNEL_CONFIG * channel_ptr_conf_type; - typedef K3L_LINK_CONFIG link_conf_type; - typedef K3L_LINK_CONFIG * link_ptr_conf_type; - - /* constructors/destructors */ - - K3LAPIBase(); - virtual ~K3LAPIBase() {}; - - /* (init|final)ialize the whole thing! */ - - void start(void); - void stop(void); - - /* verificacao de intervalos */ - - inline bool valid_device(int32 dev) const - { - return (dev >= 0 && dev < ((int32)_device_count)); - } - - inline bool valid_channel(int32 dev, int32 obj) const - { - return (valid_device(dev) && obj >= 0 && obj < ((int32)_channel_count[dev])); - } - - inline bool valid_link(int32 dev, int32 obj) const - { - return (valid_device(dev) && obj >= 0 && obj < ((int32)_link_count[dev])); - } - - /* envio de comandos para placa (geral) */ - - void raw_command(int32 dev, int32 dsp, std::string & str) const; - void raw_command(int32 dev, int32 dsp, const char * cmds, int32 size) const; - - /* obter dados 'cacheados' (geral) */ - - inline unsigned int device_count(void) const - { - return _device_count; - } - - /* envio de comandos para placa (sem identificadores) */ - - void mixer(int32 dev, int32 obj, byte track, KMixerSource src, int32 index) const; - void mixerRecord(int32 dev, KDeviceType type, int32 obj, byte track, KMixerSource src, int32 index) const; - void mixerCTbus(int32 dev, int32 obj, byte track, KMixerSource src, int32 index) const; - - void command (int32 dev, int32 obj, int32 code, std::string & str) const; - void command (int32 dev, int32 obj, int32 code, const char * parms = NULL) const; - - - /* envio de comandos para placa (com identificadores) */ - - void mixer(const GenericTarget & tgt, byte track, KMixerSource src, int32 index) const - { - mixer(tgt.device, tgt.object, track, src, index); - } - - void mixerRecord(const GenericTarget & tgt, byte track, KMixerSource src, int32 index) const - { - mixerRecord((int32)tgt.device, _device_type[tgt.device], (int32)tgt.object, track, src, index); - } - - void mixerCTbus(const GenericTarget & tgt, byte track, KMixerSource src, int32 index) const - { - mixerCTbus((int32)tgt.device, (int32)tgt.object, track, src, index); - } - - void command(const GenericTarget & tgt, int32 code, std::string & str) const - { - command((int32)tgt.device, (int32)tgt.object, code, str); - }; - - void command(const GenericTarget & tgt, int32 code, const char * parms = NULL) const - { - command((int32)tgt.device, (int32)tgt.object, code, parms); - }; - - /* obter dados 'cacheados' (com indentificadores) */ - - inline unsigned int channel_count(const GenericTarget & tgt) const - { - return _channel_count[tgt.device]; - } - - inline unsigned int link_count(const GenericTarget & tgt) const - { - return _link_count[tgt.device]; - } - - KDeviceType device_type(const GenericTarget & tgt) const - { - return _device_type[tgt.device]; - } - - const K3L_DEVICE_CONFIG & device_config(const GenericTarget & tgt) const - { - return _device_config[tgt.device]; - } - - const K3L_CHANNEL_CONFIG & channel_config(const Target & tgt) const - { - return _channel_config[tgt.device][tgt.object]; - } - - const K3L_LINK_CONFIG & link_config(const Target & tgt) const - { - return _link_config[tgt.device][tgt.object]; - } - - /* pega valores em strings de eventos */ - - KLibraryStatus get_param(K3L_EVENT *ev, const char *name, std::string &res) const; - - std::string get_param(K3L_EVENT *ev, const char *name) const; - std::string get_param_optional(K3L_EVENT *ev, const char *name) const; - - /* inicializa valores em cache */ - - void init(void); - void fini(void); - - /* utilidades diversas e informacoes */ - - enum DspType - { - DSP_AUDIO, - DSP_SIGNALING, - }; - - int32 get_dsp(KDeviceType, DspType) const; - - int32 get_dsp(const GenericTarget &, DspType) const; - - protected: - - unsigned int _device_count; - unsigned int * _channel_count; - unsigned int * _link_count; - - device_conf_type * _device_config; - channel_ptr_conf_type * _channel_config; - link_ptr_conf_type * _link_config; - KDeviceType * _device_type; -}; - -/* exceptions */ -template < bool E = false > -struct K3LAPIException -{ - void invalid_device(const int32 device) const - { - /* NOTHING */ - } - - void invalid_channel(const int32 device, const int32 channel) const - { - /* NOTHING */ - } - - void invalid_link(const int32 device, const int32 link) const - { - /* NOTHING */ - } -}; - -template < > -struct K3LAPIException < true > -{ - void invalid_device(const int32 device) const - { - throw K3LAPITraits::invalid_device(device); - } - - void invalid_channel(const int32 device, const int32 channel) const - { - throw K3LAPITraits::invalid_channel(device, channel); - } - - void invalid_link(const int32 device, const int32 link) const - { - throw K3LAPITraits::invalid_link(device, link); - } -}; - -template < bool E = false > -struct K3LAPITemplate: public K3LAPIBase, protected K3LAPIException < E > -{ - using K3LAPIBase::device_config; - using K3LAPIBase::channel_config; - using K3LAPIBase::link_config; - - using K3LAPIBase::device_type; - using K3LAPIBase::get_dsp; - - using K3LAPIBase::mixerRecord; - - /* obter dados 'cacheados' (sem identificadores) */ - - inline unsigned int channel_count(int32 dev) const - { - if (!valid_device(dev)) - { - K3LAPIException< E >::invalid_device(dev); - return 0; - } - - return _channel_count[dev]; - } - - inline unsigned int link_count(int32 dev) const - { - if (!valid_device(dev)) - { - K3LAPIException< E >::invalid_device(dev); - return 0; - } - - return _link_count[dev]; - } - - inline uint32 channel_stats(int32 dev, int32 obj, uint32 index) const - { - if (!valid_channel(dev, obj)) - { - K3LAPIException< E >::invalid_channel(dev, obj); - return 0u; - } - - uint32 res_value = 0u; - -#if K3L_AT_LEAST(2,1,0) - if (k3lGetChannelStats(dev, obj, index, &res_value) != ksSuccess) - return 0u; - - return res_value; -#endif - } - - KDeviceType device_type(int32 dev) const - { - if (!valid_device(dev)) - { - K3LAPIException< E >::invalid_device(dev); - return kdtDevTypeCount; - } - - return _device_type[dev]; - } - - const K3L_DEVICE_CONFIG & device_config(int32 dev) const - { - if (!valid_device(dev)) - throw K3LAPITraits::invalid_device(dev); - - return _device_config[dev]; - } - - const K3L_CHANNEL_CONFIG & channel_config(int32 dev, int32 obj) const - { - if (!valid_channel(dev, obj)) - throw K3LAPITraits::invalid_channel(dev, obj); - - return _channel_config[dev][obj]; - } - - const K3L_LINK_CONFIG & link_config(int32 dev, int32 obj) const - { - if (!valid_link(dev, obj)) - throw K3LAPITraits::invalid_link(dev, obj); - - return _link_config[dev][obj]; - } - - int32 get_dsp(int32 dev, DspType type) const - { - return get_dsp(device_type(dev), type); - } - - void mixerRecord(int32 dev, int32 obj, byte track, KMixerSource src, int32 index) const - { - mixerRecord(dev, device_type(dev), obj, track, src, index); - } -}; - -typedef K3LAPITemplate<> K3LAPI; - -#endif /* _K3LAPI_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/k3lutil.cpp b/src/mod/endpoints/mod_khomp/commons/base/k3lutil.cpp deleted file mode 100644 index 3fda813a03..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/k3lutil.cpp +++ /dev/null @@ -1,206 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -std::string K3LUtil::channelStatus(int32 dev, int32 channel, - Verbose::Presentation fmt) -{ - try - { - const K3L_CHANNEL_CONFIG & config = _k3lapi.channel_config(dev, channel); - - K3L_CHANNEL_STATUS status; - - KLibraryStatus ret = (KLibraryStatus) k3lGetDeviceStatus (dev, - channel + ksoChannel, &status, sizeof(status)); - - switch (ret) - { - case ksSuccess: return Verbose::channelStatus(config.Signaling, - status.AddInfo, fmt); - default: return (fmt == Verbose::EXACT ? "" - : "Unknown (fail)"); - } - } - catch(K3LAPITraits::invalid_channel & e) - { - return (fmt == Verbose::EXACT ? "" : "Unknown (fail)"); - } -} - -std::string K3LUtil::callStatus(int32 dev, int32 channel, - Verbose::Presentation fmt) -{ - K3L_CHANNEL_STATUS status; - - KLibraryStatus ret = (KLibraryStatus) k3lGetDeviceStatus(dev, - channel + ksoChannel, &status, sizeof(status)); - - switch (ret) - { - case ksSuccess: return Verbose::callStatus(status.CallStatus, fmt); - default: return (fmt == Verbose::EXACT ? "" - : "Unknown (fail)"); - } -} - -std::string K3LUtil::linkStatus(int32 dev, int32 link, - Verbose::Presentation fmt, KSignaling signaling, bool simpleStatus) -{ - try - { - if (signaling == ksigInactive) - { - const K3L_LINK_CONFIG & config = _k3lapi.link_config(dev, link); - signaling = config.Signaling; - } - - K3L_LINK_STATUS status; - - KLibraryStatus ret = (KLibraryStatus) k3lGetDeviceStatus (dev, - link + ksoLink, &status, sizeof(status)); - - switch (ret) - { - case ksSuccess: return Verbose::linkStatus(signaling, status.E1, fmt, simpleStatus); - default: return (fmt == Verbose::EXACT ? - "" : "Unknown (failure)"); - } - } - catch(K3LAPITraits::invalid_channel & e) - { - return (fmt == Verbose::EXACT ? "" - : "Unknown (failure)"); - } -} - - -unsigned int K3LUtil::physicalLinkCount(int32 dev, bool count_virtual) -{ - unsigned int number = 0; - - try - { - switch (_k3lapi.device_type(dev)) - { -#if K3L_AT_LEAST(1,6,0) - case kdtFXS: - number = (count_virtual ? (_k3lapi.channel_count(dev) < 50 ? 1 : 2) : 0); - break; - - case kdtFXSSpx: - number = (count_virtual ? (_k3lapi.channel_count(dev) < 30 ? 1 : 2) : 0); - break; -#endif - -#if K3L_AT_LEAST(2,1,0) - case kdtE1FXSSpx: - number = (count_virtual ? 2 : 1); - break; -#endif - - /* E1 boards */ - case kdtE1: - case kdtE1Spx: - case kdtE1IP: - number = _k3lapi.link_count(dev); - break; - - case kdtPR: - case kdtE1GW: - number = 1; - break; - -#if K3L_AT_LEAST(1,6,0) - case kdtFXO: - case kdtFXOVoIP: - case kdtGSM: - case kdtGSMSpx: -#else - case kdtFX: - case kdtFXVoIP: -#endif - case kdtConf: - case kdtGWIP: -#if K3L_AT_LEAST(2,1,0) - case kdtGSMUSB: - case kdtGSMUSBSpx: - case kdtReserved1: // just to avoid warnings. - case kdtDevTypeCount: // just to avoid warnings. -#endif - number = 0; - break; - } - } - catch(K3LAPITraits::invalid_device & e) - { - return 0; - } - - return number; -} - - -K3LUtil::ErrorCountType K3LUtil::linkErrorCount(int32 dev, int32 link, - Verbose::Presentation fmt) -{ - ErrorCountType result; - K3L_LINK_ERROR_COUNTER status; - - KLibraryStatus ret = (KLibraryStatus) k3lGetDeviceStatus (dev, - link + ksoLinkMon, &status, sizeof(status)); - - switch (ret) - { - case ksSuccess: - for (unsigned int i = klecChangesToLock; i < klecCount; i++) - { - result.push_back(ErrorCountPairType(Verbose::linkErrorCounter - ((KLinkErrorCounter)i, fmt), status.ErrorCounters[i])); - } - /* fall */ - - default: - return result; - } -} - diff --git a/src/mod/endpoints/mod_khomp/commons/base/k3lutil.hpp b/src/mod/endpoints/mod_khomp/commons/base/k3lutil.hpp deleted file mode 100644 index 9d87d8b0f6..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/k3lutil.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include -#include - -#include -#include - -#ifndef _K3LUTIL_HPP_ -#define _K3LUTIL_HPP_ - -struct K3LUtil -{ - typedef std::pair < std::string, unsigned int > ErrorCountPairType; - typedef std::list < ErrorCountPairType > ErrorCountType; - - K3LUtil(K3LAPI & k3lapi): _k3lapi(k3lapi) {}; - - std::string callStatus(int32 dev, int32 channel, - Verbose::Presentation fmt = Verbose::HUMAN); - - std::string channelStatus(int32, int32, - Verbose::Presentation fmt = Verbose::HUMAN); - - std::string linkStatus(int32, int32, - Verbose::Presentation fmt = Verbose::HUMAN, - KSignaling sig = ksigInactive, - bool simpleStatus = false); - - unsigned int physicalLinkCount(int32 dev, bool count_virtual = false); - - ErrorCountType linkErrorCount(int32, int32, - Verbose::Presentation fmt = Verbose::HUMAN); - - protected: - K3LAPI & _k3lapi; -}; - -#endif /* _K3LUTIL_HPP_ */ - diff --git a/src/mod/endpoints/mod_khomp/commons/base/logger.hpp b/src/mod/endpoints/mod_khomp/commons/base/logger.hpp deleted file mode 100644 index 2a119afb9c..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/logger.hpp +++ /dev/null @@ -1,557 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -#if defined(COMMONS_LIBRARY_USING_ASTERISK) || defined(COMMONS_LIBRARY_USING_FREESWITCH) -extern "C" -{ - #include -} -#elif defined(COMMONS_LIBRARY_USING_CALLWEAVER) -extern "C" -{ - #include -} -#endif -/* - -******************************************************************************** -***************************** 'Logger' user manual ***************************** -******************************************************************************** - -* Description: - -This class does the management of log messages for applications. It works with -the following axioms: - -<*> There are several class of messages. -<*> There are some outputs, which may be files, sockets, or a console device. -<*> There are options for classes, for outputs and for the association of both. - -The last rule also shows the order in which options are processed: first the -'classes' options are processed, then 'output' options are processed, and then -the options for the tuple '(class, output)' are processed. - -The options are mapped like this: - - -> options [prefix, flags] - -> options [prefix] -( , ) -> options [prefix, flags] - - - "prefix" means a fixed string prefix before the real message. - - "flags" means auxiliary flags (DATETIME, THREADID) which are - used to add information based on OS or process context info. - -* Example of use: - -typedef enum -{ - C_DBG_FUNC, - C_DBG_LOCK, - C_WARNING, - C_ERROR, - C_CLI, -} -AstClassId; - -typedef enum -{ - F_CONSOLE, - F_GENERIC, - F_TRACE, -} -AstOutputId; - -// used to indicate the console log // -struct AstConsoleLog {}; - -struct AstPrinter: public Logger::DefaultPrinter -{ - typedef Logger::DefaultPrinter Super; - - using namespace Tagged; - - using Super::operator()(int); - - // just 2 type of descriptors // - typedef Union < int, Union < AstConsoleLog > > Container; - - ast_printer(std::string & msg): Super(msg) {}; - - bool operator()(const AstConsoleLog & log) - { - ast_console_puts(_msg.c_str()); - return true; - }; - -#if 0 - bool operator()(int log) - { - return Super::operator()(log); - }; -#endif -}; - -bool start_log() -{ - typedef Logger::Manager LogManager; - - LogManager logger; - - // shortcut definition // - typedef LogManager::Option LogOption; - - FILE * log_file = fopen( "output.log", "a"); - - if (!log_file) - return false; - - logger.add( F_CONSOLE, AstConsoleLog(), "chan_khomp: "); - logger.add( F_GENERIC, log_file); - - logger.classe( C_WARNING ) - & LogOption(F_CONSOLE, "WARNING: ", LogOption::Flags(LogOption::Flag(LogOption::DATETIME))) - & LogOption(F_GENERIC, "W: ", LogOption::Flags(LogOption::Flag(LogOption::DATETIME))) - - logger.classe( C_DBG_LOCK ).enabled(false); - - logger.classe( C_DBG_LOCK ) - & LogOption(F_GENERIC, "L: ", LogOption::Flags - (LogOption::flag_type(LogOption::ENABLED) & - LogOption::flag_type(LogOption::DATETIME)) - - logger(C_WARNING, "eu sou uma mensagem de warning"); - - logger.classe(C_WARNING).set(F_GENERIC, LogOption::ENABLED, true); - logger.classe(C_WARNING).set(F_CONSOLE, LogOption::ENABLED, false); - - logger.classe(C_CLI).prefix(""); - - return true; -} - -void message_the_user(int fd) -{ - logger(C_CLI, fd, "eu sou uma mensagem de cli!"); - logger(C_WARNING, "eu sou um warning"); -} - -******************************************************************************** -******************************************************************************** - -Now, the code..! - -*/ - -#ifndef _LOGGER_HPP_ -#define _LOGGER_HPP_ - -#include - -struct Logger -{ - /*** a base struct for printing messages in many ways ***/ - - struct DefaultPrinter - { - typedef Tagged::Union < int, Tagged::Union < FILE *, Tagged::Union < std::ostream * > > > BaseType; - - typedef bool ReturnType; - - DefaultPrinter(std::string & msg): _msg(msg) {}; - - bool operator()(std::ostream * out) - { - (*out) << _msg; - out->flush(); - - return out->good(); - } - - bool operator()(FILE * out) - { - if (fputs(_msg.c_str(), out) < 0) - return false; - - if (fflush(out) < 0) - return false; - - return true; - } - - bool operator()(int out) - { -#ifndef KWIN32 - return (write(out, _msg.c_str(), _msg.size()) == (int)_msg.size()); -#else - // no need for file descriptors on windows - return false; -#endif - } - - std::string & msg() { return _msg; } - - protected: - std::string & _msg; - }; - - /*** manage the printing of messages ***/ - - template - struct Manager - { - typedef typename Printer::BaseType BaseType; - - protected: - /* holds a stream, and an optimal message prefix */ - struct OutputOptions - { - OutputOptions(BaseType & stream, std::string & prefix) - : _stream(stream), _prefix(prefix) {}; - - BaseType _stream; - std::string _prefix; - LockType _lock; - }; - - typedef std::map < OutputId, OutputOptions > OutputMap; - - public: - - /* print in a specific 'message class' */ - struct ClassType - { - ClassType(void) - : _enabled(true) - {}; - -// ClassType(ClassType & o) -// : _stream_map(o._stream_map), _prefix(o.prefix), -// _lock(o._lock),_enabled(o._enabled) -// {}; - - /* initializes the options of the (class, stream) pair */ - struct Option - { - typedef enum { ENABLED, DATETIME, THREADID, DATETIMEMS } EnumType; - - typedef Flagger< EnumType > Flags; - typedef typename Flags::InitFlags InitFlags; - - Option(OutputId output, const char * prefix, - Flags flags = InitFlags(ENABLED)) - : _output(output), _prefix(prefix), _flags(flags) {}; - - Option(OutputId output, std::string prefix, - Flags flags = InitFlags(ENABLED)) - : _output(output), _prefix(prefix), _flags(flags) {}; - - Option(OutputId output, - Flags flags = InitFlags(ENABLED)) - : _output(output), _flags(flags) {}; - - OutputId _output; - std::string _prefix; - Flags _flags; - }; - - protected: - - /* holds a prefix and a activation status */ - struct OptionContainer - { - OptionContainer(std::string prefix, typename Option::Flags flags) - : _prefix(prefix), _flags(flags) {}; - - std::string _prefix; - typename Option::Flags _flags; - }; - - typedef std::multimap < OutputId, OptionContainer > OptionMap; - - /* utility function for printing */ - bool print(std::string & msg, BaseType & stream, LockType & lock) - { - lock.lock(); - - Printer p(msg); - bool ret = stream.visit(p); - - lock.unlock(); - - return ret; - }; - -/* - bool print(std::string & msg, BaseType & stream, LockType & lock) - { - lock.lock(); - - Printer p(msg); - bool ret = stream.visit(p); - - lock.unlock(); - - return ret; - }; -*/ - - public: - ClassType & operator&(const Option & value) - { - add(value._output, value._prefix, value._flags); - return *this; - } - - void add(OutputId output_id, std::string prefix, - typename Option::Flags flags) - { - typedef std::pair < OutputId, OptionContainer > pair_type; - _stream_map.insert(pair_type(output_id, OptionContainer(prefix, flags))); - } - - /* get and set methods for active mode */ - void set(OutputId id, typename Option::EnumType flag, bool value = true) - { - typename OptionMap::iterator iter = _stream_map.find(id); - - if (iter == _stream_map.end()) - return; - - (*iter).second._flags.set(flag, value); - } - - bool get(OutputId idx, typename Option::EnumType flag) - { - typename OptionMap::iterator iter = _stream_map.find(idx); - - if (iter == _stream_map.end()) - return false; - - return (*iter).second._flags.is_set(flag); - } - - /* get/adjust the enable/disable value for the class */ - void enabled(bool enabled) { _enabled = enabled; }; - bool enabled() { return _enabled; }; - - /* get/adjust the classe prefix */ - void prefix(const char * prefix) { _prefix = prefix; } - void prefix(std::string & prefix) { _prefix = prefix; } - std::string & prefix() { return _prefix; } - - /* printing function (operator, actually) */ - bool operator()(OutputMap & out_map, std::string & msg) - { - if (!_enabled) - return true; - - typedef typename OptionMap::iterator Iter; - - bool ret = true; - - for (Iter iter = _stream_map.begin(); iter != _stream_map.end(); iter++) - { - OptionContainer & opt = (*iter).second; - - if (!opt._flags[Option::ENABLED]) - continue; - - typename OutputMap::iterator out_iter = out_map.find((*iter).first); - - /* this stream have been added already? if not, skip! */ - if (out_iter == out_map.end()) - continue; - - /* final message */ - std::string out_msg; - - if (opt._flags[Option::DATETIME]) - { -#if defined(COMMONS_LIBRARY_USING_ASTERISK) || defined(COMMONS_LIBRARY_USING_CALLWEAVER) || defined(COMMONS_LIBRARY_USING_FREESWITCH) - time_t tv; - struct tm lt; - - time (&tv); - localtime_r (&tv, <); - - out_msg += STG(FMT("[%02d-%02d-%02d %02d:%02d:%02d] ") - % (lt.tm_year % 100) % (lt.tm_mon + 1) % lt.tm_mday % lt.tm_hour - % lt.tm_min % lt.tm_sec); -#endif - } - - if (opt._flags[Option::DATETIMEMS]) - { -#if defined(COMMONS_LIBRARY_USING_ASTERISK) || defined(COMMONS_LIBRARY_USING_CALLWEAVER) || defined(COMMONS_LIBRARY_USING_FREESWITCH) - time_t tv; - struct tm lt; - - time (&tv); - localtime_r (&tv, <); - - out_msg += STG(FMT("[%02d-%02d-%02d %02d:%02d:%02d:%04d] ") - % (lt.tm_year % 100) % (lt.tm_mon + 1) % lt.tm_mday % lt.tm_hour % lt.tm_min - % lt.tm_sec % (tv * 1000)); -#endif - } - - OutputOptions & out_opt = (*out_iter).second; - - if (opt._flags[Option::THREADID]) - { -#if defined (COMMONS_LIBRARY_USING_ASTERISK) || defined(COMMONS_LIBRARY_USING_CALLWEAVER) || defined(COMMONS_LIBRARY_USING_FREESWITCH) - out_msg += STG(FMT("%08x ") % ((unsigned long)pthread_self())); -#endif - } - - out_msg += _prefix; - out_msg += out_opt._prefix; - out_msg += opt._prefix; - out_msg += msg; - out_msg += "\n"; - - ret |= print(out_msg, out_opt._stream, out_opt._lock); - } - - return ret; - } - - bool operator()(BaseType & stream, std::string & msg) - { - std::string final_msg; - - final_msg += _prefix; - final_msg += msg; - final_msg += "\n"; - - return print(final_msg, stream, _lock); - } - - protected: - OptionMap _stream_map; - std::string _prefix; - LockType _lock; - bool _enabled; - }; - - /* util declaration */ - typedef typename ClassType::Option Option; - - /* class_id_type -> ClassType mapper */ - typedef std::map < ClassId, ClassType > ClassMap; - - /* local option pair */ - typedef std::pair < OutputId, OutputOptions > OutputOptionPair; - - void add(OutputId output, BaseType stream, const char * prefix = "") - { - std::string str_prefix(prefix); - - _output_map.insert(OutputOptionPair(output, OutputOptions(stream, str_prefix))); - } - - void add(OutputId output, BaseType stream, std::string prefix) - { - _output_map.insert(OutputOptionPair(output, OutputOptions(stream, prefix))); - } - - ClassType & classe(ClassId classeid) - { - return _classe_map[classeid]; - } - - bool operator()(ClassId classeid, const char * msg) - { - std::string str_msg(msg); - return _classe_map[classeid](_output_map, str_msg); - } - - bool operator()(ClassId classeid, std::string & msg) - { - return _classe_map[classeid](_output_map, msg); - } - - bool operator()(ClassId classeid, Format fmt) - { - std::string str_fmt = STG(fmt); - return _classe_map[classeid](_output_map, str_fmt); - } - - bool operator()(ClassId classeid, BaseType stream, const char * msg) - { - std::string str_msg(msg); - return _classe_map[classeid](stream, str_msg); - } - - bool operator()(ClassId classeid, BaseType stream, std::string & msg) - { - return _classe_map[classeid](stream, msg); - } - - bool operator()(ClassId classeid, BaseType stream, Format fmt) - { - std::string str_fmt = STG(fmt); - return _classe_map[classeid](stream, str_fmt); - } - - protected: - ClassMap _classe_map; - OutputMap _output_map; - }; - - private: - Logger(); -}; - -#endif /* _LOGGER_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/noncopyable.hpp b/src/mod/endpoints/mod_khomp/commons/base/noncopyable.hpp deleted file mode 100644 index d32faa8913..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/noncopyable.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _NONCOPYABLE_HPP_ -#define _NONCOPYABLE_HPP_ - -struct NonCopyable -{ - NonCopyable() {}; - private: - NonCopyable(NonCopyable const &) { }; - NonCopyable & operator=(NonCopyable const &) { return *this; }; -}; - -#endif /* _NONCOPYABLE_HPP_ */ - diff --git a/src/mod/endpoints/mod_khomp/commons/base/refcounter.hpp b/src/mod/endpoints/mod_khomp/commons/base/refcounter.hpp deleted file mode 100644 index d1738185bb..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/refcounter.hpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the "LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -/* This struct uses static polymorphism, and derived classes should implement * - * the "unreference()" method, which should release all resources when called */ - -#ifndef _REFCOUNTER_HPP_ -#define _REFCOUNTER_HPP_ - -#define COUNTER_CLASS(...) ReferenceCounter< __VA_ARGS__ > -#define COUNTER_SUPER(...) public COUNTER_CLASS( __VA_ARGS__ ) -#define COUNTER_REFER(o, ...) COUNTER_CLASS( __VA_ARGS__ )(static_cast< const COUNTER_CLASS( __VA_ARGS__ ) & >(o)) - -// DEPRECATED DECLARATIONS /// -#define NEW_REFCOUNTER(...) public ReferenceCounter< __VA_ARGS__ > -#define INC_REFCOUNTER(o, ...) ReferenceCounter< __VA_ARGS__ >(static_cast< const ReferenceCounter < __VA_ARGS__ > & >(o)) - -#include - -#include -#include - -#ifdef DEBUG -# include -#endif - -struct ReferenceData: public NonCopyable -{ - ReferenceData() - : _data_count(1) - {}; - - inline unsigned int increment(void) - { - if (!_data_count) - abort(); - - Atomic::doAdd(&_data_count); - - return _data_count; - } - - inline unsigned int decrement(void) - { - if (!_data_count) - abort(); - - Atomic::doSub(&_data_count); - return _data_count; - } - - volatile unsigned int _data_count; -}; - -template < typename T > -struct ReferenceCounter -{ - typedef T Type; - - ReferenceCounter(bool create_counter = true) - : _reference_count(0) - { - reference_restart(create_counter); - -#ifdef DEBUG - std::cerr << ((void*)this) << ": ReferenceCounter() [ref_count=" - << (_reference_count ? (*_reference_count) : -1) << "]" << std::endl; -#endif - }; - - ReferenceCounter(const ReferenceCounter & o) - : _reference_count(0) - { - reference_reflect(o); - -#ifdef DEBUG - std::cerr << ((void*)this) << ": ReferenceCounter(" << ((void*)(&o)) << ") [ref_count=" - << (_reference_count ? (*_reference_count) : -1) << "]" << std::endl; -#endif - }; - - virtual ~ReferenceCounter() - { -#ifdef DEBUG - std::cerr << ((void*)this) << ": ~ReferenceCounter() [ref_count=" - << (_reference_count ? (*_reference_count) : -1) << "]" << std::endl; -#endif - reference_disconnect(_reference_count); - } - - ReferenceCounter & operator=(const ReferenceCounter & o) - { - reference_reflect(o); - -#ifdef DEBUG - std::cerr << ((void*)this) << ": ReferenceCounter::operator=(" << ((void*)(&o)) << ") [ref_count=" - << (_reference_count ? (*_reference_count) : -1) << "]" << std::endl; -#endif - - return *this; - }; - - protected: - inline void reference_restart(bool create_counter = false) - { - ReferenceData * oldref = _reference_count; - - _reference_count = (create_counter ? new ReferenceData() : 0); - - if (oldref) reference_disconnect(oldref); - } - - inline void reference_reflect(const ReferenceCounter & other) - { - ReferenceData * newref = other._reference_count; - ReferenceData * oldref = _reference_count; - - /* NOTE: increment before, avoid our reference being zero, even * - * for a short period of time. */ - - if (newref) newref->increment(); - - _reference_count = newref; - - if (oldref) reference_disconnect(oldref); - }; - - inline void reference_disconnect(ReferenceData *& counter) - { - if (counter) - { - unsigned int result = counter->decrement(); - - if (!result) - { - static_cast< Type * >(this)->unreference(); - delete counter; - } - - counter = 0; - } - }; - - private: - ReferenceData * _reference_count; -}; - -template < typename T > -struct ReferenceContainer: COUNTER_SUPER(ReferenceContainer< T >) -{ - /* type */ - typedef T Type; - - /* shorthand */ - typedef COUNTER_CLASS(ReferenceContainer< Type >) Counter; - - // TODO: make this a generic exception someday - struct NotFound {}; - - ReferenceContainer() - : Counter(false), - _reference_value(0) - {}; - - ReferenceContainer(Type * value) - : _reference_value(value) - {}; - - ReferenceContainer(const ReferenceContainer & value) - : Counter(false), - _reference_value(0) - { - operator()(value); - }; - - virtual ~ReferenceContainer() - {}; - - ReferenceContainer operator=(const ReferenceContainer & value) - { - operator()(value); - return *this; - }; - - /**/ - - void unreference() - { - if (_reference_value) - { - delete _reference_value; - _reference_value = 0; - } - } - - // simulates a copy constructor - void operator()(const ReferenceContainer & value) - { - Counter::reference_reflect(value); - - _reference_value = const_cast(value._reference_value); - }; - - // shortcut for operator below - void operator=(const Type * value) - { - operator()(value); - }; - - // accept value (pointer)! - void operator()(const Type * value) - { - Counter::reference_restart((value != 0)); - - _reference_value = const_cast(value); - }; - - // return value (pointer)! - Type * operator()(void) const - { - return _reference_value; - }; - - protected: - Type * _reference_value; - - protected: -}; - -#endif /* _REFCOUNTER_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/regex.cpp b/src/mod/endpoints/mod_khomp/commons/base/regex.cpp deleted file mode 100644 index d2b8cd0469..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/regex.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#include - -void Regex::Expression::initialize(void) -{ - unsigned int tmplen = strlen(_expression); - - bool extflag = (_flags & E_EXTENDED); - - for (unsigned int i = 0; i < tmplen; ++i) - { - switch (_expression[i]) - { - case '\\': - ++i; - - if (!extflag && i < tmplen) - if (_expression[i] == '(') - ++_subcounter; - - break; - - case '(': - if (extflag) - ++_subcounter; - - default: - break; - } - } - - _errorstate = regcomp(&_comp_regex, _expression, _flags); -} - -std::string Regex::Expression::regerror_as_string(void) const -{ - unsigned int count = regerror(_errorstate, &_comp_regex, 0, 0) + 1; - - char * msg = new char[count]; - - regerror(_errorstate, &_comp_regex, msg, count); - - std::string tmp(msg, count); - - delete[] msg; - - return tmp; -} - -void Regex::Match::initialize(void) -{ - if (_expression.valid()) - { - _subcounter = (_expression.subcount() + 2); // 0 + N.. + invalid - _submatches = new regmatch_t[_subcounter]; - _subcaching = new std::string[_subcounter]; - _have_match = (regexec(_expression.repr(), _basestring.c_str(), - _subcounter, _submatches, _flags) == 0); - } -} - -std::string Regex::Match::replace(std::string rep, unsigned int index) -{ - ReplaceMap tmp; - tmp.insert(ReplacePair(index,rep)); - return replace(tmp); -} - -std::string Regex::Match::replace(Regex::ReplaceMap & map) -{ - if (!_have_match) - return _basestring; - - std::string buffer = _basestring; - - try - { - if (_submatches[0].rm_so != 0 && (map.find(0) != map.end())) - return buffer.replace(_submatches[0].rm_so, _submatches[0].rm_eo - _submatches[0].rm_so, map.find(0)->second); - - for (unsigned int n = 1; (_submatches[n].rm_so != -1) && (n < _subcounter); n++) - { - //// s f RRR s f RRR s f RRRR s f - //// XXXYYY(ZZZ)AAA(BBB)CCCEEE(FFFF)GGGG - - bool globalsubs = false; - - if (map.find(n) == map.end()) - { - if (map.find(UINT_MAX) == map.end()) - continue; - - globalsubs = true; - } - - buffer = buffer.replace(_submatches[n].rm_so, - _submatches[n].rm_eo - _submatches[n].rm_so, - map.find((globalsubs ? UINT_MAX : n))->second); - } - } - catch (std::out_of_range e) - { - return ""; - } - - return buffer; -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/regex.hpp b/src/mod/endpoints/mod_khomp/commons/base/regex.hpp deleted file mode 100644 index 61325238b8..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/regex.hpp +++ /dev/null @@ -1,243 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#ifndef _REGEX_HPP_ -#define _REGEX_HPP_ - -struct Regex -{ - enum - { - E_EXTENDED = REG_EXTENDED, - E_IGNORE_CASE = REG_ICASE, - E_NO_SUB_MATCH = REG_NOSUB, - E_EXPLICIT_NEWLINE = REG_NEWLINE, - }; - - enum - { - M_NO_BEGIN_OF_LINE = REG_NOTBOL, - M_NO_END_OF_LINE = REG_NOTEOL, - }; - - enum - { - /* mark replace for full match (submatch "0"). */ - REP_BASE = 0u, - /* mark global string for replace. */ - REP_ALL = UINT_MAX, - }; - - typedef std::pair < unsigned int, std::string > ReplacePair; - typedef std::map < unsigned int, std::string > ReplaceMap; - - struct Expression : public NonCopyable - { - Expression(const char * expression, unsigned int flags = 0) - : _expression(expression), _alloced(false), - _subcounter(0), _errorstate(INT_MAX), _flags(flags) - { - initialize(); - } - - Expression(std::string & expression, unsigned int flags = 0) - : _expression(strdup(expression.c_str())), _alloced(true), - _subcounter(0), _errorstate(INT_MAX), _flags(flags) - { - initialize(); - } - - ~Expression() - { - if (_errorstate != INT_MAX) - regfree(&_comp_regex); - - if (_alloced) - { - delete _expression; - _expression = 0; - } - } - - bool valid(void) const { return (_errorstate == 0); } - - unsigned int subcount(void) const { return _subcounter; } - const regex_t * repr(void) const { return &_comp_regex; } - - std::string error(void) const - { - switch (_errorstate) - { - case 0: return ""; - case INT_MAX: return "uninitialized"; - default: return regerror_as_string(); - } - } - - private: - std::string regerror_as_string(void) const; - - private: - void initialize(void); - - protected: - const char * _expression; - const bool _alloced; - - unsigned int _subcounter; - - int _errorstate; - regex_t _comp_regex; - - const unsigned int _flags; - }; - - struct Match: COUNTER_SUPER(Match) - { - Match(const char * basestring, const Expression & expression, unsigned int flags = 0) - : _basestring(basestring), _expression(expression), _subcounter(0), _submatches(0), - _have_match(false), _flags(flags) - { - initialize(); - } - - Match(const std::string & basestring, const Expression & expression, unsigned int flags = 0) - : _basestring(basestring), _expression(expression), _subcounter(0), _submatches(0), - _have_match(false), _flags(flags) - { - initialize(); - } - - Match(const Match & o) - : COUNTER_REFER(o, Match), - _basestring(o._basestring), _expression(o._expression), - _subcounter(o._subcounter), _submatches(o._submatches), - _have_match(o._have_match), _flags(o._flags) - { - } - - void unreference() - { - delete[] _submatches; - delete[] _subcaching; - - _submatches = 0; - _subcaching = 0; - } - - bool matched(void) - { - return _have_match; - } - - bool matched(unsigned int number) - { - if (_have_match && number < _subcounter) - return (_submatches[number].rm_so != -1); - - return false; - } - - const std::string & submatch(int number) - { - if (!matched(number)) - return _subcaching[_subcounter - 1 /* invalid, always empty! */ ]; - - if (_subcaching[number].empty()) - { - _subcaching[number].assign(_basestring, _submatches[number].rm_so, - _submatches[number].rm_eo - _submatches[number].rm_so); - } - - return _subcaching[number]; - } - - const std::string & operator[](int number) - { - return submatch(number); - } - - /** - * \brief replaces strings matched by parentesis - * \param each item of the vector is a parentesis replaced - * \return string replaced - * \note The overload method match only one string in parentesis. - * \author Eduardo Nunes Pereira - * - * If fails the empty string is returned. - */ - std::string replace(ReplaceMap &); - std::string replace(std::string, unsigned int index = REP_BASE); - - // NOTE: there is already a way to get subcount defined on EXPRESSION class! - - private: - void initialize(void); - - protected: - const std::string _basestring; - const Expression & _expression; - - unsigned int _subcounter; - regmatch_t * _submatches; - std::string * _subcaching; - bool _have_match; - - const unsigned int _flags; - }; -}; - -#endif /* _REGEX_HPP_ */ - diff --git a/src/mod/endpoints/mod_khomp/commons/base/ringbuffer.cpp b/src/mod/endpoints/mod_khomp/commons/base/ringbuffer.cpp deleted file mode 100644 index 42056307e0..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/ringbuffer.cpp +++ /dev/null @@ -1,485 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -// #include - - - /* Documentation of the formula used in the buffer arithmetic. - * - * [0|1|2|3|4|5|6|7] => size=8 - * | | - * reader | - * writer - * - * => writer has places [5,6,7,0,1] to write (5 places). - * - * => 8 - (4-2+1) = 8 - (2+1) = 8 - 3 = 5 - * - * > writer goes 1 up, amount goes 1 down. - * > reader goes 1 up, amount goes 1 up. - * > size goes 1 down, amount goes 1 down. - * - */ - -/********** BUFFER FUNCTIONS **********/ - -/* writes everything or nothing */ -bool Ringbuffer_traits::traits_provide(char * buffer, const char * value, unsigned int amount, bool do_not_overwrite) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - bool need_overwrite = false; - - if (amount > free_blocks(cache)) - { - if (do_not_overwrite) - return false; - - /* if we are allowed to overwrite, just the buffer size matters for us */ - if (amount >= _size) - return false; - - /* we need to change reader pointer below... */ - need_overwrite = true; - } - - const unsigned int wr = cache.writer.complete; - const unsigned int wp = cache.writer.complete - 1; - - /* should we go around the buffer for writing? */ - if ((wr + amount) > _size) - { -// fprintf(stderr, "%p> first if matched\n", this); - - if (need_overwrite) - { - do - { - Buffer_pointer extra(cache.reader); - extra.complete = ((wr + amount) % _size); // (extra.complete + amount) % _size; -// extra.complete = (extra.complete + amount) % _size; - - if (update(cache.reader, extra)) - break; - } - while (true); - } - - unsigned int wr1 = _size - wr + 1; /* writer is already 1 position after */ - unsigned int wr2 = amount - wr1; - -// fprintf(stderr, "%p> partial write: (%d/%d) %d/%d [%d/%d]\n", this, wr1, wr2, amount, _size, reader, writer); - - /* two partial writes (one at the end, another at the beginning) */ - memcpy((void *) &(buffer[wp]), (const void *) (value), _block * wr1); - memcpy((void *) (buffer), (const void *) &(value[wr1]), _block * wr2); - } - else - { -// fprintf(stderr, "%p> second if matched\n", this); - - if (need_overwrite) - { - do - { - Buffer_pointer extra(cache.reader); - extra.complete = ((wr + amount) % _size); // (extra.complete + amount) % _size; - - if (update(cache.reader, extra)) - break; - } - while (true); - } - -// fprintf(stderr, "%p> full write: a=%d/s=%d [r=%d/w=%d]\n", this, amount, _size, reader, writer); - - /* we are talking about buffers here, man! */ - memcpy((void *) &(buffer[wp]), (const void *) value, _block * amount); - } - - _pointers.writer.complete = ((wp + amount) % _size) + 1; - _pointers.writer.partial = 1; - -// if (need_overwrite) -// fprintf(stdout, "%p> write end: w=%d/r=%d\n", this, _pointers.writer.complete, _pointers.reader.complete); - - return true; -} - -/* returns the number of itens that have been read */ -unsigned int Ringbuffer_traits::traits_consume(const char * buffer, char * value, unsigned int amount, bool atomic_mode) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - const unsigned int available = used_blocks(cache); - - if (atomic_mode && amount > available) - return false; - - const unsigned int rd = _pointers.reader.complete; - - unsigned int total = std::min(amount, available); - - /* should we go around the buffer for reading? */ - if ((rd + total) >= _size) - { - unsigned int rd1 = _size - rd; - unsigned int rd2 = total - rd1; - -// fprintf(stderr, "%p> partial read: (%d/%d) %d/%d [%d/%d]\n", this, rd1, rd2, total, _size, reader, writer); - - /* two partial consumes (one at the end, another at the beginning) */ - memcpy((void *) (value), (const void *) &(buffer[rd]), _block * rd1); - memcpy((void *) &(value[rd1]), (const void *) (buffer), _block * rd2); - } - else - { -// fprintf(stderr, "%p> full read: %d/%d [%d/%d]\n", this, total, _size, reader, writer); - - /* we are talking about buffers here, man! */ - memcpy((void *) value, (const void *) &(buffer[rd]), _block * total); - } - - do - { - /* jump the reader forward */ - Buffer_pointer index((cache.reader.complete + total) % _size, 0); - - if (update(cache.reader, index)) - break; - } - while (true); - -// fprintf(stderr, "%p> read end: %d [block=%d]\n", this, reader, _block); - - return total; -} - -/********** TWO-PHASE BUFFER FUNCTIONS ***********/ - -/* returns the number of itens that have been read */ -unsigned int Ringbuffer_traits::traits_consume_begins(const char * buffer, char * value, unsigned int amount, bool atomic_mode) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - const unsigned int available = used_blocks(cache); - - if (amount > available) - { - if (atomic_mode) - return false; - } - - const unsigned int rd = _pointers.reader.complete; - - unsigned int total = std::min(amount, available); - - /* should we go around the buffer for reading? */ - if ((rd + total) >= _size) - { - unsigned int rd1 = _size - rd; - unsigned int rd2 = total - rd1; - -// fprintf(stderr, "%p> partial read: (%d/%d) %d/%d [%d/%d]\n", this, rd1, rd2, total, _size, reader, writer); - - /* two partial consumes (one at the end, another at the beginning) */ - memcpy((void *) (value), (const void *) &(buffer[rd]), _block * rd1); - memcpy((void *) &(value[rd1]), (const void *) (buffer), _block * rd2); - } - else - { -// fprintf(stderr, "%p> full read: %d/%d [%d/%d]\n", this, total, _size, reader, writer); - - /* we are talking about buffers here, man! */ - memcpy((void *) value, (const void *) &(buffer[rd]), _block * total); - } - - return total; -} - -bool Ringbuffer_traits::traits_consume_commit(unsigned int amount) -{ - if (amount == 0) - return true; - - /* avoid using different values */ - Buffer_table cache = _pointers; - - const unsigned int available = used_blocks(cache); - - /* cannot commit more than available! */ - if (amount > available) - return false; - - unsigned int total = std::min(amount, available); - - do - { - /* jump the reader forward */ - Buffer_pointer index((cache.reader.complete + total) % _size, 0); - - if (update(cache.reader, index)) - break; - } - while (true); - -// fprintf(stderr, "%p> read end: %d [block=%d]\n", this, reader, _block); - - return true; -} - -/********** PARTIAL BUFFER FUNCTIONS (bytes) ***********/ - -/* writes everything or nothing */ -bool Ringbuffer_traits::traits_provide_partial(char * buffer, const char * value, unsigned int amount) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - const unsigned int memsize = (_size * _block); - - if (amount > (free_blocks(cache) * _block)) - return false; - - const unsigned int wr = ((cache.writer.complete - 1) * _block) + cache.writer.partial; - const unsigned int wp = wr - 1; - - /* should we go around the buffer for writing? */ - if ((wr + amount) > memsize) - { -// fprintf(stderr, "%p> first if matched\n", this); - - unsigned int wr1 = memsize - wr + 1; /* writer is already 1 position after */ - unsigned int wr2 = amount - wr1; - -// fprintf(stderr, "%p> partial write: (%d/%d) %d/%d [%d/%d]\n", this, wr1, wr2, amount, _size, reader, writer); - - /* two partial writes (one at the end, another at the beginning) */ - memcpy((void *) &(buffer[wp]), (const void *) (value), wr1); - memcpy((void *) (buffer), (const void *) &(value[wr1]), wr2); - } - else - { -// fprintf(stderr, "%p> second if matched\n", this); - -// fprintf(stderr, "%p> full write: a=%d/s=%d [r=%d/w=%d]\n", this, amount, _size, reader, writer); - - /* we are talking about buffers here, man! */ - memcpy((void *) &(buffer[wp]), (const void *) value, amount); - } - - const unsigned int new_wp = (wp + amount) % memsize; - - _pointers.writer.complete = (unsigned int)(floor((double)new_wp / (double)_block) + 1); - _pointers.writer.partial = (new_wp % _block) + 1; - -// if (need_overwrite) -// fprintf(stdout, "%p> write end: w=%d/r=%d\n", this, _pointers.writer.complete, _pointers.reader.complete); - - return true; -} - -/* returns the number of bytes that have been read */ -unsigned int Ringbuffer_traits::traits_consume_partial(const char * buffer, char * value, unsigned int amount) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - const unsigned int available = used_blocks(cache) * _block; - - const unsigned int rd = (_pointers.reader.complete * _block) + _pointers.reader.partial; - - const unsigned int memsize = _size * _block; - - unsigned int total = std::min(amount, available); - - /* should we go around the buffer for reading? */ - if ((rd + total) >= _size) - { - unsigned int rd1 = memsize - rd; - unsigned int rd2 = total - rd1; - -// fprintf(stderr, "%p> partial read: (%d/%d) %d/%d [%d/%d]\n", this, rd1, rd2, total, _size, reader, writer); - - /* two partial consumes (one at the end, another at the beginning) */ - memcpy((void *) (value), (const void *) &(buffer[rd]), rd1); - memcpy((void *) &(value[rd1]), (const void *) (buffer), rd2); - } - else - { -// fprintf(stderr, "%p> full read: %d/%d [%d/%d]\n", this, total, _size, reader, writer); - - /* we are talking about buffers here, man! */ - memcpy((void *) value, (const void *) &(buffer[rd]), total); - } - - do - { - const unsigned int new_rd = (((cache.reader.complete * _block) + cache.reader.partial) + total) % memsize; - - /* jump the reader forward */ - Buffer_pointer index((unsigned int)floor((double)new_rd / (double)_block), (unsigned short)(new_rd % _block)); - - if (update(cache.reader, index)) - break; - } - while (true); - -// fprintf(stderr, "%p> read end: %d [block=%d]\n", this, reader, _block); - - return total; -} - -/********** IO FUNCTIONS **********/ - -/* returns the number of items written to from buffer to stream */ -unsigned int Ringbuffer_traits::traits_put(const char * buffer, std::ostream &fd, unsigned int amount) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - const unsigned int available = used_blocks(cache); - - if (amount > available) - return false; - - const unsigned int wr = _pointers.writer.complete; - const unsigned int rd = _pointers.reader.complete; - - unsigned int total = std::min(amount, available); - - /* should we go around the buffer for reading? */ - if ((rd + total) >= _size) - { - unsigned int rd1 = _size - rd; - unsigned int rd2 = total - rd1; - -// fprintf(stderr, "%p> partial read: (%d/%d) %d/%d [%d/%d]\n", this, rd1, rd2, total, _size, reader, writer); - - /* two partial consumes (one at the end, another at the beginning) */ - fd.write((const char *) &(buffer[rd]), _block * rd1); - fd.write((const char *) (buffer), _block * rd2); - } - else - { -// fprintf(stderr, "%p> full read: %d/%d [%d/%d]\n", this, total, _size, reader, writer); - fd.write((const char *) &(buffer[rd]), _block * total); - } - - do - { - /* jump the reader forward */ - Buffer_pointer index((cache.reader.complete + total) % _size, 0); - - if (update(cache.reader, index)) - break; - } - while (true); - -// fprintf(stderr, "%p> read end: %d [block=%d]\n", this, reader, _block); - - return total; -} - -/* returns number of items read from stream to buffer */ -unsigned int Ringbuffer_traits::traits_get(char * buffer, std::istream &fd, unsigned int amount) -{ - /* avoid using different values */ - Buffer_table cache = _pointers; - - if (amount > free_blocks(cache)) - return false; - - const unsigned int wr = cache.writer.complete; - const unsigned int wp = cache.writer.complete - 1; - - unsigned int real_amount = 0; - - /* should we go around the buffer for writing? */ - if ((wr + amount) > _size) - { -// fprintf(stderr, "%p> first if matched\n", this); - - unsigned int wr1 = _size - wr + 1; /* writer is already 1 position after */ - unsigned int wr2 = amount - wr1; - -// fprintf(stderr, "%p> partial write: (%d/%d) %d/%d [%d/%d]\n", this, wr1, wr2, amount, _size, reader, writer); - - /* two partial writes (one at the end, another at the beginning) */ - unsigned int char_amount = 0; - - /* one partial write on the buffer (at the end) */ - fd.read((char *) &(buffer[wp]), _block * wr1); - char_amount += fd.gcount(); - - if (fd.gcount() == (int)(_block * wr1)) - { - /* another partial write on the buffer (at the beginning) */ - fd.read((char *) (buffer), _block * wr2); - char_amount += fd.gcount(); - } - - real_amount = char_amount / _block; - } - else - { -// fprintf(stderr, "%p> second if matched\n", this); - -// fprintf(stderr, "%p> full write: a=%d/s=%d [r=%d/w=%d]\n", this, amount, _size, reader, writer); - - /* we are talking about buffers here, man! */ - fd.read((char *) &(buffer[wp]), _block * amount); - - real_amount = fd.gcount() / _block; - } - - _pointers.writer.complete = ((wp + amount) % _size) + 1; - _pointers.writer.partial = 1; - -// fprintf(stdout, "%p> write end: %d\n", this, _pointers.writer.complete); - - return real_amount; -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/ringbuffer.hpp b/src/mod/endpoints/mod_khomp/commons/base/ringbuffer.hpp deleted file mode 100644 index b9ecd7e6bd..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/ringbuffer.hpp +++ /dev/null @@ -1,448 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -/* WARNING: This is a generic ringbuffer abstraction, which works for single-sized elements, - partial elements, single/multi-elements read/writes. It is not wise to mix some - functions (partial element write / full element write), since it was not designed - with this use in mind. - - Also, it works only for single-reader + single-writer, since it does not depends - on external mutex functions. - - NOTE: for single element provide/consume, this abstraction has standard C++ semantics. - - for multiple and partial element provide/consume, memcpy is used - thus complex C++ - objects which need correct copy constructor semantics should not copied this way. - - */ - -#include - -#include -#include - -#include -#include - -#ifndef _RINGBUFFER_HPP_ -#define _RINGBUFFER_HPP_ - -struct Buffer_pointer -{ - Buffer_pointer(unsigned int _complete, unsigned short _partial) - : complete(_complete), partial(_partial) - {}; - - Buffer_pointer(const Buffer_pointer & o) - : complete(o.complete), partial(o.partial) - {}; - - Buffer_pointer(const volatile Buffer_pointer & o) - : complete(o.complete), partial(o.partial) - {}; - - void operator=(const volatile Buffer_pointer o) - { - complete = o.complete; - partial = o.partial; - } - - void operator=(const Buffer_pointer o) volatile - { - complete = o.complete; - partial = o.partial; - } - - bool operator==(const Buffer_pointer & o) - { - return (complete == o.complete && partial == o.partial); - } - - unsigned int complete:20; - unsigned short partial:12; -} -__attribute__((packed)); - -struct Buffer_table -{ - Buffer_table() - : reader(0,0), - writer(1,1) - {}; - - Buffer_table(const Buffer_table & o) - : reader(o.reader), writer(o.writer) - {}; - - Buffer_table(const volatile Buffer_table & o) - : reader(o.reader), writer(o.writer) - {}; - - void operator=(const volatile Buffer_table o) - { - reader = o.reader; - writer = o.writer; - } - - void operator=(const Buffer_table o) volatile - { - reader = o.reader; - writer = o.writer; - } - - bool operator==(const Buffer_table & o) - { - return (reader == o.reader && writer == o.writer); - } - - Buffer_pointer reader; - Buffer_pointer writer; -} -__attribute__((packed)); - -struct Ringbuffer_traits -{ - struct BufferFull {}; - struct BufferEmpty {}; - - protected: - Ringbuffer_traits(unsigned int block, unsigned int size) - : _block(block), _size(size) - {}; - - bool traits_provide( char *, const char *, unsigned int, bool); - unsigned int traits_consume(const char *, char *, unsigned int, bool); - - unsigned int traits_consume_begins(const char *, char *, unsigned int, bool); - bool traits_consume_commit(unsigned int); - - bool traits_provide_partial( char *, const char *, unsigned int); - unsigned int traits_consume_partial(const char *, char *, unsigned int); - - unsigned int traits_get( char *, std::istream &, unsigned int); - unsigned int traits_put(const char *, std::ostream &, unsigned int); - - bool update(Buffer_pointer & cache, Buffer_pointer & update) - { - return Atomic::doCAS(&(_pointers.reader), &cache, update); - } - - inline unsigned int free_blocks(const Buffer_table & cache) const - { - const unsigned int r = cache.reader.complete; - const unsigned int w = cache.writer.complete; - - if (r >= w) - return (r - w); - - return _size - (w - r); - } - - inline unsigned int used_blocks(const Buffer_table & cache) const - { - const unsigned int r = cache.reader.complete; - const unsigned int w = cache.writer.complete; - - if (r >= w) - return (_size - (r - w)) - 1; - - return (w - r) - 1; - } - - protected: - const unsigned int _block; - const unsigned int _size; - - volatile Buffer_table _pointers; -}; - -template -struct Ringbuffer: public Ringbuffer_traits, public NonCopyable -{ - Ringbuffer(unsigned int size) - : Ringbuffer_traits(sizeof(T), size) - { - _buffer = new T[_size]; - _malloc = true; - }; - - Ringbuffer(unsigned int size, T * buffer) - : Ringbuffer_traits(sizeof(T), size) - { - _buffer = buffer; - _malloc = false; - }; - - ~Ringbuffer() - { - if (_malloc) - delete[] _buffer; - } - - /***** GENERIC RANGE/INDEX CALCULATION FUNCTIONS *****/ - - protected: - inline bool may_write(const Buffer_table & cache) const - { - const unsigned int r = cache.reader.complete; - const unsigned int w = cache.writer.complete; - - return (((r - w) != 0) && (!(r == 0 && w == _size))); - } - - inline bool may_read(const Buffer_table & cache) const - { - if ((cache.writer.complete - cache.reader.complete) == 1) - return false; - - return true; - } - - inline unsigned int writer_next(const Buffer_pointer & cache, Buffer_pointer & index) const - { - unsigned int dest = cache.complete - 1, - temp = cache.complete + 1; - - if (temp > _size) index.complete = 1; - else index.complete = temp; - - index.partial = 1; - - return dest; - }; - - inline void reader_next(const Buffer_pointer & cache, Buffer_pointer & index) const - { - unsigned int temp = cache.complete + 1; - - if (temp == _size) index.complete = 0; - else index.complete = temp; - - index.partial = 0; - } - - /***** BUFFER FUNCTIONS *****/ - - public: - bool provide(const T & value) - { - Buffer_table cache = _pointers; - Buffer_pointer index = _pointers.writer; - - if (!may_write(cache)) - return false; - -// fprintf(stderr, "%p> provide %d/%d!\n", this, reader, writer); - - unsigned int dest = writer_next(cache.writer, index); - - _buffer[dest] = value; - - _pointers.writer = index; - -// fprintf(stderr, "%p> write: %d/%d [%d/%d]\n", this, _pointers.reader, _pointers.writer, _pointers.reader_partial, _pointers.writer_partial); - - return true; - } - - bool consume(T & value) - { - Buffer_table cache = _pointers; - Buffer_pointer index = _pointers.reader; - - if (!may_read(cache)) - return false; - -// fprintf(stderr, "%p> consume %d/%d!\n", this, reader, writer); - - value = _buffer[index.complete]; - - do - { - reader_next(cache.reader, index); - - if (update(cache.reader, index)) - break; - - cache.reader = index; - } - while (true); - -// fprintf(stderr, "%p> read: %d/%d [%d/%d]\n", this, _pointers.reader, _pointers.writer, _pointers.reader_partial, _pointers.writer_partial); - - return true; - } - - /* writes everything or nothing */ - inline bool provide(const T * value, unsigned int amount, bool do_not_overwrite = true) - { - return traits_provide((char *)_buffer, (const char *) value, amount, do_not_overwrite); - } - - /* returns the number of items that have been read (atomic_mode == true means 'all or nothing') */ - inline unsigned int consume(T * value, unsigned int amount, bool atomic_mode = false) - { - return traits_consume((const char *)_buffer, (char *) value, amount, atomic_mode); - } - - /***** TWO-PHASE BUFFER FUNCTIONS *****/ - - /* returns the number of items that have been read (atomic_mode == true means 'all or nothing') */ - inline unsigned int consume_begins(T * value, unsigned int amount, bool atomic_mode = false) - { - return traits_consume_begins((const char *)_buffer, (char *) value, amount, atomic_mode); - } - - /* returns true if we could commit that much of buffer (use only after consume_begins). * - * note: you may commit less bytes that have been read to keep some data inside the buffer */ - inline bool consume_commit(unsigned int amount) - { - return traits_consume_commit(amount); - } - - /***** TWO-PHASE SINGLE-ELEMENT BUFFER FUNCTIONS *****/ - - T & provider_start(void) - { - Buffer_table cache = _pointers; - - if (!may_write(cache)) - throw BufferFull(); - - unsigned writer = _pointers.writer.complete - 1; - -// fprintf(stderr, "%p> provider start %d/%d!\n", this, reader, writer); - - return _buffer[writer]; - } - - void provider_commit(void) - { - unsigned int temp = _pointers.writer.complete + 1; - -// fprintf(stderr, "%p> provider commit %d!\n", this, temp); - - if (temp > _size) - temp = 1; - - _pointers.writer.complete = temp; - _pointers.writer.partial = 1; - -// fprintf(stderr, "%p> write: %d/%d [%d/%d]\n", this, _pointers.reader, _pointers.writer, _pointers.reader_partial, _pointers.writer_partial); - } - - const T & consumer_start(void) - { - Buffer_table cache = _pointers; - - if (!may_read(cache)) - throw BufferEmpty(); - - unsigned int reader = _pointers.reader.complete; - -// fprintf(stderr, "%p> consumer start %d/%d!\n", this, reader, writer); - - return _buffer[reader]; - } - - void consumer_commit(void) - { - Buffer_pointer cache = _pointers.reader; - Buffer_pointer index(cache); - - do - { - reader_next(cache, index); - - if (update(cache, index)) - break; - - cache = index; - } - while (true); - -// fprintf(stderr, "%p> consumer commit %d!\n", this, temp); - -// fprintf(stderr, "%p> read: %d/%d [%d/%d]\n", this, _pointers.reader, _pointers.writer, _pointers.reader_partial, _pointers.writer_partial); - } - - /* writes everything or nothing, but works on bytes (may write incomplete elements) */ - /* WARNING: do not mix this with full element provider */ - inline bool provider_partial(const char *buffer, unsigned int amount) - { - return traits_provide_partial((char *)_buffer, buffer, amount); - } - - /* returns the number of bytes that have been read (may read incomplete elements) */ - /* WARNING: do not mix this with full element consumer */ - inline unsigned int consumer_partial(char *buffer, unsigned int amount) - { - return traits_consume_partial((const char *)_buffer, buffer, amount); - } - - /***** IO FUNCTIONS *****/ - - /* returns the number of items written to from buffer to stream */ - inline unsigned int put(std::ostream &fd, unsigned int amount) - { - return traits_put((const char *)_buffer, fd, amount); - } - - /* returns number of items read from stream to buffer */ - inline unsigned int get(std::istream &fd, unsigned int amount) - { - return traits_get((char *)_buffer, fd, amount); - } - - void clear() - { - _pointers.reader.complete = 0; - _pointers.reader.partial = 0; - _pointers.writer.complete = 1; - _pointers.writer.partial = 1; - } - - protected: - T * _buffer; - bool _malloc; -}; - -#endif /* _RINGBUFFER_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/saved_condition.cpp b/src/mod/endpoints/mod_khomp/commons/base/saved_condition.cpp deleted file mode 100644 index 4c9f80f47f..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/saved_condition.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - - -#include - -#include COMMONS_INCLUDE(saved_condition.cpp) - diff --git a/src/mod/endpoints/mod_khomp/commons/base/saved_condition.hpp b/src/mod/endpoints/mod_khomp/commons/base/saved_condition.hpp deleted file mode 100644 index dcfd22423d..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/saved_condition.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _SAVED_CONDITION_COMMON_HPP_ -#define _SAVED_CONDITION_COMMON_HPP_ - -#include - -//#include - -struct SavedConditionCommon -{ - SavedConditionCommon() : _signaled(false) {} - - protected: - bool _signaled; -}; - - -#include COMMONS_INCLUDE(saved_condition.hpp) - -#endif /* _SAVED_CONDITION_COMMON_HPP_ */ - diff --git a/src/mod/endpoints/mod_khomp/commons/base/scoped_lock.hpp b/src/mod/endpoints/mod_khomp/commons/base/scoped_lock.hpp deleted file mode 100644 index a85627f3cd..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/scoped_lock.hpp +++ /dev/null @@ -1,95 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -struct ScopedLockBasic -{ - ScopedLockBasic(void) - : _locked(true) {}; - - ScopedLockBasic(bool locked) - : _locked(locked) {}; - - virtual ~ScopedLockBasic() {}; - - protected: - bool _locked; -}; - - -struct ScopedLock : public ScopedLockBasic -{ - struct LockFailed {}; - - ScopedLock(SimpleLock & mutex) - : ScopedLockBasic(false), _mutex(mutex) - { - switch (_mutex.lock()) - { - case SimpleLock::ISINUSE: - case SimpleLock::FAILURE: - throw LockFailed(); - default: - break; - } - - _locked = true; - } - - ~ScopedLock() - { - unlock(); - } - - void unlock() - { - if (_locked) - { - _locked = false; - _mutex.unlock(); - } - } - - protected: - SimpleLock & _mutex; -}; - diff --git a/src/mod/endpoints/mod_khomp/commons/base/simple_lock.hpp b/src/mod/endpoints/mod_khomp/commons/base/simple_lock.hpp deleted file mode 100644 index 16d85fb053..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/simple_lock.hpp +++ /dev/null @@ -1,104 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _SIMPLE_LOCK_COMMON_HPP_ -#define _SIMPLE_LOCK_COMMON_HPP_ - -#include - -#include -#include - -#include - -/* This struct uses static polymorphism, and derived classes should implement * - * the "lock/trylock/unlock()" methods for correct code compilation. * - * The base class also features reference counting, so derived classes should * - * implement the "unreference_data()" method for releasing resources. */ - -template < typename Implementor > -struct SimpleLockCommon: COUNTER_SUPER( SimpleLockCommon < Implementor > ) -{ - friend class ReferenceCounter < SimpleLockCommon < Implementor > >; - - typedef enum - { - ISINUSE = 0, // operation not succeded (no error) - SUCCESS = 1, // operation succeded (no error) - FAILURE = 2, // mutex or state is somehow invalid (error! run for your life!) - } - Result; - - SimpleLockCommon() - {}; - - SimpleLockCommon(const SimpleLockCommon & o) - : COUNTER_REFER(o, SimpleLockCommon) - {}; - - virtual ~SimpleLockCommon() - {}; - - inline Result lock() - { - return static_cast(this)->lock(); - } - - inline Result trylock() - { - return static_cast(this)->trylock(); - } - - inline void unlock() - { - static_cast(this)->unlock(); - } - - protected: - void unreference(void) - { - static_cast(this)->unreference_data(); - } -}; - -#include COMMONS_INCLUDE(simple_lock.hpp) - -#endif /* _SIMPLE_LOCK_COMMON_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/strings.cpp b/src/mod/endpoints/mod_khomp/commons/base/strings.cpp deleted file mode 100644 index b7b84025a8..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/strings.cpp +++ /dev/null @@ -1,267 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -void Strings::Merger::add(std::string s) -{ - _list.push_back(s); -}; - -std::string Strings::Merger::merge(const std::string & sep) -{ - list_type::iterator i = _list.begin(); - - std::string res; - - if (i != _list.end()) - { - res += (*i); - ++i; - }; - - while (i != _list.end()) - { - res += sep; - res += (*i); - ++i; - } - - return res; -}; - -std::string Strings::Merger::merge(const char *sep) -{ - std::string ssep(sep); - return merge(ssep); -} - -unsigned int Strings::tokenize(const std::string & str, Strings::vector_type & tokens, - const std::string & delims, long int max_tokens, bool keep_empty) -{ - std::string::size_type base = 0; - - std::string::size_type init = str.find_first_not_of(delims, 0); - std::string::size_type fini = str.find_first_of(delims, init); - - long int cur_token = 1; - - while (std::string::npos != init) - { - if (keep_empty && base < init) - { - std::string::size_type cur_empty = init - base; - - while (cur_empty && cur_token < max_tokens) - { - tokens.push_back(""); - - ++cur_token; - --cur_empty; - } - } - - if (std::string::npos != fini && cur_token < max_tokens) - { - base = fini + 1; - - tokens.push_back(str.substr(init, fini - init)); - ++cur_token; - } - else - { - base = str.size(); // find_first_of(delims, init); - - tokens.push_back(str.substr(init, str.size() - init)); - break; - } - - init = str.find_first_not_of(delims, fini); - fini = str.find_first_of(delims, init); - } - - if (keep_empty && base != str.size()) - { - std::string::size_type cur_empty = str.size() - base + 1; - - while (cur_empty && cur_token < max_tokens) - { - tokens.push_back(""); - - ++cur_token; - --cur_empty; - } - - if (cur_empty) - { - std::string::size_type pos = base + cur_empty - 1; - tokens.push_back(str.substr(pos, str.size() - pos)); - ++cur_token; - } - } - - return (cur_token - 1); -} - -long Strings::tolong(const std::string & str, int base) -{ - return tolong(str.c_str(), base); -} - -unsigned long Strings::toulong(const std::string & str, int base) -{ - return toulong(str.c_str(), base); -} - -unsigned long long Strings::toulonglong(const std::string & str, int base) -{ - return toulonglong(str.c_str(), base); -} - -double Strings::todouble(const std::string & str) -{ - return todouble(str.c_str()); -} - -long Strings::tolong(const char * str, int base) -{ - char *str_end = 0; - - unsigned long value = strtol(str, &str_end, base); - - if (str_end && *str_end == 0) - return value; - - throw invalid_value(str); -} - -bool Strings::toboolean(std::string str) -{ - std::string tmp(str); - - Strings::lower(tmp); - - if ((tmp == "true") || (tmp == "yes")) return true; - if ((tmp == "false") || (tmp == "no")) return false; - - throw invalid_value(str); -} - -unsigned long Strings::toulong(const char * str, int base) -{ - char *str_end = 0; - - unsigned long value = strtoul(str, &str_end, base); - - if (str_end && *str_end == 0) - return value; - - throw invalid_value(str); -} - -unsigned long long Strings::toulonglong(const char * str, int base) -{ -#if defined(_WINDOWS) || defined(_Windows) || defined(_WIN32) || defined(WIN32) - throw not_implemented(); -#else - char *str_end = 0; - - unsigned long long value = strtoull(str, &str_end, base); - - if (str_end && *str_end == 0) - return value; - - throw invalid_value(str); -#endif -} - -double Strings::todouble(const char * str) -{ - char *str_end = 0; - - double value = strtod(str, &str_end); - - if (str_end && *str_end == 0) - return value; - - throw invalid_value(str); -} - -std::string Strings::fromboolean(bool value) -{ - if (value) return "true"; - else return "false"; -} - -std::string Strings::lower(std::string str) -{ - std::string res; - - for (std::string::iterator i = str.begin(); i != str.end(); i++) - res += tolower((*i)); - - return res; -} - -std::string Strings::hexadecimal(std::string value) -{ - std::string result; - - for (std::string::iterator i = value.begin(); i != value.end(); i++) - { - if (i != value.begin()) - result += " "; - - result += STG(FMT("%2x") % (unsigned int)(*i)); - } - - return result; -} - -std::string Strings::trim(const std::string& str, const std::string& trim_chars) -{ - std::string result(str); - - result.erase( result.find_last_not_of( trim_chars ) + 1 ); - result.erase( 0, result.find_first_not_of( trim_chars ) ); - - return result; -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/strings.hpp b/src/mod/endpoints/mod_khomp/commons/base/strings.hpp deleted file mode 100644 index 947da384d9..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/strings.hpp +++ /dev/null @@ -1,113 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#include -#include -#include - -#include - -#include - -/* Generic string funcions */ - -#ifndef _STRINGS_HPP_ -#define _STRINGS_HPP_ - -struct Strings -{ - typedef std::list list_type; - typedef std::vector vector_type; - - struct Merger - { - void add(std::string); - - std::string merge(const std::string &); - std::string merge(const char *); - - bool empty() { return _list.empty(); }; - - const list_type & list() { return _list; }; - - protected: - list_type _list; - }; - - public: - struct invalid_value - { - invalid_value(const char * value): _value(value) {}; - invalid_value(const std::string & value): _value(value) {}; - - std::string & value() { return _value; } - - protected: - std::string _value; - }; - - struct not_implemented {}; - - static unsigned int tokenize(const std::string &, vector_type &, const std::string & delims = ",;:", - long int max_toxens = LONG_MAX, bool keep_empty = true); - - static bool toboolean(std::string); - static std::string fromboolean(bool); - - static long tolong(const std::string &, int base = 10); - static unsigned long toulong(const std::string &, int base = 10); - static unsigned long long toulonglong(const std::string &, int base = 10); - static double todouble(const std::string &); - - static long tolong(const char *, int base = 10); - static unsigned long toulong(const char *, int base = 10); - static unsigned long long toulonglong(const char *, int base = 10); - static double todouble(const char *); - - static std::string lower(std::string); - static std::string hexadecimal(std::string); - - static std::string trim(const std::string&, const std::string& trim_chars = " \f\n\r\t\v"); -}; - -#endif // _STRINGS_HPP_ // diff --git a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.cpp b/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.cpp deleted file mode 100644 index d4d9861f5c..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include "saved_condition.hpp" - -bool SavedCondition::wait(unsigned int msec) -{ - bool ret = true; - - switch_mutex_lock(_mutex); - - if (!_signaled) - { - /* msec * 1000 = The amount of time in microseconds to wait. */ - if (switch_thread_cond_timedwait(_condition, _mutex, (switch_interval_time_t)msec * 1000) != 0) - ret = false; - } - - _signaled = false; - - switch_mutex_unlock(_mutex); - - return ret; -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.hpp b/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.hpp deleted file mode 100644 index b34e40b0c0..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/saved_condition.hpp +++ /dev/null @@ -1,136 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _SAVED_CONDITION_ -#define _SAVED_CONDITION_ - -#include - -extern "C" -{ - #include -} - -struct SavedCondition : public SavedConditionCommon// : public RefCounter < SavedCondition > -{ - typedef switch_thread_cond_t BaseConditionType; - typedef switch_mutex_t BaseMutexType; - - SavedCondition(switch_memory_pool_t *pool=NULL): - _pool(pool), - _can_delete_pool(false) - { - if(!_pool) - { - switch_core_new_memory_pool(&_pool); - _can_delete_pool = true; - } - - switch_thread_cond_create(&_condition, _pool); - switch_mutex_init(&_mutex, SWITCH_MUTEX_DEFAULT, _pool); - } - - //SavedCondition(const SavedCondition &); - ~SavedCondition() - { - switch_thread_cond_destroy(_condition); - switch_mutex_destroy(_mutex); - - if(_can_delete_pool) - switch_core_destroy_memory_pool(&_pool); - } - - void signal(void) - { - switch_mutex_lock(_mutex); - - _signaled = true; - switch_thread_cond_signal(_condition); - - switch_mutex_unlock(_mutex); - } - - void broadcast(void) - { - switch_mutex_lock(_mutex); - - _signaled = true; - switch_thread_cond_broadcast(_condition); - - switch_mutex_unlock(_mutex); - } - - void wait(void) - { - switch_mutex_lock(_mutex); - - if (!_signaled) - switch_thread_cond_wait(_condition, _mutex); - - _signaled = false; - - switch_mutex_unlock(_mutex); - } - - bool wait(unsigned int); - - void reset(void) - { - switch_mutex_lock(_mutex); - - _signaled = false; - - switch_mutex_unlock(_mutex); - } - - BaseMutexType * mutex() { return _mutex; }; - BaseConditionType * condition() { return _condition; }; - - protected: - - BaseConditionType *_condition; - BaseMutexType *_mutex; - switch_memory_pool_t *_pool; - bool _can_delete_pool; -}; - -#endif /* _SAVED_CONDITION_ */ - diff --git a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/simple_lock.hpp b/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/simple_lock.hpp deleted file mode 100644 index 6b3a17f46d..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/simple_lock.hpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _SIMPLE_LOCK_HPP_ -#define _SIMPLE_LOCK_HPP_ - -#include - -extern "C" -{ - #include -} - -template < typename Implementor > -struct SimpleLockBasic: public SimpleLockCommon < Implementor > -{ - typedef SimpleLockCommon < Implementor > Super; - typedef typename Super::Result Result; - - typedef switch_mutex_t BaseMutexType; - - SimpleLockBasic(switch_memory_pool_t *pool = NULL) - : _pool(pool), _can_delete_pool( (_pool == NULL) ) - - { - if(!_pool) - switch_core_new_memory_pool(&_pool); - - //switch_mutex_init(&_mutex, SWITCH_MUTEX_DEFAULT, _pool); - switch_mutex_init(&_mutex, SWITCH_MUTEX_NESTED, _pool); - } - - virtual ~SimpleLockBasic() - { - /* do nothing */ - }; - - void unreference_data() - { - switch_mutex_destroy(_mutex); - - if (_can_delete_pool) - switch_core_destroy_memory_pool(&_pool); - } - - Result trylock() - { - switch (switch_mutex_trylock(_mutex)) - { - case SWITCH_STATUS_SUCCESS: - return Super::SUCCESS; - case SWITCH_STATUS_FALSE: - case SWITCH_STATUS_TERM: - case SWITCH_STATUS_NOTIMPL: - case SWITCH_STATUS_MEMERR: - case SWITCH_STATUS_GENERR: - case SWITCH_STATUS_SOCKERR: - case SWITCH_STATUS_NOTFOUND: - case SWITCH_STATUS_UNLOAD: - case SWITCH_STATUS_NOUNLOAD: - case SWITCH_STATUS_NOT_INITALIZED: - return Super::FAILURE; - //case SWITCH_STATUS_INUSE: - default: - return Super::ISINUSE; - } - } - - void unlock() - { - switch_mutex_unlock(_mutex); - } - - BaseMutexType * mutex() { return _mutex; }; - - protected: - BaseMutexType *_mutex; - switch_memory_pool_t *_pool; - bool _can_delete_pool; -}; - -struct SimpleLock: public SimpleLockBasic < SimpleLock > -{ - typedef SimpleLockBasic < SimpleLock > Super; - typedef Super::Result Result; - - SimpleLock(switch_memory_pool_t *pool = NULL) - : Super(pool) {}; - - Result lock() - { - switch (switch_mutex_lock(_mutex)) - { - case SWITCH_STATUS_SUCCESS: - return Super::SUCCESS; - case SWITCH_STATUS_FALSE: - case SWITCH_STATUS_TERM: - case SWITCH_STATUS_NOTIMPL: - case SWITCH_STATUS_MEMERR: - case SWITCH_STATUS_GENERR: - case SWITCH_STATUS_SOCKERR: - case SWITCH_STATUS_NOTFOUND: - case SWITCH_STATUS_UNLOAD: - case SWITCH_STATUS_NOUNLOAD: - case SWITCH_STATUS_NOT_INITALIZED: - return Super::FAILURE; - //case SWITCH_STATUS_INUSE: - default: - return Super::ISINUSE; - } - } -}; - -template < unsigned int Retries = 10, unsigned int Interval = 50 > -struct SimpleNonBlockLock: public SimpleLockBasic < SimpleNonBlockLock < Retries, Interval > > -{ - typedef SimpleLockBasic < SimpleNonBlockLock < Retries, Interval > > Super; - typedef typename Super::Result Result; - - SimpleNonBlockLock(switch_memory_pool_t *pool = NULL) - : Super(pool) {}; - - inline Result lock() - { - for (unsigned int i = 0; i < Retries; i++) - { - Result ret = Super::trylock(); - - if (ret != Super::ISINUSE) - return ret; - - usleep(Interval * 1000); - } - - return Super::ISINUSE; - } -}; - -#endif /* _SIMPLE_LOCK_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/thread.hpp b/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/thread.hpp deleted file mode 100644 index 3c61b6a6ec..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/system/freeswitch/thread.hpp +++ /dev/null @@ -1,330 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _THREAD_HPP_ -#define _THREAD_HPP_ - -#include - -extern "C" -{ - #include -} - -struct Thread : ThreadCommon -{ - typedef switch_thread_t BaseThreadType; - - template - struct ThreadData : ThreadDataCommon - { - ThreadData(T data, A arg) : _data(data), _arg(arg) {} - - int run() - { - return _data(_arg); - } - - T _data; - A _arg; - }; - - template - struct ThreadData < T, R, void > : ThreadDataCommon - { - ThreadData(T data) : _data(data) {} - - int run() - { - return _data(); - } - - T _data; - }; - - template - struct ThreadData < T, void, A > : ThreadDataCommon - { - ThreadData(T data, A arg) : _data(data), _arg(arg) {} - - int run() - { - _data(_arg); - return 0; - } - - T _data; - A _arg; - }; - - - template - struct ThreadData < T, void, void > : ThreadDataCommon - { - ThreadData(T data) : _data(data) {} - - int run() - { - _data(); - return 0; - } - - T _data; - }; - - template - Thread(T obj, switch_memory_pool_t *pool=NULL) : - _thread_info(new ThreadData::Return, void>(obj)), - _pool(pool), - _can_delete_pool(false) - { - if(!_pool) - { - switch_core_new_memory_pool(&_pool); - _can_delete_pool = true; - } - - _thread_info->_thread = this; - _thread_info->_self = NULL; - _thread_info->_attribute = NULL; - - if(switch_threadattr_create( - (switch_threadattr_t **)&_thread_info->_attribute, _pool) != 0) - { - _thread_info->_attribute = NULL; - return; - } - - switch_threadattr_stacksize_set( - (switch_threadattr_t *)_thread_info->_attribute, - SWITCH_THREAD_STACKSIZE); - - if(!priority()) - { - _thread_info->_attribute = NULL; - } - - } - - template - Thread(T obj, A arg, switch_memory_pool_t *pool=NULL) : - _thread_info(new ThreadData::Return, A>(obj, arg)), - _pool(pool), - _can_delete_pool(false) - { - if(!_pool) - { - switch_core_new_memory_pool(&_pool); - _can_delete_pool = true; - } - - _thread_info->_thread = this; - _thread_info->_self = NULL; - _thread_info->_attribute = NULL; - - if(switch_threadattr_create( - (switch_threadattr_t **)&_thread_info->_attribute, _pool) != 0) - { - _thread_info->_attribute = NULL; - return; - } - - switch_threadattr_stacksize_set( - (switch_threadattr_t *)_thread_info->_attribute, - SWITCH_THREAD_STACKSIZE); - - if(!priority()) - { - _thread_info->_attribute = NULL; - } - - } - - ~Thread() - { - if(_thread_info) - delete _thread_info; - - if (_can_delete_pool) - switch_core_destroy_memory_pool(&_pool); - } - - void detach(bool d = true) - { - if(!_thread_info->_attribute) - return; - - /* Non-zero if detached threads should be created. */ - switch_threadattr_detach_set( - (switch_threadattr_t *)_thread_info->_attribute, d ? 1 : 0); - } - - bool start() - { - if(!_pool || !_thread_info->_attribute) - return false; - - switch_thread_create((switch_thread_t**)&_thread_info->_self, - (switch_threadattr_t *)_thread_info->_attribute, - run, - _thread_info, - _pool); - - if(!_thread_info->_self) - return false; - - return true; - } - - int join() - { - /* - * block until the desired thread stops executing. - * @param retval The return value from the dead thread. - * @param thd The thread to join - * - * SWITCH_DECLARE(switch_status_t) switch_thread_join(switch_status_t *retval, switch_thread_t *thd); - */ - - if(!_thread_info->_self) - return -2; - - int retval = 0; - - if(switch_thread_join((switch_status_t*)&retval, - (switch_thread_t *)_thread_info->_self) != 0) - return -1; - - return retval; - } - - BaseThreadType * self() - { - //switch_thread_self(); - //apr_os_thread_current(); - return (BaseThreadType *)_thread_info->_self; - } - -private: - void exit(int status) - { - /** - * stop the current thread - * @param thd The thread to stop - * @param retval The return value to pass back to any thread that cares - */ - //SWITCH_DECLARE(switch_status_t) switch_thread_exit(switch_thread_t *thd, switch_status_t retval); - switch_thread_exit((switch_thread_t *)_thread_info->_self, (switch_status_t)status); - - } - -#ifndef WIN32 - struct apr_threadattr_t { - apr_pool_t *pool; - pthread_attr_t attr; - }; -#endif - - bool priority() - { -#ifndef WIN32 - struct sched_param param; - - struct apr_threadattr_t *myattr = (struct apr_threadattr_t *)_thread_info->_attribute; - - if (pthread_attr_setschedpolicy( - (pthread_attr_t *)&myattr->attr, SCHED_RR) < 0) - return false; - - if (pthread_attr_getschedparam( - (pthread_attr_t *)&myattr->attr, ¶m) < 0) - return false; - - param.sched_priority = sched_get_priority_max(SCHED_RR); - - if (pthread_attr_setschedparam( - (pthread_attr_t *)&myattr->attr, ¶m) < 0) - return false; - -#endif - return true; - -/* - //BUG in Freeswitch - -THANKS FOR NOT REPORTING IT SO WE MUST LIVE WITH A PROBLEM YOU KNOW ABOUT ..... - - if(switch_threadattr_priority_increase( - (switch_threadattr_t *)_thread_info->_attribute) != 0) - return false; - - return true; -*/ - } - - -protected: - ThreadDataCommon * _thread_info; - switch_memory_pool_t *_pool; - bool _can_delete_pool; - -protected: - - static void *SWITCH_THREAD_FUNC run(BaseThreadType *thread, void * obj) - { - //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, - // "Starting new Thread\n"); - - ThreadDataCommon * data = (ThreadDataCommon *)obj; - int retval = data->run(); - - //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, - // "Stopping new Thread = %d\n", retval); - - ((Thread *)(data->_thread))->exit(retval); - - return NULL; - } - -}; - - -#endif /* _THREAD_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/tagged_union.hpp b/src/mod/endpoints/mod_khomp/commons/base/tagged_union.hpp deleted file mode 100644 index f46aab0b75..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/tagged_union.hpp +++ /dev/null @@ -1,313 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _TAGGED_UNION_HPP_ -#define _TAGGED_UNION_HPP_ - -#include - -#include -#include -#include - -#include - -namespace Tagged -{ - struct EmptyUnion - { - friend class Value; - - EmptyUnion() - : _adjusted(false) {}; - - // copy constructor - EmptyUnion(const EmptyUnion & o) - : _adjusted(o._adjusted) {}; - - // copy assignment operator - EmptyUnion & operator=(const EmptyUnion & o) - { - _adjusted = o._adjusted; - return *this; - }; - - ~EmptyUnion() { _adjusted = false; }; - - bool operator==(const EmptyUnion & o) const - { - return true; - }; - - public: - void clear(void) { _adjusted = false; }; - protected: - void setup(void) { _adjusted = true; }; - - protected: - bool value_set(void) const { return false; }; - bool value_get(void) const { return false; }; - - bool value_check(void) const { return false; }; - - template < typename S > - bool value_visit(S & visitor, typename S::ReturnType & ret) const - { - return false; - }; - - template < typename S > - bool value_visit_void(S & visitor) const - { - return false; - }; - - bool adjusted() const { return _adjusted; }; - - private: - bool _adjusted; - }; - - template < typename V, typename E = EmptyUnion > - struct Union: public E - { - friend class Value; - - // default constructor - Union() - : _value(0) {}; - - // constructor with initializer - template < typename U > - Union(U value) - : _value(0) - { - set(value); - }; - - // copy constructor - Union(const Union & o) - : E(static_cast(o)), - _value( (o._value ? new V(*(o._value)) : 0) ) - {}; - - // copy assignment operator - Union & operator=(const Union & o) - { - if (_value) - { - delete _value; - _value = 0; - } - - if (o._value) - { - _value = new V(*(o._value)); - } - - E::operator=(static_cast(o)); - - return *this; - }; - - // destructor - ~Union() - { - if (_value) - { - delete _value; - _value = 0; - } - }; - - // equal sign operator - template < typename U > - void operator=(U value) - { - set(value); - } - - template < typename U > - bool check(void) const - { - return value_check(static_cast< const U * const>(0)); - }; - - template < typename U > - U & get(void) const - { - U * res = 0; - - if (!E::adjusted()) - throw std::runtime_error("tagged union empty!"); - - if (!value_get(&res) || !res) - throw std::runtime_error(STG(FMT("type mismatch when asked for '%s'") % typeid(U).name())); - - return *res; - }; - - template < typename U > - void set(U val) - { - if (E::adjusted()) - clear(); - - if (!value_set(val)) - throw std::runtime_error("unable to set value of invalid type"); - }; - - template < typename S > - typename S::ReturnType visit(S visitor) const - { - typename S::ReturnType ret; - - if (!value_visit(visitor, ret)) - throw std::runtime_error("unable to visit empty value"); - - return ret; - }; - - template < typename S > - void visit_void(S visitor) const - { - if (!value_visit_void(visitor)) - throw std::runtime_error("unable to visit empty value"); - }; - - void clear() - { - if (_value) - { - delete _value; - _value = 0; - } - - E::clear(); - }; - - // compare (equal) operator - bool operator==(const Union & o) const - { - bool are_equal = false; - - if (!_value && !(o._value)) - are_equal = true; - - if (_value && o._value) - are_equal = (*_value == *(o._value)); - - if (are_equal) - return E::operator==(static_cast(o)); - - return false; - }; - - // compare types - bool sameType(const Union & o) const - { - if ((!(_value) && !(o._value)) || (_value && o._value)) - return E::operator==(static_cast(o)); - - return false; - }; - - protected: - using E::value_set; - using E::value_get; - - using E::value_check; - using E::value_visit; - using E::value_visit_void; - - bool value_set(V val) - { - _value = new V(val); - E::setup(); - - return true; - }; - - bool value_get(V ** val) const - { - if (!_value) - return false; - - *val = _value; - return true; - } - - bool value_check(const V * const junk) const - { - (void)junk; - return (_value != 0); - }; - - template < typename S > - bool value_visit(S & visitor, typename S::ReturnType & ret) const - { - if (_value) - { - ret = visitor(*const_cast(_value)); - return true; - }; - - return E::value_visit(visitor, ret); - }; - - template < typename S > - bool value_visit_void(S & visitor) const - { - if (_value) - { - visitor(*const_cast(_value)); - return true; - }; - - return E::value_visit_void(visitor); - }; - - private: - V * _value; - }; -}; - -#endif /* _TAGGED_UNION_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/thread.hpp b/src/mod/endpoints/mod_khomp/commons/base/thread.hpp deleted file mode 100644 index e00d7c875a..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/thread.hpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _THREAD_COMMON_HPP_ -#define _THREAD_COMMON_HPP_ - -#include - -#include -//#include - -struct ThreadCommon -{ - protected: - template - struct DecomposeFuncPtr; - - template - struct DecomposeFuncPtr - { - typedef ReturnType Return; - }; - - template - struct DecomposeFuncPtr - { - typedef void Return; - }; - - template - struct DecomposeFuncPtr - { - typedef ReturnType Return; - }; - - template< typename FunctionType > - struct DecomposeFunction - { - typedef typename Select < IsClass< FunctionType >::Result, int, - typename DecomposeFuncPtr< FunctionType >::Return >::Result - Return; - }; - - public: - struct ThreadDataCommon - { - ThreadDataCommon() {} - - virtual ~ThreadDataCommon() {} - - virtual int run() = 0; - - ThreadCommon * _thread; - - void * _self; - void * _attribute; - }; - - ThreadCommon() {} -}; - - -#include COMMONS_INCLUDE(thread.hpp) - -#endif /* _THREAD_COMMON_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/timer.cpp b/src/mod/endpoints/mod_khomp/commons/base/timer.cpp deleted file mode 100644 index 0cb0ac4340..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/timer.cpp +++ /dev/null @@ -1,366 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -TimerTraits::TimerTraits() -: _thread((Thread*)0), _purify(false), _last_tick(0), _age_count(0), _shutdown(false) -{}; - -bool TimerTraits::start (void) -{ - _shutdown = false; - - _condition.reset(); - _finalized.reset(); - - if (!_thread) - { - _thread = new Thread(TimerTraits::loop_thread(this)); - _purify = true; - } - -#if defined(_WINDOWS) || defined(_Windows) || defined(_WIN32) || defined(WIN32) - // set priority ... -#else - pthread_attr_t attrs; - sched_param param; - - if (pthread_attr_init(&attrs) < 0) - return false; - - if (pthread_attr_setschedpolicy(&attrs, SCHED_RR) < 0) - return false; - - if (pthread_attr_getschedparam(&attrs, ¶m) < 0) - return false; - - param.sched_priority = sched_get_priority_max(SCHED_RR); - - if (pthread_attr_setschedparam(&attrs, ¶m) < 0) - return false; - - // set priority... - -// if (pthread_create(&_thread, &attrs, TimerTraits::loop_thread, NULL) < 0) -// return false; - - _thread->start(); -#endif - - return true; -} - -bool TimerTraits::stop (void) -{ - _shutdown = true; - - _condition.signal(); - - _finalized.wait(10000); /* 10 seconds max wait */ - - if (_thread && _purify) - { - delete _thread; - - _thread = (Thread *)0; - _purify = false; - } - - return true; -} - -//----------------------------------------- - -int TimerTraits::loop_thread::operator()(void) -{ - try - { - _timer->loop(); - } - catch( ... ) - { - /* something wrong happened! */ - } - - _timer->_finalized.signal(); - - return 0; -} - -void TimerTraits::execute(ControlSet::iterator init, const TimerTraits::Control & ctrl) -{ - volatile CallbackFuncType func = (volatile CallbackFuncType) ctrl._func; - volatile CallbackDataType data = (volatile CallbackDataType) ctrl._data; - - _timer_set.erase(init); - - _mutex.unlock(); - - func(data); -} - -void TimerTraits::loop (void) -{ - while (true) - { - if (_shutdown) break; - - _mutex.lock(); - - ControlSet::iterator init = _timer_set.begin(); - - if (init == _timer_set.end()) - { - _mutex.unlock(); - _condition.wait(); - } - else - { - const Control & ctrl = *init; - - unsigned int ts_now = TimerTraits::tick(); - - if (_age_count == ctrl._age) - { - if (ts_now < ctrl._msecs) - { - /* age is right, but it is not time to expire yet... */ - volatile unsigned int wait_time = ctrl._msecs - ts_now; - _mutex.unlock(); - _condition.wait(wait_time); /* expire - now */ - } - else - { - /* age is right, and we should expire! */ - execute(init, ctrl); /* called locked, return unlocked */ - } - } - else if (_age_count < ctrl._age) - { - /* age is not there yet (need some time to overlap)... */ - volatile unsigned int wait_time = (UINT_MAX - ts_now) + ctrl._msecs; - _mutex.unlock(); - _condition.wait(wait_time); /* MAX - now + expire */ - } - else - { - /* age has passed, we should have expired before! */ - execute(init, ctrl); /* called locked, return unlocked */ - } - } - } - - _finalized.signal(); -} - -unsigned int TimerTraits::tick() -{ -#if defined(_WINDOWS) || defined(_Windows) || defined(_WIN32) || defined(WIN32) - unsigned int tick = GetTickCount(); -#else - struct timespec ticks; - - // error condition, make the user notice this.. - if (clock_gettime(CLOCK_MONOTONIC, &ticks) < 0) - return 0; - - unsigned int tick = ( ticks.tv_sec * 1000 ) + ( ticks.tv_nsec / 1000000 ); -#endif - - if (_last_tick > tick) - ++_age_count; - - _last_tick = tick; - - return tick; -} - -//----------------------------------------- - -TimerTraits::Index TimerTraits::traits_add_unlocked (unsigned int msecs, const void * func, const void * data, unsigned int value) -{ - unsigned int ms_tick = TimerTraits::tick(); - - unsigned int ms_left = UINT_MAX - ms_tick; - unsigned int ms_real = msecs; - - unsigned int age_num = _age_count; - - if (ms_left < msecs) - { - ms_real -= ms_left; - ++age_num; - } - else - { - ms_real += ms_tick; - } - - ControlSet::iterator it = _timer_set.insert(Control(age_num,ms_real,func,data,value)); - - if (_timer_set.size() == 1 || _timer_set.begin() == it) - { - _condition.signal(); - }; - - return Index(age_num, ms_real, msecs, func, data, value); -} - -TimerTraits::Index TimerTraits::traits_add (unsigned int msecs, const void * func, const void * data, unsigned int value) -{ - _mutex.lock(); - - Index idx = traits_add_unlocked(msecs, func, data, value); - - _mutex.unlock(); - - return idx; -} - -bool TimerTraits::traits_restart (TimerTraits::Index & idx, bool force) -{ - bool ret = false; - - _mutex.lock(); - - if (idx.valid) - { - if (traits_del_unlocked(idx) || force) - { - idx = traits_add_unlocked(idx.delta, idx.func, idx.data, idx.value); - ret = true; - } - } - - _mutex.unlock(); - - return ret; -} - -void TimerTraits::traits_setup(TimerTraits::Index * idx, unsigned int msecs, const void * func, void * data, unsigned int value) -{ - _mutex.lock(); - - if (idx->valid) - { - (void)traits_del_unlocked(*idx); - } - - *idx = traits_add_unlocked(msecs, func, data, value); - - _mutex.unlock(); -} - -bool TimerTraits::traits_del_unlocked (TimerTraits::Index & idx) -{ - bool ret = false; - - if (idx.valid) - { - ControlSet::iterator i = _timer_set.lower_bound(Control(idx.era, idx.msec)); - ControlSet::iterator j = _timer_set.upper_bound(Control(idx.era, idx.msec)); - - for (; i != j; i++) - { - const Control & ctrl = (*i); - - if ((idx.value && !(ctrl._value & idx.value))) - continue; - - if (((idx.func && ctrl._func == idx.func) || !idx.func) && ((idx.data && ctrl._data == idx.data) || !idx.data)) - { - if (_timer_set.begin() == i) - _condition.signal(); - - _timer_set.erase(i); - - ret = true; - break; - } - } - - idx.valid = false; - } - - return ret; -} - -bool TimerTraits::traits_del (TimerTraits::Index & idx) -{ - _mutex.lock(); - - bool ret = traits_del_unlocked(idx); - - _mutex.unlock(); - - return ret; -} - -bool TimerTraits::traits_del (const void * func, const void * data, unsigned int value) -{ - bool ret = false; - - _mutex.lock(); - - for (ControlSet::iterator i = _timer_set.begin(); i != _timer_set.end(); i++) - { - const Control & ctrl = (*i); - - if ((value && !(ctrl._value & value))) - continue; - - if (((func && ctrl._func == func) || !func) && ((data && ctrl._data == data) || !data)) - { - if (_timer_set.begin() == i) - _condition.signal(); - - _timer_set.erase(i); - - ret = true; - break; - } - } - - _mutex.unlock(); - - return ret; -} diff --git a/src/mod/endpoints/mod_khomp/commons/base/timer.hpp b/src/mod/endpoints/mod_khomp/commons/base/timer.hpp deleted file mode 100644 index 24d115d991..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/timer.hpp +++ /dev/null @@ -1,231 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#if defined(_WINDOWS) || defined(_Windows) || defined(_WIN32) || defined(WIN32) -#include -#else -#include -#endif - -#include - -#include -#include -#include -#include - -#ifndef _TIMER_HPP_ -#define _TIMER_HPP_ - -struct TimerTraits -{ - typedef bool (* CallbackFuncType)(const void * volatile); - typedef const void * CallbackDataType; - - TimerTraits(); - - virtual ~TimerTraits() {}; - - protected: - - /* pre-declaration, used below */ - struct ControlCompare; - - struct Control - { - Control(unsigned int age, unsigned int msecs, const void * func = 0, const void * data = 0, unsigned int value = 0) - : _age(age), _msecs(msecs), _func(func), _data(data), _value(value) {} - - unsigned int _age; - - unsigned int _msecs; - - const void * _func; - const void * _data; - - unsigned int _value; - }; - - struct ControlCompare - { - bool operator()(const Control & c1, const Control & c2) const - { - return (c1._age < c2._age ? true : c1._msecs < c2._msecs); - } - }; - - typedef std::multiset < Control, ControlCompare > ControlSet; - - public: - struct Index - { - Index(): era(0), msec(0), valid(false) {}; - - Index(unsigned int _era, unsigned int _msec, unsigned int _delta, const void * _func, const void * _data, unsigned int _value) - : era(_era), msec(_msec), delta(_delta), func(_func), data(_data), value(_value), valid(true) {}; - - unsigned int era; - unsigned int msec; - - unsigned int delta; - - const void * func; - const void * data; - - unsigned int value; - - bool valid; - - void reset(void) { era = 0; msec = 0; valid = false; }; - }; - - /* timer add/remove functions */ - Index traits_add (unsigned int msecs, const void * func, const void * data = 0, unsigned int value = 0); - - bool traits_restart (Index & idx, bool force); - - bool traits_del (Index & idx); - bool traits_del (const void * func, const void * data = 0, unsigned int value = 0); - - void traits_setup(Index * idx, unsigned int msecs, const void * func, void * data = 0, unsigned int value = 0); - - /* timer start/stop functions */ - bool start(void); - bool stop(void); - - protected: - Index traits_add_unlocked (unsigned int msecs, const void * func, const void * data, unsigned int value); - - bool traits_del_unlocked (Index & idx); - - protected: - void execute(ControlSet::iterator, const Control &); - - void loop(void); - - struct loop_thread - { - loop_thread(TimerTraits *timer) : _timer(timer) {}; - - int operator()(void); - - protected: - TimerTraits * _timer; - }; - - unsigned int tick(); - - /* variables */ - - SavedCondition _condition; - - SimpleLock _mutex; - Thread * _thread; - bool _purify; - - ControlSet _timer_set; - - unsigned int _last_tick; - unsigned int _age_count; - - SavedCondition _finalized; - bool _shutdown; -}; - -template < typename F, typename D > -struct TimerTemplate: COUNTER_SUPER(TimerTemplate< F, D >) -{ - typedef TimerTraits::Index Index; - typedef TimerTraits::Control Control; - - TimerTemplate() - : _timer(new TimerTraits()) - {}; - - TimerTemplate(const TimerTemplate< F, D > & o) - : COUNTER_REFER(o, TimerTemplate< F, D >), - _timer(o._timer) - {}; - - void unreference(void) - { - if (_timer) - delete _timer; - }; - - bool start() { return _timer->start(); } - bool stop() { return _timer->stop(); } - - inline void setup(Index * idx, unsigned int msecs, F * func, D data = 0, unsigned int value = 0) - { - _timer->traits_setup(idx, msecs, (const void *)func, (void *)(data), value); - } - - inline Index add(unsigned int msecs, F * func, D data = 0, unsigned int value = 0) - { - return _timer->traits_add(msecs, (const void *)func, (void *)(data), value); - } - - inline bool restart(Index & idx, bool force = false) - { - return _timer->traits_restart(idx, force); - } - - inline bool del(Index & idx) - { - return _timer->traits_del(idx); - } - - inline bool del(F * func, D data, unsigned int value = 0) - { - return _timer->traits_del((const void *)func, (void *)(data), value); - } - - inline bool del(unsigned int value) - { - return _timer->traits_del((const void *)0, (void *)0, value); - } - - protected: - TimerTraits * _timer; -}; - -#endif /* _TIMER_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/types.hpp b/src/mod/endpoints/mod_khomp/commons/base/types.hpp deleted file mode 100644 index 5ab6d292c6..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/types.hpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _TYPES_HPP_ -#define _TYPES_HPP_ - -/*** Used for conditional compilation based on K3L version ***/ - -#define K3L_AT_LEAST(major,minor,build) \ - (((k3lApiMajorVersion == major) && ((k3lApiMinorVersion == minor) && (k3lApiBuildVersion >= build)) || \ - ((k3lApiMajorVersion == major) && (k3lApiMinorVersion > minor))) || \ - (k3lApiMajorVersion > major)) - -#define K3L_EXACT(major,minor,build) \ - ((k3lApiMajorVersion == major) && (k3lApiMinorVersion == minor) && (k3lApiBuildVersion >= build)) - -/*** Used for checking information on classes and stuff.. ***/ - -template< typename T > -struct IsClass -{ - protected: - template < typename X > static char ( &A( void(X::*)() ) )[1]; - template < typename X > static char ( &A( X ) )[2]; - public: - static bool const Result = sizeof( A< T >(0) ) == 1; -}; - -template < typename T > -struct IsConst -{ - static bool const Result = false; -}; - -template < typename T > -struct IsConst< const T > -{ - static bool const Result = true; -}; - -template < typename T > -struct IsConst< T const * > -{ - static bool const Result = true; -}; - -/*** Used for template metaprogramming ***/ - -template < bool Value, typename Then, typename Else > -struct Select -{ - typedef Then Result; -}; - -template < typename Then, typename Else > -struct Select < false, Then, Else > -{ - typedef Else Result; -}; - -#endif /* _TYPES_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/variable.hpp b/src/mod/endpoints/mod_khomp/commons/base/variable.hpp deleted file mode 100644 index efeb0f53b7..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/variable.hpp +++ /dev/null @@ -1,124 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the "LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include - -#ifndef _VARIABLE_HPP_ -#define _VARIABLE_HPP_ - -template < typename R > -struct VariableBaseTable -{ - R value; -}; - -struct EmptyVariable {}; - -template < typename R > -struct Variable -{ - protected: - typedef VariableBaseTable< R > BaseType; - - typedef const BaseType * ConstObjType; - typedef BaseType * ObjType; - typedef R BaseType::* VarType; - - public: - template < typename ConstructorObjType > - Variable(R ConstructorObjType::* v) - : _adjusted(true), - _variable(reinterpret_cast(v)) - {}; - - Variable() - : _adjusted(false) - {}; - - template < typename MemberType > - void operator=(const MemberType v) - { - _adjusted = true; - _variable = reinterpret_cast(v); - } - - template < typename Type > - R & operator()(Type * obj) const - { - if (!_adjusted) - throw EmptyVariable(); - - return (reinterpret_cast< ObjType >(obj))->*(_variable); - } - - template < typename Type > - R & operator()(Type & obj) const - { - if (!_adjusted) - throw EmptyVariable(); - - return (reinterpret_cast< ObjType >(&obj))->*(_variable); - } - - template < typename Type > - const R & operator()(const Type * obj) const - { - if (!_adjusted) - throw EmptyVariable(); - - return (reinterpret_cast< ConstObjType >(obj))->*(_variable); - } - - template < typename Type > - const R & operator()(const Type & obj) const - { - if (!_adjusted) - throw EmptyVariable(); - - return (reinterpret_cast< ConstObjType >(&obj))->*(_variable); - } - - protected: - bool _adjusted; - VarType _variable; -}; - -#endif /* _VARIABLE_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/base/verbose.cpp b/src/mod/endpoints/mod_khomp/commons/base/verbose.cpp deleted file mode 100644 index bacd269736..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/verbose.cpp +++ /dev/null @@ -1,2992 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include -#include - -#define PRESENTATION_CHECK_RETURN(fmt, txtexact, txthuman) \ - { \ - switch(fmt) \ - { \ - case EXACT: return txtexact; \ - case HUMAN: return txthuman; \ - } \ - return txtexact; \ - } - -/********************************************/ - -std::string Verbose::channelStatus(const int32 dev, const int32 obj, const int32 cs, const Verbose::Presentation fmt) const -{ - try - { - const K3L_CHANNEL_CONFIG & config = _api.channel_config(dev, obj); - return Verbose::channelStatus(config.Signaling, cs, fmt); - } - catch (...) - { - return presentation(fmt, "", "Unknown"); - } -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::event(const int32 obj, const K3L_EVENT * const ev, const R2CountryType r2_country, const Verbose::Presentation fmt) const -#else -std::string Verbose::event(const int32 obj, const K3L_EVENT * const ev, const Verbose::Presentation fmt) const -#endif -{ - try - { - const K3L_CHANNEL_CONFIG & config = _api.channel_config(ev->DeviceId, obj); -#if K3L_AT_LEAST(2,0,0) - return Verbose::event(config.Signaling, obj, ev, r2_country, fmt); -#else - return Verbose::event(config.Signaling, obj, ev, fmt); -#endif - } - catch (...) - { -#if K3L_AT_LEAST(2,0,0) - return Verbose::event(ksigInactive, obj, ev, r2_country, fmt); -#else - return Verbose::event(ksigInactive, obj, ev, fmt); -#endif - } -} - -/********************************************/ - -std::string Verbose::echoLocation(const KEchoLocation ec, const Verbose::Presentation fmt) -{ - switch (ec) - { -#if K3L_AT_LEAST(1,5,4) - case kelNetwork: return presentation(fmt, "kelNetwork", "Network"); -#else - case kelE1: return presentation(fmt, "kelE1", "Network"); -#endif - case kelCtBus: return presentation(fmt, "kelCtBus", "CT-Bus"); - }; - - return presentation(fmt, "", "Unknown"); -}; - -std::string Verbose::echoCancellerConfig(KEchoCancellerConfig ec, const Verbose::Presentation fmt) -{ - switch (ec) - { - case keccNotPresent: return presentation(fmt, "keccNotPresent", "Not Present"); - case keccOneSingleBank: return presentation(fmt, "keccOneSingleBank", "One, Single Bank"); - case keccOneDoubleBank: return presentation(fmt, "keccOneDoubleBank", "One, Double Bank"); - case keccTwoSingleBank: return presentation(fmt, "keccTwoSingleBank", "Two, Single Bank"); - case keccTwoDoubleBank: return presentation(fmt, "keccTwoDoubleBank", "Two, Double Bank"); - case keccFail: return presentation(fmt, "keccFail", "Failure"); - }; - - return presentation(fmt, "", "Unknown"); -}; - -std::string Verbose::deviceName(const KDeviceType dt, const int32 model, const Verbose::Presentation fmt) -{ - return deviceName(dt, model, 0, fmt); -} - -std::string Verbose::deviceName(const KDeviceType dt, const int32 model, const int32 count, const Verbose::Presentation fmt) -{ - try - { - std::string value; - - value += internal_deviceType(dt, count); - value += "-"; - value += internal_deviceModel(dt, model, count); - - return value; - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[type/model='%d/%d']") % (int)dt % (int)model), - STG(FMT("Unknown device type/model (%d/%d)") % (int)dt % (int)model)); - } -} - -std::string Verbose::deviceType(const KDeviceType dt, const Verbose::Presentation fmt) -{ - return deviceType(dt, 0, fmt); -} - -std::string Verbose::deviceType(const KDeviceType dt, const int32 count, const Verbose::Presentation fmt) -{ - try - { - return internal_deviceType(dt, count); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[type='%d']") % (int)dt), - STG(FMT("Unknown device type (%d)") % (int)dt)); - } -} - -std::string Verbose::internal_deviceType(const KDeviceType dt, const int32 count) -{ - switch (dt) - { - case kdtE1: return (count > 34 || count == 0 ? "K2E1" : "K1E1"); - -#if K3L_AT_LEAST(1,6,0) - case kdtFXO: return "KFXO"; -#else - case kdtFX: return "KFXO"; -#endif - - case kdtConf: return "KCONF"; - case kdtPR: return "KPR"; - case kdtE1GW: return "KE1GW"; - -#if K3L_AT_LEAST(1,6,0) - case kdtFXOVoIP: return "KFXVoIP"; -#else - case kdtFXVoIP: return "KFXVoIP"; -#endif - -#if K3L_AT_LEAST(1,5,0) - case kdtE1IP: return (count > 90 || count == 0 ? "K2E1" : "K1E1"); -#endif -#if K3L_AT_LEAST(1,5,1) - case kdtE1Spx: return (count > 30 || count == 0 ? "K2E1" : "K1E1"); - case kdtGWIP: return "KGWIP"; -#endif - -#if K3L_AT_LEAST(1,6,0) - case kdtFXS: return "KFXS"; - case kdtFXSSpx: return "KFXS"; - case kdtGSM: return "KGSM"; - case kdtGSMSpx: return "KGSM"; -#endif - -#if K3L_AT_LEAST(2,1,0) - case kdtGSMUSB: return "KGSMUSB"; - case kdtGSMUSBSpx: return "KGSMUSB"; - - case kdtE1FXSSpx: return "KE1FXS"; -#endif - -#if K3L_EXACT(2,1,0) - case kdtReserved1: return "Reserved1"; -#endif - -#if K3L_AT_LEAST(2,2,0) - case kdtE1AdHoc: return "KE1AdHoc"; -#endif - case kdtDevTypeCount: break; - } - - throw internal_not_found(); -} - -std::string Verbose::deviceModel(const KDeviceType dt, const int32 model, const Verbose::Presentation fmt) -{ - return deviceModel(dt, model, 0, fmt); -}; - -std::string Verbose::deviceModel(const KDeviceType dt, const int32 model, const int32 count, const Verbose::Presentation fmt) -{ - try - { - return internal_deviceModel(dt, model, count); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[model='%d']") % (int)model), - STG(FMT("Unknown device model (%d)") % (int)model)); - } -} - -std::string Verbose::internal_deviceModel(const KDeviceType dt, const int32 model, const int32 count) -{ - switch (dt) - { - case kdtE1: - switch ((KE1DeviceModel)model) - { - case kdmE1600: return (count > 34 || count == 0 ? "600" : "300"); - case kdmE1600E: return (count > 34 || count == 0 ? "600" : "300"); -#if K3L_AT_LEAST(2,0,0) - case kdmE1600EX: return (count > 34 || count == 0 ? "600" : "300"); -#endif - } - throw internal_not_found(); - -#if K3L_AT_LEAST(1,6,0) - case kdtFXO: - switch ((KFXODeviceModel)model) -#else - case kdtFX: - switch ((KFXDeviceModel)model) -#endif - { -#if K3L_AT_LEAST(1,6,0) - case kdmFXO80: - switch (count) - { - case 0: /* default */ - case 8: return "80"; - case 4: return "40"; - } - break; - - case kdmFXOHI: - switch (count) - { - case 0: /* default */ - case 8: return "80-HI"; - case 4: return "40-HI"; - } - break; - - case kdmFXO160HI: return "160HI"; -#if K3L_AT_LEAST(2,1,0) - case kdmFXO240HI: return "240HI"; -#endif -#else - case kdmFXO80: - switch (count) - { - case 0: /* default */ - case 8: return "80"; - case 4: return "40"; - } - break; - -#endif - } - - throw internal_not_found(); - - case kdtConf: - switch ((KConfDeviceModel)model) - { - case kdmConf240: return "240"; - case kdmConf120: return "120"; -#if K3L_AT_LEAST(2,0,0) - case kdmConf240EX: return "240EX"; - case kdmConf120EX: return "120EX"; -#endif - } - - throw internal_not_found(); - - case kdtPR: - switch ((KPRDeviceModel)model) - { -#if K3L_AT_LEAST(1,6,0) - case kdmPR300v1: return "300v1"; - case kdmPR300SpxBased: return "300S"; -#if K3L_AT_LEAST(2,0,0) - case kdmPR300EX: return "300EX"; -#endif - case kdmPR300: return "300"; - } -#endif - throw internal_not_found(); - -#if K3L_AT_LEAST(1,4,0) - case kdtE1GW: - switch ((KE1GWDeviceModel)model) - { -#if K3L_AT_LEAST(1,6,0) - case kdmE1GW640: return "640"; -#if K3L_AT_LEAST(2,0,0) - case kdmE1GW640EX: return "640EX"; -#endif -#else - case kdmE1600V: return (count > 34 || count == 0 ? "600V" : "300V" ); - case kdmE1600EV: return (count > 34 || count == 0 ? "600EV" : "600EV"); -#endif - } - - throw internal_not_found(); -#endif - -#if K3L_AT_LEAST(1,6,0) - case kdtFXOVoIP: - switch ((KFXOVoIPDeviceModel)model) - { - case kdmFXGW180: return "180"; - } - - throw internal_not_found(); - -#elif K3L_AT_LEAST(1,4,0) - case kdtFXVoIP: - switch ((KFXVoIPDeviceModel)model) - { - case kdmFXO80V: return "80V"; - } - - throw internal_not_found(); -#endif - -#if K3L_AT_LEAST(1,5,0) - case kdtE1IP: - switch ((KE1IPDeviceModel)model) - { -#if K3L_AT_LEAST(1,6,0) - case kdmE1IP: return "E1IP"; -#if K3L_AT_LEAST(2,0,0) - case kdmE1IPEX: return "E1IPEX"; -#endif -#else - case kdmE1600EG: return (count > 90 || count == 0 ? "600EG" : "300EG"); -#endif - } - - throw internal_not_found(); -#endif - -#if K3L_AT_LEAST(1,5,1) - case kdtE1Spx: - switch ((KE1SpxDeviceModel)model) - { - case kdmE1Spx: return "SPX"; - case kdm2E1Based: return "SPX-2E1"; -#if K3L_AT_LEAST(2,0,0) - case kdmE1SpxEX: return "SPXEX"; -#endif - } - throw internal_not_found(); - - case kdtGWIP: - switch ((KGWIPDeviceModel)model) - { -#if K3L_AT_LEAST(1,6,0) - case kdmGWIP: return "GWIP"; -#if K3L_AT_LEAST(2,0,0) - case kdmGWIPEX: return "GWIPEX"; -#endif -#else - case kdmGW600G: return "600G"; - case kdmGW600EG: return "600EG"; -#endif - } - - throw internal_not_found(); -#endif - -#if K3L_AT_LEAST(1,6,0) - case kdtFXS: - switch ((KFXSDeviceModel)model) - { - case kdmFXS300: return (count > 30 || count == 0 ? "300" : "150"); -#if K3L_AT_LEAST(2,0,0) - case kdmFXS300EX: return (count > 30 || count == 0 ? "300EX" : "150EX"); -#endif - } - - throw internal_not_found(); - - case kdtFXSSpx: - switch ((KFXSSpxDeviceModel)model) - { - case kdmFXSSpx300: return (count > 30 || count == 0 ? "300-SPX" : "150-SPX"); - case kdmFXSSpx2E1Based: return "SPX-2E1"; -#if K3L_AT_LEAST(2,0,0) - case kdmFXSSpx300EX: return (count > 30 || count == 0 ? "300-SPXEX" : "150-SPXEX"); -#endif - } - - throw internal_not_found(); - - case kdtGSM: - switch ((KGSMDeviceModel)model) - { - case kdmGSM: - switch (count) - { - case 0: /* default */ - case 4: return "40"; - case 3: return "30"; - case 2: return "20"; - case 1: return "10"; - } - break; -#if K3L_AT_LEAST(2,0,0) - case kdmGSMEX: - switch (count) - { - case 0: /* default */ - case 4: return "40EX"; - case 3: return "80EX"; - case 2: return "20EX"; - case 1: return "10EX"; - } - break; -#endif - } - - throw internal_not_found(); - - case kdtGSMSpx: - switch ((KGSMSpxDeviceModel)model) - { - case kdmGSMSpx: - switch (count) - { - case 0: /* default */ - case 4: return "40"; - case 3: return "30"; - case 2: return "20"; - case 1: return "10"; - } - break; -#if K3L_AT_LEAST(2,0,0) - case kdmGSMSpxEX: - switch (count) - { - case 0: /* default */ - case 4: return "40-SPXEX"; - case 3: return "80-SPXEX"; - case 2: return "20-SPXEX"; - case 1: return "10-SPXEX"; - } - break; -#endif - } - - throw internal_not_found(); - -#if K3L_AT_LEAST(2,1,0) - case kdtGSMUSB: - switch ((KGSMUSBDeviceModel)model) - { - case kdmGSMUSB: return "20"; - } - - throw internal_not_found(); - - case kdtGSMUSBSpx: - switch ((KGSMUSBSpxDeviceModel)model) - { - case kdmGSMUSBSpx: return "SPX"; - } - - throw internal_not_found(); - - case kdtE1FXSSpx: - switch ((KGSMSpxDeviceModel)model) - { - case kdmE1FXSSpx: return "450-SPX"; - case kdmE1FXSSpxEX: return "450-SPXEX"; - } - - throw internal_not_found(); -#if K3L_AT_LEAST(2,2,0) - case kdtE1AdHoc: - switch((KE1AdHocModel)model) - { - case kdmE1AdHoc100: return "E1AdHoc100"; - case kdmE1AdHoc100E: return "E1AdHoc100E"; - case kdmE1AdHoc240: return "E1AdHoc240"; - case kdmE1AdHoc240E: return "E1AdHoc240E"; - case kdmE1AdHoc400: return "E1AdHoc240"; - case kdmE1AdHoc400E: return "E1AdHoc240E"; - } - throw internal_not_found(); -#endif - -#if K3L_EXACT(2,1,0) - case kdtReserved1: -#endif - case kdtDevTypeCount: - throw internal_not_found(); - -#endif -#endif - } - - throw internal_not_found(); -} - -std::string Verbose::signaling(const KSignaling sig, const Verbose::Presentation fmt) -{ - switch (sig) - { - case ksigInactive: return presentation(fmt, "ksigInactive", "Inactive"); - case ksigAnalog: return presentation(fmt, "ksigAnalog", "FXO (analog)"); - case ksigContinuousEM: return presentation(fmt, "ksigContinuousEM", "E+M Continuous"); - case ksigPulsedEM: return presentation(fmt, "ksigPulsedEM", "E+M PUlsed"); - case ksigOpenCAS: return presentation(fmt, "ksigOpenCAS", "Open CAS"); - case ksigOpenR2: return presentation(fmt, "ksigOpenR2", "Open R2"); - case ksigR2Digital: return presentation(fmt, "ksigR2Digital", "R2/MFC"); - case ksigUserR2Digital: return presentation(fmt, "ksigUserR2Digital", "R2/Other"); -#if K3L_AT_LEAST(1,4,0) - case ksigSIP: return presentation(fmt, "ksigSIP", "SIP"); -#endif - -#if K3L_AT_LEAST(1,5,1) - case ksigOpenCCS: return presentation(fmt, "ksigOpenCCS", "Open CCS"); - case ksigPRI_EndPoint: return presentation(fmt, "ksigPRI_EndPoint", "ISDN Endpoint"); - case ksigPRI_Network: return presentation(fmt, "ksigPRI_Network", "ISDN Network"); - case ksigPRI_Passive: return presentation(fmt, "ksigPRI_Passive", "ISDN Passive"); -#endif -#if K3L_AT_LEAST(1,5,3) - case ksigLineSide: return presentation(fmt, "ksigLineSide", "Line Side"); -#endif -#if K3L_AT_LEAST(1,6,0) - case ksigAnalogTerminal: return presentation(fmt, "ksigAnalogTerminal", "FXS (analog)"); - case ksigGSM: return presentation(fmt, "ksigGSM", "GSM"); - case ksigCAS_EL7: return presentation(fmt, "ksigCAS_EL7", "CAS EL7"); - case ksigE1LC: return presentation(fmt, "ksigE1LC", "E1 LC"); -#endif -#if K3L_AT_LEAST(2,1,0) - case ksigISUP: return presentation(fmt, "ksigISUP", "ISUP"); -#endif -#if K3L_EXACT(2,1,0) - case ksigFax: return presentation(fmt, "ksigFax", "Fax"); -#endif -#if K3L_AT_LEAST(2,2,0) - case ksigISUPPassive: return presentation(fmt, "ksigISUPPassive", "ISUP Passive"); -#endif - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KSignaling='%d']") % (int)sig), - STG(FMT("Unknown signaling (%d)") % (int)sig)); -} - -std::string Verbose::systemObject(const KSystemObject so, const Verbose::Presentation fmt) -{ - switch (so) - { - case ksoLink: return presentation(fmt, "ksoLink", "Link"); - case ksoLinkMon: return presentation(fmt, "ksoLinkMon", "Link Monitor"); - case ksoChannel: return presentation(fmt, "ksoChannel", "Channel"); -#if K3L_AT_LEAST(2,1,0) - case ksoGsmChannel:return presentation(fmt, "ksoGsmChannel","GsmChannel"); -#endif - case ksoH100: return presentation(fmt, "ksoH100", "H.100"); - case ksoFirmware: return presentation(fmt, "ksoFirmware", "Firmware"); - case ksoDevice: return presentation(fmt, "ksoDevice", "Device"); - case ksoAPI: return presentation(fmt, "ksoAPI", "Software Layer"); - } - - return presentation(fmt, - STG(FMT("[KSystemObject='%d']") % (int)so), - STG(FMT("Unknown object (%d)") % (int)so)); -} - -std::string Verbose::mixerTone(const KMixerTone mt, const Verbose::Presentation fmt) -{ - switch (mt) - { - case kmtSilence: return presentation(fmt, "kmtSilence", "Silence"); - case kmtDial: return presentation(fmt, "kmtDial", "Dialtone begin"); - case kmtEndOf425: return presentation(fmt, "kmtEndOf425", "Dialtone end"); - case kmtBusy: return presentation(fmt, "kmtBusy", "Busy"); - case kmtFax: return presentation(fmt, "kmtFax", "Fax"); - case kmtVoice: return presentation(fmt, "kmtVoice", "Voice"); -#if K3L_AT_LEAST(1,5,0) - case kmtCollect: return presentation(fmt, "kmtCollect", "Collect Call"); -#endif -#if K3L_AT_LEAST(1,5,1) - case kmtEndOfDtmf: return presentation(fmt, "kmtEndOfDtmf", "DTMF end"); -#endif - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KMixerTone='%d']") % (int)mt), - STG(FMT("Unknonwn tone (%d)") % (int)mt)); -} - -std::string Verbose::mixerSource(const KMixerSource ms, const Verbose::Presentation fmt) -{ - switch (ms) - { - case kmsChannel: return presentation(fmt, "kmsChannel", "Channel"); - case kmsPlay: return presentation(fmt, "kmsPlay", "Player"); - case kmsGenerator: return presentation(fmt, "kmsGenerator", "Generator"); - case kmsCTbus: return presentation(fmt, "kmsCTbus", "CT-bus"); -#if (K3L_AT_LEAST(1,4,0) && !K3L_AT_LEAST(1,6,0)) - case kmsVoIP: return presentation(fmt, "kmsVoIP", "VoIP"); -#endif -#if K3L_AT_LEAST(1,6,0) - case kmsNoDelayChannel: return presentation(fmt, "kmsNoDelayChannel", "No delay channel"); -#endif - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KMixerSource='%d']") % (int)ms), - STG(FMT("Unknonwn source (%d)") % (int)ms)); -} - -std::string Verbose::channelFeatures(const int32 flags, const Verbose::Presentation fmt) -{ - if (0x00 != flags) - { - Strings::Merger strs; - - if (kcfDtmfSuppression & flags) strs.add(presentation(fmt, "DtmfSuppression", "DTMF Suppression")); - if (kcfCallProgress & flags) strs.add(presentation(fmt, "CallProgress", "Call Progress")); - if (kcfPulseDetection & flags) strs.add(presentation(fmt, "PulseDetection", "Pulse Detection")); - if (kcfAudioNotification & flags) strs.add(presentation(fmt, "AudioNotification", "Audio Notification")); - if (kcfEchoCanceller & flags) strs.add(presentation(fmt, "EchoCanceller", "Echo Canceller")); - if (kcfAutoGainControl & flags) strs.add(presentation(fmt, "AutoGainControl", "Input AGC")); - if (kcfHighImpEvents & flags) strs.add(presentation(fmt, "HighImpEvents", "High Impedance Events")); -#if K3L_AT_LEAST(1,6,0) - if (kcfCallAnswerInfo & flags) strs.add(presentation(fmt, "CallAnswerInfo", "Call Answer Info")); - if (kcfOutputVolume & flags) strs.add(presentation(fmt, "OutputVolume", "Output Volume")); - if (kcfPlayerAGC & flags) strs.add(presentation(fmt, "PlayerAGC", "Player AGC")); -#endif - - return presentation(fmt, - STG(FMT("kcf{%s}") % strs.merge(",")), - STG(FMT("%s") % strs.merge(", "))); - }; - - PRESENTATION_CHECK_RETURN(fmt, "", "No features"); -} - -std::string Verbose::seizeFail(const KSeizeFail sf, const Verbose::Presentation fmt) -{ - switch (sf) - { - case ksfChannelLocked: return presentation(fmt, "ksfChannelLocked", "Channel Locked"); - case ksfChannelBusy: return presentation(fmt, "ksfChannelBusy", "Channel Busy"); - case ksfIncomingChannel: return presentation(fmt, "ksfIncomingChannel", "Incoming Channel"); - case ksfDoubleSeizure: return presentation(fmt, "ksfDoubleSeizure", "Double Seizure"); - case ksfCongestion: return presentation(fmt, "ksfCongestion", "Congestion"); - case ksfNoDialTone: return presentation(fmt, "ksfNoDialTone", "No Dial Tone"); - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KSeizeFail='%d']") % (int)sf), - STG(FMT("Unknown seize fail (%d)") % (int)sf)); -} - -#if K3L_AT_LEAST(1,5,0) -std::string Verbose::internal_sipFailures(const KSIP_Failures code, const Verbose::Presentation fmt) -{ - switch (code) - { -#if K3L_AT_LEAST(1,6,0) - case kveResponse_200_OK_Success: return presentation(fmt, "kveResponse_200_OK_Success", "200 OK"); -#endif - case kveRedirection_300_MultipleChoices: return presentation(fmt, "kveRedirection_300_MultipleChoices", "300 Multiple Choices"); - case kveRedirection_301_MovedPermanently: return presentation(fmt, "kveRedirection_301_MovedPermanently", "301 Moved Permanently"); - case kveRedirection_302_MovedTemporarily: return presentation(fmt, "kveRedirection_302_MovedTemporarily", "302 Moved Temporarily"); - case kveRedirection_305_UseProxy: return presentation(fmt, "kveRedirection_305_UseProxy", "305 Use Proxy"); - case kveRedirection_380_AlternativeService: return presentation(fmt, "kveRedirection_380_AlternativeService", "380 Alternate Service"); - case kveFailure_400_BadRequest: return presentation(fmt, "kveFailure_400_BadRequest", "400 Bad Request"); - case kveFailure_401_Unauthorized: return presentation(fmt, "kveFailure_401_Unauthorized", "401 Unauthorized"); - case kveFailure_402_PaymentRequired: return presentation(fmt, "kveFailure_402_PaymentRequired", "402 Payment Required"); - case kveFailure_403_Forbidden: return presentation(fmt, "kveFailure_403_Forbidden", "403 Forbidden"); - case kveFailure_404_NotFound: return presentation(fmt, "kveFailure_404_NotFound", "404 Not Found"); - case kveFailure_405_MethodNotAllowed: return presentation(fmt, "kveFailure_405_MethodNotAllowed", "405 Method Not Allowed"); - case kveFailure_406_NotAcceptable: return presentation(fmt, "kveFailure_406_NotAcceptable", "406 Not Acceptable"); - case kveFailure_407_ProxyAuthenticationRequired: return presentation(fmt, "kveFailure_407_ProxyAuthenticationRequired", "407 Proxy Authentication Required"); - case kveFailure_408_RequestTimeout: return presentation(fmt, "kveFailure_408_RequestTimeout", "408 Request Timeout"); - case kveFailure_410_Gone: return presentation(fmt, "kveFailure_410_Gone", "410 Gone"); - case kveFailure_413_RequestEntityTooLarge: return presentation(fmt, "kveFailure_413_RequestEntityTooLarge", "413 Request Entity Too Large"); - case kveFailure_414_RequestURI_TooLong: return presentation(fmt, "kveFailure_414_RequestURI_TooLong", "414 Request URI Too Long"); - case kveFailure_415_UnsupportedMediaType: return presentation(fmt, "kveFailure_415_UnsupportedMediaType", "415 Unsupported Media Type"); - case kveFailure_416_UnsupportedURI_Scheme: return presentation(fmt, "kveFailure_416_UnsupportedURI_Scheme", "416 Unsupported URI Scheme"); - case kveFailure_420_BadExtension: return presentation(fmt, "kveFailure_420_BadExtension", "420 Bad Extension"); - case kveFailure_421_ExtensionRequired: return presentation(fmt, "kveFailure_421_ExtensionRequired", "421 Extension Required"); - case kveFailure_423_IntervalTooBrief: return presentation(fmt, "kveFailure_423_IntervalTooBrief", "423 Internal Too Brief"); - case kveFailure_480_TemporarilyUnavailable: return presentation(fmt, "kveFailure_480_TemporarilyUnavailable", "480 Temporarily Unavailable"); - case kveFailure_481_CallDoesNotExist: return presentation(fmt, "kveFailure_481_CallDoesNotExist", "481 Call Does Not Exist"); - case kveFailure_482_LoopDetected: return presentation(fmt, "kveFailure_482_LoopDetected", "482 Loop Detected"); - case kveFailure_483_TooManyHops: return presentation(fmt, "kveFailure_483_TooManyHops", "483 Too Many Hops"); - case kveFailure_484_AddressIncomplete: return presentation(fmt, "kveFailure_484_AddressIncomplete", "484 Address Incomplete"); - case kveFailure_485_Ambiguous: return presentation(fmt, "kveFailure_485_Ambiguous", "485 Ambiguous"); - case kveFailure_486_BusyHere: return presentation(fmt, "kveFailure_486_BusyHere", "486 Busy Here"); - case kveFailure_487_RequestTerminated: return presentation(fmt, "kveFailure_487_RequestTerminated", "487 Request Terminated"); - case kveFailure_488_NotAcceptableHere: return presentation(fmt, "kveFailure_488_NotAcceptableHere", "488 Not Acceptable Here"); - case kveFailure_491_RequestPending: return presentation(fmt, "kveFailure_491_RequestPending", "491 Request Pending"); - case kveFailure_493_Undecipherable: return presentation(fmt, "kveFailure_493_Undecipherable", "493 Undecipherable"); - case kveServer_500_InternalError: return presentation(fmt, "kveServer_500_InternalError", "500 Internal Error"); - case kveServer_501_NotImplemented: return presentation(fmt, "kveServer_501_NotImplemented", "501 Not Implemented"); - case kveServer_502_BadGateway: return presentation(fmt, "kveServer_502_BadGateway", "502 Bad Gateway"); - case kveServer_503_ServiceUnavailable: return presentation(fmt, "kveServer_503_ServiceUnavailable", "503 Service Unavailable"); - case kveServer_504_TimeOut: return presentation(fmt, "kveServer_504_TimeOut", "504 Timed Out"); - case kveServer_505_VersionNotSupported: return presentation(fmt, "kveServer_505_VersionNotSupported", "505 Version Not Supported"); - case kveServer_513_MessageTooLarge: return presentation(fmt, "kveServer_513_MessageTooLarge", "513 Message Too Large"); - case kveGlobalFailure_600_BusyEverywhere: return presentation(fmt, "kveGlobalFailure_600_BusyEverywhere", "600 Busy Everywhere"); - case kveGlobalFailure_603_Decline: return presentation(fmt, "kveGlobalFailure_603_Decline", "603 Decline"); - case kveGlobalFailure_604_DoesNotExistAnywhere: return presentation(fmt, "kveGlobalFailure_604_DoesNotExistAnywhere", "604 Does Not Exist Anywhere"); - case kveGlobalFailure_606_NotAcceptable: return presentation(fmt, "kveGlobalFailure_606_NotAcceptable", "606 Not Acceptable"); - } - - throw internal_not_found(); -} - -std::string Verbose::sipFailures(const KSIP_Failures code, const Verbose::Presentation fmt) -{ - try - { - return internal_sipFailures(code, fmt); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KSIP_Failures='%d']") % (int)code), - STG(FMT("Unknown SIP failure (%d)") % (int)code)); - } -} - -#endif - -#if K3L_AT_LEAST(1,5,1) -std::string Verbose::internal_isdnCause(const KQ931Cause code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kq931cNone: return presentation(fmt, "kq931cNone", "None"); - case kq931cUnallocatedNumber: return presentation(fmt, "kq931cUnallocatedNumber", "Unallocated number"); - case kq931cNoRouteToTransitNet: return presentation(fmt, "kq931cNoRouteToTransitNet", "No route to transmit to network"); - case kq931cNoRouteToDest: return presentation(fmt, "kq931cNoRouteToDest", "No route to destination"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cSendSpecialInfoTone: return presentation(fmt, "kq931cSendSpecialInfoTone", "Send special information tone"); - case kq931cMisdialedTrunkPrefix: return presentation(fmt, "kq931cMisdialedTrunkPrefix", "Misdialed trunk prefix"); -#endif - case kq931cChannelUnacceptable: return presentation(fmt, "kq931cChannelUnacceptable", "Channel unacceptable"); - case kq931cCallAwarded: return presentation(fmt, "kq931cCallAwarded", "Call awarded"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cPreemption: return presentation(fmt, "kq931cPreemption", "Preemption"); - case kq931cPreemptionCircuitReuse: return presentation(fmt, "kq931cPreemptionCircuitReuse", "Preemption circuit reuse"); - case kq931cQoR_PortedNumber: return presentation(fmt, "kq931cQoR_PortedNumber", "QoR ported number"); -#endif - case kq931cNormalCallClear: return presentation(fmt, "kq931cNormalCallClear", "Normal call clear"); - case kq931cUserBusy: return presentation(fmt, "kq931cUserBusy", "User busy"); - case kq931cNoUserResponding: return presentation(fmt, "kq931cNoUserResponding", "No user responding"); - case kq931cNoAnswerFromUser: return presentation(fmt, "kq931cNoAnswerFromUser", "No answer from user"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cSubscriberAbsent: return presentation(fmt, "kq931cSubscriberAbsent", "Subscriber absent"); -#endif - case kq931cCallRejected: return presentation(fmt, "kq931cCallRejected", "Call rejected"); - case kq931cNumberChanged: return presentation(fmt, "kq931cNumberChanged", "Number changed"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cRedirectionToNewDest: return presentation(fmt, "kq931cRedirectionToNewDest", "Redirection to new destination"); - case kq931cCallRejectedFeatureDest: return presentation(fmt, "kq931cCallRejectedFeatureDest", "Call rejected feature destination"); - case kq931cExchangeRoutingError: return presentation(fmt, "kq931cExchangeRoutingError", "Exchange routing error"); -#endif - case kq931cNonSelectedUserClear: return presentation(fmt, "kq931cNonSelectedUserClear", "Non selected user clear"); - case kq931cDestinationOutOfOrder: return presentation(fmt, "kq931cDestinationOutOfOrder", "Destination out of order"); - case kq931cInvalidNumberFormat: return presentation(fmt, "kq931cInvalidNumberFormat", "Invalid number format"); - case kq931cFacilityRejected: return presentation(fmt, "kq931cFacilityRejected", "Facility rejected"); - case kq931cRespStatusEnquiry: return presentation(fmt, "kq931cRespStatusEnquiry", "Response status enquiry"); - case kq931cNormalUnspecified: return presentation(fmt, "kq931cNormalUnspecified", "Normal unespecified"); - case kq931cNoCircuitChannelAvail: return presentation(fmt, "kq931cNoCircuitChannelAvail", "No circuit channel available"); - case kq931cNetworkOutOfOrder: return presentation(fmt, "kq931cNetworkOutOfOrder", "Network out of order"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cPermanentFrameConnOutOfService: return presentation(fmt, "kq931cPermanentFrameConnOutOfService", "Permanent frame connection out of service"); - case kq931cPermanentFrameConnOperational: return presentation(fmt, "kq931cPermanentFrameConnOperational", "Permanent frame connection operational"); -#endif - case kq931cTemporaryFailure: return presentation(fmt, "kq931cTemporaryFailure", "Temporary failure"); - case kq931cSwitchCongestion: return presentation(fmt, "kq931cSwitchCongestion", "Switch congestion"); - case kq931cAccessInfoDiscarded: return presentation(fmt, "kq931cAccessInfoDiscarded", "Access information discarded"); - case kq931cRequestedChannelUnav: return presentation(fmt, "kq931cRequestedChannelUnav", "Requested channel unavailable"); - case kq931cPrecedenceCallBlocked: return presentation(fmt, "kq931cPrecedenceCallBlocked", "Precedence call blocked"); - case kq931cResourceUnavailable: return presentation(fmt, "kq931cResourceUnavailable", "Request resource unavailable"); - case kq931cQosUnavailable: return presentation(fmt, "kq931cQosUnavailable", "QoS unavailable"); - case kq931cReqFacilityNotSubsc: return presentation(fmt, "kq931cReqFacilityNotSubsc", "Request facility not subscribed"); - case kq931cOutCallsBarredWithinCUG: return presentation(fmt, "kq931cOutCallsBarredWithinCUG", "Out calls barred within UG"); - case kq931cInCallsBarredWithinCUG: return presentation(fmt, "kq931cInCallsBarredWithinCUG", "In calls barred within UG"); - case kq931cBearerCapabNotAuthor: return presentation(fmt, "kq931cBearerCapabNotAuthor", "Bearer capability not authorized"); - case kq931cBearerCapabNotAvail: return presentation(fmt, "kq931cBearerCapabNotAvail", "Bearer capability not available"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cInconsistency: return presentation(fmt, "kq931cInconsistency", "Inconsistency"); -#endif - case kq931cServiceNotAvailable: return presentation(fmt, "kq931cServiceNotAvailable", "Service not available"); - case kq931cBcNotImplemented: return presentation(fmt, "kq931cBcNotImplemented", "Bearer capability not implemented"); - case kq931cChannelTypeNotImplem: return presentation(fmt, "kq931cChannelTypeNotImplem", "Channel type not implemented"); - case kq931cReqFacilityNotImplem: return presentation(fmt, "kq931cReqFacilityNotImplem", "Request facility not implemented"); - case kq931cOnlyRestrictedBcAvail: return presentation(fmt, "kq931cOnlyRestrictedBcAvail", "Only restricted bearer capability available"); - case kq931cServiceNotImplemented: return presentation(fmt, "kq931cServiceNotImplemented", "Service not implemented"); - case kq931cInvalidCrv: return presentation(fmt, "kq931cInvalidCrv", "Invalid call reference value"); - case kq931cChannelDoesNotExist: return presentation(fmt, "kq931cChannelDoesNotExist", "Channel does not exist"); - case kq931cCallIdDoesNotExist: return presentation(fmt, "kq931cCallIdDoesNotExist", "Call identification does not exist"); - case kq931cCallIdInUse: return presentation(fmt, "kq931cCallIdInUse", "Call identification in use"); - case kq931cNoCallSuspended: return presentation(fmt, "kq931cNoCallSuspended", "No call suspended"); - case kq931cCallIdCleared: return presentation(fmt, "kq931cCallIdCleared", "Call identification cleared"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cUserNotMemberofCUG: return presentation(fmt, "kq931cUserNotMemberofCUG", "User not member of UG"); -#endif - case kq931cIncompatibleDestination: return presentation(fmt, "kq931cIncompatibleDestination", "Incompatible destination"); - case kq931cInvalidTransitNetSel: return presentation(fmt, "kq931cInvalidTransitNetSel", "Invalid transit network selected"); - case kq931cInvalidMessage: return presentation(fmt, "kq931cInvalidMessage", "Invalid message"); - case kq931cMissingMandatoryIe: return presentation(fmt, "kq931cMissingMandatoryIe", "Missing mandatory information element"); - case kq931cMsgTypeNotImplemented: return presentation(fmt, "kq931cMsgTypeNotImplemented", "Message type not implemented"); - case kq931cMsgIncompatWithState: return presentation(fmt, "kq931cMsgIncompatWithState", "Message incompatible with state"); - case kq931cIeNotImplemented: return presentation(fmt, "kq931cIeNotImplemented", "Information element not implemented"); - case kq931cInvalidIe: return presentation(fmt, "kq931cInvalidIe", "Invalid information element"); - case kq931cMsgIncompatWithState2: return presentation(fmt, "kq931cMsgIncompatWithState2", "Message incompatible with state (2)"); - case kq931cRecoveryOnTimerExpiry: return presentation(fmt, "kq931cRecoveryOnTimerExpiry", "Recovery on timer expiry"); - case kq931cProtocolError: return presentation(fmt, "kq931cProtocolError", "Protocol error"); -#if 1 /* this changed during K3L 1.6.0 development cycle... */ - case kq931cMessageWithUnrecognizedParam: return presentation(fmt, "kq931cMessageWithUnrecognizedParam", "Message with unrecognized parameters"); - case kq931cProtocolErrorUnspecified: return presentation(fmt, "kq931cProtocolErrorUnspecified", "Protocol error unspecified"); -#endif - case kq931cInterworking: return presentation(fmt, "kq931cInterworking", "Interworking"); - case kq931cCallConnected: return presentation(fmt, "kq931cCallConnected", "Call connected"); - case kq931cCallTimedOut: return presentation(fmt, "kq931cCallTimedOut", "Call timeout"); - case kq931cCallNotFound: return presentation(fmt, "kq931cCallNotFound", "Call not found"); - case kq931cCantReleaseCall: return presentation(fmt, "kq931cCantReleaseCall", "Cannot realese call"); - case kq931cNetworkFailure: return presentation(fmt, "kq931cNetworkFailure", "Network failure"); - case kq931cNetworkRestart: return presentation(fmt, "kq931cNetworkRestart", "Network restart"); - } - - throw internal_not_found(); -} - -std::string Verbose::isdnCause(const KQ931Cause code, const Verbose::Presentation fmt) -{ - try - { - return internal_isdnCause(code); - } - catch (internal_not_found e) - { - return STG(FMT("[KQ931Cause='%d']") % (int)code); - } -} -#endif - -#if K3L_AT_LEAST(1,5,2) -std::string Verbose::isdnDebug(const int32 flags, const Verbose::Presentation fmt) -{ - if (0x00 != flags) - { - Strings::Merger strs; - - if (flags & kidfQ931) strs.add("Q931"); - if (flags & kidfLAPD) strs.add("LAPD"); - if (flags & kidfSystem) strs.add("System"); - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("kidf{%s}") % strs.merge(",")), - strs.merge(", ")); - } - - return presentation(fmt, "", "No debug active"); -} -#endif - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::internal_signGroupB(const KSignGroupB group, const R2CountryType country, const Verbose::Presentation fmt) -#else -std::string Verbose::internal_signGroupB(const KSignGroupB group, const Verbose::Presentation fmt) -#endif -{ -#if K3L_AT_LEAST(2,0,0) - switch (country) - { - case R2_COUNTRY_ARG: - switch ((KSignGroupB_Argentina)group) - { - case kgbArNumberChanged: return presentation(fmt, "kgbArNumberChanged", "Number Changed"); - case kgbArBusy: return presentation(fmt, "kgbArBusy", "Busy"); - case kgbArCongestion: return presentation(fmt, "kgbArCongestion", "Congestion"); - case kgbArInvalidNumber: return presentation(fmt, "kgbArInvalidNumber", "Invalid Number"); - case kgbArLineFreeCharged: return presentation(fmt, "kgbArLineFreeCharged", "Line Free Charged"); - case kgbArLineFreeNotCharged: return presentation(fmt, "kgbArLineFreeNotCharged", "Line Free Not Charged"); - case kgbArLineOutOfOrder: return presentation(fmt, "kgbArLineOutOfOrder", "Line Out Of Order"); - case kgbArNone: return presentation(fmt, "kgbArNone", "None"); - } - break; - - case R2_COUNTRY_BRA: - switch ((KSignGroupB_Brazil)group) - { - case kgbBrLineFreeCharged: return presentation(fmt, "kgbBrLineFreeCharged", "Line Free Charged"); - case kgbBrLineFreeNotCharged: return presentation(fmt, "kgbBrLineFreeNotCharged", "Line Free Not Charged"); - case kgbBrLineFreeChargedLPR: return presentation(fmt, "kgbBrLineFreeChargedLPR", "Line Free Charged PLR"); - case kgbBrBusy: return presentation(fmt, "kgbBrBusy", "Busy"); - case kgbBrNumberChanged: return presentation(fmt, "kgbBrNumberChanged", "Number Changed"); - case kgbBrCongestion: return presentation(fmt, "kgbBrCongestion", "Congestion"); - case kgbBrInvalidNumber: return presentation(fmt, "kgbBrInvalidNumber", "Invalid Number"); - case kgbBrLineOutOfOrder: return presentation(fmt, "kgbBrLineOutOfOrder", "Line Out Of Order"); - case kgbBrNone: return presentation(fmt, "kgbBrNone", "None"); - } - break; - - case R2_COUNTRY_CHI: - switch ((KSignGroupB_Chile)group) - { - case kgbClNumberChanged: return presentation(fmt, "kgbClNumberChanged", "Number Changed"); - case kgbClBusy: return presentation(fmt, "kgbClBusy", "Busy"); - case kgbClCongestion: return presentation(fmt, "kgbClCongestion", "Congestion"); - case kgbClInvalidNumber: return presentation(fmt, "kgbClInvalidNumber", "Invalid Number"); - case kgbClLineFreeCharged: return presentation(fmt, "kgbClLineFreeCharged", "Line Free Charged"); - case kgbClLineFreeNotCharged: return presentation(fmt, "kgbClLineFreeNotCharged", "Line Free Not Charged"); - case kgbClLineOutOfOrder: return presentation(fmt, "kgbClLineOutOfOrder", "Line Out Of Order"); - case kgbClNone: return presentation(fmt, "kgbClNone", "None"); - } - break; - - case R2_COUNTRY_MEX: - switch ((KSignGroupB_Mexico)group) - { - case kgbMxLineFreeCharged: return presentation(fmt, "kgbMxLineFreeCharged", "Line Free Charged"); - case kgbMxBusy: return presentation(fmt, "kgbMxBusy", "Busy"); - case kgbMxLineFreeNotCharged: return presentation(fmt, "kgbMxLineFreeNotCharged", "Line Free Not Charged"); - case kgbMxNone: return presentation(fmt, "kgbMxNone", "None"); - } - break; - - case R2_COUNTRY_URY: - switch ((KSignGroupB_Uruguay)group) - { - case kgbUyNumberChanged: return presentation(fmt, "kgbUyNumberChanged", "Number Changed"); - case kgbUyBusy: return presentation(fmt, "kgbUyBusy", "Busy"); - case kgbUyCongestion: return presentation(fmt, "kgbUyCongestion", "Congestion"); - case kgbUyInvalidNumber: return presentation(fmt, "kgbUyInvalidNumber", "Invalid Number"); - case kgbUyLineFreeCharged: return presentation(fmt, "kgbUyLineFreeCharged", "Line Free Charged"); - case kgbUyLineFreeNotCharged: return presentation(fmt, "kgbUyLineFreeNotCharged", "Line Free Not Charged"); - case kgbUyLineOutOfOrder: return presentation(fmt, "kgbUyLineOutOfOrder", "Line Out Of Order"); - case kgbUyNone: return presentation(fmt, "kgbUyNone", "None"); - } - break; - - case R2_COUNTRY_VEN: - switch ((KSignGroupB_Venezuela)group) - { - case kgbVeLineFreeChargedLPR: return presentation(fmt, "kgbVeLineFreeChargedLPR", "Line Free Charged PLR"); - case kgbVeNumberChanged: return presentation(fmt, "kgbVeNumberChanged", "Number Changed"); - case kgbVeBusy: return presentation(fmt, "kgbVeBusy", "Busy"); - case kgbVeCongestion: return presentation(fmt, "kgbVeCongestion", "Congestion"); - case kgbVeInformationTone: return presentation(fmt, "kgbVeInformationTone", "Information Tone"); - case kgbVeLineFreeCharged: return presentation(fmt, "kgbVeLineFreeCharged", "Line Free Charged"); - case kgbVeLineFreeNotCharged: return presentation(fmt, "kgbVeLineFreeNotCharged", "Line Free Not Charged"); - case kgbVeLineBlocked: return presentation(fmt, "kgbVeLineBlocked", "Line Blocked"); - case kgbVeIntercepted: return presentation(fmt, "kgbVeIntercepted", "Intercepted"); - case kgbVeDataTrans: return presentation(fmt, "kgbVeDataTrans", "Data Transfer"); - case kgbVeNone: return presentation(fmt, "kgbVeNone", "None"); - } - break; - } -#else - switch ((KSignGroupB)group) - { - case kgbLineFreeCharged: return presentation(fmt, "kgbLineFreeCharged", "Line Free Charged"); - case kgbLineFreeNotCharged: return presentation(fmt, "kgbLineFreeNotCharged", "Line Free Not Charged"); - case kgbLineFreeChargedLPR: return presentation(fmt, "kgbLineFreeChargedLPR", "Line Free Charged PLR"); - case kgbBusy: return presentation(fmt, "kgbBusy", "Busy"); - case kgbNumberChanged: return presentation(fmt, "kgbNumberChanged", "Number Changed"); - case kgbCongestion: return presentation(fmt, "kgbCongestion", "Congestion"); - case kgbInvalidNumber: return presentation(fmt, "kgbInvalidNumber", "Invalid Number"); - case kgbLineOutOfOrder: return presentation(fmt, "kgbLineOutOfOrder", "Line Out Of Order"); - case kgbNone: return presentation(fmt, "kgbNone", "None"); - } -#endif - - throw internal_not_found(); -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::signGroupB(const KSignGroupB group, const R2CountryType r2_country, const Verbose::Presentation fmt) -#else -std::string Verbose::signGroupB(const KSignGroupB group, const Verbose::Presentation fmt) -#endif -{ - try - { -#if K3L_AT_LEAST(2,0,0) - return internal_signGroupB(group, r2_country, fmt); -#else - return internal_signGroupB(group, fmt); -#endif - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KSignGroupB='%d']") % (int)group), - STG(FMT("Unknown group B (%d)") % (int)group)); - } -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::internal_signGroupII(const KSignGroupII group, const R2CountryType country, const Verbose::Presentation fmt) -#else -std::string Verbose::internal_signGroupII(const KSignGroupII group, const Verbose::Presentation fmt) -#endif -{ -#if K3L_AT_LEAST(2,0,0) - switch (country) - { - case R2_COUNTRY_ARG: - switch ((KSignGroupII_Argentina)group) - { - case kg2ArOrdinary: return presentation(fmt, "kg2ArOrdinary", "Ordinary"); - case kg2ArPriority: return presentation(fmt, "kg2ArPriority", "Priority"); - case kg2ArMaintenance: return presentation(fmt, "kg2ArMaintenance", "Maintenance"); - case kg2ArLocalPayPhone: return presentation(fmt, "kg2ArLocalPayPhone", "Local pay phone"); - case kg2ArTrunkOperator: return presentation(fmt, "kg2ArTrunkOperator", "Trunk operator"); - case kg2ArDataTrans: return presentation(fmt, "kg2ArDataTrans", "Data transfer"); - case kg2ArCPTP: return presentation(fmt, "kg2ArCPTP", "CPTP"); - case kg2ArSpecialLine: return presentation(fmt, "kg2ArSpecialLine", "Special line"); - case kg2ArMobileUser: return presentation(fmt, "kg2ArMobileUser", "Mobile user"); - case kg2ArPrivateRedLine: return presentation(fmt, "kg2ArPrivateRedLine", "Private red line"); - case kg2ArSpecialPayPhoneLine: return presentation(fmt, "kg2ArSpecialPayPhoneLine", "Special pay phone line"); - } - break; - - case R2_COUNTRY_BRA: - switch ((KSignGroupII_Brazil)group) - { - case kg2BrOrdinary: return presentation(fmt, "kg2BrOrdinary", "Ordinary"); - case kg2BrPriority: return presentation(fmt, "kg2BrPriority", "Priority"); - case kg2BrMaintenance: return presentation(fmt, "kg2BrMaintenance", "Maintenance"); - case kg2BrLocalPayPhone: return presentation(fmt, "kg2BrLocalPayPhone", "Local pay phone"); - case kg2BrTrunkOperator: return presentation(fmt, "kg2BrTrunkOperator", "Trunk operator"); - case kg2BrDataTrans: return presentation(fmt, "kg2BrDataTrans", "Data transfer"); - case kg2BrNonLocalPayPhone: return presentation(fmt, "kg2BrNonLocalPayPhone", "Non local pay phone"); - case kg2BrCollectCall: return presentation(fmt, "kg2BrCollectCall", "Collect call"); - case kg2BrOrdinaryInter: return presentation(fmt, "kg2BrOrdinaryInter", "Ordinary international"); - case kg2BrTransfered: return presentation(fmt, "kg2BrTransfered", "Transfered"); - } - break; - - case R2_COUNTRY_CHI: - switch ((KSignGroupII_Chile)group) - { - case kg2ClOrdinary: return presentation(fmt, "kg2ClOrdinary", "Ordinary"); - case kg2ClPriority: return presentation(fmt, "kg2ClPriority", "Priority"); - case kg2ClMaintenance: return presentation(fmt, "kg2ClMaintenance", "Maintenance"); - case kg2ClTrunkOperator: return presentation(fmt, "kg2ClTrunkOperator", "Trunk operator"); - case kg2ClDataTrans: return presentation(fmt, "kg2ClDataTrans", "Data transfer"); - case kg2ClUnidentifiedSubscriber: return presentation(fmt, "kg2ClUnidentifiedSubscriber", "Unidentified subscriber"); - } - break; - - case R2_COUNTRY_MEX: - switch ((KSignGroupII_Mexico)group) - { - case kg2MxTrunkOperator: return presentation(fmt, "kg2MxTrunkOperator", "Trunk operator"); - case kg2MxOrdinary: return presentation(fmt, "kg2MxOrdinary", "Ordinary"); - case kg2MxMaintenance: return presentation(fmt, "kg2MxMaintenance", "Maintenance"); - } - break; - - case R2_COUNTRY_URY: - switch ((KSignGroupII_Uruguay)group) - { - case kg2UyOrdinary: return presentation(fmt, "kg2UyOrdinary", "Ordinary"); - case kg2UyPriority: return presentation(fmt, "kg2UyPriority", "Priority"); - case kg2UyMaintenance: return presentation(fmt, "kg2UyMaintenance", "Maintenance"); - case kg2UyLocalPayPhone: return presentation(fmt, "kg2UyLocalPayPhone", "Local pay phone"); - case kg2UyTrunkOperator: return presentation(fmt, "kg2UyTrunkOperator", "Trunk operator"); - case kg2UyDataTrans: return presentation(fmt, "kg2UyDataTrans", "Data transfer"); - case kg2UyInternSubscriber: return presentation(fmt, "kg2UyInternSubscriber", "International subscriber"); - } - break; - - case R2_COUNTRY_VEN: - switch ((KSignGroupII_Venezuela)group) - { - case kg2VeOrdinary: return presentation(fmt, "kg2VeOrdinary", "Ordinary"); - case kg2VePriority: return presentation(fmt, "kg2VePriority", "Priority"); - case kg2VeMaintenance: return presentation(fmt, "kg2VeMaintenance", "Maintenance"); - case kg2VeLocalPayPhone: return presentation(fmt, "kg2VeLocalPayPhone", "Local pay phone"); - case kg2VeTrunkOperator: return presentation(fmt, "kg2VeTrunkOperator", "Trunk operator"); - case kg2VeDataTrans: return presentation(fmt, "kg2VeDataTrans", "Data transfer"); - case kg2VeNoTransferFacility: return presentation(fmt, "kg2VeNoTransferFacility", "No transfer facility"); - } - break; - } -#else - switch ((KSignGroupII)group) - { - case kg2Ordinary: return presentation(fmt, "kg2Ordinary", "Ordinary"); - case kg2Priority: return presentation(fmt, "kg2Priority", "Priority"); - case kg2Maintenance: return presentation(fmt, "kg2Maintenance", "Maintenance"); - case kg2LocalPayPhone: return presentation(fmt, "kg2LocalPayPhone", "Local pay phone"); - case kg2TrunkOperator: return presentation(fmt, "kg2TrunkOperator", "Trunk operator"); - case kg2DataTrans: return presentation(fmt, "kg2DataTrans", "Data transfer"); - case kg2NonLocalPayPhone: return presentation(fmt, "kg2NonLocalPayPhone", "Non local pay phone"); - case kg2CollectCall: return presentation(fmt, "kg2CollectCall", "Collect call"); - case kg2OrdinaryInter: return presentation(fmt, "kg2OrdinaryInter", "Ordinary international"); - case kg2Transfered: return presentation(fmt, "kg2Transfered", "Transfered"); - } -#endif - - throw internal_not_found(); -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::signGroupII(const KSignGroupII group, const R2CountryType r2_country, const Verbose::Presentation fmt) -#else -std::string Verbose::signGroupII(const KSignGroupII group, const Verbose::Presentation fmt) -#endif -{ - try - { -#if K3L_AT_LEAST(2,0,0) - return internal_signGroupII(group, r2_country); -#else - return internal_signGroupII(group); -#endif - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KSignGroupII='%d']") % (int)group), - STG(FMT("Unknown group II (%d)") % (int)group)); - } -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::callFail(const KSignaling sig, const R2CountryType country, const int32 info, const Verbose::Presentation fmt) -#else -std::string Verbose::callFail(const KSignaling sig, const int32 info, const Verbose::Presentation fmt) -#endif -{ - try - { - switch (sig) - { - case ksigInactive: - throw internal_not_found(); - - case ksigAnalog: - if (('a' <= ((char)info) && 'z' >= ((char)info)) || ('A' <= ((char)info) && 'Z' >= ((char)info))) - return STG(FMT("%c") % (char)info); - else - throw internal_not_found(); - -#if K3L_AT_LEAST(1,5,4) - case ksigLineSide: -#endif -#if K3L_EXACT(2,1,0) - case ksigISUP: -#if !K3L_AT_LEAST(2,2,0) - case ksigFax: -#endif -#endif -#if K3L_AT_LEAST(1,6,0) - case ksigCAS_EL7: - case ksigE1LC: - return "NOT IMPLEMENTED"; - - case ksigAnalogTerminal: -#endif - case ksigContinuousEM: - case ksigPulsedEM: - - case ksigR2Digital: - case ksigOpenR2: -#if K3L_AT_LEAST(2,0,0) - return internal_signGroupB((KSignGroupB)info, country); -#else - return internal_signGroupB((KSignGroupB)info); -#endif - - case ksigOpenCAS: - case ksigUserR2Digital: -#if K3L_AT_LEAST(2,0,0) - return internal_signGroupB((KSignGroupB)info, R2_COUNTRY_BRA); -#else - return internal_signGroupB((KSignGroupB)info); -#endif - -#if K3L_AT_LEAST(1,5,0) - case ksigSIP: - return internal_sipFailures((KSIP_Failures)info); -#endif - -#if K3L_AT_LEAST(1,5,1) - case ksigOpenCCS: - case ksigPRI_EndPoint: - case ksigPRI_Network: - case ksigPRI_Passive: -#if K3L_AT_LEAST(2,2,0) - case ksigISUP: - case ksigISUPPassive: -#endif - return internal_isdnCause((KQ931Cause)info); -#endif - -#if K3L_AT_LEAST(1,6,0) - case ksigGSM: - return internal_gsmCallCause((KGsmCallCause)info); -#endif - } - } - catch (internal_not_found e) - { - /* this exception is used for breaking the control flow */ - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[%s, callFail='%d']") % signaling(sig, fmt) % (int)info), - STG(FMT("Unknown call fail code for '%s' (%d)") % signaling(sig, fmt) % (int)info)); -} - -std::string Verbose::channelFail(const KSignaling sig, const int32 code, const Verbose::Presentation fmt) -{ - try - { - switch (sig) - { - case ksigInactive: - case ksigAnalog: - case ksigSIP: -#if K3L_EXACT(2,1,0) - case ksigISUP: -#if !K3L_AT_LEAST(2,2,0) - case ksigFax: -#endif -#endif - throw internal_not_found(); - -#if K3L_AT_LEAST(1,6,0) - case ksigGSM: - return internal_gsmMobileCause((KGsmMobileCause)code); - - case ksigAnalogTerminal: - case ksigCAS_EL7: - case ksigE1LC: -#endif - - case ksigContinuousEM: - case ksigPulsedEM: - - case ksigLineSide: - - case ksigOpenCAS: - case ksigOpenR2: - case ksigR2Digital: - case ksigUserR2Digital: - switch ((KChannelFail)code) - { - case kfcRemoteFail: return presentation(fmt, "kfcRemoteFail", "Remote failure"); - case kfcLocalFail: return presentation(fmt, "kfcLocalFail", "Local failure"); - case kfcRemoteLock: return presentation(fmt, "kfcRemoteLock", "Remote lock"); - case kfcLineSignalFail: return presentation(fmt, "kfcLineSignalFail", "Line signal failure"); - case kfcAcousticSignalFail: return presentation(fmt, "kfcAcousticSignalFail", "Acoustic signal failure"); - } - - throw internal_not_found(); - -#if K3L_AT_LEAST(1,5,1) - case ksigOpenCCS: - case ksigPRI_EndPoint: - case ksigPRI_Network: - case ksigPRI_Passive: -#if K3L_AT_LEAST(2,2,0) - case ksigISUP: - case ksigISUPPassive: -#endif - return internal_isdnCause((KQ931Cause)code); -#endif - } - } - catch (internal_not_found e) - { - /* this exception is used for breaking the control flow */ - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[%s, channelFail='%d']") % signaling(sig, fmt) % (int)code), - STG(FMT("Unknown channel fail code for '%s' (%d)") % signaling(sig, fmt) % (int)code)); -} - -std::string Verbose::internalFail(const KInternalFail inf, const Verbose::Presentation fmt) -{ - switch (inf) - { - case kifInterruptCtrl: return presentation(fmt, "kifInterruptCtrl", "Interrupt control"); - case kifCommunicationFail: return presentation(fmt, "kifCommunicationFail", "Communication failure"); - case kifProtocolFail: return presentation(fmt, "kifProtocolFail", "Protocol failure"); - case kifInternalBuffer: return presentation(fmt, "kifInternalBuffer", "Internal buffer"); - case kifMonitorBuffer: return presentation(fmt, "kifMonitorBuffer", "Monitor buffer"); - case kifInitialization: return presentation(fmt, "kifInitialization", "Initialization"); - case kifInterfaceFail: return presentation(fmt, "kifInterfaceFail", "Interface failure"); - case kifClientCommFail: return presentation(fmt, "kifClientCommFail", "Client communication failure"); - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KInternalFail='%d']") % (int)inf), - STG(FMT("Unknown internal failure (%d)") % (int)inf)); -} - -std::string Verbose::linkErrorCounter(const KLinkErrorCounter ec, const Verbose::Presentation fmt) -{ - switch (ec) - { - case klecChangesToLock: return presentation(fmt, "klecChangesToLock", "Changes to lock"); - case klecLostOfSignal: return presentation(fmt, "klecLostOfSignal", "Lost of signal"); - case klecAlarmNotification: return presentation(fmt, "klecAlarmNotification", "Alarm notification"); - case klecLostOfFrame: return presentation(fmt, "klecLostOfFrame", "Lost of frame"); - case klecLostOfMultiframe: return presentation(fmt, "klecLostOfMultiframe", "Lost of multiframe"); - case klecRemoteAlarm: return presentation(fmt, "klecRemoteAlarm", "Remote alarm"); - case klecUnknowAlarm: return presentation(fmt, "klecUnknowAlarm", "Slip alarm"); - case klecPRBS: return presentation(fmt, "klecPRBS", "PRBS"); - case klecWrogrBits: return presentation(fmt, "klecWrongBits", "Wrong bits"); - case klecJitterVariation: return presentation(fmt, "klecJitterVariation", "Jitter variation"); - case klecFramesWithoutSync: return presentation(fmt, "klecFramesWithoutSync", "Frames without sync"); - case klecMultiframeSignal: return presentation(fmt, "klecMultiframeSignal", "Multiframe Signal"); - case klecFrameError: return presentation(fmt, "klecFrameError", "Frame error"); - case klecBipolarViolation: return presentation(fmt, "klecBipolarViolation", "Bipolar violation"); - case klecCRC4: return presentation(fmt, "klecCRC4", "CRC4 error"); - case klecCount: return ""; /* this should never be verbosed */ - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KLinkErrorCounter='%d']") % (int)ec), - STG(FMT("Unknown link error counter (%d)") % (int)ec)); -} - -std::string Verbose::callStatus(const KCallStatus code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kcsFree: return presentation(fmt, "kcsFree", "Free"); - case kcsIncoming: return presentation(fmt, "kcsIncoming", "Incoming"); - case kcsOutgoing: return presentation(fmt, "kcsOutgoing", "Outgoing"); - case kcsFail: return presentation(fmt, "kcsFail", "Failure"); - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KCallStatus='%d']") % (int)code), - STG(FMT("Unknown call status (%d)") % (int)code)); -} - -std::string Verbose::linkStatus(const KSignaling sig, const int32 code, const Verbose::Presentation fmt, const bool simpleStatus) -{ - switch (sig) - { - case ksigInactive: - return presentation(fmt, "[ksigInactive]", "Inactive trunk"); - - case ksigAnalog: - return presentation(fmt, "[ksigAnalog]", "Analog trunk"); - -#if K3L_AT_LEAST(1,4,1) - case ksigSIP: - return presentation(fmt, "[ksigSIP]", "SIP trunk"); -#endif - -#if K3L_AT_LEAST(1,6,0) - case ksigGSM: - return presentation(fmt, "[ksigGSM]", "GSM trunk"); -#endif - -#if K3L_EXACT(2,1,0) -#if !K3L_AT_LEAST(2,2,0) - case ksigFax: -#endif - return presentation(fmt, "[ksigFax]", "FAX"); -#endif - case ksigContinuousEM: - case ksigPulsedEM: - - case ksigOpenCAS: - case ksigOpenR2: - case ksigR2Digital: - case ksigUserR2Digital: - -#if K3L_AT_LEAST(1,5,1) - case ksigOpenCCS: - case ksigPRI_EndPoint: - case ksigPRI_Network: - case ksigPRI_Passive: -#endif -#if K3L_AT_LEAST(1,5,3) - case ksigLineSide: -#endif -#if K3L_AT_LEAST(1,6,0) - case ksigAnalogTerminal: - case ksigCAS_EL7: - case ksigE1LC: -#endif -#if K3L_AT_LEAST(2,2,0) - case ksigISUP: - case ksigISUPPassive: -#endif - if (kesOk == code) - { - return presentation(fmt, "kesOk", "Up"); - } - else - { - Strings::Merger strs; - - if (kesSignalLost & code) strs.add(presentation(fmt, "SignalLost", "Signal lost")); - if (kesNetworkAlarm & code) strs.add(presentation(fmt, "NetworkAlarm", "Network alarm")); - if (kesFrameSyncLost & code) strs.add(presentation(fmt, "FrameSyncLost", "Frame sync lost")); - if (kesMultiframeSyncLost & code) strs.add(presentation(fmt, "MultiframeSyncLost", "Multiframe sync lost")); - if (kesRemoteAlarm & code) strs.add(presentation(fmt, "RemoteAlarm", "Remote alarm")); - if (kesHighErrorRate & code) strs.add(presentation(fmt, "HighErrorRate", "High error rate")); - if (kesUnknownAlarm & code) strs.add(presentation(fmt, "UnknownAlarm", "Slip alarm")); - if (kesE1Error & code) strs.add(presentation(fmt, "E1Error", "E1 error")); - - if (simpleStatus) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("kes{%s}") % *(strs.list().begin())), - *(strs.list().begin())); - } - else - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("kes{%s}") % strs.merge(",")), - strs.merge(", ")); - } - } - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[%s, linkStatus='%d']") % signaling(sig) % (int)code), - STG(FMT("Unknown link status for '%s' (%d)") % signaling(sig) % (int)code)); -} - -std::string Verbose::channelStatus(const KSignaling sig, const int32 flags, const Verbose::Presentation fmt) -{ - try - { - switch (sig) - { - case ksigInactive: - return presentation(fmt, "[ksigInactive]", "Inactive channel"); - -#if K3L_AT_LEAST(1,4,1) - case ksigSIP: - return presentation(fmt, "[ksigSIP]", "SIP channel"); -#endif -#if K3L_EXACT(2,1,0) - case ksigISUP: - return presentation(fmt, "[ksigISUP]", "ISUP trunk"); -#if !K3L_AT_LEAST(2,2,0) - case ksigFax: - return presentation(fmt, "[ksigFax]", "FAX"); -#endif -#endif - - case ksigAnalog: -#if K3L_AT_LEAST(1,6,0) - switch ((KFXOChannelStatus)flags) -#else - switch ((KFXChannelStatus)flags) -#endif - { - case kfcsDisabled: return presentation(fmt, "kfcsDisabled", "Disabled"); - case kfcsEnabled: return presentation(fmt, "kfcsEnabled", "Enabled"); - } - - throw internal_not_found(); - -#if K3L_AT_LEAST(1,6,0) - case ksigAnalogTerminal: - switch ((KFXSChannelStatus)flags) - { - case kfxsOnHook: return presentation(fmt, "kfxsOnHook", "On Hook"); - case kfxsOffHook: return presentation(fmt, "kfxsOffHook", "Off Hook"); - case kfxsRinging: return presentation(fmt, "kfxsRinging", "Ringing"); - case kfxsFail: return presentation(fmt, "kfxsFail", "Failure"); - } - - throw internal_not_found(); - - case ksigGSM: - switch ((KGsmChannelStatus)flags) - { - case kgsmIdle: return presentation(fmt, "kgsmIdle", "Idle"); - case kgsmCallInProgress: return presentation(fmt, "kgsmCallInProgress", "Call in progress"); - case kgsmSMSInProgress: return presentation(fmt, "kgsmSMSInProgress", "SMS in progress"); - case kgsmModemError: return presentation(fmt, "kgsmModemError", "Modem error"); - case kgsmSIMCardError: return presentation(fmt, "kgsmSIMCardError", "SIM card error"); - case kgsmNetworkError: return presentation(fmt, "kgsmNetworkError", "Network error"); - case kgsmNotReady: return presentation(fmt, "kgsmNotReady", "Initializing"); - } - - throw internal_not_found(); -#endif - - /* deprecated, but still.. */ - case ksigPulsedEM: - case ksigContinuousEM: - - case ksigOpenCAS: - case ksigOpenR2: - case ksigR2Digital: - case ksigUserR2Digital: - -#if K3L_AT_LEAST(1,5,1) - case ksigOpenCCS: - case ksigPRI_EndPoint: - case ksigPRI_Network: - case ksigPRI_Passive: -#endif -#if K3L_AT_LEAST(1,5,3) - case ksigLineSide: -#endif -#if K3L_AT_LEAST(1,6,0) - case ksigCAS_EL7: - case ksigE1LC: -#endif -#if K3L_AT_LEAST(2,2,0) - case ksigISUP: - case ksigISUPPassive: -#endif - { - if (flags == kecsFree) - { - return presentation(fmt, "kecsFree", "Free"); - } - else - { - Strings::Merger strs; - - if (flags & kecsBusy) - strs.add("Busy"); - - switch (flags & 0x06) - { - case kecsOutgoing: - strs.add("Outgoing"); - break; - case kecsIncoming: - strs.add("Incoming"); - break; - case kecsLocked: - strs.add("Locked"); - default: - break; - } - - int32 value = (flags & 0xf0); - - if (kecsOutgoingLock & value) - strs.add(presentation(fmt, "OutgoingLock", "Outgoing Lock")); - - if (kecsLocalFail & value) - strs.add(presentation(fmt, "LocalFail", "Local Failure")); - - if (kecsIncomingLock & value) - strs.add(presentation(fmt, "IncomingLock", "Incoming Lock")); - - if (kecsRemoteLock & value) - strs.add(presentation(fmt, "RemoteLock", "Remote Lock")); - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("kecs{%s}") % strs.merge(",")), - strs.merge(", ")); - } - - throw internal_not_found(); - } - } - } - catch (internal_not_found e) - { - /* we use this exception to break the control flow */ - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[%s, channelStatus='%d']") % signaling(sig) % flags), - STG(FMT("Unknown channel status for '%s' (%d)") % signaling(sig) % flags)); -} - -std::string Verbose::status(const KLibraryStatus code, const Verbose::Presentation fmt) -{ - switch (code) - { - case ksSuccess: return presentation(fmt, "ksSuccess", "Success"); - case ksFail: return presentation(fmt, "ksFail", "Failure"); - case ksTimeOut: return presentation(fmt, "ksTimeOut", "Time Out"); - case ksBusy: return presentation(fmt, "ksBusy", "Busy"); - case ksLocked: return presentation(fmt, "ksLocked", "Locked"); - case ksInvalidParams: return presentation(fmt, "ksInvalidParams", "Invalid Parameters"); - case ksEndOfFile: return presentation(fmt, "ksEndOfFile", "End of File"); - case ksInvalidState: return presentation(fmt, "ksInvalidState", "Invalid State"); - case ksServerCommFail: return presentation(fmt, "ksServerCommFail", "Communication Failure"); - case ksOverflow: return presentation(fmt, "ksOverflow", "Overflow"); - case ksUnderrun: return presentation(fmt, "ksUnderrun", "Underrun"); - -#if K3L_AT_LEAST(1,4,0) - case ksNotFound: return presentation(fmt, "ksNotFound", "Not Found"); - case ksNotAvailable: return presentation(fmt, "ksNotAvaiable", "Not Available"); -#endif - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KLibraryStatus='%d']") % (int)code), - STG(FMT("Unknown library status (%d)") % (int)code)); -} - -std::string Verbose::h100configIndex(const KH100ConfigIndex code, const Verbose::Presentation fmt) -{ - switch (code) - { - case khciDeviceMode: return presentation(fmt, "khciDeviceMode", "Device Mode"); - case khciMasterGenClock: return presentation(fmt, "khciMasterGenClock", "Master Generated Clock"); - case khciCTNetRefEnable: return presentation(fmt, "khciCTNetRefEnable", "CTBus Network Reference Enable"); - case khciSCbusEnable: return presentation(fmt, "khciSCbusEnable", "SCBus Enable"); - case khciHMVipEnable: return presentation(fmt, "khciHMVipEnable", "HMVip Enable"); - case khciMVip90Enable: return presentation(fmt, "khciMVip90Enable", "MVip90 Enable"); - case khciCTbusDataEnable: return presentation(fmt, "khciCTbusDataEnable", "CTBus Data Enable"); - case khciCTbusFreq03_00: return presentation(fmt, "khciCTbusFreq03_00", "CTBus Frequency 03 00"); // TODO: find better name - case khciCTbusFreq07_04: return presentation(fmt, "khciCTbusFreq07_04", "CTBus Frequency 07 04"); // TODO: find better name - case khciCTbusFreq11_08: return presentation(fmt, "khciCTbusFreq11_08", "CTBus Frequency 11 08"); // TODO: find better name - case khciCTbusFreq15_12: return presentation(fmt, "khciCTbusFreq15_12", "CTBus Frequency 15 12"); // TODO: find better name - case khciMax: return presentation(fmt, "khciMax", "Max"); // TODO: find better name - case khciMasterDevId: return presentation(fmt, "khciMasterDevId", "Master Device Number"); - case khciSecMasterDevId: return presentation(fmt, "khciSecMasterDevId", "Secondary Master Device Number"); - case khciCtNetrefDevId: return presentation(fmt, "khciCtNetrefDevId", "CTBus Network Reference Device Number"); -#if K3L_AT_LEAST(1,6,0) - case khciMaxH100ConfigIndex: return ""; /* do not verbose this value */ -#endif - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KH100ConfigIndex='%d']") % (int)code), - STG(FMT("Unknown H.100 config index (%d)") % (int)code)); -} - -#if K3L_AT_LEAST(1,6,0) -std::string Verbose::callStartInfo(const KCallStartInfo code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kcsiHumanAnswer: return presentation(fmt, "kcsiHumanAnswer", "Human Answer"); - case kcsiAnsweringMachine: return presentation(fmt, "kcsiAnsweringMachine", "Answering Machine"); - case kcsiCellPhoneMessageBox: return presentation(fmt, "kcsiCellPhoneMessageBox", "Cell Phone Message Box"); - case kcsiCarrierMessage: return presentation(fmt, "kcsiCarrierMessage", "Carrier Message"); - case kcsiUnknown: return presentation(fmt, "kcsiUnknown", "Unknown"); - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KCallStartInfo='%d']") % (int)code), - STG(FMT("Unknown call answer info (%d)") % (int)code)); -} - -std::string Verbose::gsmCallCause(const KGsmCallCause code, const Verbose::Presentation fmt) -{ - try - { - return internal_gsmCallCause(code, fmt); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KGsmCallCause='%d']") % (int)code), - STG(FMT("Unknown GSM call cause (%d)") % (int)code)); - } -} - -std::string Verbose::internal_gsmCallCause(const KGsmCallCause code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kgccNone: return presentation(fmt, "kgccNone", "None"); - case kgccUnallocatedNumber: return presentation(fmt, "kgccUnallocatedNumber", "Unallocated number"); - case kgccNoRouteToDest: return presentation(fmt, "kgccNoRouteToDest", "No route to destination"); - case kgccChannelUnacceptable: return presentation(fmt, "kgccChannelUnacceptable", "Channel unacceptable"); - case kgccOperatorDeterminedBarring: return presentation(fmt, "kgccOperatorDeterminedBarring", "Operator determined barring"); - case kgccNormalCallClear: return presentation(fmt, "kgccNormalCallClear", "Normal call clear"); - case kgccUserBusy: return presentation(fmt, "kgccUserBusy", "User busy"); - case kgccNoUserResponding: return presentation(fmt, "kgccNoUserResponding", "No user responding"); - case kgccNoAnswerFromUser: return presentation(fmt, "kgccNoAnswerFromUser", "No answer from user"); - case kgccCallRejected: return presentation(fmt, "kgccCallRejected", "Call rejected"); - case kgccNumberChanged: return presentation(fmt, "kgccNumberChanged", "Number changed"); - case kgccNonSelectedUserClear: return presentation(fmt, "kgccNonSelectedUserClear", "Non Selected user clear"); - case kgccDestinationOutOfOrder: return presentation(fmt, "kgccDestinationOutOfOrder", "Destination out of order"); - case kgccInvalidNumberFormat: return presentation(fmt, "kgccInvalidNumberFormat", "Invalid number format"); - case kgccFacilityRejected: return presentation(fmt, "kgccFacilityRejected", "Facility rejected"); - case kgccRespStatusEnquiry: return presentation(fmt, "kgccRespStatusEnquiry", "Response status enquiry"); - case kgccNormalUnspecified: return presentation(fmt, "kgccNormalUnspecified", "Normal, unspecified"); - case kgccNoCircuitChannelAvail: return presentation(fmt, "kgccNoCircuitChannelAvail", "No circuit channel available"); - case kgccNetworkOutOfOrder: return presentation(fmt, "kgccNetworkOutOfOrder", "Network out of order"); - case kgccTemporaryFailure: return presentation(fmt, "kgccTemporaryFailure", "Temporary failure"); - case kgccSwitchCongestion: return presentation(fmt, "kgccSwitchCongestion", "Switch congestion"); - case kgccAccessInfoDiscarded: return presentation(fmt, "kgccAccessInfoDiscarded", "Access information discarded"); - case kgccRequestedChannelUnav: return presentation(fmt, "kgccRequestedChannelUnav", "Requested channel unavailable"); - case kgccResourceUnavailable: return presentation(fmt, "kgccResourceUnavailable", "Resource unavailable"); - case kgccQosUnavailable: return presentation(fmt, "kgccQosUnavailable", "QoS unavailable"); - case kgccReqFacilityNotSubsc: return presentation(fmt, "kgccReqFacilityNotSubsc", "Request facility not subscribed"); - case kgccCallBarredWitchCUG: return presentation(fmt, "kgccCallBarredWitchCUG", "Call barred with UG"); - case kgccBearerCapabNotAuthor: return presentation(fmt, "kgccBearerCapabNotAuthor", "Bearer capability not authorized"); - case kgccBearerCapabNotAvail: return presentation(fmt, "kgccBearerCapabNotAvail", "Bearer capability not available"); - case kgccServiceNotAvailable: return presentation(fmt, "kgccServiceNotAvailable", "Service not available"); - case kgccBcNotImplemented: return presentation(fmt, "kgccBcNotImplemented", "Bearer capability not implemented"); - case kgccReqFacilityNotImplem: return presentation(fmt, "kgccReqFacilityNotImplem", "Request facility not implemented"); - case kgccOnlyRestrictedBcAvail: return presentation(fmt, "kgccOnlyRestrictedBcAvail", "Only restricted bearer capability available"); - case kgccServiceNotImplemented: return presentation(fmt, "kgccServiceNotImplemented", "Service not implemented"); - case kgccInvalidCrv: return presentation(fmt, "kgccInvalidCrv", "Invalid call reference value"); - case kgccUserNotMemberOfCUG: return presentation(fmt, "kgccUserNotMemberOfCUG", "User not member of UG"); - case kgccIncompatibleDestination: return presentation(fmt, "kgccIncompatibleDestination", "Incompatible destination"); - case kgccInvalidTransitNetSel: return presentation(fmt, "kgccInvalidTransitNetSel", "Invalid transit network selected"); - case kgccInvalidMessage: return presentation(fmt, "kgccInvalidMessage", "Invalid message"); - case kgccMissingMandatoryIe: return presentation(fmt, "kgccMissingMandatoryIe", "Missing mandatory information element"); - case kgccMsgTypeNotImplemented: return presentation(fmt, "kgccMsgTypeNotImplemented", "Message type not implemented"); - case kgccMsgIncompatWithState: return presentation(fmt, "kgccMsgIncompatWithState", "Message incompatible with state"); - case kgccIeNotImplemented: return presentation(fmt, "kgccIeNotImplemented", "Information element not implemented"); - case kgccInvalidIe: return presentation(fmt, "kgccInvalidIe", "Invalid information element"); - case kgccMsgIncompatWithState2: return presentation(fmt, "kgccMsgIncompatWithState2", "Message incompatible with state (2)"); - case kgccRecoveryOnTimerExpiry: return presentation(fmt, "kgccRecoveryOnTimerExpiry", "Recovery on timer expiry"); - case kgccProtocolError: return presentation(fmt, "kgccProtocolError", "Protocol error"); - case kgccInterworking: return presentation(fmt, "kgccInterworking", "Interworking"); - } - - throw internal_not_found(); -} - -std::string Verbose::gsmMobileCause(const KGsmMobileCause code, const Verbose::Presentation fmt) -{ - try - { - return internal_gsmMobileCause(code, fmt); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KGsmMobileCause='%d']") % (int)code), - STG(FMT("Unknown GSM mobile cause (%d)") % (int)code)); - } -} - -std::string Verbose::internal_gsmMobileCause(const KGsmMobileCause code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kgmcPhoneFailure: return presentation(fmt, "kgmcPhoneFailure", "Phone failure"); - case kgmcNoConnectionToPhone: return presentation(fmt, "kgmcNoConnectionToPhone", "No connection to phone"); - case kgmcPhoneAdaptorLinkReserved: return presentation(fmt, "kgmcPhoneAdaptorLinkReserved", "Phone adaptor link reserved"); -#if 0 /* this changed during K3L 1.6.0 development cycle... */ - case kgmcCoperationNotAllowed: return presentation(fmt, "kgmcCoperationNotAllowed", ""); - case kgmcCoperationNotSupported: return presentation(fmt, "kgmcCoperationNotSupported", ""); -#else - case kgmcOperationNotAllowed: return presentation(fmt, "kgmcOperationNotAllowed", "Operation not allowed"); - case kgmcOperationNotSupported: return presentation(fmt, "kgmcOperationNotSupported", "Operation not supported"); -#endif - case kgmcPH_SIMPINRequired: return presentation(fmt, "kgmcPH_SIMPINRequired", "Phone SIM PIN required"); - case kgmcPH_FSIMPINRequired: return presentation(fmt, "kgmcPH_FSIMPINRequired", "Phone FSIM PIN required"); - case kgmcPH_FSIMPUKRequired: return presentation(fmt, "kgmcPH_FSIMPUKRequired", "Phone FSIM PUK required"); - case kgmcSIMNotInserted: return presentation(fmt, "kgmcSIMNotInserted", "SIM not inserted"); - case kgmcSIMPINRequired: return presentation(fmt, "kgmcSIMPINRequired", "SIM PIN required"); - case kgmcSIMPUKRequired: return presentation(fmt, "kgmcSIMPUKRequired", "SIM PUK required"); - case kgmcSIMFailure: return presentation(fmt, "kgmcSIMFailure", "SIM failure"); - case kgmcSIMBusy: return presentation(fmt, "kgmcSIMBusy", "SIM busy"); - case kgmcSIMWrong: return presentation(fmt, "kgmcSIMWrong", "SIM wrong"); - case kgmcIncorrectPassword: return presentation(fmt, "kgmcIncorrectPassword", "Incorrect password"); - case kgmcSIMPIN2Required: return presentation(fmt, "kgmcSIMPIN2Required", "SIM PIN2 required"); - case kgmcSIMPUK2Required: return presentation(fmt, "kgmcSIMPUK2Required", "SIM PUK2 required"); - case kgmcMemoryFull: return presentation(fmt, "kgmcMemoryFull", "Memory full"); - case kgmcInvalidIndex: return presentation(fmt, "kgmcInvalidIndex", "Invalid index"); - case kgmcNotFound: return presentation(fmt, "kgmcNotFound", "Not found"); - case kgmcMemoryFailure: return presentation(fmt, "kgmcMemoryFailure", "Memory failure"); - case kgmcTextStringTooLong: return presentation(fmt, "kgmcTextStringTooLong", "Text string too long"); - case kgmcInvalidCharInTextString: return presentation(fmt, "kgmcInvalidCharInTextString", "Invalid character in text string"); - case kgmcDialStringTooLong: return presentation(fmt, "kgmcDialStringTooLong", "Dial string too long"); - case kgmcInvalidCharInDialString: return presentation(fmt, "kgmcInvalidCharInDialString", "Invalid character in dial string"); - case kgmcNoNetworkService: return presentation(fmt, "kgmcNoNetworkService", "No network service"); - case kgmcNetworkTimeout: return presentation(fmt, "kgmcNetworkTimeout", "Network timeout"); - case kgmcNetworkNotAllowed: return presentation(fmt, "kgmcNetworkNotAllowed", "Network not allowed"); - case kgmcCommandAborted: return presentation(fmt, "kgmcCommandAborted", "Command aborted"); - case kgmcNumParamInsteadTextParam: return presentation(fmt, "kgmcNumParamInsteadTextParam", "Number parameter instead of text parameter"); - case kgmcTextParamInsteadNumParam: return presentation(fmt, "kgmcTextParamInsteadNumParam", "Text parameter instead of number parameter"); - case kgmcNumericParamOutOfBounds: return presentation(fmt, "kgmcNumericParamOutOfBounds", "Numeric parameter out of bounds"); - case kgmcTextStringTooShort: return presentation(fmt, "kgmcTextStringTooShort", "Text string too short"); - case kgmcNetworkPINRequired: return presentation(fmt, "kgmcNetworkPINRequired", "Network PIN required"); - case kgmcNetworkPUKRequired: return presentation(fmt, "kgmcNetworkPUKRequired", "Network PUK required"); - case kgmcNetworkSubsetPINRequired: return presentation(fmt, "kgmcNetworkSubsetPINRequired", "Network subset PIN required"); - case kgmcNetworkSubnetPUKRequired: return presentation(fmt, "kgmcNetworkSubnetPUKRequired", "Network subset PUK required"); - case kgmcServiceProviderPINRequired: return presentation(fmt, "kgmcServiceProviderPINRequired", "Network service provider PIN required"); - case kgmcServiceProviderPUKRequired: return presentation(fmt, "kgmcServiceProviderPUKRequired", "Network service provider PUK required"); - case kgmcCorporatePINRequired: return presentation(fmt, "kgmcCorporatePINRequired", "Corporate PIN required"); - case kgmcCorporatePUKRequired: return presentation(fmt, "kgmcCorporatePUKRequired", "Corporate PUK required"); - case kgmcSIMServiceOptNotSupported: return presentation(fmt, "kgmcSIMServiceOptNotSupported", "SIM Service option not supported"); - case kgmcUnknown: return presentation(fmt, "kgmcUnknown", "Unknown"); - case kgmcIllegalMS_N3: return presentation(fmt, "kgmcIllegalMS_N3", "Illegal MS #3"); - case kgmcIllegalME_N6: return presentation(fmt, "kgmcIllegalME_N6", "Illegal MS #6"); - case kgmcGPRSServicesNotAllowed_N7: return presentation(fmt, "kgmcGPRSServicesNotAllowed_N7", "GPRS service not allowed #7"); - case kgmcPLMNNotAllowed_No11: return presentation(fmt, "kgmcPLMNNotAllowed_No11", "PLMN not allowed #11"); - case kgmcLocationAreaNotAllowed_N12: return presentation(fmt, "kgmcLocationAreaNotAllowed_N12", "Location area not allowed #12"); - case kgmcRoamingNotAllowed_N13: return presentation(fmt, "kgmcRoamingNotAllowed_N13", "Roaming not allowed #13"); - case kgmcServiceOptNotSupported_N32: return presentation(fmt, "kgmcServiceOptNotSupported_N32", "Service option not supported #32"); - case kgmcReqServOptNotSubscribed_N33: return presentation(fmt, "kgmcReqServOptNotSubscribed_N33", "Registration service option not subscribed #33"); - case kgmcServOptTempOutOfOrder_N34: return presentation(fmt, "kgmcServOptTempOutOfOrder_N34", "Service option temporary out of order #34"); - case kgmcLongContextActivation: return presentation(fmt, "kgmcLongContextActivation", "Long context activation"); - case kgmcUnspecifiedGPRSError: return presentation(fmt, "kgmcUnspecifiedGPRSError", "Unspecified GPRS error"); - case kgmcPDPAuthenticationFailure: return presentation(fmt, "kgmcPDPAuthenticationFailure", "PDP authentication failure"); - case kgmcInvalidMobileClass: return presentation(fmt, "kgmcInvalidMobileClass", "Invalid mobile class"); - case kgmcGPRSDisconnectionTmrActive: return presentation(fmt, "kgmcGPRSDisconnectionTmrActive", "GPRS disconnection TMR active"); - case kgmcTooManyActiveCalls: return presentation(fmt, "kgmcTooManyActiveCalls", "Too many active calls"); - case kgmcCallRejected: return presentation(fmt, "kgmcCallRejected", "Call rejected"); - case kgmcUnansweredCallPending: return presentation(fmt, "kgmcUnansweredCallPending", "Unanswered call pending"); - case kgmcUnknownCallingError: return presentation(fmt, "kgmcUnknownCallingError", "Unknown calling error"); - case kgmcNoPhoneNumRecognized: return presentation(fmt, "kgmcNoPhoneNumRecognized", "No phone number recognized"); - case kgmcCallStateNotIdle: return presentation(fmt, "kgmcCallStateNotIdle", "Call state not idle"); - case kgmcCallInProgress: return presentation(fmt, "kgmcCallInProgress", "Call in progress"); - case kgmcDialStateError: return presentation(fmt, "kgmcDialStateError", "Dial state error"); - case kgmcUnlockCodeRequired: return presentation(fmt, "kgmcUnlockCodeRequired", "Unlock code required"); - case kgmcNetworkBusy: return presentation(fmt, "kgmcNetworkBusy", "Network busy"); - case kgmcInvalidPhoneNumber: return presentation(fmt, "kgmcInvalidPhoneNumber", "Invalid phone number"); - case kgmcNumberEntryAlreadyStarted: return presentation(fmt, "kgmcNumberEntryAlreadyStarted", "Number entry already started"); - case kgmcCancelledByUser: return presentation(fmt, "kgmcCancelledByUser", "Cancelled by user"); - case kgmcNumEntryCouldNotBeStarted: return presentation(fmt, "kgmcNumEntryCouldNotBeStarted", "Number entry could not be started"); - case kgmcDataLost: return presentation(fmt, "kgmcDataLost", "Data lost"); - case kgmcInvalidBessageBodyLength: return presentation(fmt, "kgmcInvalidBessageBodyLength", "Invalid message body length"); - case kgmcInactiveSocket: return presentation(fmt, "kgmcInactiveSocket", "Inactive socket"); - case kgmcSocketAlreadyOpen: return presentation(fmt, "kgmcSocketAlreadyOpen", "Socket already open"); -#if K3L_AT_LEAST(2,1,0) - case kgmcSuccess: return presentation(fmt, "kgmcSuccess", "Success"); -#endif - } - - throw internal_not_found(); -} - -std::string Verbose::gsmSmsCause(const KGsmSmsCause code, const Verbose::Presentation fmt) -{ - try - { - return internal_gsmSmsCause(code, fmt); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KGsmSmsCause='%d']") % (int)code), - STG(FMT("Unknown GSM SMS cause (%d)") % (int)code)); - } -} - -std::string Verbose::internal_gsmSmsCause(const KGsmSmsCause code, const Verbose::Presentation fmt) -{ - switch (code) - { -#if K3L_AT_LEAST(2,1,0) - case kgscNone: return presentation(fmt, "kgscNone", "None"); -#endif - case kgscUnassigned: return presentation(fmt, "kgscUnassigned", "Unassigned number"); - case kgscOperatorDeterminedBarring: return presentation(fmt, "kgscOperatorDeterminedBarring", "Operator determined barring"); - case kgscCallBarred: return presentation(fmt, "kgscCallBarred", "Call barred"); - case kgscSMSTransferRejected: return presentation(fmt, "kgscSMSTransferRejected", "SMS transfer rejected"); - case kgscDestinationOutOfService: return presentation(fmt, "kgscDestinationOutOfService", "Destination out of service"); - case kgscUnidentifiedSubscriber: return presentation(fmt, "kgscUnidentifiedSubscriber", "Unidentified subscriber"); - case kgscFacilityRejected: return presentation(fmt, "kgscFacilityRejected", "Facility rejected"); - case kgscUnknownSubscriber: return presentation(fmt, "kgscUnknownSubscriber", "Unknown subscriber"); - case kgscNetworkOutOfOrder: return presentation(fmt, "kgscNetworkOutOfOrder", "Network out of order"); - case kgscTemporaryFailure: return presentation(fmt, "kgscTemporaryFailure", "Temporary failure"); - case kgscCongestion: return presentation(fmt, "kgscCongestion", "Congestion"); - case kgscResourcesUnavailable: return presentation(fmt, "kgscResourcesUnavailable", "Resources unavailable"); - case kgscFacilityNotSubscribed: return presentation(fmt, "kgscFacilityNotSubscribed", "Facility not subscribed"); - case kgscFacilityNotImplemented: return presentation(fmt, "kgscFacilityNotImplemented", "Facility not implemented"); - case kgscInvalidSMSTransferRefValue: return presentation(fmt, "kgscInvalidSMSTransferRefValue", "Invalid SMS transfer reference value"); - case kgscInvalidMessage: return presentation(fmt, "kgscInvalidMessage", "Invalid message"); - case kgscInvalidMandatoryInformation: return presentation(fmt, "kgscInvalidMandatoryInformation", "Invalid mandatory information"); - case kgscMessageTypeNonExistent: return presentation(fmt, "kgscMessageTypeNonExistent", "Message type non existent"); - case kgscMsgNotCompatWithSMProtState: return presentation(fmt, "kgscMsgNotCompatWithSMProtState", "Message not compatible with SMS protection state"); - case kgscInformationElementNonExiste: return presentation(fmt, "kgscInformationElementNonExiste", "Information element non existent"); - case kgscProtocolError: return presentation(fmt, "kgscProtocolError", "Protocol error"); - case kgscInterworking: return presentation(fmt, "kgscInterworking", "Interworking"); - case kgscTelematicInterworkingNotSup: return presentation(fmt, "kgscTelematicInterworkingNotSup", "Telematic interworking not supported"); - case kgscSMSTypeZeroNotSupported: return presentation(fmt, "kgscSMSTypeZeroNotSupported", "SMS type zero not supported"); - case kgscCannotReplaceSMS: return presentation(fmt, "kgscCannotReplaceSMS", "Cannot replace SMS"); - case kgscUnspecifiedTPPIDError: return presentation(fmt, "kgscUnspecifiedTPPIDError", "Unspecified TPPID error"); - case kgscAlphabetNotSupported: return presentation(fmt, "kgscAlphabetNotSupported", "Alphabet not supported"); - case kgscMessageClassNotSupported: return presentation(fmt, "kgscMessageClassNotSupported", "Message class not supported"); - case kgscUnspecifiedTPDCSError: return presentation(fmt, "kgscUnspecifiedTPDCSError", "Unspecified TPDCS error"); - case kgscCommandCannotBeActioned: return presentation(fmt, "kgscCommandCannotBeActioned", "Command cannot be actioned"); - case kgscCommandUnsupported: return presentation(fmt, "kgscCommandUnsupported", "Command unsupported"); - case kgscUnspecifiedTPCommandError: return presentation(fmt, "kgscUnspecifiedTPCommandError", "Unspecified TP command error"); - case kgscTPDUNotSupported: return presentation(fmt, "kgscTPDUNotSupported", "TPDU not supported"); - case kgscSCBusy: return presentation(fmt, "kgscSCBusy", "SC busy"); - case kgscNoSCSubscription: return presentation(fmt, "kgscNoSCSubscription", "No SC subscription"); - case kgscSCSystemFailure: return presentation(fmt, "kgscSCSystemFailure", "SC system failure"); - case kgscInvalidSMEAddress: return presentation(fmt, "kgscInvalidSMEAddress", "Invalid SME address"); - case kgscDestinationSMEBarred: return presentation(fmt, "kgscDestinationSMEBarred", "Destination SME barred"); - case kgscSMRejectedDuplicateSM: return presentation(fmt, "kgscSMRejectedDuplicateSM", "SM rejected duplicate SM"); - case kgscTPVPFNotSupported: return presentation(fmt, "kgscTPVPFNotSupported", "TPVPF not supported"); - case kgscTPVPNotSupported: return presentation(fmt, "kgscTPVPNotSupported", "TPVP not supported"); - case kgscSIMSMSStorageFull: return presentation(fmt, "kgscSIMSMSStorageFull", "SIM SMS storage full"); - case kgscNoSMSStorageCapabilityInSIM: return presentation(fmt, "kgscNoSMSStorageCapabilityInSIM", "No SMS storage capability in SIM"); - case kgscErrorInMS: return presentation(fmt, "kgscErrorInMS", "Error in SMS"); - case kgscMemoryCapacityExceeded: return presentation(fmt, "kgscMemoryCapacityExceeded", "Memory capatity exceeded"); - case kgscSIMDataDownloadError: return presentation(fmt, "kgscSIMDataDownloadError", "SIM data download error"); - case kgscUnspecifiedError: return presentation(fmt, "kgscUnspecifiedError", "Unspecified error"); - case kgscPhoneFailure: return presentation(fmt, "kgscPhoneFailure", "Phone failure"); - case kgscSmsServiceReserved: return presentation(fmt, "kgscSmsServiceReserved", "SMS service reserved"); - case kgscOperationNotAllowed: return presentation(fmt, "kgscOperationNotAllowed", "Operation not allowed"); - case kgscOperationNotSupported: return presentation(fmt, "kgscOperationNotSupported", "Operation not supported"); - case kgscInvalidPDUModeParameter: return presentation(fmt, "kgscInvalidPDUModeParameter", "Invalid PDU mode parameter"); - case kgscInvalidTextModeParameter: return presentation(fmt, "kgscInvalidTextModeParameter", "Invalid text mode parameter"); - case kgscSIMNotInserted: return presentation(fmt, "kgscSIMNotInserted", "SIM not inserted"); - case kgscSIMPINNecessary: return presentation(fmt, "kgscSIMPINNecessary", "SIM PIN necessary"); - case kgscPH_SIMPINNecessary: return presentation(fmt, "kgscPH_SIMPINNecessary", "Phone SIM PIN necessary"); - case kgscSIMFailure: return presentation(fmt, "kgscSIMFailure", "SIM failure"); - case kgscSIMBusy: return presentation(fmt, "kgscSIMBusy", "SIM busy"); - case kgscSIMWrong: return presentation(fmt, "kgscSIMWrong", "SIM wrong"); - case kgscMemoryFailure: return presentation(fmt, "kgscMemoryFailure", "Memory failure"); - case kgscInvalidMemoryIndex: return presentation(fmt, "kgscInvalidMemoryIndex", "Invalid memory index"); - case kgscMemoryFull: return presentation(fmt, "kgscMemoryFull", "Memory full"); - case kgscSMSCAddressUnknown: return presentation(fmt, "kgscSMSCAddressUnknown", "SMSC address unknown"); - case kgscNoNetworkService: return presentation(fmt, "kgscNoNetworkService", "No network service"); - case kgscNetworkTimeout: return presentation(fmt, "kgscNetworkTimeout", "Network timeout"); - case kgscUnknownError: return presentation(fmt, "kgscUnknownError", "Unknown error"); - case kgscNetworkBusy: return presentation(fmt, "kgscNetworkBusy", "Network busy"); - case kgscInvalidDestinationAddress: return presentation(fmt, "kgscInvalidDestinationAddress", "Invalid destination address"); - case kgscInvalidMessageBodyLength: return presentation(fmt, "kgscInvalidMessageBodyLength", "Invalid message body length"); - case kgscPhoneIsNotInService: return presentation(fmt, "kgscPhoneIsNotInService", "Phone is not in service"); - case kgscInvalidPreferredMemStorage: return presentation(fmt, "kgscInvalidPreferredMemStorage", "Invalid preferred memory storage"); - case kgscUserTerminated: return presentation(fmt, "kgscUserTerminated", "User terminated"); - } - - throw internal_not_found(); -} - -std::string Verbose::q931ProgressIndication(const KQ931ProgressIndication code, const Verbose::Presentation fmt) -{ - try - { - return internal_q931ProgressIndication(code); - } - catch (internal_not_found e) - { - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KQ931ProgressIndication='%d']") % (int)code), - STG(FMT("Unknown Q931 progress indication (%d)") % (int)code)); - } -} - -std::string Verbose::internal_q931ProgressIndication(const KQ931ProgressIndication code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kq931pTonesMaybeAvailable: return presentation(fmt, "kq931pTonesMaybeAvailable", "Tones may be available"); - case kq931pDestinationIsNonIsdn: return presentation(fmt, "kq931pDestinationIsNonIsdn", "Destination is not ISDN"); - case kq931pOriginationIsNonIsdn: return presentation(fmt, "kq931pOriginationIsNonIsdn", "Origination is not ISDN"); - case kq931pCallReturnedToIsdn: return presentation(fmt, "kq931pCallReturnedToIsdn", "Call returned to ISDN"); - case kq931pTonesAvailable: return presentation(fmt, "kq931pTonesAvailable", "Tones available"); - } - - throw internal_not_found(); -} - -#endif /* K3L_AT_LEAST(1,6,0) */ - - - - -#if K3L_AT_LEAST(2,1,0) -std::string Verbose::faxResult(const KFaxResult code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kfaxrEndOfTransmission: return presentation(fmt, "kfaxrEndOfTransmission", "EndOfTransmission"); - case kfaxrStoppedByCommand: return presentation(fmt, "kfaxrStoppedByCommand", "StoppedByCommand"); - case kfaxrProtocolTimeout: return presentation(fmt, "kfaxrProtocolTimeout", "ProtocolTimeout"); - case kfaxrProtocolError: return presentation(fmt, "kfaxrProtocolError", "ProtocolError"); - case kfaxrRemoteDisconnection: return presentation(fmt, "kfaxrRemoteDisconnection", "RemoteDisconnection"); - case kfaxrFileError: return presentation(fmt, "kfaxrFileError", "FileError"); - case kfaxrUnknown: return presentation(fmt, "kfaxrUnknown", "Unknown"); - case kfaxrEndOfReception: return presentation(fmt, "kfaxrEndOfReception", "EndOfReception"); - case kfaxrCompatibilityError: return presentation(fmt, "kfaxrCompatibilityError", "CompatibilityError"); - case kfaxrQualityError: return presentation(fmt, "kfaxrQualityError", "QualityError"); - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KFaxResult='%d']") % (int)code), - STG(FMT("Unknown fax result (%d)") % (int)code)); -} - -std::string Verbose::faxFileErrorCause(const KFaxFileErrorCause code, const Verbose::Presentation fmt) -{ - switch (code) - { - case kfaxfecTransmissionStopped: return presentation(fmt, "kfaxfecTransmissionStopped", "TransmissionStopped"); - case kfaxfecTransmissionError: return presentation(fmt, "kfaxfecTransmissionError", "TransmissionError"); - case kfaxfecListCleared: return presentation(fmt, "kfaxfecListCleared", "ListCleared"); - case kfaxfecCouldNotOpen: return presentation(fmt, "kfaxfecCouldNotOpen", "CouldNotOpen"); - case kfaxfecInvalidHeader: return presentation(fmt, "kfaxfecInvalidHeader", "InvalidHeader"); - case kfaxfecDataNotFound: return presentation(fmt, "kfaxfecDataNotFound", "DataNotFound"); - case kfaxfecInvalidHeight: return presentation(fmt, "kfaxfecInvalidHeight", "InvalidHeight"); - case kfaxfecUnsupportedWidth: return presentation(fmt, "kfaxfecUnsupportedWidth", "UnsupportedWidth"); - case kfaxfecUnsupportedCompression: return presentation(fmt, "kfaxfecUnsupportedCompression", "UnsupportedCompression"); - case kfaxfecUnsupportedRowsPerStrip: return presentation(fmt, "kfaxfecUnsupportedRowsPerStrip", "UnsupportedRowsPerStrip"); - case kfaxfecUnknown: return presentation(fmt, "kfaxfecUnknown", "Unknown"); - } - - PRESENTATION_CHECK_RETURN(fmt, - STG(FMT("[KFaxFileErrorCause='%d']") % (int)code), - STG(FMT("Unknown fax file error cause (%d)") % (int)code)); -} - -#endif - -/********/ - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::command(const int32 dev, const K3L_COMMAND * const k3lcmd, const R2CountryType r2_country, const Verbose::Presentation fmt) -#else -std::string Verbose::command(const int32 dev, const K3L_COMMAND * const k3lcmd, const Verbose::Presentation fmt) -#endif -{ -#if K3L_AT_LEAST(2,0,0) - return command(k3lcmd->Cmd, dev, k3lcmd->Object, (const char *) k3lcmd->Params, r2_country, fmt); -#else - return command(k3lcmd->Cmd, dev, k3lcmd->Object, (const char *) k3lcmd->Params, fmt); -#endif -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::command(const int32 cmd_code, const int32 dev_idx, const int32 obj_idx, const char * const params, const R2CountryType r2_country, const Verbose::Presentation fmt) -#else -std::string Verbose::command(const int32 cmd_code, const int32 dev_idx, const int32 obj_idx, const char * const params, const Verbose::Presentation fmt) -#endif -{ - unsigned short int dev = (unsigned short int) dev_idx; - unsigned short int obj = (unsigned short int) obj_idx; - - VerboseTraits::Command code = (VerboseTraits::Command) cmd_code; - - std::string buf, extra; - - switch (code) - { - case VerboseTraits::K_CM_SEIZE: - case VerboseTraits::K_CM_SYNC_SEIZE: - case VerboseTraits::K_CM_VOIP_SEIZE: - case VerboseTraits::K_CM_DIAL_MFC: - case VerboseTraits::K_CM_DIAL_DTMF: - - case VerboseTraits::K_CM_CONNECT: - case VerboseTraits::K_CM_PRE_CONNECT: - case VerboseTraits::K_CM_DISCONNECT: - case VerboseTraits::K_CM_DROP_COLLECT_CALL: - - case VerboseTraits::K_CM_START_SEND_FAIL: - case VerboseTraits::K_CM_STOP_SEND_FAIL: - - case VerboseTraits::K_CM_ENABLE_DTMF_SUPPRESSION: - case VerboseTraits::K_CM_DISABLE_DTMF_SUPPRESSION: - case VerboseTraits::K_CM_ENABLE_AUDIO_EVENTS: - case VerboseTraits::K_CM_DISABLE_AUDIO_EVENTS: - case VerboseTraits::K_CM_ENABLE_CALL_PROGRESS: - case VerboseTraits::K_CM_DISABLE_CALL_PROGRESS: - case VerboseTraits::K_CM_ENABLE_PULSE_DETECTION: - case VerboseTraits::K_CM_DISABLE_PULSE_DETECTION: - case VerboseTraits::K_CM_ENABLE_ECHO_CANCELLER: - case VerboseTraits::K_CM_DISABLE_ECHO_CANCELLER: - case VerboseTraits::K_CM_ENABLE_AGC: - case VerboseTraits::K_CM_DISABLE_AGC: - case VerboseTraits::K_CM_ENABLE_HIGH_IMP_EVENTS: - case VerboseTraits::K_CM_DISABLE_HIGH_IMP_EVENTS: - - case VerboseTraits::K_CM_FLASH: - case VerboseTraits::K_CM_RESET_LINK: - case VerboseTraits::K_CM_CLEAR_MIXER: - - case VerboseTraits::K_CM_LOCK_INCOMING: - case VerboseTraits::K_CM_UNLOCK_INCOMING: - case VerboseTraits::K_CM_LOCK_OUTGOING: - case VerboseTraits::K_CM_UNLOCK_OUTGOING: - - case VerboseTraits::K_CM_INCREASE_VOLUME: - case VerboseTraits::K_CM_DECREASE_VOLUME: - - case VerboseTraits::K_CM_STOP_RECORD: - case VerboseTraits::K_CM_PAUSE_RECORD: - case VerboseTraits::K_CM_RESUME_RECORD: - - case VerboseTraits::K_CM_STOP_LISTEN: - - case VerboseTraits::K_CM_PLAY_SOUND_CARD: - case VerboseTraits::K_CM_STOP_SOUND_CARD: - case VerboseTraits::K_CM_RINGBACK: -#if K3L_AT_LEAST(1,4,0) && !K3L_AT_LEAST(2,0,0) - case VerboseTraits::K_CM_VOIP_START_DEBUG: - case VerboseTraits::K_CM_VOIP_STOP_DEBUG: - case VerboseTraits::K_CM_VOIP_DUMP_STAT: -#endif - -#if K3L_AT_LEAST(1,5,3) - case VerboseTraits::K_CM_END_OF_NUMBER: -#endif - -#if K3L_AT_LEAST(1,5,4) - case VerboseTraits::K_CM_SET_VOLUME: -#endif - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::K_CM_ENABLE_CALL_ANSWER_INFO: - case VerboseTraits::K_CM_DISABLE_CALL_ANSWER_INFO: - - case VerboseTraits::K_CM_SS_TRANSFER: - - case VerboseTraits::K_CM_CHECK_NEW_SMS: - case VerboseTraits::K_CM_GET_SMS: - case VerboseTraits::K_CM_PREPARE_SMS: - case VerboseTraits::K_CM_SEND_SMS: - - case VerboseTraits::K_CM_START_CADENCE: - case VerboseTraits::K_CM_STOP_CADENCE: - case VerboseTraits::K_CM_SEND_TO_MODEM: -#endif -#if K3L_HAS_MPTY_SUPPORT - case VerboseTraits::K_CM_HOLD_SWITCH: - case VerboseTraits::K_CM_MPTY_CONF: - case VerboseTraits::K_CM_MPTY_SPLIT: -#endif -#if K3L_AT_LEAST(2,1,0) - case VerboseTraits::K_CM_SIM_CARD_SELECT: - case VerboseTraits::K_CM_CT_TRANSFER: -#endif - if (params != NULL) - { - extra += "param='"; - extra += (params ? params : ""); - extra += "'"; - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - else - { - return show(buf, commandName(code), Target(CHANNEL, dev, obj)); - } - - case VerboseTraits::K_CM_SEND_DTMF: /* ?? */ - return show(buf, commandName(code), Target(CHANNEL, dev, obj)); - - /****/ - - case VerboseTraits::K_CM_STOP_AUDIO: - extra = "stop='"; - switch ((params ? (int)(*params) : -1)) - { - case 1: extra += "tx"; - case 2: extra += "rx"; - case 3: extra += "tx+rx"; - default: extra += ""; - } - extra = "'"; - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - - /****/ - -#if K3L_AT_LEAST(1,5,2) && !K3L_AT_LEAST(2,0,0) - case VerboseTraits::K_CM_ISDN_DEBUG: - extra = "flags='"; - extra += isdnDebug((unsigned long)params); - extra += "'"; - - return show(buf, commandName(code), Target(NONE), extra); -#endif - - /****/ - -#if K3L_AT_LEAST(1,5,1) - case VerboseTraits::K_CM_USER_INFORMATION: -#endif - if (params != NULL) - { - KUserInformation * userinfo = (KUserInformation *)params; - - std::string tmp((const char*) userinfo->UserInfo, userinfo->UserInfoLength); - - extra = STG(FMT("proto='%d',length='%d',data='%s'") - % userinfo->ProtocolDescriptor % userinfo->UserInfoLength % tmp); - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - else - { - return show(buf, commandName(code), Target(CHANNEL, dev, obj)); - } - - /****/ - - - - case VerboseTraits::K_CM_CAS_CHANGE_LINE_STT: - { - const char status = (params ? *params : 0x00); - - extra += "status='"; - extra += (status & 0x01 ? "1" : "0"); - extra += (status & 0x02 ? "1" : "0"); - extra += (status & 0x04 ? "1" : "0"); - extra += (status & 0x08 ? "1" : "0"); - extra += "'"; - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - - case VerboseTraits::K_CM_CAS_SEND_MFC: - { - char mfc = (params ? *params : 0xff); - - extra = STG(FMT("mfc='%d'") % (int) mfc); - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - - case VerboseTraits::K_CM_CAS_SET_MFC_DETECT_MODE: - { - int mode = (params ? *((int *)params) : -1); - - extra = STG(FMT("mode='%d'") % mode); - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - - case VerboseTraits::K_CM_SET_FORWARD_CHANNEL: - { - int channel = (params ? *((int*) params) : -1); - - extra = STG(FMT("forward='%03d'") % channel); - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - -#if K3L_AT_LEAST(1,5,0) - case VerboseTraits::K_CM_MAKE_CALL: - extra = "options='"; - extra += (params ? params : ""); - extra += "'"; - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); -#endif - - case VerboseTraits::K_CM_MIXER: - case VerboseTraits::K_CM_MIXER_CTBUS: - { - if (params) - { - KMixerCommand *m = (KMixerCommand*)params; - - std::string src = mixerSource((KMixerSource)m->Source); - std::string idx(""); - - switch (m->Source) - { - case kmsChannel: - case kmsPlay: - case kmsCTbus: -#if (K3L_AT_LEAST(1,4,0) && !K3L_AT_LEAST(1,6,0)) - case kmsVoIP: -#endif -#if K3L_AT_LEAST(1,6,0) - case kmsNoDelayChannel: -#endif - idx = STG(FMT("%02d") % (int)m->SourceIndex); - break; - - case kmsGenerator: - idx = mixerTone((KMixerTone)m->SourceIndex); - break; - }; - - extra = STG(FMT("track='%d',src='%s',index='%s'") % (int)m->Track % src % idx); - } - else - { - extra = ""; - } - - return show(buf, commandName(code), Target(MIXER, dev, obj), extra); - }; - - case VerboseTraits::K_CM_PLAY_FROM_FILE: - extra = "file='"; - extra += (params ? params : ""); - extra += "'"; - - return show(buf, commandName(code), Target(PLAYER, dev, obj), extra); - - case VerboseTraits::K_CM_RECORD_TO_FILE: - extra = "file='"; - extra += (params ? params : ""); - extra += "'"; - - return show(buf, commandName(code), Target(PLAYER, dev, obj), extra); - - case VerboseTraits::K_CM_RECORD_TO_FILE_EX: - extra = "params='"; - extra += (params ? params : ""); - extra += "'"; - - return show(buf, commandName(code), Target(PLAYER, dev, obj), extra); - - case VerboseTraits::K_CM_PLAY_FROM_STREAM: - case VerboseTraits::K_CM_ADD_STREAM_BUFFER: - { - struct buffer_param - { - const void * ptr; - const int size; - } - *p = (buffer_param *) params; - - std::stringstream stream; - - extra = STG(FMT("buffer='%p',size='%d'") - % (const void *) p->ptr % (const int) p->size); - - return show(buf, commandName(code), Target(PLAYER, dev, obj), extra); - } - - case VerboseTraits::K_CM_PLAY_FROM_STREAM_EX: - { - struct buffer_param - { - const void * ptr; - const int size; - const char codec; - } - *p = (buffer_param *) params; - - std::string codec; - - switch (p->codec) - { - case 0: codec = "A-Law"; - case 1: codec = "PCM-08khz"; - case 2: codec = "PCM-11khz"; - default: codec = ""; - } - - std::stringstream stream; - - extra = STG(FMT("buffer='%p',size='%d',codec='%s'") - % (const void *) p->ptr % (const int) p->size % codec); - - return show(buf, commandName(code), Target(PLAYER, dev, obj), extra); - } - - case VerboseTraits::K_CM_STOP_PLAY: - case VerboseTraits::K_CM_PAUSE_PLAY: - case VerboseTraits::K_CM_RESUME_PLAY: - - case VerboseTraits::K_CM_START_STREAM_BUFFER: - case VerboseTraits::K_CM_STOP_STREAM_BUFFER: - - case VerboseTraits::K_CM_ENABLE_PLAYER_AGC: - case VerboseTraits::K_CM_DISABLE_PLAYER_AGC: - - case VerboseTraits::K_CM_SEND_BEEP: - case VerboseTraits::K_CM_SEND_BEEP_CONF: - - case VerboseTraits::K_CM_INTERNAL_PLAY: - case VerboseTraits::K_CM_INTERNAL_PLAY_EX: - return show(buf, commandName(code), Target(PLAYER, dev, obj)); - - case VerboseTraits::K_CM_ADD_TO_CONF: - extra += "conference='"; - extra += (params ? (int) (*params) : -1); - extra += "'"; - - return show(buf, commandName(code), Target(MIXER, dev, obj), extra); - - case CM_REMOVE_FROM_CONF: - return show(buf, commandName(code), Target(MIXER, dev, obj)); - - case VerboseTraits::K_CM_LISTEN: - case VerboseTraits::K_CM_PREPARE_FOR_LISTEN: - { - int msecs = (params ? *((int*)params) : -1); - - extra = STG(FMT("msecs='%d'") % msecs); - - return show(buf, commandName(code), Target(PLAYER, dev, obj), extra); - } - - case VerboseTraits::K_CM_SEND_TO_CTBUS: - case VerboseTraits::K_CM_RECV_FROM_CTBUS: - { - KCtbusCommand *p = (KCtbusCommand*)(params); - - extra = STG(FMT("stream='%02d',timeslot='%02d',enable='%d'") - % (int)p->Stream % (int)p->TimeSlot % (int)p->Enable); - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - } - - case VerboseTraits::K_CM_SET_LINE_CONDITION: - case VerboseTraits::K_CM_SEND_LINE_CONDITION: - extra = "condition='"; -#if K3L_AT_LEAST(2,0,0) - extra += signGroupB((KSignGroupB) *((int *) params), r2_country); -#else - extra += signGroupB((KSignGroupB) *((int *) params)); -#endif - extra += "'"; - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::K_CM_SET_CALLER_CATEGORY: - extra = "category='"; -#if K3L_AT_LEAST(2,0,0) - extra += signGroupII((KSignGroupII) *((int *) params), r2_country); -#else - extra += signGroupII((KSignGroupII) *((int *) params)); -#endif - extra += "'"; - - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::K_CM_CLEAR_LINK_ERROR_COUNTER: - return show(buf, commandName(code), Target(LINK, dev, obj)); - - case VerboseTraits::K_CM_SIP_REGISTER: - if (params != NULL) - { - extra += "param='"; - extra += (params ? params : ""); - extra += "'"; - - return show(buf, commandName(code), Target(DEVICE, dev), extra); - } - else - { - return show(buf, commandName(code), Target(DEVICE, dev)); - } -#endif - - case VerboseTraits::K_CM_SETUP_H100: - extra += "option='"; - extra += h100configIndex((KH100ConfigIndex)obj_idx); - extra += "'value='"; - extra += (params ? STG(FMT("%02d") % (int)(*params)) : ""); - extra += "'"; - - return show(buf, commandName(code), Target(DEVICE, dev), extra); - - case VerboseTraits::K_CM_HARD_RESET: - return show(buf, commandName(code), Target(LINK, dev, obj)); - -#if !K3L_AT_LEAST(2,0,0) - /* como funciona? */ - case VerboseTraits::K_CM_LOG_REQUEST: - case VerboseTraits::K_CM_LOG_CREATE_DISPATCHER: - case VerboseTraits::K_CM_LOG_DESTROY_DISPATCHER: - case VerboseTraits::K_CM_PING: -#endif -//#if K3L_AT_LEAST(2,1,0) -// case VerboseTraits::K_CM_LOG_UPDATE: -//#endif - return show(buf, commandName(code), Target(NONE)); -#if K3L_AT_LEAST(2,1,0) - case VerboseTraits::K_CM_START_FAX_TX: - case VerboseTraits::K_CM_START_FAX_RX: - case VerboseTraits::K_CM_ADD_FAX_FILE: - extra = "params='"; - extra += (params ? params : ""); - extra += "'"; - return show(buf, commandName(code), Target(CHANNEL, dev, obj), extra); - case VerboseTraits::K_CM_STOP_FAX_TX: - case VerboseTraits::K_CM_STOP_FAX_RX: - case VerboseTraits::K_CM_ADD_FAX_PAGE_BREAK: - return show(buf, commandName(code), Target(CHANNEL, dev, obj)); -#endif - -#if K3L_AT_LEAST(2,1,0) - case VerboseTraits::K_CM_NOTIFY_WATCHDOG: - case VerboseTraits::K_CM_STOP_WATCHDOG: - case VerboseTraits::K_CM_START_WATCHDOG: - return show(buf, commandName(code) , Target(DEVICE, obj)); - case VerboseTraits::K_CM_WATCHDOG_COUNT: - return show(buf, commandName(code) , Target(NONE)); -#endif - - } - - /* default command handler */ - return show(buf, commandName(code), Target(CHANNEL, dev, obj)); -} - -#if K3L_AT_LEAST(2,0,0) -std::string Verbose::event(const KSignaling sig, const int32 obj_idx, const K3L_EVENT * const ev, const R2CountryType r2_country, const Verbose::Presentation fmt) -#else -std::string Verbose::event(const KSignaling sig, const int32 obj_idx, const K3L_EVENT * const ev, const Verbose::Presentation fmt) -#endif -{ - unsigned short int dev = (unsigned short int) ev->DeviceId; - unsigned short int obj = (unsigned short int) obj_idx; - - VerboseTraits::Event code = (VerboseTraits::Event) ev->Code; - - std::string buf; - std::string extra; - - switch (code) - { - case VerboseTraits::VerboseTraits::K_EV_CHANNEL_FREE: - case VerboseTraits::VerboseTraits::K_EV_SEIZE_SUCCESS: - case VerboseTraits::VerboseTraits::K_EV_CALL_SUCCESS: - case VerboseTraits::VerboseTraits::K_EV_NO_ANSWER: - case VerboseTraits::VerboseTraits::K_EV_CONNECT: - case VerboseTraits::VerboseTraits::K_EV_DTMF_SEND_FINISH: - case VerboseTraits::VerboseTraits::K_EV_SEIZURE_START: - case VerboseTraits::VerboseTraits::K_EV_BILLING_PULSE: - case VerboseTraits::VerboseTraits::K_EV_REFERENCE_FAIL: - -#if K3L_AT_LEAST(1,4,0) - case VerboseTraits::VerboseTraits::K_EV_CALL_HOLD_START: - case VerboseTraits::VerboseTraits::K_EV_CALL_HOLD_STOP: -#endif - -#if K3L_AT_LEAST(1,5,0) - case VerboseTraits::VerboseTraits::K_EV_NEW_CALL: -#endif - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::VerboseTraits::K_EV_FLASH: - case VerboseTraits::VerboseTraits::K_EV_POLARITY_REVERSAL: - case VerboseTraits::VerboseTraits::K_EV_COLLECT_CALL: - case VerboseTraits::VerboseTraits::K_EV_RING_DETECTED: - case VerboseTraits::VerboseTraits::K_EV_SS_TRANSFER_FAIL: -#endif -#if K3L_HAS_MPTY_SUPPORT - case VerboseTraits::VerboseTraits::K_EV_CALL_MPTY_START: - case VerboseTraits::VerboseTraits::K_EV_CALL_MPTY_STOP: -#endif - break; - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::VerboseTraits::K_EV_RECV_FROM_MODEM: - case VerboseTraits::VerboseTraits::K_EV_SMS_INFO: - case VerboseTraits::VerboseTraits::K_EV_SMS_DATA: -#endif - extra = "data='"; - extra += (ev->Params ? (const char *)(ev->Params) : ""); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::VerboseTraits::K_EV_SMS_SEND_RESULT: - extra = "result='"; -#if K3L_AT_LEAST(2,0,0) - extra += gsmSmsCause((KGsmSmsCause)ev->AddInfo); -#else - extra += gsmCallCause((KGsmCallCause)ev->AddInfo); -#endif - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - -#if K3L_HAS_MPTY_SUPPORT - case VerboseTraits::VerboseTraits::K_EV_GSM_COMMAND_STATUS: - extra = "result='"; - extra += gsmMobileCause((KGsmMobileCause)ev->AddInfo); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); -#endif - - case VerboseTraits::VerboseTraits::K_EV_CALL_ANSWER_INFO: - extra = "info='"; - extra += callStartInfo((KCallStartInfo)ev->AddInfo); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_NEW_SMS: - if (ev->AddInfo != 0) - { - extra = "messages='"; - extra += STG(FMT("%d") % ev->AddInfo); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - } - else - { - return show(buf, eventName(code), Target(CHANNEL, dev, obj)); - } - - case VerboseTraits::VerboseTraits::K_EV_ISDN_PROGRESS_INDICATOR: - if (ev->AddInfo != 0) - { - extra = "indication='"; - extra += q931ProgressIndication((KQ931ProgressIndication)ev->AddInfo); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - } - else - { - return show(buf, eventName(code), Target(CHANNEL, dev, obj)); - } -#endif - - case VerboseTraits::VerboseTraits::K_EV_CAS_LINE_STT_CHANGED: - extra = STG(FMT("[a=%d,b=%d,c=%d,d=%d]") - % ((ev->AddInfo & 0x8) >> 3) % ((ev->AddInfo & 0x4) >> 2) - % ((ev->AddInfo & 0x2) >> 1) % (ev->AddInfo & 0x1)); - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_CAS_MFC_RECV: - extra = STG(FMT("digit='%d'") % ev->AddInfo); - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_CALL_FAIL: - extra = "cause='"; -#if K3L_AT_LEAST(2,0,0) - extra += callFail(sig, r2_country, ev->AddInfo); -#else - extra += callFail(sig, ev->AddInfo); -#endif - extra += "'"; - - if (ev->Params != NULL && ev->ParamSize != 0) - { - if (!extra.empty()) - extra += ","; - - extra += "params='"; - extra += (const char *) ev->Params; - extra += "'"; - } - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_DISCONNECT: - switch (sig) - { -#if K3L_AT_LEAST(1,5,1) - case ksigOpenCCS: - case ksigPRI_EndPoint: - case ksigPRI_Network: - case ksigPRI_Passive: - extra = "cause='"; - extra += isdnCause((KQ931Cause) ev->AddInfo); - extra += "'"; -#endif - default: - break; - } - - if (ev->Params != NULL && ev->ParamSize != 0) - { - if (!extra.empty()) - extra += ","; - - extra += "params='"; - extra += (const char *) ev->Params; - extra += "'"; - } - - if (!extra.empty()) - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - else - return show(buf, eventName(code), Target(CHANNEL, dev, obj)); - - break; - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::VerboseTraits::K_EV_SIP_DTMF_DETECTED: -#endif - case VerboseTraits::VerboseTraits::K_EV_DTMF_DETECTED: - case VerboseTraits::VerboseTraits::K_EV_PULSE_DETECTED: - case VerboseTraits::VerboseTraits::K_EV_DIALED_DIGIT: - extra = STG(FMT("digit='%c'") % (char)ev->AddInfo); - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_SEIZURE: - { - KIncomingSeizeParams *n = (KIncomingSeizeParams *) - ( ((char*)ev) + sizeof(K3L_EVENT) ); - - extra += "orig_addr='"; - extra += n->NumberA; - extra += "',dest_addr='"; - extra += n->NumberB; - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - } - -#if K3L_AT_LEAST(1,4,0) - case VerboseTraits::VerboseTraits::K_EV_VOIP_SEIZURE: - { - char *numB = ((char*)ev) + sizeof(K3L_EVENT); - char *numA = numB + 61; - - extra = "numberA='"; - extra += numA; - extra += "',numberB='"; - extra += numB; - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - } -#endif - - - case VerboseTraits::VerboseTraits::K_EV_END_OF_STREAM: - return show(buf, eventName(code), Target(PLAYER, dev, obj)); - - case VerboseTraits::VerboseTraits::K_EV_AUDIO_STATUS: - extra = "tone='"; - extra += mixerTone((KMixerTone)ev->AddInfo); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_CADENCE_RECOGNIZED: - extra = STG(FMT("cadence='%c'") % (char)(ev->AddInfo)); - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_CHANNEL_FAIL: - extra = "reason='"; - extra += channelFail(sig, ev->AddInfo); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_SEIZE_FAIL: - extra = "reason='"; - extra += seizeFail((KSeizeFail) ev->AddInfo); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_INTERNAL_FAIL: - extra = "reason='"; - extra += internalFail((KInternalFail) ev->AddInfo); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_HARDWARE_FAIL: - extra = "component='"; - extra += systemObject((KSystemObject) ev->AddInfo); - extra += "'"; - - switch (ev->AddInfo) - { - case ksoChannel: - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - case ksoLink: - return show(buf, eventName(code), Target(LINK, dev, obj), extra); - case ksoLinkMon: - case ksoH100: - case ksoFirmware: - case ksoDevice: - return show(buf, eventName(code), Target(DEVICE, dev), extra); - case ksoAPI: - return show(buf, eventName(code), Target(NONE), extra); - } - - - case VerboseTraits::VerboseTraits::K_EV_LINK_STATUS: - // EV_LINK_STATUS has always zero in ObjectInfo (and AddInfo!) - /* fall throught... */ - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::VerboseTraits::K_EV_PHYSICAL_LINK_UP: - case VerboseTraits::VerboseTraits::K_EV_PHYSICAL_LINK_DOWN: - return show(buf, eventName(code), Target(LINK, dev, obj)); -#endif - -#if K3L_AT_LEAST(1,5,1) - case VerboseTraits::VerboseTraits::K_EV_USER_INFORMATION: - { - KUserInformation *info = (KUserInformation *)(ev->Params); - - std::string data((const char *)info->UserInfo, - std::min(info->UserInfoLength, KMAX_USER_USER_LEN)); - - extra = STG(FMT("proto='%d',length='%d',data='%s'") - % info->ProtocolDescriptor % info->UserInfoLength % data); - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - } -#endif - -#if K3L_AT_LEAST(1,6,0) - case VerboseTraits::VerboseTraits::K_EV_SIP_REGISTER_INFO: - extra = "params='"; - extra += (ev->Params ? (const char *) (ev->Params) : ""); - extra += "',status='"; - extra += sipFailures((KSIP_Failures)(ev->AddInfo)); - extra += "'"; - - return show(buf, eventName(code), Target(DEVICE, dev), extra); -#endif - -#if !K3L_AT_LEAST(2,0,0) - case VerboseTraits::VerboseTraits::K_EV_PONG: -#endif - -#if K3L_AT_LEAST(1,4,0) - case VerboseTraits::VerboseTraits::K_EV_CLIENT_RECONNECT: -#endif - return show(buf, eventName(code), Target(NONE)); - -#if K3L_AT_LEAST(2,1,0) - case VerboseTraits::VerboseTraits::K_EV_FAX_CHANNEL_FREE: - extra = "status='"; - extra += faxResult((KFaxResult)ev->AddInfo); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_FAX_FILE_SENT: - extra = "filename='"; - extra += (ev->Params ? (const char *) (ev->Params) : ""); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_FAX_FILE_FAIL: - extra = "cause='"; - extra += faxFileErrorCause((KFaxFileErrorCause)ev->AddInfo); - extra += "',filename='"; - extra += (ev->Params ? (const char *) (ev->Params) : ""); - extra += "'"; - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_FAX_REMOTE_INFO: - extra = ((ev->Params && ev->ParamSize != 0) ? (const char *) ev->Params : ""); - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - - case VerboseTraits::VerboseTraits::K_EV_FAX_PAGE_CONFIRMATION: - case VerboseTraits::VerboseTraits::K_EV_FAX_TX_TIMEOUT: - return show(buf, eventName(code), Target(CHANNEL, dev, obj)); -#endif - -#if K3L_AT_LEAST(2,1,0) - case VerboseTraits::VerboseTraits::K_EV_WATCHDOG_COUNT: - extra = STG(FMT("count='%d'") % (char)ev->AddInfo); - return show(buf , eventName(code), Target(NONE), extra); -#endif - -#if K3L_AT_LEAST(2,1,0) - case VerboseTraits::VerboseTraits::K_EV_CT_TRANSFER_FAIL: - extra = "cause='"; - extra += isdnCause((KQ931Cause)ev->AddInfo); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); -#endif - } - - // default handler... - if (ev->Params != NULL && ev->ParamSize != 0) - { - extra += "params='"; - extra.append((const char *) ev->Params, (unsigned int) std::max(ev->ParamSize - 1, 0)); - extra += "'"; - - return show(buf, eventName(code), Target(CHANNEL, dev, obj), extra); - } - else - return show(buf, eventName(code), Target(CHANNEL, dev, obj)); -} - -/********************************************/ - -std::string Verbose::show(std::string & buf, const std::string & name, const Target tgt, const std::string & extra) -{ - if (tgt.type == NONE) - { - generate(buf, name, tgt, extra); - } - else - { - std::string tmp(","); - tmp += extra; - - generate(buf, name, tgt, tmp); - } - - return buf; -} - -std::string Verbose::show(std::string & buf, const std::string & name, const Target tgt) -{ - std::string tmp(""); - - generate(buf, name, tgt, tmp); - return buf; -} - -void Verbose::generate(std::string & buf, const std::string & name, const Target tgt, const std::string & extra) -{ - switch (tgt.type) - { - case NONE: - if (extra.empty()) - buf += STG(FMT("<%s>") % name); - else - buf += STG(FMT("<%s> (%s)") % name % extra); - break; - - case DEVICE: - buf += STG(FMT("<%s> (d=%02d%s)") - % name % tgt.device % extra); - break; - - default: - { - const char *kind = "o"; - - switch (tgt.type) - { - case CHANNEL: - kind = "c"; - break; - case PLAYER: - kind = "p"; - break; - case MIXER: - kind = "m"; - break; - case LINK: - kind = "l"; - default: - break; - } - - buf += STG(FMT("<%s> (d=%02d,%s=%03d%s)") - % name % tgt.device % kind % tgt.object % extra); - break; - } - } -} - diff --git a/src/mod/endpoints/mod_khomp/commons/base/verbose.hpp b/src/mod/endpoints/mod_khomp/commons/base/verbose.hpp deleted file mode 100644 index a0ea290b7e..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/base/verbose.hpp +++ /dev/null @@ -1,303 +0,0 @@ -/* - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2009 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License Version 1.1 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file under - the MPL, indicate your decision by deleting the provisions above and replace them - with the notice and other provisions required by the LGPL License. If you do not - delete the provisions above, a recipient may use your version of this file under - either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef _VERBOSE_HPP_ -#define _VERBOSE_HPP_ - -#include -#include -#include - -#include - -// k3lApiMajorVersion -#ifndef CM_PING -# include -# include -#endif - -#include -#include -#include - -#include - -struct Verbose -{ - typedef enum - { - R2_COUNTRY_BRA = 1, - R2_COUNTRY_ARG = 2, - R2_COUNTRY_CHI = 3, - R2_COUNTRY_MEX = 4, - R2_COUNTRY_URY = 5, - R2_COUNTRY_VEN = 6 - } - R2CountryType; - - typedef enum - { - HUMAN, - EXACT - } - Presentation; - - /* dynamic (object) stuff */ - - Verbose(const K3LAPI & api) - : _api(api) {}; - -#if K3L_AT_LEAST(2,0,0) - std::string event(const int32, const K3L_EVENT * const, - const R2CountryType r2_country = R2_COUNTRY_BRA, - const Presentation fmt = HUMAN) const; -#else - std::string event(const int32, const K3L_EVENT * const, - const Presentation fmt = HUMAN) const; -#endif - - std::string channelStatus(const int32, const int32, const int32, - const Presentation fmt = HUMAN) const; - - /* end of dynamic (object) stuff */ - - protected: - const K3LAPI & _api; - - /* used internally */ - struct internal_not_found {}; - - public: - - /* static (class) stuff */ - - static std::string echoLocation(const KEchoLocation, const Presentation fmt = HUMAN); - static std::string echoCancellerConfig(const KEchoCancellerConfig, const Presentation fmt = HUMAN); - -#if K3L_AT_LEAST(2,0,0) - static std::string event(const KSignaling, const int32, const K3L_EVENT * const, - const R2CountryType = R2_COUNTRY_BRA, Presentation fmt = HUMAN); -#else - static std::string event(const KSignaling, const int32, const K3L_EVENT * const, - const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(2,0,0) - static std::string command(const int32, const K3L_COMMAND * const, - const R2CountryType = R2_COUNTRY_BRA, - const Presentation fmt = HUMAN); - - static std::string command(const int32, const int32, const int32, const char * const, - const R2CountryType = R2_COUNTRY_BRA, - const Presentation fmt = HUMAN); -#else - static std::string command(const int32, const K3L_COMMAND * const, - const Presentation fmt = HUMAN); - - static std::string command(const int32, const int32, const int32, const char * const, - const Presentation fmt = HUMAN); -#endif - - static std::string deviceName(const KDeviceType, const int32, const int32 count = 0, const Presentation fmt = HUMAN); - static std::string deviceName(const KDeviceType, const int32, const Presentation fmt); - - static std::string deviceType(const KDeviceType, const int32 count = 0, const Presentation fmt = HUMAN); - static std::string deviceType(const KDeviceType, const Presentation fmt); - - static std::string deviceModel(const KDeviceType, const int32, const int32 count = 0, const Presentation fmt = HUMAN); - static std::string deviceModel(const KDeviceType, const int32, const Presentation fmt); - - static std::string channelFeatures(const int32, const Presentation fmt = HUMAN); - static std::string signaling(const KSignaling, const Presentation fmt = HUMAN); - static std::string systemObject(const KSystemObject, const Presentation fmt = HUMAN); - static std::string mixerTone(const KMixerTone, const Presentation fmt = HUMAN); - static std::string mixerSource(const KMixerSource, const Presentation fmt = HUMAN); - - static std::string seizeFail(const KSeizeFail, const Presentation fmt = HUMAN); - -#if K3L_AT_LEAST(2,0,0) - static std::string callFail(const KSignaling, const R2CountryType, const int32, const Presentation fmt = HUMAN); -#else - static std::string callFail(const KSignaling, const int32, const Presentation fmt = HUMAN); -#endif - - static std::string channelFail(const KSignaling, const int32, const Presentation fmt = HUMAN); - static std::string internalFail(const KInternalFail, const Presentation fmt = HUMAN); - - static std::string linkErrorCounter(const KLinkErrorCounter, const Presentation fmt = HUMAN); - - static std::string linkStatus(const KSignaling, const int32, const Presentation fmt = HUMAN, const bool simpleStatus = false); - static std::string channelStatus(const KSignaling, const int32, const Presentation fmt = HUMAN); - static std::string callStatus(const KCallStatus, const Presentation fmt = HUMAN); - static std::string status(const KLibraryStatus, const Presentation fmt = HUMAN); - -#if K3L_AT_LEAST(2,0,0) - static std::string signGroupB(const KSignGroupB, const R2CountryType contry = R2_COUNTRY_BRA, - Presentation fmt = HUMAN); -#else - static std::string signGroupB(const KSignGroupB, const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(2,0,0) - static std::string signGroupII(const KSignGroupII, const R2CountryType contry = R2_COUNTRY_BRA, - Presentation fmt = HUMAN); -#else - static std::string signGroupII(const KSignGroupII, const Presentation fmt = HUMAN); -#endif - - static std::string h100configIndex(const KH100ConfigIndex, const Presentation fmt = HUMAN); - - static std::string eventName(const int32 value) - { - return VerboseTraits::eventName((VerboseTraits::Event)value); - }; - - static std::string commandName(const int32 value) - { - return VerboseTraits::commandName((VerboseTraits::Command)value); - }; - -#if K3L_AT_LEAST(1,5,0) - static std::string sipFailures(const KSIP_Failures, const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(1,5,1) - static std::string isdnCause(const KQ931Cause, const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(1,5,2) - static std::string isdnDebug(const int32, const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(1,6,0) - static std::string callStartInfo(const KCallStartInfo, const Presentation fmt = HUMAN); - - static std::string gsmCallCause(const KGsmCallCause, const Presentation fmt = HUMAN); - static std::string gsmMobileCause(const KGsmMobileCause, const Presentation fmt = HUMAN); - static std::string gsmSmsCause(const KGsmSmsCause, const Presentation fmt = HUMAN); - - static std::string q931ProgressIndication(const KQ931ProgressIndication, - Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(2,1,0) - static std::string faxResult(const KFaxResult code, const Presentation fmt = HUMAN); - static std::string faxFileErrorCause(const KFaxFileErrorCause code, const Presentation fmt = HUMAN); -#endif - - /* end of static (class) stuff */ - - private: - static std::string internal_deviceType(const KDeviceType, const int32); - static std::string internal_deviceModel(const KDeviceType, const int32, const int32); - -#if K3L_AT_LEAST(1,5,0) - static std::string internal_sipFailures(const KSIP_Failures, const Presentation fmt = HUMAN); -#endif -#if K3L_AT_LEAST(1,5,1) - static std::string internal_isdnCause(const KQ931Cause, const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(2,0,0) - static std::string internal_signGroupB(const KSignGroupB, const R2CountryType contry, const Presentation fmt = HUMAN); - static std::string internal_signGroupII(const KSignGroupII, const R2CountryType contry, const Presentation fmt = HUMAN); -#else - static std::string internal_signGroupB(const KSignGroupB, const Presentation fmt = HUMAN); - static std::string internal_signGroupII(const KSignGroupII, const Presentation fmt = HUMAN); -#endif - -#if K3L_AT_LEAST(1,6,0) - static std::string internal_gsmCallCause(const KGsmCallCause, const Presentation fmt = HUMAN); - static std::string internal_gsmMobileCause(const KGsmMobileCause, const Presentation fmt = HUMAN); - static std::string internal_gsmSmsCause(const KGsmSmsCause, const Presentation fmt = HUMAN); - - static std::string internal_q931ProgressIndication(const KQ931ProgressIndication, const Presentation fmt = HUMAN); -#endif - - private: - enum Type - { - DEVICE, - CHANNEL, - PLAYER, - MIXER, - LINK, - NONE - }; - - struct Target - { - Target(Type _type) - : type(_type), device(-1), object(-1) - {}; - - Target(Type _type, int32 _device) - : type(_type), device(_device), object(-1) - {}; - - Target(Type _type, int32 _device, int32 _object) - : type(_type), device(_device), object(_object) - {}; - - const Type type; - const int32 device; - const int32 object; - }; - - static void generate(std::string &, const std::string &, const Target, const std::string &); - - static std::string show(std::string &, const std::string &, const Target, const std::string &); - static std::string show(std::string &, const std::string &, const Target); - - template < typename ReturnType > - static ReturnType presentation(const Presentation fmt, ReturnType str_exact, ReturnType str_human) - { - switch (fmt) - { - case HUMAN: return str_human; - case EXACT: return str_exact; - }; - - return str_exact; - } -}; - -#endif /* _VERBOSE_HPP_ */ diff --git a/src/mod/endpoints/mod_khomp/commons/tools/generate-verbose-headers.sh b/src/mod/endpoints/mod_khomp/commons/tools/generate-verbose-headers.sh deleted file mode 100755 index 7b9012baea..0000000000 --- a/src/mod/endpoints/mod_khomp/commons/tools/generate-verbose-headers.sh +++ /dev/null @@ -1,183 +0,0 @@ -#!/bin/sh - -cut_defines () -{ - cut -b9- | cut -f1 | cut -d' ' -f1 -} - -list_commands () -{ - egrep -h 'define.+CM_' "$@" | cut_defines -} - -list_events () -{ - # list and remove deprecations - egrep -h 'define.+EV_' "$@" | cut_defines | \ - grep -v 'EV_CALL_PROGRESS\|EV_FAX_MESSAGE_CONFIRMATION' -} - -make_enumeration_one_by_one () -{ - while read line - do - local size=$[50 - $(expr length "${line}")] - - echo -n " K_${line}" - - for ((i=0;i" - echo - echo "#include " - echo - echo "#include " - echo - echo "struct VerboseTraits" - echo "{" - make_enumeration "Command" list_commands "$@" || return 1 - echo - make_enumeration "Event" list_events "$@" || return 1 - echo - echo " static std::string eventName(const Event);" - echo " static std::string commandName(const Command);" - echo "};" - echo - echo "#endif /* _VERBOSE_TRAITS_H_ */" -} - -make_source () -{ - make_license - - echo "#include " - echo - - make_switch_case "Event" "event" list_events "$@" || return 1 - echo - make_switch_case "Command" "command" list_commands "$@" || return 1 -} - -make_run () -{ - local destdir="$1"; shift - - if [ ! -d "${destdir}" ] - then - echo "ERROR: First argument is not a directory!" - return 1 - fi - - make_header "$@" > "${destdir}/verbose_traits.hpp" - make_source "$@" > "${destdir}/verbose_traits.cpp" -} - -make_run "$@" diff --git a/src/mod/endpoints/mod_khomp/docs/Manual.html b/src/mod/endpoints/mod_khomp/docs/Manual.html deleted file mode 100644 index b1fcfc0107..0000000000 --- a/src/mod/endpoints/mod_khomp/docs/Manual.html +++ /dev/null @@ -1,1091 +0,0 @@ -Mod Khomp: Manual -

Considerações iniciais

-

Este documento aborda informações sobre o Endpoint da Khomp como um todo, desde opções disponíveis de configuração, os applications disponibilizados, os possíveis comandos de CLI, entre outros. -

Para procedimentos sobre a instalação, favor consultar o README do Endpoint. -
-

-

Configuração

-

Configurar o Endpoint da Khomp é uma tarefa que consiste de três etapas: -

-
  • Configuração das placas, através da K3L; -
  • Configuração do Endpoint; -
  • Configuração do FreeSWITCH. -
-

Estas etapas são descritas mais detalhadamente abaixo. -
-

-

Configuração da API K3L

-

Esta etapa é realizada de maneira semi-automatizada através do programa khompwizard, um assistente que configura os parâmetros básicos das placas do sistema. Esse assistente inicializa os arquivos de configuração através de informações obtidas do usuário, quando estas forem necessárias, inicializando as configurações menos utilizadas com os valores padrões. -

Normalmente, este programa é executado automaticamente após a instalação do sistema. Entretanto, pode ser necessário executá-lo manualmente caso uma atualização esteja sendo realizada, ou se novas placas foram adicionadas no sistema após a instalação dos drivers da placa. -

Caso seja necessária a configuração de parâmetros avançados da placa e/ou da sinalização, o programa k3lconfig permite acessar todas as configurações disponíveis de cada placa instalada. Para maiores informações sobre este programa, consulte a documentação do mesmo. Para soluções de problemas de sincronismo, consulte a seção Solução de problemas sobre o procedimento de configuração manual das placas. -
-

-

Configuração do Endpoint

-

A configuração padrão do sistema costuma atender à maior parte das necessidades. Entretanto, as configurações do Endpoint da Khomp podem ser modificadas através do arquivo de configuração '/usr/local/freeswitch/conf/autoload_configs/khomp.conf.xml'. -

A lista de opções é a seguinte: -

-

<channels>

-

Define as configurações gerais de todos os canais da Khomp. -

-
Sintaxe: <param name="..." value="..."/>
-
-


-

-
  • accountcode: Define o account code padrão para chamadas no Endpoint. Esta opção pode ser qualquer string alfanumérica; -
  • dialplan: Nome do módulo de dialplan em uso. -
  • auto-fax-adjustment: Ativa ("yes") ou desativa ("no") o ajuste automático do canal (desabilitar o cancelador de eco e a supressão DTMF) ao detectar tom de FAX; -
  • auto-gain-control: Ativa ("yes") ou desativa ("no") a ativação do controle automático de ganho (AGC) pelo Endpoint; -
  • context-digital: Contexto de entrada para ligações em placas digitais (o padrão é "khomp-DD-LL", onde "DD" será substituído, no momento da ligação, pelo número do dispositivo, "LL" pelo número do link, "CCC" pelo número do canal e "SSSS" pelo número serial do dispositivo); -
  • context-fxo: Contexto de entrada para placas FXO (o padrão é "khomp-DD-CC", onde "DD" será substituído, no momento da ligação, pelo número do dispositivo, "CC" pelo número do canal, e "SSSS" pelo número serial do dispositivo); -
  • context-fxs: Contexto de entrada para placas FXS (o padrão é "khomp-DD-CC", onde "DD" será substituído, no momento da ligação, pelo número do dispositivo, "CC" pelo número do canal, e "SSSS" pelo número serial do dispositivo); -
  • context-gsm-call (ou "context-gsm"): Contexto de entrada para ligações GSM (o padrão é "khomp-DD-CC", onde "DD" será substituído no momento da ligação pelo número do dispositivo, "CC" pelo número do canal, e "SSSS" pelo número serial do dispositivo); -
  • context-gsm-sms: Contexto de entrada para SMSs (o padrão é "khomp-sms-DD-CC", onde "DD" será substituído pelo número de dispositivo, "CC" pelo número do canal, e "SSSS" pelo número serial do dispositivo); -
  • context-pr: Contexto de entrada para ligações em placas KPR (o padrão é "khomp-DD-CC", onde "DD" será substituído, no momento da ligação, pelo número do dispositivo, "CC" pelo número do canal); -
  • delay-ringback-co: Define o tempo de delay para ativar a geração de tom de controle de chamada (ringback) pelo Endpoint da Khomp quando há uma indicação de ringback, e não há áudio sendo enviado por quem indicou a situação de controle da chamada; -
  • delay-ringback-pbx: Define o tempo de delay para ativar a geração de controle de chamada (ringback) pelo Endpoint da Khomp quando há uma indicação de ringback, e o áudio de controle enviado não possui nenhum tom (ou seja, está em silêncio); -
  • disconnect-delay: Define o tempo em milissegundos para realizar o processamento de um evento de desconexão, para ignorar situações onde outros equipamentos realizam o duplo atendimento para derrubar chamadas a cobrar; -
  • drop-collect-call: Ativa ("yes") ou desativa ("no") o derrubamento de chamadas à cobrar. Caso ativo, todas as chamadas à cobrar serão derrubadas não importando o que foi ajustado na variável KDropCollectCall (o valor padrão é "no"); -
  • echo-canceller: Ativa ("yes") ou desativa ("no") o cancelamento de eco automático pelo Endpoint; -
  • flash-to-digits: Define os dígitos para serem enviados quando o FLASH é detectado na FXS; -
  • fxo-send-pre-audio: Quando ativada ("yes") libera canal de áudio sainte antes da conexão da chamada em placas KFXO (o valor padrão é "yes"); -
  • fxs-digit-timeout: Define o timeout, em segundos, entre dígitos na FXS; -
  • fxs-global-orig: Número inicial para numeração seqüencial de ramais das placas KFXS que não estiverem listadas na seção <fxs-branches> (a numeração segue ordem crescente por número da placa e número do canal físico) (o padrão é "0"); -
  • fxs-co-dialtone: Seqüências de números, separados por vírgula, que disparam um tom contínuo (de central pública) em ramais FXS (ex: "0,99" faz com que, ao discar "0" ou "99", o usuário receba o tom de linha contínuo) (o padrão é vazio); -
  • fxs-bina: Quando ativada ("yes"), ligações para ramais FXS enviarão os dígitos correspondentes ao telefone de origem em sinalização BINA DTMF (o valor padrão é "no"); -
  • language: Define idioma para ligações nas placas Khomp; -
  • ignore-letter-dtmfs: Define se o canal deve ignorar DTMFs incomuns detectados pela placa (A, B, C e D). Entretanto, se você necessita passar esses dígitos pela placa, você deve ajustar esta opção para "no" (o valor padrão é "yes"); -
  • input-volume: Define o volume de entrada das ligações, varia de -10 a +10 ; -
  • kommuter-activation: Define se a ativação de dispositivos kommuter encontrados no sistema será feita de forma automática ("auto"), ou de forma manual ("manual") pelo usuário, através do comando "khomp kommuter on/off"; -
  • kommuter-timeout: Define o timeout (em segundos) com que os kommuters serão inicializados. Se chegarem a este timeout sem receberem notificação do channel, os dispositivos irão comutar para o estado "desligado". O valor mínimo é "0" , onde os links permanecerão sempre comutados no estado "ligado", e o valor máximo é "255"; -
  • log-to-console: Define mensagens de log que devem ser impressas na console; -
  • log-to-disk: Define mensagens de log que devem ser salvar em disco; -
  • out-of-band-dtmfs: Ativa ("yes") ou desativa ("no") a supressão DTMF e o envio destes out-of-band; -
  • output-volume: Define o volume de saída das ligações, varia de -10 a +10 ; -
  • pulse-forwarding: Ativa ("yes") ou desativa ("no") a detecção de pulsos e a conversão dos mesmos em DTMFs; -
  • r2-preconnect-wait: Define o tempo de espera do envio da sinalização de ringback, no protocolo R2/MFC, para iniciar o envio de áudio de silêncio. Apenas utilizado quando "r2-strict-behaviour" estiver ajustado para "no"; -
  • r2-strict-behaviour: Ativa ("yes") ou desativa ("no") o comportamento da sinalização R2/MFC conforme a norma define. O padrão é "no", e pode ser alterado para "yes" caso seja necessário receber/enviar dados precisos da sinalização do protocolo (condição de B, por exemplo); -
  • suppression-delay: Ativa ("yes") ou desativa ("no") o delay necessário para supressão DTMF. Se desativado ("no"), também desativa supressão de DTMFs; -
  • trace: Define opções de depuração. Não deve ser utilizado em produção a não ser que estritamente necessário; -
  • user-transfer-digits: Define uma seqüência de dígitos DTMF para iniciar a transferencia entre o FreeSWITCH® e um outro PABX (utilizando sinalização de usuário, como QSig ou FXO FLASH); -
-


-

-

<groups>

-

Define os grupos para serem usados na alocação de canal. -

Neste caso, as opções são usadas para definir nomes para strings de alocação de canais. O formato segue o padrão <param name="nome grupo" value="string alocação"/>, onde as strings de alocação de canais são as mesmas utilizadas no application bridge, e nome do grupo é um nome arbitrário escolhido pelo usuário. -

-
Por exemplo, para definir o grupo pstn como os canais 0 e 5 da placa 0, deveria-se utilizar a linha: -
-
<param name="pstn" value="b0c0 + b0c5"/> 
-
-

Este grupo, por sua vez, poderia ser usado no application bridge como <action application="bridge" data="Khomp/Gpstn/..."/>. -

-
Pode-se também associar um determinado contexto de entrada a um grupo de canais, bastando especificar um nome de contexto após a string de alocação, separado por ':' da mesma. -
-

Por exemplo, para definir o mesmo grupo pstn acima como os canais 0 até 20 da placa 0, com contexto de entrada from-pstn, poderia-se utilizar a linha: -

-
<param name="pstn" value="b0c0-20:from-pstn"/>
-
-

Este grupo, por sua vez, poderia ser usado no application bridge como <action application="bridge" data="Khomp/Gpstn/..."/>, e todas as ligações vindas destes canais seriam tratadas no contexto from-pstn. -
-

-

<cadences>

-

Define configurações de cadências para o Endpoint. -

Neste caso, as opções são nomes de cadências e um ou dois pares de números, que definem os intervalos de tom e silêncio a ser utilizado nas cadências. Para maiores detalhes, favor consultar o arquivo de configuração. -
-

-

<fxs-branches>

-

Define números de origem para a placa KFXS. -

Neste caso, as opções são seqüências de prefixos de ramais e números seriais das placas, que definem os números base dos endereços de origem, e a ordem numérica das placas. O formato das opções é: -

-
<param name="prefixo" value="serial1, serial2, ...."/>
-
-

Por exemplo, para definir que as placas K0374 e K2352 devem ser numeradas seqüencialmente, partido do ramal 200, basta escrever: -

-
<param name="200" value="374, 2352"/>
-
-

Para maiores detalhes, favor consultar o arquivo de configuração. -
-

-

<fxs-hotlines>

-

Define hotlines para a placa KFXS. -

Neste caso, as opções são seqüências de ramais e números de destino, definindo os ramais listados nesta seção para serem tratados como "hotlines". Para cada ramal listado, o número de destino especificado será discado quando o ramal for retirado do gancho. Exemplo: -

-
<param name="100" value="1234"/>
-<param name="200" value="4321"/> 
-
-

No primeiro exemplo, o ramal de número 100 irá telefonar para número 1234 ao ser retirado do gancho; no segundo, o ramal de número 200 irá telefonar para o número 4321 ao ser retirado do gancho. -

-

<fxs-options>

-

Permite definir configurações específicas por ramal FXS. -

Neste caso, as configurações são números de ramais (baseado nos definidos na seção <fxs-branches>), e as opções e seus valores. As opções disponíveis são: -

-
  • context; -
  • input-volume; -
  • output-volume; -
  • language; -
  • accountcode; -
  • calleridnum; -
  • calleridname; -
  • flash-to-digits. -
-

Cada opção é separada uma da outra por um pipe "|" ou uma barra "/" e definidas após dois pontos ":", exemplo: -

-
 <param name="200" value="input-volume:1|context:master-branch" />
-
-

Para maiores informações sobre a sintaxe e exemplos, favor consultar o arquivo de configuração. -


-

Para maiores informações, consultar o arquivo de configuração 'khomp.conf.xml'. -
-

-

Configuração do FreeSWITCH

-

Quando as ligações são recebidas nas placas e dispositivos Khomp, estas são encaminhadas pelo Endpoint da Khomp para contextos específicos dentro do plano de discagem do FreeSWITCH®. Estes contextos podem ser alterados através do arquivo de configurações khomp.conf.xml, disponível no diretório de configuração do FreeSWITCH (por padrão, "/usr/local/freeswitch/conf/autoload_configs"). -

Para maiores detalhes sobre os contextos específicos, consultar a seção de Configuração do Endpoint. -

Abaixo, encontram-se informações de como configurar os contextos de entrada de chamadas: -
-


-

-

Contextos de entrada em canais E1

-

Para placas E1, as ligações de entrada por padrão chegam em um contexto pré-definido conforme a opção context-digital: -

-
<param name="context-digital" value="khomp-DD-LL"/>
-
-

Este contexto padrão define que as ligações serão redirecionadas de acordo com o número da placa e número do link: DD é o número dispositivo (com dois dígitos), e LL é o número do link (também com dois dígitos). -

Entretanto, é possível configurar outros contextos de entrada, com formatos diferenciados. Pode-se utilizar a opção CCC, que significa o número do canal na placa (com três dígitos), e SSSS, que representa o número serial da placa (com quatro dígitos). -

Exemplos de configuração no arquivo khomp.conf.xml: -

-
<!-- número seqüencial da placa e do link (ex: khomp-01-00) -->
-<param name="context-digital" value="khomp-DD-LL"/>
-
-
<!-- número serial da placa e seqüencial do link (ex: khomp-3049-00) -->
-<param name="context-digital" value="khomp-SSSS-LL"/>
-
-
<!-- número seqüencial da placa e do canal (ex: khomp-00-001) -->
-<param name="context-digital" value="khomp-DD-CCC"/>
-
-
<!-- recebe todas as chamadas em um só contexto (khomp-digital) -->
-<param name="context-digital" value="khomp-digital"/>
-
-

Abaixo um exemplo de contexto no plano de discagem: - -

-
<!-- 
-Este contexto presente em seu arquivo de dialplan, irá manipular chamadas
-de entrada no link 0 (primeiro link) da placa 0.
--->
-<context name="khomp-00-00">
-             .
-             .
-             .
-</context>
-
-

Outro exemplo, utilizando o mesmo formato: - -

-
<!-- 
-Este contexto presente em seu arquivo de dialplan, irá manipular chamadas
-de entrada no link 1 (segundo link) da placa 0.
--->
-<context name="khomp-00-01>
-             .
-             .
-             .
-</context>
-
-

Um exemplo completo, com algumas ações simples: - -

-
<context name="khomp-00-00">
-    <extension name="exemplo_1">
-        <condition field="destination_number" expression="^1234$">
-            <action application="bridge" data="Khomp/b0L1/2345"/>
-        </condition>
-    </extension>
-    <extension name="exemplo_2">
-        <condition field="destination_number" expression="^23(\d{2})$">
-            <action application="bridge" data="sofia/${use_profile}/11$1@${sip_from_host}"/>
-        </condition>
-    </extension>
-</context>
-
-
<context name="khomp-00-01">
-    <extension name="exemplo_3">
-        <condition field="destination_number" expression="^1111$">
-            <action application="bridge" data="Khomp/b0L0/2345"/>
-        </condition>
-    </extension>
-</context>
-
-

Este plano de discagem define o recebimento de chamadas na placa 0 e no link 0, redirecionando chamadas para o número 1234 feitas para o link 1 da placa 0, pro ramal/telefone 2345, e redirecionando qualquer número de quatro dígitos começado com 23 para telefones SIP de quatro dígitos começados com 11 mais os dois últimos dígitos recebidos. -

Também há mais uma extensão definida, onde as ligações recebidas no link 1 da placa 0 para o número 1111, são redirecionadas para o link 0 da placa 0, para o telefone/ramal 2345. -
-

-

Contextos de entrada em canais FXS/FXO/GSM

-

Da mesma forma que no contexto de placas E1, as ligações de entrada são encaminhadas pelo Endpoint para o FreeSWITCH. -

O contexto é pré-definido da seguinte forma, conforme o arquivo khomp.conf.xml: -

-
<param name="context-gsm" value="khomp-DD-CC"/> ;placas GSM
-
-
<param name="context-fxs" value="khomp-DD-CC"/> ; placas FXS
-
-
<param name="context-fxo" value="khomp-DD-CC"/> ; placas FXO
-
-


-Nestes casos, DD é o número dispositivo (com dois dígitos), e CC é o número do canal da placa. Pode-se utilizar também SSSS, que representa o número serial da placa. -

-
  • IMPORTANTE: No caso da placa KGSM, as ligações entrantes são sempre encaminhadas para o extension "s" por padrão, visto que o protocolo GSM não identifica o número de destino nas ligações entrantes, apenas o número de origem - quando não omitido. -
-

Prioridade de contextos na placa FXS

-

Em ligações originadas a partir de um ramal FXS, o Endpoint driver procura uma extensão válida (dos dígitos discados) após o dígito # ou após o timeout (configurável pela opção fxs-digit-timeout, no arquivo khomp.conf.xml). Essa busca é realizada no contexto específico do ramal (definido na seção <fxs-options> do arquivo de configuração khomp.conf.xml), caso não seja configurado, a busca é realizada no contexto definido na opção context-fxs; -


-

-

Contextos de mensagens SMS (apenas GSM)

-

Mensagens SMS são recebidas pelo Endpoint da Khomp e encaminhadas para o FreeSWITCH como uma ligação normal, mas sem áudio, que possui algumas variáveis ajustadas com informações recebidas na mensagem - para maiores informações sobre estas variáveis, consulte a documentação das variáveis do Endpoint. Este contexto também pode ser alterado, de mesma forma que o contextos acima. -

Esta ligação entra no seguinte contexto, conforme o arquivo khomp.conf.xml: -

-
<param name="context-gsm-sms" value="khomp-sms-DD-CC"/> 
-
-

Onde DD é o número dispositivo (com dois dígitos), e CC é o número do canal (também com dois dígitos). Por exemplo: -

-
<context name="khomp-sms-00-01">
-    <extension name="sms">
-        <condition field="destination_number" expression="^s$">
-            <action application="log" data="DEBUG KSmsType=${KSmsType}"/>
-            <action application="log" data="DEBUG KSmsBody=${KSmsBody}"/>
-        </condition>
-    </extension>
-</context>
-
-

Contexto de entrada em canais Khomp_PR (KPR)

-

Para estas placas, as ligações de entrada possuem um contexto pré-definido, conforme exemplo abaixo: -

-
<param name="context-pr" value="khomp-DD-CC"/> 
-
-

Neste caso, DD é o número do dispositivo (com dois dígitos), e CC é o número do canal da placa. -
-

-

Contextos por grupo de chamada

-

A seção groups, no arquivo de configuração khomp.conf.xml, pode ser utilizado para definir contextos específicos para determinados grupos de canais. -

Esta seção é detalhada na seção Configuração do Endpoint. -
-

-

Utilização do application bridge

-

O aplicativo (ou application) bridge é responsável por gerar chamadas no FreeSWITCH a partir de um dialplan. Este aplicativo pode ser utilizado para gerar chamadas a partir de diversos tipos de Endpoints, sendo que cada Endpoint segue um formato específico para definir tanto as opções quanto os canais de comunicações a serem utilizados. -

-

Campos relativos ao Endpoint

-

Quando utilizado para canais da Khomp, a string de bridge pode ter dois, três ou quatro campos separados por uma barra (/). Algumas strings de exemplo: - -

-
<action application="bridge" data="Khomp/B2L0/32625644"/>
-<action application="bridge" data="Khomp/*B2L0/32625644"/>
-<action application="bridge" data="Khomp/S0411/99991234"/>
-<action application="bridge" data="Khomp/Gpstn/99991234"/>
-<action application="bridge" data="Khomp/*Gpstn/99991234"/>
-<action application="bridge" data="Khomp/B2C58/32625644/category=4:orig=4855553232"/>
-<action application="bridge" data="Khomp/b0c9"/>
-<action application="bridge" data="Khomp/b0c1+b0c14"/>
-<action application="bridge" data="Khomp/r304"/>
-
-

Nos cinco primeiros exemplos, temos três campos sendo especificados; no sexto, quatros campos são utilizados; e por fim, nos três últimos exemplos, apenas dois são utilizados. -

Sobre os campos utilizados, segue a descrição: -

-
  • 1° campo, 'Khomp': identifica o tipo do Endpoint em questão; -
  • 2° campo, 'B2L0', 'S0411', 'Gpstn', etc: representa a Política de Alocação de Canais; -
  • 3° campo, '32625644' e '99991234': são os números de destino, para onde será efetuada a ligação (ausente em placas KFXS); -
  • 4° campo, 'category=4:orig=4855553232': opções adicionais não-obrigatórias, detalhadas mais à frente. -
-

OBS: A string de bridge com somente dois campos é específica à ligações para uma placa KFXS, onde o destino está atrelado automaticamente ao canal alocado, ou ao ramal especificado. -

-

Política de alocação de canais

-

A política de alocação de canais, no módulo da Khomp, pode ser especificado na própria string de bridge ou através de grupos, no arquivo de configuração khomp.conf.xml. Para especificar placas, canais e links a serem alocados existe a seguinte sintaxe disponível (considerando X, Y e Z como números quaisquer): -

-
  • bX -- busca os canais na placa 'X', de maneira crescente. -
  • bXLY -- busca canais no link 'Y' da placa 'X', fazendo uma procura crescente (com relação ao número dos canais). -
  • bXcY -- utiliza apenas o canal 'Y' da placa 'X'. -
  • bXcY-Z -- busca por canais, iniciando do canal 'Y' e indo até o canal 'Z' (inclusive), da placa 'X', de maneira crescente. -
  • BXcY-Z -- idem ao anterior, de maneira decrescente. -
  • sX -- busca os canais na placa de serial 'X', de maneira crescente. -
  • sXLY -- busca canais no link 'Y' da placa de serial 'X', fazendo uma procura crescente (com relação ao número dos canais). -
  • sXcY -- utiliza apenas o canal 'Y' da placa de serial 'X'. -
  • sXcY-Z -- busca por canais, iniciando do canal 'Y' e indo até o canal 'Z' (inclusive), da placa de serial 'X', de maneira crescente. -
  • SXcY-Z -- idem ao anterior, de maneira decrescente. -
-

Para buscar por ramais de placas KFXS de acordo com o número do ramal, pode ser utilizada a seguinte sintaxe (considerando X e Y números de ramais válidos): -

-
  • rX -- busca ramal 'X'. -
  • RX -- equivalente ao anterior. -
  • rX-Y -- busca de ramal 'X' a 'Y', ordem crescente. -
  • RX-Y -- busca de ramal 'X' a 'Y', ordem decrescente. -
-

É interessante notar que apenas a capitalização da letra 'B', 'S' ou 'R' define a ordem de busca dos canais; se minúscula, crescente, e se maiúscula, decrescente. -

Já para a alocação de canais através de grupos, existe a seguinte sintaxe disponível: -

-
  • Ggroupname -- utiliza a string de bridge definida ao grupo "groupname" no arquivo de configuração; já detalhado na seção de configuração do Endpoint. -
  • ggroupname -- equivalente ao anterior. -
-

Agrupando alocações de canais

-

Existem casos onde é necessário buscar canais mais de um determinado dispositivo, ou determinado grupo de ramais. Para isto, existe uma extensão disponível na string de alocação, que diz respeito ao uso do símbolo de soma (+) para concatenar várias strings de ligação, da seguinte forma: -

-
<action application="bridge" data="Khomp/B1L0+B2L0/32332933"/>
-<action application="bridge" data="Khomp/*B2+B3+B4/99887766"/>
-<action application="bridge" data="Khomp/S0411+B1L0/99887766"/>
-<action application="bridge" data="Khomp/Gpstn1+Gpstn2/99991234"/>
-<action application="bridge" data="Khomp/*gOperadora1+gOperadora2/98891234"/>
-
-

Esta extensão está disponível tanto no application bridge quanto na especificação de grupos, e pode ser utilizada para agrupar qualquer string de alocação válida à outra. O processamento das strings de alocação se dá da esquerda para a direita - exceto quanto utilizando a alocação cíclica, onde todos os canais especificados são verificados simultaneamente. -

-

Escolha cíclica e/ou justa

-

Uma variação da alocação de canais é através de uma escolha cíclica e/ou justa, que consiste em escolher o canal que completou - até o momento - o menor número de ligações saintes. Essa forma é caracterizada por um asterisco (*) antes da string de alocação de canais (conforme pode ser verificado acima, no segundo e quinto exemplos). -

Quando iniciada com um asterisco (*), as outras formas de alocação subseqüentes (crescente, decrescente, etc) são utilizadas para decidir, entre os canais com menor número de ligações saintes, qual será verificado primeiro para realizar a chamada. -

-
  • AVISO: O uso da alocação justa e/ou cíclica é recomendável somente em placas analógicas (KFXO), de ramais (KFXS) e de interface celular (KGSM). Conexões E1 tendem a alocar os canais de maneira crescente ou decrescente de um lado (na operadora, por exemplo), e o inverso do outro (no PABX, por exemplo), para evitar problemas de dupla ocupação (o que pode ocorrer na sinalização R2/MFC). A alocação cíclica/justa também consome mais recursos de memória e processamento que a alocação tradicional, o que é agravado ainda mais pelo fato de placas E1 terem um número muito maior de canais (30 por link).

    Por estes motivos, alocações justas e/ou cíclicas devem ser utilizadas apenas em sinalizações onde isso pode representar alguma diferença real, como equalizar a tarifação das linhas, o uso das mesmas, ou o número de ligações recebidas por cada ponto de atendimento (PA). -
-

Opções disponíves

-
  • orig: Define o número de origem a ser utilizado na chamada, sem alterar a variável ${origination_caller_id_number}. Ou seja, a opção orig serve apenas para repassar um número de origem diferente do ${origination_caller_id_number}. Caso o FreeSWITCH já tenha ajustado a variável ${origination_caller_id_number}, o que é o comportamento padrão, o Endpoint utiliza este valor automaticamente como referência do número de origem, sem ser necessário repassar nenhuma opção adicional.

    Nas placas KGSM, se ajustado para restricted, omite o número de origem. Exemplo:
    -
-
- <action application="bridge" data="Khomp/b0/99887766/orig=restricted"/>
-
-
  • category: Quando ajustado para um valor numérico, define a categoria do número de A. Disponível apenas em sinalização R2/MFC; -
  • uui: Quando ajustado para um número e uma string de texto, separados por cerquilha ("#"), envia uma mensagem "User-to-User" para a outra ponta, antes de realizar a chamada, utilizando o descritor como o número e a mensagem como o texto. Disponível apenas em sinalização RDSI (ISDN); -
  • ring_cadence: Quando ajustado para um identificador, utiliza cadência definida com este nome na seção "cadences" do arquivo de configuração do Endpoint da Khomp para chamar o canal desejado. Disponível apenas em sinalização FXS; -
  • ring: Quando ajustado para dois números, separados por ponto ("."), define as cadências de chamada de um ramal FXS para estes valores, sendo o primeiro relativo ao tempo de chamando, e o segundo, ao tempo de silêncio; -
  • ring_ext: Quando ajustado para dois números, separados por ponto ("."), define as cadências de chamada extendidas (a serem executadas depois da cadência principal) de um ramal FXS para estes valores, sendo o primeiro relativo ao tempo de chamando, e o segundo, ao tempo de silêncio; -
  • usr_xfer: Quando ajustado para uma seqüência de dígitos DTMF, define estes como dígitos a serem utilizados para iniciar uma transferência entre PABXes (utilizando sinalizações de usuário); -
  • drop_on: Quando ajustado para "message_box", "human_answer", "answering_machine", "carrier_message", "unknown" ou uma lista destes (separados por mais ("+") ou ponto (".")), faz com que a chamada seja derrubada ao detectar tons de caixa postal, atendimento humano, secretária eletrônica, mensagens da operadora, ou algum atendimento desconhecido - respectivamente. Disponível em sinalizações digitais (links E1 e placas KGSM). Adicionalmente, a informação de atendimento é reportada para o usuário na variável KCallAnswerInfo; -
  • answer_info: Opção booleana (não necessita de valor). Quando especificada, reporta informações de atendimento para o usuário através da variável KCallAnswerInfo; -
  • pre: Quando ajustado para uma seqüência de dígitos DTMF, utiliza estes para pre-alocar um canal de saída em um PABX analógico, discando o número de B desejado a seguir. Somente disponível para sinalização analógica (FXO); -
  • pre_answer: Opção booleana (não necessita de valor). Quando especificada, "antende" o canal antes de a ligação ser completada permitindo, por exemplo, que DTMFs possam ser enviados - útil para utilizar em um DISA; -
  • output_volume: Define o volume de saída da ligação. Varia de -10 a +10; -
  • input_volume: Define o volume de entrada da ligação. Varia de -10 a +10; -
-


-

-

Lista das variáveis

-

Segue lista de variáveis disponíveis no Endpoint: -

-
  • KDropCollectCall: Quando definida antes do atendimento (ao receber uma chamada), ativa ("yes") ou desativa ("no", padrão) o derrubamento de chamadas à cobrar baseado na sinalização recebida da central pública; através do duplo atendimento; ou através do reconhecimento por áudio de uma chamada à cobrar (pode ser definido de maneira global); -
  • KR2SendCondition: Quando definida antes do envio de ringback pelo FreeSWITCH (ao receber uma chamada), ajusta a condição de B para o valor numérico que foi ajustada. Apenas disponível para sinalização R2; -
  • KR2GotCategory: Ajustada pelo Endpoint ao receber uma chamada entrante, e possui a categoria do número de A. Apenas disponível para sinalização R2; -
  • KR2GotCondition: Ajustada pelo Endpoint, e disponível após o retorno de uma chamada realizada pelo FreeSWITCH. Contém a condição de B recebida ao realizar a chamada. Apenas disponível para sinalização R2; -
  • KISDNGotCause: Ajustada pelo Endpoint, e disponível após o retorno de uma chamada realizada pelo FreeSWITCH. Contém o código de cause do ISDN recebido ao realizar a chamada. Apenas disponível para sinalização ISDN; -
  • KCallAnswerInfo: Ajustada pelo Endpoint, e disponível após o retorno de uma chamada realizada pelo FreeSWITCH. Contém as informações de atendimento detectadas ao realizar a chamada e está disponível apenas para sinalizações digitais (E1, GSM); -
  • KSmsDelivered: Ajustada pelo Endpoint ao enviar uma mensagem SMS com o application KSendSMS, e define se a mensagem foi entregue com sucesso ("yes") ou não ("no"); -
  • KSmsErrorCode: Ajustada pelo Endpoint ao enviar uma mensagem SMS com o application KSendSMS, e define o código de erro ao enviar a mensagem; -
  • KSmsErrorName: Ajustada pelo Endpoint ao enviar uma mensagem SMS com o application KSendSMS, contém o nome do erro em forma textual, ou "None" caso não tenha ocorrido nenhum erro. -
  • KSmsType: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, define o tipo da mensagem recebida (pode conter os valores "message", "confirm" ou "broadcast"; -
  • KSmsFrom: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, define o número de origem da mensagem recebida (disponível em tipos "message" e "confirm"); -
  • KSmsDate: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, define a data de envio da mensagem (disponível em tipos "message" e "confirm"); -
  • KSmsSize: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o tamanho (em bytes) da mensagem recebida (disponível em tipos "message" e "broadcast"); -
  • KSmsMode: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o tipo codificação da mensagem recebida (disponível em tipos "message" e "broadcast"); -
  • KSmsBody: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o texto da mensagem recebida (disponível em tipos "message" e "broadcast"); -
  • KSmsDelivery: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém a data de entrega de mensagem enviada anteriormente cuja confirmação foi requisitada (disponível no tipo "confirm"); -
  • KSmsStatus: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o status de envio de mensagem anteriormente cuja confirmação foi requisitada (disponível no tipo "confirm"); -
  • KSmsSerial: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o número de série da mensagem recebida (disponível no tipo "broadcast"); -
  • KSmsPage: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o número da página relativo à mensagem recebida (disponível no tipo "broadcast"); -
  • KSmsPages: Ajustada pelo Endpoint no contexto de entrada das mensagens SMS, contém o número total de páginas a serem recebidas (disponível no tipo "broadcast"); -
  • KUserInfoDescriptor: Define/informa descritor do protoloco utilizado na mensagem User-to-User Information (RDSI). -
  • KUserInfoData: Define/informa os dados na mensagem User-to-User Information (RDSI). -
  • KFaxSent: Ajustada pelo Endpoint ao enviar FAX com o application KSendFax, e define se o FAX foi enviado com sucesso ("yes") ou não ("no"); -
  • KFaxReceived: Ajustada pelo Endpoint ao receber FAX com o application KReceiveFax, e define se o FAX foi recebido com sucesso ("yes") ou não ("no"); -
  • KFaxResult: Ajustada pelo Endpoint ao enviar ou receber FAX com o application KSendFax ou KReceiveFax, respectivamente, e define o seu resultado. -
-


-

-

Descrição das variáveis

-

Abaixo, segue uma explanação sobre como utilizar as variáveis do Endpoint da Khomp disponíveis no dialplan, tanto para comunicar quanto para receber informações: -


-

-

KDropCollectCall

-

Quando ativada, faz com que o Endpoint da Khomp derrube chamadas a cobrar através de duplo atendimento (disponível para sinalizações 'R2 Digital' e FXO), através da informação disponível no protocolo RDSI e R2/MFC, ou através da detecção do áudio de chamada a cobrar (disponível para qualquer sinalização digital por link E1, e para sinalização GSM). -

Esta variável é útil para derrubar chamadas a cobrar para determinados ramais, e deve ser ajustado obrigatoriamente antes de realizar qualquer tipo de atendimento - aplicações como playback e bridge devem ser executadas sempre após ajustar esta variável, por exemplo. -

Para melhor funcionalidade, é recomendado também que nenhum estado de chamada (ringback) seja enviado antes desta variável ser ajustada, então aplicações devem ser executadas apenas após o ajuste correto desta variável. -

Esta variável pode ser ajustada localmente e globalmente, tanto para yes quanto para no. O ajuste da variável global para yes fará com que todas as chamadas a cobrar sejam derrubadas, a não ser que a chamada específica seja ajustada para no - isto permite a criação de um filtro global de chamadas a cobrar, com algumas poucas exceções. -

Ativando a variável dentro do contexto default: - -

<context name="default"> -

-
<extension name="exemplo">
- .
- .
- .
- <action aplication="set" data="KDropCollectCall=yes"/>
- .
- .
- .
-</extension>
-
-

</context> -

Ativando a variável no contexto global, lembrando que a mesma deve ser configurada no arquivo vars.xml: - -

-
<X-PRE-PROCESS cmd="set" data="KDropCollectCall=yes"/>
-
-

KR2SendCondition

-

Ao receber uma chamada, pode ser definida antes do envio de ringback pelo FreeSWITCH (ou seja, antes do FreeSWITCH executar as aplicações answer, ou bridge). Quando utilizada em sinalização R2/MFC, esta variável ajusta a condição de B para o valor numérico desejado. -

Exemplo: - -

-
<!-- Condição "NUMBER CHANGED", avisa ao chamador que o número de B mudou. -->
-<action application="KR2SendCondition" data="3"/>
-
-

KR2GotCategory

-

Ao receber uma chamada, é ajustada pelo Endpoint com a categoria recebida do número que originou a chamada. É ajustada na sinalização R2/MFC, e pode ser consultada em qualquer local do dialplan. -

Exemplo: - -

-
<action application="log" data="DEBUG KR2GotCategory [${KR2GotCategory}]"/> 
-
-

KR2GotCondition

-

Variável ajustada pelo Endpoint, e disponível após o retorno de uma chamada realizada pelo FreeSWITCH. Contém a condição de B recebida ao realizar a chamada. Disponível apenas para sinalização R2/MFC. -

Exemplo: - -

-
<action application="log" data="DEBUG KR2GotCondition [${KR2GotCondition}]"/>
-
-

KUserInfoDescriptor

-

Variável ajustada pelo Endpoint no contexto de entrada, a partir de informações recebidas pela rede RDSI através da funcionalidade User-to-User Information. Contém o número do descritor do protocolo utilizado pela outra ponta, e normalmente contém valor '0', mas este valor é dependente da aplicação utilizada. -

Maiores informações, consultar a especificação ITU-T Q931 (mais precisamente, a tabela 4-26 da especificação). -

Exemplo (trabalhando com o número do descritor do protocolo): -

-
<action application="log" data="DEBUG KUserInfoDescriptor [${KUserInfoDescriptor}]"/>
-
-

KUserInfoData

-

Variável ajustada pelo Endpoint no contexto de entrada, a partir de informações recebidas pela rede RDSI através da funcionalidade User-to-User Information. Contém os dados propriamente ditos, que foram recebidos, em forma de uma 'string' de texto. -

Maiores informações sobre este recurso, consultar a especificação ITU-T Q931. -

Exemplo (trabalhando com os dados recebidos): -

-
<action application="log" data="DEBUG KUserInfoData [${KUserInfoData}]"/>
-
-

É importante salientar que as variáveis são sensíveis à capitalização das letras (case sensitive). -

-

KCallAnswerInfo

-

Variável ajustada pelo Endpoint em ligações de saída, representando o tipo de atendimento realizado pela outra ponta. Pode conter os seguintes valores: -

-
  • "MessageBox" (*): detectada caixa postal de um telefone celular; -
  • "CarrierMessage": mensagem de operadora enviada antes do atendimento; -
  • "AnsweringMachine" (**): atendimento por secretária eletrônica; -
  • "HumanAnswer" (**): atendimento humano; -
  • "Unknown": tipo de atendimento desconhecido; -
  • "Fax": reportado quando um tom de fax for detectado. -
-
-


-(*) Este tipo de atendimento é detectado por sinais em determinadas freqüências que são enviados antes da chamada entrar em uma caixa postal, e variam conforme a operadora. O algoritmo captura a maior parte das caixas postais, mas pode falhar se não existir um sinal claro, ou se o mesmo não estiver dentro dos padrões mais utilizados; -

(**) A diferenciação entre estes dois tipos de atendimento depende de configuração específica utilizando o programa k3lanswerinfoconfig, sendo a detecção apenas baseada em heurísticas e nunca com precisão de 100%. -
-

-

Comandos de console

-

Lista de comandos disponíveis no console do FreeSWITCH para o Endpoint da Khomp: -


-

-
  • khomp channels disconnect : Desconecta um ou vários canais. Este comando envia uma mensagem diretamente para o canal físico da placa em questão, requisitando a desconexão. Use com cautela; -
  • khomp channels unblock : Desbloqueia canais bloqueados para entrada ou para saída. Somente disponível em sinalização digital via link E1; -
  • khomp clear links: Limpa os contadores de erros nos links; -
  • khomp clear statistics: Limpa as estatísticas de ligações dos canais, ou as estatísticas de um canal específico; -
  • khomp get : Obtém as opções diversas do Endpoint da Khomp; -
  • khomp kommuter : Ativa ou desativa os kommuters ligados via USB nesta máquina. Somente acessível quando a configuração "kommuter-activation" estiver setada como "manual"; -
  • khomp kommuter count: Obtém a quantidade de kommuters ligados via USB nesta máquina; -
  • khomp log console: Ajusta opções de logs no console. -
  • khomp log disk: : Ajusta opções de log em disco. -
    • khomp log console e khomp log disk dispõem de opções auxiliares no, que inverte a escolha de mensagens, e just, que generaliza a escolha. Exemplos: -
      • khomp log disk just commands events (Habilita somente o registro de comandos e eventos da API em disco). -
      • khomp log disk no commands (Desabilita o registro em disco de comandos enviados à API). -
      • khomp log disk warnings (Habilita também o registro em disco dos avisos do Endpoint). -
      -
    • Mais informações sobre as opções de log nos comando "help khomp log disk" ou "help khomp log console". -
    -
  • khomp log rotate: Rotaciona arquivos de log do Endpoint; -
  • khomp log status: Mostra mensagens de log atualmente sendo escritas em disco e mostradas no console; -
  • khomp log trace isdn: Ativa a depuração da sinalização RDSI (ISDN); -
  • khomp log trace k3l : Ativa a depuração de baixo nível da API K3L; -
  • khomp log trace r2 : Ativa a depuração de baixo nível da sinalização R2/MFC; -
  • khomp reset links: Envia um comando de reset para um determinado link E1 de uma determinada placa; -
  • khomp revision: Mostra número da versão e revisão do Endpoint; -
  • khomp select sim: Seleciona o SIM card, disponível nas placas KGSM; -
  • khomp send command : Envia comando da API K3L diretamente para a placa. Apenas para depuração de problemas, pode compromenter a estabilidade do sistema se utilizado de maneira incorreta; -
  • khomp send raw command : Envia um comando diretamente para o DSP da placa. Apenas para depuração de problemas, pode compromenter a estabilidade do sistema se utilizado de maneira incorreta; -
  • khomp set : Ajusta opções diversas do Endpoint da Khomp; -
  • khomp show calls : Mostra estados das chamadas Khomp, podendo listar também por placa ou canal específico; -
  • khomp show channels : Mostra o estado dos canais Khomp, podendo listar também por placa específica; -
  • khomp show links: Mostra estados dos links E1 disponíveis. -
  • khomp show statistics : Mostra as estatísticas de ligações dos canais, ou as estatísticas de um canal específico; -
  • khomp sms : Envia uma mensagem SMS utilizando canais da placa KGSM para um determinado número; -
  • khomp summary :Imprime um sumário das placas do sistema e de suas características; -
-


-

-

Recursos adicionais

-

Este capítulo trata de recursos adicionais do Endpoint, relacionados às funcionalidades especiais presentes em algumas sinalizações. -
-

-

Aplicações (applications) e canais

-

O Endpoint da Khomp, além de registrar um tipo de canal de comunicação "Khomp", registra também os seguintes itens: -
-

-

Aplicação "KUserTransfer"

-

Realiza o processo de transferência do canal atual para o ramal número' utilizando o protocolo de sinalização QSig (Single Step Call Transfer) para placas E1 configuradas com sinalização RDSI (ISDN), ou utiliza comando de FLASH para linhas FXO, LineSide, CAS_EL7 e E1LC. -

A sintaxe segue: -

-
<action application="KUserTransfer" data="número[,opções])"/>
-
-

Exemplo: -

-
<action application="answer"/>
-<action application="KUserTransfer" data="2345"/>
-
-

Os campos têm o seguinte significado: -

-
  • número: Número para onde a ligação deve ser transferida. -
  • opções: Define as opções de transferência a utilizar, que são: -
    • n: Aguarda até o canal ser desconectado. -
    -
-


-


-

-

Aplicação "KSendSMS"

-

Esta aplicação tem a função de enviar mensagens SMS através das placas KGSM da Khomp, utilizando os módulos e SIM cards presentes na placa para tal. A sintaxe da aplicação é a seguinte: -

-
<action application="KSendSMS" data="recurso|destino|mensagem" />
-
-

Podendo cada campo ser resumido em: -

-
  • recurso: Segue uma sintaxe idêntica à alocação de canais do application Bridge, e define qual modem utilizar; -
  • destino: Número para onde enviar a mensagem, podendo ser precedido ou sucedido por ! para requisitar uma mensagem de confirmação de envio; -
  • mensagem: Texto (sem aspas) que deve ser enviado para destino. -
-

Após o envio da mensagem, as variáveis KSmsDelivered e KSmsErrorCode conterão o resultado do envio da mensagem. Para maiores informações sobre estas, favor consultar a seção sobre as variáveis utilizadas no Endpoint. -

Exemplos de uso desta aplicação seguem abaixo: -

-
  • Envia "Mensagem de teste." para telefone "99887766" utilizando o modem "1" (segundo modem) da placa "0": -
-
<action application="log" data="DEBUG Enviando SMS..." />
-<action application="KSendSMS" data="b0c1|99887766|Mensagem de teste" />
-
-
  • Envia "Mensagem de teste." para telefone "99887766" utilizando o primeiro modem livre da placa "0", e verifica retorno do envio: -
-
<action application="log" data="DEBUG Enviando SMS..." />
-<action application="KSendSMS" data="b0|99887766|Mensagem de teste" />
-<action application="log" data="DEBUG Enviou? ${KSmsDelivered}" />
-<action application="log" data="DEBUG Codigo: ${KSmsErrorCode}" />
-<action application="log" data="DEBUG Descr.: ${KSmsErrorName}" />
-
-
  • Envia "Mensagem de teste." para telefone "99887766" utilizando o primeiro modem livre da placa "0", ou para o primeiro canal livre da placa "1" (se não houver canal livre na primeira placa): -
-
<action application="log" data="DEBUG Enviando SMS..." />
-<action application="KSendSMS" data="b0+b1|99887766|Mensagem de teste" />
-
-
  • Envia "Mensagem de teste." para telefone "99887766" utilizando o primeiro modem livre da placa "0", requisitando confirmação: -
-
<action application="log" data="DEBUG Enviando SMS..." />
-<action application="KSendSMS" data="b0|99887766!|Mensagem de teste" />
-
-


-

-

Aplicação "KEchoCanceller"

-

Esta aplicação tem a função de habilitar ou desabilitar o cancelador de eco do canal. -

-
<action application="KEchoCanceller" data="ação[,opções])"/>
-
-

Onde: -

-
  • ação: Pode ser on para habilitar o cancelador de eco, e off para desabilitar; -
-

Exemplo de uso desta aplicação: -

-
<action application="KEchoCanceller" data="off"/>
-
-


-

-

Aplicação "KAutoGainControl"

-

Esta aplicação tem a função de habilitar ou desabilitar o controle automático de ganho no canal. -

-
<action application="KAutoGainControl" data="ação[,opções])"/>
-
-

Onde: -

-
  • ação: Pode ser on para habilitar o controle automático de ganho, e off para desabilitar; -
-

Exemplo de uso desta aplicação: -

-
<action application="KAutoGainControl" data="on"/>
-
-


-

-

Aplicação "KDTMFSuppression"

-

Esta aplicação tem a função de habilitar ou desabilitar a supressão de DTMF do canal. A sintaxe da aplicação é a seguinte: -

-
<action applicatin="KDTMFSuppression" value="ação[,opções])"/>
-
-

Onde: -

-
  • ação: Pode ser on para habilitar a supressão DTMF, e off para desabilitar; -
-

É importante notar que quando desabilitada a supressão de DTMF, os DTMFs serão passados inband e não serão mais reportados ao FreeSWITCH. Dessa forma o FreeSWITCH não reconhecerá os DTMFs, o que pode ocasionar em mau funcionamento de aplicações como por exemplo, URAs. -

Exemplo de uso desta aplicação: -

-
<action applicatin="KDTMFSuppression" value="off"/>
-
-


-

-

Aplicação "KSetVolume"

-

Esta aplicação tem a função de ajustar o volume de entrade e saída de canais da Khomp, sendo a sua sintaxe a seguinte: -

-
<action application="KSetVolume" data="<volume>"/>
-<action application="KSetVolume" data="<output-volume>|<input-volume>"/>
-
-

Onde os campos possuem o seguinte significado: -

-
  • volume: Ajusta o volume de entrada e saída (-10 a +10); -
  • output-volume: Ajusta o volume de saída (-10 a +10, "none" para não alterar); -
  • input-volume: Ajusta o volume de entrada (-10 a +10, "none" para não alterar). -
-


-

-

Aplicação "KAdjustForFax"

-

Esta aplicação tem a função de ajustar um canal da Khomp para o recebimento de sinal de FAX/modem, otimizando o canal de comunicação para o tráfego de dados. Sintaxe: -

-
<action application="KAdjustForFax" data=""/>
-
-

Esta aplicação não recebe parâmetros. Exemplo de utilização: -

-
<action application="KAdjustForFax" data=""/>
-
-


-

-

Aplicação "KSendFax"

-

Esta aplicação tem a função de enviar fax utilizando canais digitais ou FXO da Khomp em ligações pré-estabelecidas, sendo a sua sintaxe a seguinte: -

-
<action application="KSendFax" data="<arquivo>[:<arquivo2>[:...]][|<faxid>]"/>
-
-

Esta aplicação necessita de uma licença adquirida à parte para ser utilizada em canais digitais. Os campos possuem os seguintes significados: -

-
  • arquivos: Arquivos a serem enviados para o fax devem estar encapsulados no formato TIFF e possuírem resolução de 98, 196 ou 392 dpi; -
  • faxid: Número do fax. Caso não seja especificado, o valor será obtido pela id da ligação, e caso esta, também não seja válida, o número do fax será o configurado como padrão na K3L. -
-

Exemplo de uso desta aplicação: -

-
<action application="KSendFax" data="/tmp/fax.tif:/home/root/fax2.tif,1234"/>
-
-


-

-

Aplicação "KReceiveFax"

-

Esta aplicação tem a função de receber fax utilizando canais digitais ou FXO da Khomp, sendo a sua sintaxe a seguinte: -

-
<action application="KReceiveFax" data="<arquivo>[|<faxid>]/>
-
-

Esta aplicação necessita de uma licença adquirida à parte para ser utilizada em canais digitais. Os campos possuem os seguintes significados: -

-
  • arquivo: Nome que será atribuído ao arquivo de fax recebido. -
  • faxid: Número do fax. Caso não seja especificado, o valor será obtido pela id da ligação, e caso esta, também não seja válida, o número do fax será o configurado como padrão na K3L. -
-

Exemplo de uso desta aplicação: -

-
<action application="answer" />
-<action application="KReceiveFax" data="/tmp/fax.tif"/>
-
-


-

-

Canal "Khomp_SMS"

-

Este canal de comunicação é utilizado para receber mensagens SMS e criar ligações entrantes no FreeSWITCH para cada mensagem recebida. Este canal não possui qualquer tipo de tratamento ou processamento de áudio, e é chamado com cinco variáveis ajustadas: -

-
  • KSmsFrom, contendo o número de origem de quem enviou a mensagem; -
  • KSmsDate, que define a data/hora do recebimento da mensagem; -
  • KSmsSize, representando o tamanho da mensagem (em bytes); -
  • KSmsMode, contendo a codificação utilizada para transmitir a mensagem; -
  • KSmsBody, que é a mensagem em si. -
-

O processamento do dialplan do FreeSWITCH pode ser utilizado para guardar esta mensagem em um banco de dados, executar alguma aplicação, entre outros. Entretanto, a única ação aceita por este channel é desligamento (hangup) - ou seja, esta ligação entrante não pode ser considerada uma ligação comum. -
-

-

Canal "Khomp_PR"

-

Este canal de comunicação é utilizado para receber ligações em placas de gravação passiva (família KPR e KFXO-HI), criando ligações entrantes no FreeSWITCH para cada chamada recebida. Este canal permite apenas o recebimento de áudio capturado do link, não permitindo tanto o envio de mensagens de áudio quanto o de sinalizações de controle. -

O processamento do dialplan do FreeSWITCH pode ser utilizado para gravar dados sobre esta ligação em um banco de dados, executar alguma aplicação especial e/ou algum application de gravação (como o record), entre outros. Entretanto, a única ação aceita por este channel é desligamento (hangup) - ou seja, esta ligação entrante não pode ser considerada uma ligação comum. -
-


-

-

Códigos e significados

-

Este capítulo apresenta os códigos presentes no Endpoint da Khomp e seus significados, utilizados nos comandos de console: -
-

-

Estados de canais

-

Refletem o estado do canal relativo à placa. No caso de links E1, o estado pode ter uma ou mais das seguintes opções: -

-
  • Free: o canal está livre; -
  • Busy: o canal não está livre (ou ocupado, ou em falha); -
  • Outgoing: o canal possui uma ligação de saída; -
  • Incoming: o canal possui uma ligação de entrada; -
  • Locked: o canal está bloqueado; -
  • Outgoing Lock: o canal está bloqueado para chamadas saintes; -
  • Local Fail: o canal possui uma falha local (nesta ponta); -
  • Incoming Lock: o canal está bloqueado para chamadas entrantes; -
  • Remote Lock: há um bloqueio remoto (na outra ponta) neste canal. -
-

No caso de um canal FXS, o estado é definido por um destes valores: -

-
  • On Hook: o telefone conectado neste canal está no gancho ou desconectado; -
  • Off Hook: o telefone conectado neste canal está fora do gancho; -
  • Ringing: o canal está sendo chamado; -
  • Failure: o canal está em falha devido a problemas de comunicação entre a central e a placa. -
-

No caso de um canal GSM, o estado também é definido por um dos valores a seguir: -

-
  • Idle: o canal está livre e disponível para realizar chamadas; -
  • Call In Progress: o canal está ocupado em uma ligação; -
  • Modem Error: ocorreu um erro na comunicação com o modem do canal; -
  • SIM Card Error: o SIM card não está presente ou não foi inserido/detectado corretamente; -
  • Network Error: ocorreu um erro ao comunicar-se com a rede; -
  • Not Ready: o modem está sendo inicializado no canal. -
-

E no caso de um canal FXO, os estados serão os seguintes: -

-
  • Disabled: o canal está desabilitado; -
  • Enabled: o canal está habilitado. -
-


-

-

Estados de chamada

-

Define o estado de cada canal relativo ao software, que pode ser:: -

-
  • Free: o canal está livre; -
  • Incoming: o canal está recebendo uma chamada; -
  • Outgoing: o canal está realizando uma chamada; -
  • Failure: o canal está em falha. -
-


-

-

Estados da chamada FreeSWITCH

-

Reflete diretamente o estado de chamada controlado pelo FreeSWITCH, que pode se -

-
  • new: Canal é recém criado; -
  • init: Canal foi inicializado; -
  • routing: Canal está procurando uma extensão para executar; -
  • execute: Canal está executando seu dialplan; -
  • ex_media: Canal está trocando media com outro canal; -
  • cs_media: Canal está consumindo toda media; -
  • hangup: O canal está marcada para hangup e pronto para terminar. -
-


-

-

Códigos GSM

-

Os seguintes códigos numéricos são reportados: -

-

Códigos de SMS (SMS cause)

-
1	Unassigned number
-8	Operator determined barring
-10	Call barred
-21	SMS transfer rejected
-27	Destination out of service
-28	Unidentified subscriber
-29	Facility rejected
-30	Unknown subscriber
-38	Network out of order
-41	Temporary failure
-42	Congestion
-47	Resources unavailable
-50	Facility not subscribed
-69	Facility not implemented
-81	Invalid SMS transfer reference value
-95	Invalid message
-96	Invalid mandatory information
-97	Message type non existent
-98	Message not compatible with SMS protection state
-99	Information element non existent
-111	Protocol error
-127	Interworking
-128	Telematic interworking not supported
-129	SMS type zero not supported
-130	Cannot replace SMS
-143	Unspecified TPPID error
-144	Alphabet not supported
-145	Message class not supported
-159	Unspecified TPDCS error
-160	Command cannot be actioned
-161	Command unsupported
-175	Unspecified TP command error
-176	TPDU not supported
-192	SC busy
-193	No SC subscription
-194	SC system failure
-195	Invalid SME address
-196	Destination SME barred
-197	SM rejected duplicate SM
-198	TPVPF not supported
-199	TPVP not supported
-208	SIM SMS storage full
-209	No SMS storage capability in SIM
-210	Error in SMS
-211	Memory capatity exceeded
-213	SIM data download error
-255	Unspecified error
-300	Phone failure
-301	SMS service reserved
-302	Operation not allowed
-303	Operation not supported
-304	Invalid PDU mode parameter
-305	Invalid text mode parameter
-310	SIM not inserted
-311	SIM PIN necessary
-312	Phone SIM PIN necessary
-313	SIM failure
-314	SIM busy
-315	SIM wrong
-320	Memory failure
-321	Invalid memory index
-322	Memory full
-330	SMSC address unknown
-331	No network service
-332	Network timeout
-500	Unknown error
-512	Network busy
-513	Invalid destination address
-514	Invalid message body length
-515	Phone is not in service
-516	Invalid preferred memory storage
-517	User terminated
-
-

Códigos de chamada (call cause)

-
1	Unallocated number
-3	No route to destination
-6	Channel unacceptable
-8	Operator determined barring
-16	Normal call clear
-17	User busy
-18	No user responding
-19	No answer from user
-21	Call rejected
-22	Number changed
-26	Non Selected user clear
-27	Destination out of order
-28	Invalid number format
-29	Facility rejected
-30	Response status enquiry
-31	Normal, unspecified
-34	No circuit channel available
-38	Network out of order
-41	Temporary failure
-42	Switch congestion
-43	Access information discarded
-44	Requested channel unavailable
-47	Resource unavailable
-49	QoS unavailable
-50	Request facility not subscribed
-55	Call barred with UG
-57	Bearer capability not authorized
-58	Bearer capability not available
-63	Service not available
-65	Bearer capability not implemented
-69	Request facility not implemented
-70	Only restricted bearer capability available
-79	Service not implemented
-81	Invalid call reference value
-82	User not member of UG
-88	Incompatible destination
-91	Invalid transit network selected
-95	Invalid message
-96	Missing mandatory information element
-97	Message type not implemented
-98	Message incompatible with state
-99	Information element not implemented
-100	Invalid information element
-101	Message incompatible with state (2)
-102	Recovery on timer expiry
-111	Protocol error
-127	Interworking
-
-

Códigos gerais (mobile cause)

-
0	Phone failure
-1	No connection to phone
-2	Phone adaptor link reserved
-3	Operation not allowed
-4	Operation not supported
-5	Phone SIM PIN required
-6	Phone FSIM PIN required
-7	Phone FSIM PUK required
-10	SIM not inserted
-11	SIM PIN required
-12	SIM PUK required
-13	SIM failure
-14	SIM busy
-15	SIM wrong
-16	Incorrect password
-17	SIM PIN2 required
-18	SIM PUK2 required
-20	Memory full
-21	Invalid index
-22	Not found
-23	Memory failure
-24	Text string too long
-25	Invalid character in text string
-26	Dial string too long
-27	Invalid character in dial string
-30	No network service
-31	Network timeout
-32	Network not allowed
-33	Command aborted
-34	Number parameter instead of text parameter
-35	Text parameter instead of number parameter
-36	Numeric parameter out of bounds
-37	Text string too short
-40	Network PIN required
-41	Network PUK required
-42	Network subset PIN required
-43	Network subset PUK required
-44	Network service provider PIN required
-45	Network service provider PUK required
-46	Corporate PIN required
-47	Corporate PUK required
-60	SIM Service option not supported
-100	Unknown
-103	Illegal MS #3
-106	Illegal MS #6
-107	GPRS service not allowed #7
-111	PLMN not allowed #11
-112	Location area not allowed #12
-113	Roaming not allowed #13
-132	Service option not supported #32
-133	Registration service option not subscribed #33
-134	Service option temporary out of order #34
-147	Long context activation
-148	Unspecified GPRS error
-149	PDP authentication failure
-150	Invalid mobile class
-151	GPRS disconnection TMR active
-256	Too many active calls
-257	Call rejected
-258	Unanswered call pending
-259	Unknown calling error
-260	No phone number recognized
-261	Call state not idle
-262	Call in progress
-263	Dial state error
-264	Unlock code required
-265	Network busy
-266	Invalid phone number
-267	Number entry already started
-268	Cancelled by user
-269	Number entry could not be started
-280	Data lost
-281	Invalid message body length
-282	Inactive socket
-283	Socket already open
-
-


-

-

Solução de problemas

-

Nesta seção, erros e suas soluções mais comuns são apresentados. -

-

Erro durante a instalação do módulo de kernel

-

Durante a instalação do Endpoint da Khomp, podem ocorrer as seguintes mensagens: - -

-
K3L: WARNING: Unable to find a module for [...]
-
-

ou - -

-
install: ******  THE KERNEL MODULE HAS NOT BEEN INSTALLED: *******
-install: 
-install: ** Please, untar the file kpdriver*.tar.gz located in: **
-install: **                 '/usr/src/khomp/'                   **
-install: **             then check the README.txt               **
-install: **  for knowing how to proceed with the installation.  **
-
-

Neste caso, será necessário compilar os drivers manualmente para o seu sistema. Prossiga para o item abaixo para maiores informações. -
-

-

Compilandos os drivers e iniciando os serviços

-

Basta seguir ao diretório /usr/src/khomp, descompactar o arquivo "kpdriver_2.0.0XX.tar.gz", e acompanhar procedimentos descritos no arquivo README.txt. -

Após realizar a compilação e a instalação do módulo, basta carregá-lo no sistema, configurar as placas, e iniciar o servidor de processos da Khomp. -

Para carregar o driver de kernel, é necessário executar o seguinte comando: - -

-
# /etc/init.d/khompdrv start
-
-

Para configurar as placas, por sua vez, necessário executar o comando: - -

-
# khompwizard
-
-

Isto executará um assistente de configuração, que irá perguntar a sinalização utilizada no sistema, bem como outros parâmetros de utilização das placas. -

Caso seja necessário configurar outros parâmetros adicionais, pode-se utilizar o seguinte comando: - -

-
# k3lconfig
-
-

Este configurador, por sua vez, mostra todas as opções possíveis de configuração da placa. Os parâmetros que não forem configurados assumem os valores padrão automaticamente, e são compatíveis com a maior parte dos sistemas. Maiores detalhes sobre este programa podem ser obtidos na seção de número '2'. -


-

-
  • IMPORTANTE: Para o FreeSWITCH iniciar, é preciso que a placa da khomp esteja configurada e todos módulos estejam rodando (conforme mostrado acima).

    Se você deseja rodar o sistema sem a placa da Khomp, é preciso configurar o FreeSWITCH para ele não carregar o módulo da Khomp. Para isso, abra o arquivo /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml, e comente a linha que carrega o módulo:
    -
-
-  <!-- <load module="mod_khomp" /> -->
-

-

Quando a placa da Khomp estiver devidamente configurada e os módulos da khomp carregados (explicado acima), lembre-se de descomentar esta linha no arquivo. -


-Por fim, para carregar o servidor de processos, basta executar o seguinte comando: - -

-
# kserver start
-
-

Após realizar estes procedimentos, o Endpoint já estará operacional, e o FreeSWITCH já pode ser carregado. -
-

-

Configurando parâmetros especiais de sinalização ou áudio

-

Para configurar parâmetros especiais de sincronismo e/ou sinalização, é possível utilizar o programa "k3lconfig": basta selecionar a placa desejada, e as opções das placas serão apresentadas, divididas em seções e subseções para facilitar o acesso. Não é necessário efetuar a configuração de todos os parâmetros: os valores padrão são assumidos, caso não sejam configurados. -

Para ajustar a sinalização do link, basta - depois de selecionar a placa - entrar na seção "Opções de sinalização", e em seguida, em "Sinalização da linha". Para escolher uma sinalização específica, basta utilizar as teclas de direcionamento (setas) até selecioná-la, pressionar 'espaço', e confirmar a opção pressionando 'Enter' sobre o botão "Confirmar". -

Por fim, para salvar as configurações modificadas, basta sair do programa: ele irá mostrar uma janela, com opções para salvar ou não as alterações realizadas. -

É importante notar que não é necessário alterar/ativar as seguintes opções: -

-
  • Cancelamento de eco automático; -
  • Supressão de DTMFs automática; -
  • Controle de ganho (AGC) automático. -
-

Estas opções são controladas pelo Endpoint, e devem estar desabilitadas no 'k3lconfig'. -
-

-

Inicialização automática dos serviços e módulos de kernel

-

Se a carga dos módulos de kernel ou a inicialização dos serviços da Khomp não for realizada automaticamente na inicialização do sistema, é possível realizar esta instalação manualmente, criando um link para os scripts /etc/init.d/khompdrv e /etc/init.d/kserver no diretório de inicialização do sistema. -

Na caso da distribuição Debian, o script de carga dos módulos de kernel seria linkado dentro do diretório /etc/rcS.d/, enquanto o script de inicialização dos serviços seria linkado dentro dos diretórios /etc/rc2.d, /etc/rc3.d, /etc/rc4.d, /etc/rc5.d, da seguinte forma: -

-

-
# ln -s /etc/init.d/khompdrv  /etc/rcS.d/S19khompdrv
-# ln -s /etc/init.d/kserver   /etc/rc2.d/S20kserver
-# ln -s /etc/init.d/kserver   /etc/rc3.d/S20kserver
-# ln -s /etc/init.d/kserver   /etc/rc4.d/S20kserver
-# ln -s /etc/init.d/kserver   /etc/rc5.d/S20kserver
-
-

É interessante verificar as normas da sua distribuição para inicializar os serviços de acordo com o que é esperado pela inicialização da mesma. -
-

-

Apêndice

-

Nesta seção, encontram-se informações úteis sobre o Endpoint e componentes relacionados. -

-

Disposição dos arquivos

-

Os diretórios criados/modificados nesta instalação são: - -

-
/etc/init.d/                -- Scripts de inicialização;
-
-/etc/khomp/                 -- Arquivos de firmware e configurações;
-
-/usr/local/freeswitch/conf/ -- Configurações do FreeSWITCH e Endpoint;
-
-/usr/doc/khomp/             -- Documentação das placas, do mod_khomp e dos utilitários;
-
-/usr/sbin/                  -- Utilitários e servidor de processos;
-
-/usr/lib/                   -- Bibliotecas compartilhadas da K3L;
-
-/usr/local/freeswitch/mod/  -- Módulo 'mod_khomp.so';
- 
-/var/log/khomp2.1/          -- Diretório de logs da K3L e Endpoint
-
-


-O script /etc/init.d/khompdrv é responsável por carregar os módulos kpci9030.ko e kpex8311.ko no kernel, que deve ser realizada automaticamente na inicialização do sistema. Em caso de problemas, verifique a seção Solução de problemas. -
-


-Para mais detalhes: http://www.khomp.com.br -


-

\ No newline at end of file diff --git a/src/mod/endpoints/mod_khomp/docs/Manual.pdf b/src/mod/endpoints/mod_khomp/docs/Manual.pdf deleted file mode 100644 index ff578148248bb914d31114c16a29e4dcbb80f10f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470577 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

h7S7&1)0{4w6i$juS#uIU4;1vc+PX$uB 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 z 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%0AMyMkG+;e&X{fstALr6cO^p&k#b(}18D8EsZ7F`& z>&Gv5B~8ytNX=T8sRhK9p~-f`EcrYnGZA

V-|nOnx#r~Cxa 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

N@?MOi`C(BzUAEE!*flP~{W81WtZh_r9 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 Ia|7xB10nhnzyJUM diff --git a/src/mod/endpoints/mod_khomp/docs/README.html b/src/mod/endpoints/mod_khomp/docs/README.html deleted file mode 100644 index c9756b36a2..0000000000 --- a/src/mod/endpoints/mod_khomp/docs/README.html +++ /dev/null @@ -1,39 +0,0 @@ -Mod Khomp: README

Guia Rápido

-

Depois de instalar a placa no sistema, e executar o programa de instalação pela primeira vez, os drivers e serviços da Khomp serão adicionados na inicialização do sistema, e automaticamente carregados. -

Se o sistema possuir pelo menos uma placa de tronco E1 e/ou uma placa FXO, uma tela de configuração básica deverá ser apresentada ao final do processo, questionando parâmetros de sinalização - no caso de existirem placas E1 - e/ou realizando o ajuste de cadências - no caso de existirem placas FXO. -

Se todas estas etapas foram executadas com sucesso, prossiga para o item Utilizando o Endpoint da Khomp. Caso algum problema ocorra, consulte o Manual do Endpoint, seguindo para a seção de Solução de problemas. -

-

Utilizando o Endpoint da Khomp

-

Após a instalação e inicialização dos serviços necessários pela Khomp, o FreeSWITCH já pode ser carregado ou inicializado. -

-
  • AVISO: Evite usar a opção -nort, pois ela desabilita escalonamento em tempo real, é imprescindível que o FreeSWITCH esteja utilizando o escalonamento em tempo real, especialmente se este estiver sendo executado lado-a-lado com servidores web ou servidores de banco de dados. Utilizar a opção -nort pode resultar em perda de qualidade do áudio, gerando um sério comprometimento nas ligações do sistema. -
-

Após a inicialização do FreeSWITCH, pode-se verificar se o módulo da Khomp foi carregado através do seguinte comando:
-

-
 freeswitch@hostname> module_exists mod_khomp
-
-

A próxima linha deverá responder algo tipo: -

-
 true
-
-

Para verificar se o FreeSWITCH reconheceu todas as placas, digite: -

-
 freeswitch@hostname> khomp summary
-
-

A saída desse comando mostrará detalhes de todas placas reconhecidas. -

No caso de uma placa de tronco E1, pode-se verificar o estado dos links com o seguinte comando: -

-
 freeswitch@hostname> khomp show links
-
-

O estado dos canais individuais, por sua vez, pode ser aferido com o comando: -

-
 freeswitch@hostname> khomp show channels
-
-

Para mais detalhes sobre os comandos do Endpoint da khomp digite no console do FreeSWITCH: -

-
 freeswitch@hostname> help khomp
-
-
  • IMPORTANTE: Para fazer completo uso da sua placa Khomp, será preciso configurar suas regras de discagem, seja através do arquivo default.xml ou de um aplicativo externo, definindo regras específicas para realizar ao receber ligações.

    No Manual do Endpoint, podem ser encontradas informações sobre o formato dos contextos de entrada (responsáveis por receber as ligações) e sobre as opções disponíveis no application Bridge (responsável por realizar ligações) que podem ser utilizadas com o Endpoint da Khomp, além de outras funcionalidades especiais providas pelo mesmo. -
-


-

\ No newline at end of file diff --git a/src/mod/endpoints/mod_khomp/docs/README.pdf b/src/mod/endpoints/mod_khomp/docs/README.pdf deleted file mode 100644 index 304f6e0dd347d122c13ad4ee138132fe6eb721f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399111 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 z 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 d6Bob3YyqPQTm;gcTc1{rh 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%0Dd;wq+Rbns-SNO1+v>UKZ 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

~)`2tju2REF~mgS3Y4+DEZmK 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�& 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 diff --git a/src/mod/endpoints/mod_khomp/docs/README_en.html b/src/mod/endpoints/mod_khomp/docs/README_en.html deleted file mode 100644 index c72b84270c..0000000000 --- a/src/mod/endpoints/mod_khomp/docs/README_en.html +++ /dev/null @@ -1,39 +0,0 @@ -Mod Khomp: README: en

Quick guide

-

After installing the card in the system and run the installation program for the first time, the drivers and Khomp services will be added at system startup, and automatically loaded. -

If your system has at least one E1 trunk card and / or an FXO card, a basic setup screen will be presented at the end of the process, questioning signaling parameters - if there are signs E1 - and/or performing the adjustment cadences - where that FXO cards. -

If all these steps were performed successfully, proceed to the item Using Khomp Endpoint. If a problem occurs, see the User Guide, in the section Troubleshooting. -

-

Using the Khomp Endpoint

-

After installation and startup services required by Khomp, FreeSWITCH can now be loaded or initialized. -

-
  • WARNING: Avoid using the -nort, as it disables real-time scheduling, it is essential that the FreeSwitch are using real-time scheduling, especially if it is running side-by-side with web servers or database . Use the -nort may result in loss of audio quality, causing a serious commitment on the progress of system connections. -
-

After initialization of FreeSWITCH, you can verify that the module was loaded Khomp through the following command:
-

-
 freeswitch@hostname> module_exists mod_khomp
-
-

The next line should answer something like: -

-
 true
-
-

To verify that the FreeSwitch recognize all the cards, type: -

-
 freeswitch@hostname> khomp summary
-
-

The output of this command will show details of all cards accepted. -

In the case of an E1 card, you can check the status of links with the following command: -

-
 freeswitch@hostname> khomp show links
-
-

The state of individual channels, in turn, can be measured with the command: -

-
 freeswitch@hostname> khomp show channels
-
-

For more details on the commands of the Endpoint khomp type in the console of FreeSWITCH: -

-
 freeswitch@hostname> help khomp
-
-
  • IMPORTANT: To make full use of your card Khomp, you must configure your dialing rules, either through the extension.conf or from an external application by setting specific rules for conduct by receiving connections.
    In the User Guide, information can be found on the format of input contexts (responsible for receiving calls) and on the options available on application Dial (responsible for make calls) that can be used with the Endpoint Khomp, and other special features provided by it. -
-


-

\ No newline at end of file diff --git a/src/mod/endpoints/mod_khomp/docs/README_en.pdf b/src/mod/endpoints/mod_khomp/docs/README_en.pdf deleted file mode 100644 index 8931da91471c97852a627979755929e13ee52c4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314423 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 S3`_P zIkp*8i}|pyzQBk;U!r?>l-r)n++|t4&e$_p!k`S{nTd`H3IS#X=%i=m9gD&UP~K#N zHaxJO{WbaOLD^m8-QSpH^-^bfVZwLohZ^cq7E7?PZ2@+K|HxZ5^_LWU!=I%0SZ4A# zA&_G3t9fcQqxY9%$hUaYnbsZwIG7CsvsIRZ(s0??0=%jYS%BJ+Y|m0Rw}mMqYKo2q zV%4hS#X>qM zk?j@J;s#C=WIoltu|{j!qNoz459(KJmnj~NC8@x>DGwMK&1$c8XQd5EBLVZ1-B@bE zwg}bt>~R|=B5Nq2C``MTbt7~21EG0?gQxK3mYm4)*vy&P#XsXeaoeN4} z@2!@sOEShi8|N~O&lKF><}XmRGVJ1m*iMmmCXy{_y( zYsQy9NZfr9e(i=aY&^kvBwW-Yb`phy5pUaCiIm|r)k2DD+wC-2HY=3!CdJnodKPUFsfJvJOOy>`!$}NRL>F6W6*#(V3=0U?VRC3c^|hKz zjX5h>e>yKn_CGq3_*s`)=53!9e>kPdx+GejSGs4!cP<{WX)-ye(@$dtj^0X06$OSDB*|DrhvmEyejYLf;W|5B|p&Ve_!5)>q9blb1}D zu=fu;UBUiLG`H)5;+~~dHPa)Cv&VB|>z~ZaP(j``s&1B3*qP1wiHRFofsy6V5mf8D zv<%6)7+48JNh5LnBOgQcOq~oP{>9f|ASnJ#1H^v+GY^-nM3!JW)ZY2fJeFq`k8Z5U z_^daiHTn}x0Te9_Q|Pp8jb>%`MG%{�P|1zXoog4PGQ>CM}h0roq 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 d6Bob3YyqPQTm;gcT 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

cjx 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%0Dd;wq+Rbns-SNO1+ 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᚛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 Khomp: User Guide -

First considerations

-

This document covers information about the Endpoint of Khomp as a whole, include the options, applications, CLI commands, among others. -

For first installation procedures, please see the README. -
-

-

Configuration

-

Configuring the Khomp Endpoint is a task that consists of three steps: -

-
  • Configuration of the boards through the K3L; -
  • Setting up the Endpoint; -
  • Setting up the FreeSWITCH. -
-

These steps are described more fully below. -
-

-

K3L API Configuration

-

This step is carried out in a semi-automated way using the khompwizard program, a wizard that configures the basic parameters of the system boards. This wizard initializes the configuration files using information from the user when they are needed, initializing the standard settings to default values. -

Typically, this program runs automatically after installation of the system. However, you may need to run it manually if an update is being performed, or if new cards were added to the system after installing new drivers. -


-If you need to set advanced parameters of the board and/or signaling, the program k3lconfig allows you to access all the available settings for each installed card. For more information about this program, check the k3lconfig User's Guide. For solving synchronization issues, check the Troubleshooting section for manual configuration of the boards. -
-

-

Endpoint Configuration

-

The system's default configuration normally meet most user's needs. However, the configuration of the Endpoint Khomp can be modified through the configuration file '/usr/local/freeswitch/conf/autoload_configs/khomp.conf.xml'. -

The list of options is as follows: -

-

<channels>

-

Define general settings of all channels of Khomp: -

-
Sintaxe: <param name="..." value="..."/>
-
-
  • accountcode: Sets the default account code to calls in the Endpoint. This option can be any alphanumeric string; -
  • dialplan: Name of the dialplan module in use. -
  • auto-fax-adjustment: Enable ("yes") or disables ("no") the automatic adjustment of the channel (disable the echo canceller and the suppression DTMF) tone to detect FAX (local option) ; -
  • auto-gain-control:Enable ("yes") or disables ("no") the activation of the automatic gain control (AGC) by the Endpoint (local option); -
  • context-digital: Context for incoming connections on digital boards (the default is "khomp-DD-LL", where "DD" will be replaced at the time of connection by the device number, "LL" by the number of the link, "CCC" by channel number and "SSSS" for the device serial number); -
  • context-fxo: Context for incoming connections on FXO cards (the default is "khomp-CC-DD", where "DD" will be replaced at the time of connection by the device number, "CC" by channel number, and "SSSS" by the device serial number); -
  • context-fxs: Context for incoming connections on FXS cards (the default is "khomp-CC-DD", where "DD" will be replaced at the time of connection by the device number, "CC" by channel number, and "SSSS" by the device serial number); -
  • context-gsm-call (or context-gsm): Context of entry for GSM boards (the default is "khomp-CC-DD", where "DD" will be replaced at the time of connection by the device number, "CC" by channel number, and "SSSS" by the device serial number); -
  • context-gsm-sms: Context for incoming SMSs (the default is "khomp-sms-CC-DD", where "DD" will be replaced by the number of device, "CC" by channel number and "SSSS" by the device's serial number); -
  • context-pr: Context for incoming connections on boards KPR (default is "khomp-CC-DD", where "DD" will be replaced at the time of connection by the device number, "CC "by channel number); -
  • delay-ringback-co: Sets the delay to enable the generation of call control tone (ringback) by the Endpoint Khomp when there is an ringback indication from signaling and there is no audio being sent by the channel which indicated the situation (local option); -
  • delay-ringback-pbx: Sets the delay to enable the generation of call control tone (ringback) by the Endpoint Khomp when there is an ringback indication, and the audio has no tone (silence) (local option); -
  • disconnect-delay: Sets the time in milliseconds to perform processing a disconnect event, to ignore situations where other equipment performing the double service to overthrow collect calls (local option); -
  • drop-collect-call: Enables/Disables the action of dropping collect calls. If enabled, all collect calls will be dropped no matter what KDropCollectCall is set to (the default value is "no"); -
  • echo-canceller (former 'echocanceller): Active ("yes") or disables ("no") echo cancellation automatic Endpoint (local option); -
  • flash-to-digits: Defines the digits to be sent when the FLASH is detected on FXS channels; -
  • fxo-send-pre-audio: When enabled ("yes") releases audio channel before the outgoing call connection boards KFXO (the default value is "yes"); -
  • fxs-digit-timeout: Defines the timeout, in seconds, between digits of a FXS board's extension; -
  • fxs-global-orig: Start number for sequencial branch numbering in FXS cards that are not listed in the [fxs-branches] section (the numbering follows ascending order from board number and physical channel number) (default is "0"); -
  • fxs-co-dialtone: Sequences of numbers, separated by commas, which fires a continuous tone (of central office) in FXS branches (eg: "0,99" means that, when you dial "0" or "99", the user will hear a continuous dial tone) (default is empty); -
  • fxs-bina: When enabled ("yes"), calls to FXS lines will send digits corresponding to the source phone identification using BINA DTMF signaling (the default value is "no") (local option); -
  • ignore-letter-dtmfs: Defines if the channel should ignore some uncommon DTMF digits detected by the board (A, B, C and D). However, if you need to pass those digits througth the board, you may need to set this option to 'no' (the default value is "yes"); -
  • input-volume: Sets the volume gain for incoming audio (entering the board), from -10 to +10 (local option); -
  • kommuter-activation: Sets whether to activate devices kommuter found in the system will be done automatically ("auto") by the channel, or manually ("manual") by the user through the command "khomp kommuter on/off" -
  • kommuter-timeout: Sets the timeout (in seconds) for initializing the kommuter devices. If this timeout is reached without receiving notification of the channel, the devices will switch back to "off" condition. The minimum value is "0", where the links will always remain switched "on", and the maximum is "255"; -
  • language: Set language to Khomp board calls; -
  • log-to-console: Set log messages to be printed on the console; -
  • log-to-disk (old "log"): Set log messages to be saved to disk; -
  • out-of-band-DTMF (former dtmfsuppression): Activate ("yes") or disables ("no") the removal and DTMF sending these out-of-band (local option); -
  • output-volume: Define o volume de saída das ligações, varia de -10 a +10 ; -
  • pulse-forwarding (former 'pulsedetection): Active ("yes") or disables ("no") for the detection of pulses and converting them into DTMF (local option); -
  • r2-preconnect-wait (former 'r2preconnectwait): Sets the timeout sending the ringback signaling, protocol R2/MFC to start sending audio silence. Only used when "r2-strict-Behavior" is set to "no" (local option); -
  • r2-strict-Behaviour: Enable ("yes") or disables ("no") the behavior of signaling R2/MFC as the standard sets. The default is "no", and can be changed to "yes" if needed to receive / send data precise signaling protocol (condition B, for example) (local option); -
  • suppression-delay (former suppressiondelay): Activate ("yes") or disables ("no") the delay necessary to suppress DTMF. If disabled ("no"), also disables suppression of DTMF (local option); -
  • trace: Set debugging options. Should not be used in production unless absolutely necessary; -
  • user-transfer-digits: Defines a sequence of DTMF digits to initiate the transfer between FreeSWITCH® and another PBX (using user signaling, like QSig or FXO FLASH); -
-


-

-

<groups>

-

Defines the groups to be used in channel allocation. -

In this case, the options are used to define names for strings allocation of channels. The format follows the standard <group name> = <allocation string>, where the allocation string is the same string used in the bridge application, and group name is an arbitrary name chosen by the user. -

-
For example, to define the group pstn as the channels 0 and 5 of the board 0, the following line could be used: -
-
<param name="pstn" value="b0c0 + b0c5"/> 
-
-

This group, in turn, could be used in the bridge application as <action application="bridge" data="Khomp/Gpstn/..."/>. -

-
You can associate a given input context to a channel group, simply specify a name of context string after the allocation, separated by ':'. -
-

For example, to define the same group pstn as channels 0 to 20 of card 0, and defining the incoming context to for channels in this groups to from-pstn, one could use the line: -

-
<param name="pstn" value="b0c0-20:from-pstn"/>
-
-

This group would be used the same way as before in the bridge application, and all the calls coming from these channels would be treated in context from-pstn. -
-

-

<cadences>

-

Defines settings for the Endpoint cadences. -

In this case, the options are names cadences, followed by one or two pairs of numbers - that define the ranges of tone and silence to be used in cadences. -For details, please refer to the configuration file for examples. -
-

-

<fxs-branches>

-

Defines source numbers for the board KFXS. -

In this case, the options are sequences of prefixes of branches and serial numbers of the boards, which define the basic numbers of source addresses, and the numerical order of the boards. The format of the options is: -

-
<param name="prefixo" value="serial1, serial2, ...."/>
-
-

For example, if two KFXS-300 SPX boards with serial numbers K0374 and K2352 must be numbered sequentially, starting from branch 200, you may write: -

-
<param name="200" value="374, 2352"/>
-
-

This will define the first branch of board 'K0374 as number 200, the second as 201, and so one. The first branch from board K2352 will have number 230 (as K0374 has 30 channels), the second will be numbered 231, and so on - until the last channel, numbered 259. -

For more details, please refer to the configuration file for other exemples. -
-

-

<fxs-hotlines>

-

Sets hotlines for the KFXS based boards -

In this case, the options are sequences of branches and sequences of destination numbers, which define branches to be treated as "hotlines" and numbers to be dialed when they are take off hook. For instance: -

-
<param name="100" value="1234"/>
-<param name="200" value="4321"/> 
-
-

In the first line, the branch numbered 100 will call extension 1234 when taken off hook, while in the second one, branch 200 will call number 4321 when taken off hook. -
-

-

<fxs-options>

-

Allows you to set specific settings for FXS extension. -

In this case, the settings are extension numbers (based on those defined in the <fxs-branches>), and the options and their values. -

-
  • context; -
  • input-volume; -
  • output-volume; -
  • calleridnum; -
  • calleridname; -
  • language; -
  • accountcode; -
  • flash-to-digits. -
-

Each option is separated from each other by a pipe "|" or a slash "/" and defined after the colon ":". Example: -

-
<param name="200" value="input-volume:1|context:master-branch" />
-
-

For more information on the syntax and examples, please refer to the configuration file. -

For more information visit the configuration file 'khomp.conf.xml'. -
-

-

FreeSWITCH Configuration

-

When connections are received on the boards and devices Khomp, they are forwarded by the Endpoint to specific contexts within the dialplan of FreeSWITCH®. These settings can be changed via the configuration file khomp.conf.xml, available on the FreeSWITCH configuration directory (by default, "/usr/local/freeswitch/conf/autoload_configs"). -

For details about the specific contexts, see section Endpoint configuration. -

Below are details of how to configure the settings for incoming calls -
-


-

-

Contexts for E1 channels

-

For E1 boards, inbound contexts are predefined as option context-digital with default value as following: -

-
<param name="context-digital" value="khomp-DD-LL"/>
-
-

This standard defines the context that links will be redirected in accordance with the number of the board and number of the link: DD is the device number (two digits), and LL is the number of the link (also with two digits). -

However, it is possible to configure other inbound contexts, with different formats. There is format CCC, which means the channel number on the card (three digits), and SSSS, which represents the serial board number (with four digits). -

Examples for configuration entries (khomp.conf.xml): -

-
<!-- Serial board number and sequential link (ex: khomp-01-00) -->
-<param name="context-digital" value="khomp-DD-LL"/>
-
-
<!-- Serial board number and sequential link (ex: khomp-3049-00) -->
-<param name="context-digital" value="khomp-SSSS-LL"/>
-
-
<!-- Sequential board number and the channel (ex: khomp-00-001) -->
-<param name="context-digital" value="khomp-DD-CCC"/>
-
-
<!-- Receive all calls in one context (khomp-digital) -->
-<param name="context-digital" value="khomp-digital"/>
-
-

Follows an example the context usage inside the dialplan: - -

-
<!--
-The present context in 'extensions.conf' will handle calls
-that come from the link 0 (first link) of the board 0.
--->
-<context name="khomp-00-00">
-             .
-             .
-             .
-</context>
-
-

Another example, using the same format: - -

-
<!-- 
-The present context in 'extensions.conf' will handle calls
-that come from the link 1 (second link) of the board 0.
--->
-<context name="khomp-00-01>
-             .
-             .
-             .
-</context>
-
-

A complete example, with a few simple actions: - -

-
<context name="khomp-00-00">
-    <extension name="exemplo_1">
-        <condition field="destination_number" expression="^1234$">
-            <action application="bridge" data="Khomp/b0L1/2345"/>
-        </condition>
-    </extension>
-    <extension name="exemplo_2">
-        <condition field="destination_number" expression="^23(\d{2})$">
-            <action application="bridge" data="sofia/${use_profile}/11$1@${sip_from_host}"/>
-        </condition>
-    </extension>
-</context>
-
-
<context name="khomp-00-01">
-    <extension name="exemplo_3">
-        <condition field="destination_number" expression="^1111$">
-            <action application="bridge" data="Khomp/b0L0/2345"/>
-        </condition>
-    </extension>
-</context>
-
-

This dialplan defines that: -

-
  1. The incoming calls on the link 0 of the board 0 will have the following handling: -
    • Calls to the extension 1234 for will be redirected to the second link on the first board (b0L1), calling number 2345; -
    • Calls to any four digit number starting with23 will be redirected to SIP phones numbered 11 plus the last two digits of the number dialed. -
    -
  2. The incoming calls on the link 1 of the board 0 for the number 1111 will be redirected to the first link of the first board (b0L0) calling number 2345. -
-

Contexts of FXS/FXO/GSM channels

-

Just as in the context of E1 cards, inbound links are forwarded to the Endpoint FreeSwitch. -

The context is pre-defined as follows, according to the file khomp.conf.xml: -

-
<param name="context-gsm" value="khomp-DD-CC"/> ;placas GSM
-
-
<param name="context-fxs" value="khomp-DD-CC"/> ; placas FXS
-
-
<param name="context-fxo" value="khomp-DD-CC"/> ; placas FXO
-
-

For these options, DD is the device number (two digits), and CC is the channel number (also two digits). There is also the SSSS format, which represents the serial number board. -

-
  • NOTE: In the KGSM board, incoming calls are always redirected to the "s" extension, since the GSM protocol does not identify the target number, only the originator - if not omitted. -
-

Priority settings on the FXS branches

-

On calls originated from an FXS branch, the Endpoint searches for a valid extension (digits sent) after the DTMF # or after the timeout (option fxs-digit-timeout). That search is done in the context defined in section <fxs-options>, or if no context configured, the search is done in context defined in context-fxs. -
-

-

Contexts for SMS messages (GSM only)

-

SMS messages are received by the Khomp Endpoint and forwarded to FreeSWITCH as a normal connection but no audio, which has some variables set with information received in the message - for more information on these variables, see the documentation of the variables of the Endpoint. This context can also be modified in the same way as the above contexts. -

The default value for this option follows (khomp.conf.xml): -

-
<param name="context-gsm-sms" value="khomp-sms-DD-CC"/> 
-
-

Where DD is the device number (two digits), and CC is the channel number (also with two digits). For example: -

-
<context name="khomp-sms-00-01">
-    <extension name="sms">
-        <condition field="destination_number" expression="^s$">
-            <action application="log" data="DEBUG KSmsType=${KSmsType}"/>
-            <action application="log" data="DEBUG KSmsBody=${KSmsBody}"/>
-        </condition>
-    </extension>
-</context>
-
-

Contexts for Khomp_PR channels (KPR)

-

For these cards, inbound links have a pre-defined context, as shown below: -

-
<param name="context-pr" value="khomp-DD-CC"/> 
-
-

In this case, DD is the device number (two digits), andCC is the channel number (also two digits). The name and format of this context can also be changed through the "context-pr" in the configuration file. -
-

-

Groups contexts

-

The section groups, in the configuration file khomp.conf.xml, can be used to define specific settings for certain groups of channels. -

This section is detailed in the section Endpoint Configuration. -
-

-

Using the bridge application

-

The bridge application is responsible for generating calls from the FreeSWITCH from a dialplan. This application can be used to generate calls from different Endpoints technologies, following a specific format to define destination, dialing options and define the communication Endpoint to be used. -

-

Fields relating to the Khomp Endpoint

-

When used for Khomp channels, the bridge string can have two, three or four fields separated by slash (/). Some example strings: - -

-
<action application="bridge" data="Khomp/B2L0/32625644"/>
-<action application="bridge" data="Khomp/*B2L0/32625644"/>
-<action application="bridge" data="Khomp/S0411/99991234"/>
-<action application="bridge" data="Khomp/Gpstn/99991234"/>
-<action application="bridge" data="Khomp/*Gpstn/99991234"/>
-<action application="bridge" data="Khomp/B2C58/32625644/category=4:orig=4855553232"/>
-<action application="bridge" data="Khomp/b0c9"/>
-<action application="bridge" data="Khomp/b0c1+b0c14"/>
-<action application="bridge" data="Khomp/r304"/>
-
-

In the first five examples, three fields have been specified; in the sixth, four fields are used; in the last three examples, just two are used. -

The fields description for the Khomp Endpoint: -

-
  • 1st field: Khomp: identifying the type of Endpoint in question; -
  • 2nd field: B2L0, S0411, Gpstn, etc: represents the Policy for channel allocation (detailed below); -
  • 3rd field: 32625644 and 99991234: the destination numbers (missing for calls to KFXS channels); -
  • 4th field: category=4:orig=4855553232: additional options, detailed below. -
-

NOTE: The bridge allocation string with only two fields is specific to the KFXS boards, where the destination is the channel itself. -

-

Policy for channel allocation

-

The policy for allocation of channels on the Khomp Endpoint can be specified in the bridge string itself or in the groups section (inside the configuration file khomp.conx.conf). To specify boards, links and channels, the following syntax is available (considering X, Y and Z as any numbers): -

-
  • bX -- search the channels on the board X, ascending order; -
  • bXLY -- search channel on the link Y from X board, ascending order; -
  • bXcY -- try to allocate channel Y from board X; -
  • bXcY-Z -- search for channels starting from channel Y to channel Z (inclusive) of board X, ascending order; -
  • BXcY-Z -- same as above, but descending order; -
  • sX -- search the channels on the board of serial number X, ascending order; -
  • sXLY -- search channel on the link Y from board of serial number X, ascending order; -
  • sXcY -- try to allocate channel Y from board of serial number X; -
  • sXcY-Z -- search for channels starting from channel Y to channel Z (inclusive) from board of serial number X, ascending order; -
  • SXcY-Z-- same as above, but descending order. -
-

To search for extensions of cardsKFXS according to the extension number, can be used the following syntax (whereas X and Y valid extension numbers): -

-
  • rX- search branch numbered X; -
  • RX- equivalent to the above; -
  • rX-Y- search from branch X to Y, ascending order; -
  • RX-Y- search from branch X to Y, descending order. -
-

The capitalization of the letter 'B', 'S' or 'R' defines the search order of the channels: if capitalized, order is descending; otherwise, ascending. -

As for the allocation of channels across groups, the following syntax is available: -

-
  • ggroupname - uses the string defined the group "groupname" in the configuration file (detailed in the configuration section of the Endpoint). -
  • Ggroupname - equivalent to the above. -
-

Grouping channel allocations

-

There are cases where you need to get more channels for a particular device or particular group of extensions. For this, there is an extension available in string allocation, with respect to the use of token sum (+) to concatenate multiple stringsbinding, as follows: - -

-
<action application="bridge" data="Khomp/B1L0+B2L0/32332933"/>
-<action application="bridge" data="Khomp/*B2+B3+B4/99887766"/>
-<action application="bridge" data="Khomp/S0411+B1L0/99887766"/>
-<action application="bridge" data="Khomp/Gpstn1+Gpstn2/99991234"/>
-<action application="bridge" data="Khomp/*gOperadora1+gOperadora2/98891234"/>
-
-

This grouping is available for the application bridge and on the specification of groups. The processing of allocation takes place from left to right - except when using cyclic channel allocation, whereall the specified channels are scanned simultaneously. -

-

Cyclical and/or fair allocation

-

Another way for allocation of channels is the cyclic and/or fair allocation, which chooses the channel that has completed the the lowest number of outgoing calls. This mode of allocation may be used by passing an asterisk (*) before the allocation string of channels (as can be seen in the section above, in the second and fifth examples). -

When started with an asterisk (*), other forms of allocation (increasing, decreasing, etc) are used to decide what channel will be allocated when there are two or more channels with less number of outgoing calls. -

-
  • WARNING: The use of fair and/or cyclic is recommended only for analog (KFXO), branches (KFXS) and cellular interface (KGSM) boards. E1 connections should allocate channels in one way (ascending/descending) from one side and the opposite on the other to avoid problems of double seizure (which may occur in R2/MFC signaling). Fair/cyclic allocation also costs more in memory and processor footprint, which tends to be a higher cost in E1 due to the higher number of channels (30 in each link).

    For these reasons, fair/cyclic allocations should only be used on signalizations where it can represent any real difference, like equalizing the charge costs of the lines, the total usage, or the number of connections received by each branch. -
-

Available options

-
  • orig: Sets the originator number, without changing the variable ${CALLERID(num)}. That is, the option orig serves only to pass a number of different source of${origination_caller_id_number}. If FreeSWITCH has already set the variable ${origination_caller_id_number}, which is the default behavior, Endpoint automatically uses this value as a reference to the number of origin, without having to pass any additional options.

    On the boards KGSM, is set to restricted, omits the number of origin. Example:
    -
-
- <action application="bridge" data="Khomp/b0/99887766/orig=restricted"/>
-
-
  • category: When set to a numeric value, sets the category of outgoing call to this value (available only in R2/MFC signaling); -
  • uui: When adjusted for a number and a string of text, separated by hash ("#"), sends a "UserToUser" to the other end before making the call - the first value will be the descriptor and the second one will be the message as the text (available only in ISDN signaling); -
  • ring_cadence: When set to a cadence name (listed in the [cadences] section), uses this for ringing FXS channels; -
  • ring: When set to two numbers separated by a dot ("."), defines the cadences to be used while ringing a FXS channel - the first time is the ringing time, and the second one, the silence time; -
  • ring_ext: When set to two numbers separated by a dot ("."), defines the extended cadences to be used while ringing a FXS channel, executed after the ring specification - the first time -
  • usr_xfer: Defines a group of DTMF digits to initiate a transfer between PBXes (using QSig or FXO FLASH, for instance); -
  • drop_on: When set to "message_box", "human_answer", "answering_machine", "carrier_message", "unknown" or a list them - separated by plus sign ("+") or dot ("." ) - drops the call when detect voice mail box, human answer, answering machine messages, operator messages, or unknown answer pattern - respectively. Available in digital signals (E1 links and boards KGSM). Additionally, the information service is reported to the user in the variableKCallAnswerInfo; -
  • answer_info: When specified (take no parameters), report answer information to the user through the variableKCallAnswerInfo -
  • pre: When set to a string of DTMF digits, uses these to pre-allocate an output channel in an analog PABX, dial the desired number of B below. Only available for signaling analog (FXO); -
  • pre_answer: When set (need no value), answers the channel before the connection is completed - allowing, for instance, DTMF tones to sent (useful for use in a DISA); -
  • output_volume: Sets the output volume of the link (ranges from -10 to +10); -
  • input_volume: Sets the volume of inbound link (ranges from -10 to +10); -
-


-

-

List of variables

-

Here's a list of variables available in the Endpoint: -

-
  • KDropCollectCall: When set before ringing or answer an incoming call, enables ("yes") or disables ("no", default) the drop of collect calls based on signaling received from the central public, double answer, audio tone recognition (can be defined globally); -
  • KR2SendCondition: When set to a numeric value, before the ringing an incoming call, adjusts the condition for this Endpoint to this value (available only on R2 signaling); -
  • KR2GotCategory: Adjusted by the Endpoint when an incoming call is received, with the category number of the caller (only available on R2 signaling); -
  • KR2GotCondition *: Adjusted by the Endpoint, available after returning from a call made by FreeSWITCH (bridge application). Has the condition of the remote end received when making the call (available only for R2 signaling); -
  • KISDNGotCause *: Adjusted by the Endpoint, available after returning from a call made by FreeSWITCH (bridge application). Has the ISDN "cause" code received when making the call (available only for ISDN signaling); -
  • KCallAnswerInfo *: Adjusted by the Endpoint, available after returning from a call made by FreeSWITCH (bridge application). Contains the service information identified to make the call (available only for digital signaling - E1 and GSM); -
  • KSmsDelivered: Adjusted by the Endpoint when sending a SMS message with the application KSendSMS, saying whether the message was delivered successfully ("yes") or not ("no"); -
  • KSmsErrorCode: Adjusted by the Endpoint when sending a SMS message with the application KSendSMS, containing the error code that happened when sending the message; -
  • KSmsErrorName: Adjusted by the Endpoint when sending a SMS message with the application KSendSMS, contains the name of the error or "None" if there has been no error; -
  • KSmsType: Adjusted for the input Endpoint in the context of SMS messages, defines the type of message received (can contain the values "message", "confirm" or "broadcast"; -
  • KSmsFrom: Adjusted for the input Endpoint in the context of SMS messages, sets the number of origin of the received message (available on types" message "and" confirm "); -
  • KSmsDate: Adjusted for the input Endpoint in the context of SMS messages, sets the date of sending the message (available on types "message" and "confirm"); -
  • KSmsSize: Adjusted for the input Endpoint in the context of SMS messages, contains the size (in bytes) of the received message (available on types "message" and "broadcast"); -
  • KSmsMode: Adjusted for the input Endpoint in the context of SMS messages, contains the encoding type of the received message (available on types "message" and "broadcast"); -
  • KSmsBody: Adjusted for the input Endpoint in the context of SMS messages, contains the text of the received message (available in types "message" and "broadcast"); -
  • KSmsDelivery: Adjusted for the input Endpoint in the context of SMS messages, containing the date of delivery of the message sent earlier (available in type "confirm"); -
  • KSmsStatus: Adjusted for the input Endpoint in the context of SMS messages, contains the status of the message sent earlier (available on the type "confirm"); -
  • KSmsSerial: Adjusted for the input Endpoint in the context of SMS messages, contains the serial number of the received message (available on the type "broadcast"); -
  • KSmsPage: Adjusted for the input Endpoint in the context of SMS messages, contains the page number of the received message (available on the type broadcast"); -
  • KSmsPages: Adjusted for the input Endpoint in the context of SMS messages, contains the total number of pages to be received (available in type "broadcast"); -
  • KUserInfoDescriptor: Sets/reports protocol descriptor of the User-to-User Information message (ISDN). -
  • KUserInfoData: Sets/reports data in the User-to-User Information message (ISDN). -
  • KFaxSent: Adjusted by the Endpoint when sending FAX with KSendFax application, and determines whether the fax was successfully sent ("yes") or not ("No"); -
  • KFaxReceived: Adjusted by channel when receiving FAX with KReceiveFax application, and determines whether the fax was successfully received ("yes") or not ("no"); -
  • KFaxResult: Adjusted by the channel when sending or receiving FAX with the application KSendFax or KReceiveFax (respectively), and defines the result of execution. -
-


-

-

Description of variables

-

Below, follows an explanation on how to use variables of Khomp Endpoint in the dialplan, to communicate and/or to receive information: -


-

-

KDropCollectCall

-

When activated, causes the Endpoint to drop Khomp collect calls through dual service (available for signaling 'R2 Digital' and FXO), through information available on the ISDN protocol and R2/MFC, or by detecting the audio call collect (available for any digital signage for E1, and GSM signaling). -

This variable is useful to filter collect calls to certain extensions, and must be set before making any type of answer - applications such as playback and bridge should always be executed after setting this variable, for example. -

For better functionality, is also recommended that no call status (ringback) is sent before this variable is set, so applications should be performed only after the correct setting of this variable. -

This variable can be set locally and globally, both to yes or no. The adjustment of global variable to yes will drop all the collect calls, unless the particular call is set to no - this allows the creation of a global filter of collect calls, with few exceptions. -

Enabling the variable in context default: -

-<context name="default"> -

-
<extension name="example">
- .
- .
- .
- <action aplication="set" data="KDropCollectCall=yes"/>
- .
- .
- .
-</extension>
-
-

</context> -

Enabling the variable in the global context, remembering that it must be configured in the file vars.xml: - -

-
<X-PRE-PROCESS cmd="set" data="KDropCollectCall=yes"/>
-
-

KR2SendCondition

-

When you receive a call, can be set before sending ringback by FreeSWITCH (ie, before the run FreeSWITCH applications answer, bridge). When used in signaling R2/MFC, this variable sets the condition for B to the numeric value desired. -

Exemplo: - -

-
<!-- Condition "NUMBER CHANGED" warns the caller that the number of B has changed. -->
-<action application="KR2SendCondition" data="3"/>
-
-

KR2GotCategory

-

When you receive a call, is set by the Endpoint with the category received from the number that originated the call. It is set in signaling R2/MFC, and can be found anywhere in the dialplan. -

Example: - -

-
<action application="log" data="DEBUG KR2GotCategory [${KR2GotCategory}]"/>
-
-

KR2GotCondition

-

Variable adjusted by the Endpoint, and available after returning from a call made by FreeSWITCH. Has the condition of B received when making the call. Available only for signaling R2/MFC. -

Example: - -

-
<action application="log" data="DEBUG KR2GotCondition [${KR2GotCondition}]"/>
-
-

KUserInfoDescriptor

-

Variable adjusted by the Endpoint in the context of entry, from information received by the ISDN network functionality through user-to-User Information. Contains the descriptor number of the protocol used by the other end, and usually contains the value '0 ', but this is dependent on application. -

For further information, consult the specification ITU-T Q931 (more precisely, the specification table 4-26). -

Example (working with the descriptor number of the protocol): - -

-
<action application="log" data="DEBUG KUserInfoDescriptor [${KUserInfoDescriptor}]"/>
-
-

KUserInfoData

-

Variable adjusted by the channel in the context of entry, from information received by the ISDN network functionality through user-to-User Information. Contains the actual data, which were received in the form of a string of text. -

More information about this feature, see the specification ITU-T Q931. -

Example (working with the data received): - -

-
<action application="log" data="DEBUG KUserInfoData [${KUserInfoData}]"/>
-
-

It is important to note that the variables are sensitive to the capitalization of letters (case sensitive). -

-

KCallAnswerInfo

-

Variable adjusted by the Endpoint. It is set in outbound connections, representing the type of answer performed by the other end. May contain the following values: -

-
  • "MessageBox" (*): detected mailbox of a cell phone; -
  • "CarrierMessage": message sent before the service provider; -
  • "AnsweringMachine" (**): answering answering machine; -
  • "HumanAnswer" (**): human service; -
  • "Fax": reported when a fax tone is detected. -
  • "Unknown": unknown type of care; -
-
-

(*) This type of service is detected by signals at certain frequencies that are sent before the call comes into a mailbox, and vary by operator. The algorithm captures most of the mailboxes, but can fail if there is not a clear signal, or if it is not within the standards most commonly used; -

(**) The difference between these two types of care depends on the specific configuration using the program k3lanswerinfoconfig, with the detection only based on heuristics and never with an accuracy of 100%. -
-

-

Console commands

-

List of available commands in the console for the FreeSWITCH Endpoint of Khomp: -


-

-
  • khomp channels disconnect : Disconnect one or more channels. This command sends a message directly to the physical channel of the card in question, requesting a disconnection. Use with caution; -
  • khomp channels unblock : Unlock blocked channels for input or output. Only available in digital signage via E1; -
  • khomp clear links: Clears error counters on the links; -
  • khomp clear statistics: Clears the statistics of channel connections, or statistics for a particular channel; -
  • khomp get : Gets the number of options Endpoint Khomp; -
  • khomp kommuter : Enables or disables kommuters connected via USB on this machine. Only accessible when the configuration "kommuter-activation" is set to "manual". -
  • khomp kommuter count: Gets the amount of kommuters connected via USB on this machine; -
  • khomp log console: Sets options in the console logs; -
  • khomp log disk: Sets logging options to disk; -
    • khomp log console and khomp log disk have auxiliary options No, which reverses the selection of messages, and just, which generalizes the choice. Examples: -
      • khomp log disk just commands events (Enables only logging to the disk of commands and events); -
      • khomp log disk no commands (Disable logging to the disk of commands sent to board); -
      • khomp log disk warnings (Enables also logging to the disk of warnings from Endpoint). -
      -
    • More information on options for the log command, type: "help khomp log disk" or "help console log khomp". -
    -
  • khomp log rotate: Rotate log files from the Endpoint; -
  • khomp log status: Shows log messages currently being written to disk and displayed on the console; -
  • khomp log trace isdn: Enable Debugging ISDN signaling; -
  • khomp log trace k3l : Enables debugging low-level API K3L; -
  • khomp log trace r2 : Enables debugging low-level signaling R2/MFC; -
  • khomp reset links: Sends a reset command for a specific E1 of a particular card; -
  • khomp revision: Shows version number and revision of the Endpoint; -
  • khomp select sim: Select the SIM card, available on the boards KGSM; -
  • khomp send command : Sends command API K3L directly to the board (only for debugging, may compromise the stability of the system if used improperly); -
  • khomp send raw command : Sends a command directly to the DSP board (only for debugging, may compromise the stability of the system if used improperly); -
  • khomp set : Sets various options of the Endpoint Khomp; -
  • khomp show calls : Shows states for calls, may also listing specific channels or boards; -
  • khomp show channels : Shows the status of the channels Khomp and may also list specific adapter; -
  • khomp show links: Display states of E1 links available. -
  • khomp show statistics : Shows the statistics of channel connections, or statistics for a particular channel; -
  • khomp sms : Send an SMS message for a given number, using KGSM channels; -
  • khomp summary : Prints a summary of system boards and their features; -
-


-

-

Additional features

-

This chapter discusses additional features of the Endpoint, related to the special features present in certain signs. -
-

-

Aplicações (applications) e canais

-

The Endpoint Khomp, and to record a type of communication channel "Khomp" also records the following items: -
-

-

"KUserTransfer" application

-

Performs the transfer process from the current channel number for the extension using the signaling protocol QSig (Single Step Call Transfer) for boards configured with E1 ISDN signaling (ISDN), or use the FLASH command for FXO. -

The syntax follows: -

-
 <action application="KUserTransfer" data="number[,options])"/>
-
-

Example: -

-
<action application="answer"/>
-<action application="KUserTransfer" data="2345"/>
-
-

The fields have the following meanings: -

-
  • number: Number where the link should be transferred. -
  • options: Sets the transfer options to be used, which are: -
    • N: Wait until the channel is disconnected. -
    -
-


-

-

Application "KSendSMS"

-

This application has the function of sending SMS messages through the boards of KGSM Khomp using modules and SIM cards in the board to do so. The syntax of the application is as follows: -

-
<action application="KSendSMS" data="resource | destination | message" />
-
-

Each field can be summarized in: -

-
  • resource: The following is a syntax identical to the allocation of channels Dial application, and defines what modem use; -
  • destination: Number where to send the message, may be preceded or succeeded by! to request a confirmation of transmission; -
  • message: Text (without quotes) to be sent todestination. -
-

After sending the message, the variables KSmsDelivered and KSmsErrorCode will contain the result of the post. For more information about these, please consult the section on variables used in the Endpoint. -

Examples of use of this application are as follows: -

-
  • Sends "Test message." phone for "99887766" using the modem "1" (second modem) card "0": -
-
<action application="log" data="DEBUG Sending SMS ..." />
-<action application="KSendSMS" data="b0c1|99887766|Test message" />
-
-
  • Sends "Test message." phone for "99887766" using the first free modem card "0", and checks the return shipment: -
-
<action application="log" data="DEBUG  Sending SMS ..." />
-<action application="KSendSMS" data="b0|99887766|Test message" />
-<action application="log" data="DEBUG Sent? ${KSmsDelivered}" />
-<action application="log" data="DEBUG Code: ${KSmsErrorCode}" />
-<action application="log" data="DEBUG Desc: ${KSmsErrorName}" />
-
-
  • Sends "Test message." phone for "99887766" using the first free modem card "0", or the first free channel board "1" (if no free channel at the first sign): -
-
<action application="log" data="DEBUG Sending SMS ..." />
-<action application="KSendSMS" data="b0+b1|99887766|Test message" />
-
-
  • Sends "Test message." phone for "99887766" using the first free modem card "0", requesting confirmation: -
-
<action application="log" data="DEBUG Sending SMS ..." />
-<action application="KSendSMS" data="b0|99887766!|Test message" />
-
-


-

-

Application "KEchoCanceller"

-

This application has the function to enable or disable the echo canceller channel. -

-
<action application="KEchoCanceller" data="action[,options])"/>
-
-

Where: -

-
  • actions: It is on to enable the echo canceller, and off to disable; -
-

Example usage of this application: -

-
<action application="KEchoCanceller" data="off"/>
-
-


-

-

Application "KAutoGainControl"

-

This application has the function to enable or disable the automatic gain control in the channel. -

-
<action application="KAutoGainControl" data="action[,options])"/>
-
-

Where: -

-
  • actions: It is on to enable the automatic gain control, and off to disable; -
-

Example usage of this application: -

-
  <action application="KAutoGainControl" data="on"/>
-
-


-

-

Application "KDTMFSuppression"

-

This application has the function to enable or disable the suppression of DTMF channel. The syntax of the application is as follows: -

-
<action applicatin="KDTMFSuppression" value="action[,options])"/>
-
-

Where: -

-
  • actions: It ison to enable DTMF suppression, and off to disable; -
-

It is important to note that when disabled suppression of DTMF, DTMF tones are passed inband and will not be reported to FreeSWITCH. Thus FreeSWITCH does not recognize the DTMF tones, which may result in malfunction of applications such as IVR. -

Example usage of this application: -

-
<action applicatin="KDTMFSuppression" value="off"/>
-
-


-

-

Application "KSetVolume"

-

This application has the function to adjust the volume of incoming and outgoing channels Khomp, and its syntax as follows: -

-
<action application="KSetVolume" data="<volume>"/>
-<action application="KSetVolume" data="<output-volume>|<input-volume>"/>
-
-

Where the fields have the following meanings: -

-
  • volume: Sets the volume of input and output (-10 to +10); -
  • output-volume: Sets the output volume (-10 to +10, "none" for no change); -
  • input-volume: Sets the input level (-10 to +10, "none" for no change). -
-


-

-

Application "KAdjustForFax"

-

This application has the function of setting a channel for receiving Khomp signal FAX/modem, optimizing the communication channel for data traffic. Syntax: -

-
<action application="KAdjustForFax" data=""/>
-
-

This application does not receive parameters. Example of use: -

-
<action application="KAdjustForFax" data=""/>
-
-


-

-

Application "KSendFax"

-

This application has the function to send faxes using digital channels or FXO connections Khomp in pre-established, and its syntax as follows: -

-
<action application="KSendFax" data="<file>[:<file2>[:...]][|<faxid>]"/>
-
-

This application requires a license purchased separately to be used in digital (non-FXO) channels. Fields have the following meanings: -

-
  • file: Files to be sent to the fax should be encapsulated in TIFF format and have a resolution of 98, 196 or 392 dpi; -
  • faxid: the fax number. If not specified, the value is obtained by the id of the link, and if this also is not valid, the fax number will be set as default in K3L. -
-

Example usage of this application: -

-
<action application="KSendFax" data="/tmp/fax.tif:/home/root/fax2.tif,1234"/>
-
-


-

-

Application "KReceiveFax"

-

This application has the function of receiving digital channels or fax using the FXO Khomp, and its syntax as follows: -

-
<action application="KReceiveFax" data="<file>[|<faxid>]/>
-
-

This application requires a license purchased separately to be used in digital (non-FXO) channels. Fields have the following meanings: -

-
  • file: Name that file will be assigned to incoming fax. -
  • faxid: the fax number. If not specified, the value is obtained by the id of the link, and if this also is not valid, the fax number will be set as default in K3L. -
-

Example usage of this application: -

-
<action application="answer" />
-<action application="KReceiveFax" data="/tmp/fax.tif"/>
-
-


-

-

Channel "Khomp_SMS"

-

This communication channel is used to receive SMS and create incoming links in FreeSWITCH for each message received. This channel does not have any treatment or audio processing, and is called with five variables set: -

-
  • KSmsFrom, containing the number of source who sent the message; -
  • KSmsDate, which sets the date/time of receipt of the message; -
  • KSmsSize, representing the message size (in bytes); -
  • KSmsMode, containing the encoding used to transmit the message; -
  • KSmsBody, that is the message itself. -
-

The FreeSWITCH dialplan processing can be used to store this message in a database, run any application, among others. However, the only action accepted by this channel is shutdown (Hangup), so this incoming call should be considered a special dialplan execution without audio streams or channel allocation. -
-

-

Channel "Khomp_PR"

-

This communication channel is used to receive calls on boards passive recording (KPR family and KFXO-HI), creating incoming links on FreeSWITCH for each incoming call. This channel allows only receiving audio captured the linkby not allowing both the transmission of audio signalings as the control. -

The FreeSWITCH dialplan processing can be used to record data on this link in a database, perform some special application and/or some recording application (such as record), among others. However, the only action accepted by this channel is shutdown (Hangup), so this should not be considered a common call. -
-

-

Codes and meanings

-

This chapter presents the codes present in the channel Khomp and their meanings, used in both events as in the AMI console commands: -
-

-

Channel state

-

Reflect the state of the channel on the board. In the case of E1 links, the state may have one or more of the following: -

-
  • Free: the channel is free; -
  • Busy: the channel is not free (or occupied, or failure); -
  • Outgoing: the channel has an output connection; -
  • Incoming: the channel has an input connection; -
  • Locked: the channel is blocked; -
  • Outgoing Lock: The channel is blocked for outgoing calls; -
  • Local Fail: The channel has a fault (at this point); -
  • Incoming Lock: the channel is blocked for incoming calls; -
  • Remote Lock: there is a remote lock (at the other end) in this channel. -
-

In the case of a FXS channel, the state is defined by one of these values: -

-
  • On Hook: the phone connected to this channel is on-hook or disconnected; -
  • Off Hook: the phone connected to this channel is off the hook; -
  • Ringing: the channel is being called; -
  • Failure: the channel is in failure due to communication problems between the central and the plate. -
-

In the case of a GSM channel, the state is defined by one of the following values: -

-
  • Idle: the channel is free and available for calls; -
  • Call In Progress: the channel is busy on a call; -
  • SMS In Progress: the channel is busy sending / receiving SMS messages; -
  • Modem Error: an error occurred communicating with the modem channel; -
  • SIM Card Error: The SIM card is not present or is not inserted / detected correctly; -
  • Network Error: an error occurred while communicating with the network; -
  • Not Ready: The modem is initializing the channel. -
-

And in the case of an FXO channel, the states are as follows: -

-
  • Disabled: the channel is disabled; -
  • Enabled: the channel is enabled. -
-


-

-

Call state

-

Defines the logical state for each channel, which can be: -

-
  • Free: the channel is free; -
  • Incoming: the channel is receiving a call; -
  • Outgoing: the channel is making a call; -
  • Failure: the channel is in fault. -
-


-

-

FreeSWITCH call states

-

Directly reflects the call state controlled by FreeSWITCH, which can be: -


-

-
  • new: Channel is newly created; -
  • init: Channel has been initialized; -
  • routing: Channel is looking for an extension to execute; -
  • execute: Channel is executing its dialplan; -
  • ex_media: Channel is exchanging media with another channel; -
  • cs_media: Channel is consuming all media; -
  • hangup: Channel is flagged for hangup and ready to end. -
-


-

-

GSM Codes

-

The following numeric codes are reported: -

-

SMS codes (SMS causes)

-
1	Unassigned number
-8	Operator determined barring
-10	Call barred
-21	SMS transfer rejected
-27	Destination out of service
-28	Unidentified subscriber
-29	Facility rejected
-30	Unknown subscriber
-38	Network out of order
-41	Temporary failure
-42	Congestion
-47	Resources unavailable
-50	Facility not subscribed
-69	Facility not implemented
-81	Invalid SMS transfer reference value
-95	Invalid message
-96	Invalid mandatory information
-97	Message type non existent
-98	Message not compatible with SMS protection state
-99	Information element non existent
-111	Protocol error
-127	Interworking
-128	Telematic interworking not supported
-129	SMS type zero not supported
-130	Cannot replace SMS
-143	Unspecified TPPID error
-144	Alphabet not supported
-145	Message class not supported
-159	Unspecified TPDCS error
-160	Command cannot be actioned
-161	Command unsupported
-175	Unspecified TP command error
-176	TPDU not supported
-192	SC busy
-193	No SC subscription
-194	SC system failure
-195	Invalid SME address
-196	Destination SME barred
-197	SM rejected duplicate SM
-198	TPVPF not supported
-199	TPVP not supported
-208	SIM SMS storage full
-209	No SMS storage capability in SIM
-210	Error in SMS
-211	Memory capatity exceeded
-213	SIM data download error
-255	Unspecified error
-300	Phone failure
-301	SMS service reserved
-302	Operation not allowed
-303	Operation not supported
-304	Invalid PDU mode parameter
-305	Invalid text mode parameter
-310	SIM not inserted
-311	SIM PIN necessary
-312	Phone SIM PIN necessary
-313	SIM failure
-314	SIM busy
-315	SIM wrong
-320	Memory failure
-321	Invalid memory index
-322	Memory full
-330	SMSC address unknown
-331	No network service
-332	Network timeout
-500	Unknown error
-512	Network busy
-513	Invalid destination address
-514	Invalid message body length
-515	Phone is not in service
-516	Invalid preferred memory storage
-517	User terminated
-
-

Call codes (call causes)

-
1	Unallocated number
-3	No route to destination
-6	Channel unacceptable
-8	Operator determined barring
-16	Normal call clear
-17	User busy
-18	No user responding
-19	No answer from user
-21	Call rejected
-22	Number changed
-26	Non Selected user clear
-27	Destination out of order
-28	Invalid number format
-29	Facility rejected
-30	Response status enquiry
-31	Normal, unspecified
-34	No circuit channel available
-38	Network out of order
-41	Temporary failure
-42	Switch congestion
-43	Access information discarded
-44	Requested channel unavailable
-47	Resource unavailable
-49	QoS unavailable
-50	Request facility not subscribed
-55	Call barred with UG
-57	Bearer capability not authorized
-58	Bearer capability not available
-63	Service not available
-65	Bearer capability not implemented
-69	Request facility not implemented
-70	Only restricted bearer capability available
-79	Service not implemented
-81	Invalid call reference value
-82	User not member of UG
-88	Incompatible destination
-91	Invalid transit network selected
-95	Invalid message
-96	Missing mandatory information element
-97	Message type not implemented
-98	Message incompatible with state
-99	Information element not implemented
-100	Invalid information element
-101	Message incompatible with state (2)
-102	Recovery on timer expiry
-111	Protocol error
-127	Interworking
-
-

General codes (mobile causes)

-
0	Phone failure
-1	No connection to phone
-2	Phone adaptor link reserved
-3	Operation not allowed
-4	Operation not supported
-5	Phone SIM PIN required
-6	Phone FSIM PIN required
-7	Phone FSIM PUK required
-10	SIM not inserted
-11	SIM PIN required
-12	SIM PUK required
-13	SIM failure
-14	SIM busy
-15	SIM wrong
-16	Incorrect password
-17	SIM PIN2 required
-18	SIM PUK2 required
-20	Memory full
-21	Invalid index
-22	Not found
-23	Memory failure
-24	Text string too long
-25	Invalid character in text string
-26	Dial string too long
-27	Invalid character in dial string
-30	No network service
-31	Network timeout
-32	Network not allowed
-33	Command aborted
-34	Number parameter instead of text parameter
-35	Text parameter instead of number parameter
-36	Numeric parameter out of bounds
-37	Text string too short
-40	Network PIN required
-41	Network PUK required
-42	Network subset PIN required
-43	Network subset PUK required
-44	Network service provider PIN required
-45	Network service provider PUK required
-46	Corporate PIN required
-47	Corporate PUK required
-60	SIM Service option not supported
-100	Unknown
-103	Illegal MS #3
-106	Illegal MS #6
-107	GPRS service not allowed #7
-111	PLMN not allowed #11
-112	Location area not allowed #12
-113	Roaming not allowed #13
-132	Service option not supported #32
-133	Registration service option not subscribed #33
-134	Service option temporary out of order #34
-147	Long context activation
-148	Unspecified GPRS error
-149	PDP authentication failure
-150	Invalid mobile class
-151	GPRS disconnection TMR active
-256	Too many active calls
-257	Call rejected
-258	Unanswered call pending
-259	Unknown calling error
-260	No phone number recognized
-261	Call state not idle
-262	Call in progress
-263	Dial state error
-264	Unlock code required
-265	Network busy
-266	Invalid phone number
-267	Number entry already started
-268	Cancelled by user
-269	Number entry could not be started
-280	Data lost
-281	Invalid message body length
-282	Inactive socket
-283	Socket already open
-
-


-

-

Troubleshooting

-

In this section, errors and their most common solutions are presented. -

-

Error during installation of kernel module

-

During installation of the Endpointof Khomp may occur the following messages: - -

-
K3L: WARNING: Unable to find a module for [...]
-
-

or - -

-
install: ******  THE KERNEL MODULE HAS NOT BEEN INSTALLED: *******
-install: 
-install: ** Please, untar the file kpdriver*.tar.gz located in: **
-install: **                 '/usr/src/khomp/'                   **
-install: **             then check the README.txt               **
-install: **  for knowing how to proceed with the installation.  **
-
-

In this case, you must compile the drivers manually to your system. Proceed to the item below for more information. -
-

-

Compiling the drivers and starting the services

-

Just follow to the directory /usr/src/khomp, unpack the file "kpdriver_2.0.0XX.tar.gz", and follow procedures described in the file README_en.txt. -

After performing compilation and installation of the module, just load it into the system, configuring the boards and start the server processes Khomp. -

To load the kernel driver, you must run the following command: - -

-
# /etc/init.d/khompdrv start
-
-

To set up the boards, in turn, must run the command: - -

-
# khompwizard
-
-

This will run a setup wizard that will ask the signaling used in the system, as well as other parameters of use of the boards. -

If necessary configure other additional parameters you can use the following command: - -

-
# k3lconfig
-
-

This configurator, in turn, shows all possible options for card configuration. The parameters that are not configured automatically assume the default values, and are compatible with most systems. More details about this program can be obtained from the section number '2 '. -

-
  • ATTENTION: To start FreeSWITCH®, it is necessary that the Khomp board is configured and all modules are running (as shown above).

    If you want to run the system without the Khomp board, you need to configure FreeSWITCH for it does not load the module Khomp. To do this, open the /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml and comment the line:
    -
-
 
-<!-- <load module="mod_khomp" /> -->
-

-

When the board Khomp is properly configured and loaded modules khomp (explained above), remember to uncomment this line in the file. -

Finally, to load the server process, simply run the following command: - -

-
# kserver start
-
-

After performing these procedures, the Endpoint is already operational, and FreeSWITCH can now be loaded. -
-

-

Setting up special parameters for audio or signaling

-

To set specific parameters of timing and/or signaling, you can use the program "k3lconfig": simply select the card you want, and options of the boards will be presented, divided into sections and subsections for easy access. It is not necessary to effect the configuration of all parameters: default values are assumed, if not configured. -

To adjust the signaling link, simply - after selecting the card - enter the "Options signaling, and then in" Signs of the line. " To choose a particular signaling, just use the direction keys (arrows) to select it, press 'space', and confirm the option by pressing 'Enter' on the "Confirm" button. -

Finally, to save the modified settings, just exit the program: it will display a window with options to save the changes made or not. -

Please not that the following options are required to be unchanged from the defaults: -

-
  • Automatic echo cancellation; -
  • DTMF suppression; -
  • Automatic Gain Control (AGC). -
-

These options are controlled by Endpoint and should be disabled in 'k3lconfig' (the default configuration). -
-

-

Automatic load of services and kernel modules

-

If the loading of kernel module or Khomp services startup is not performed automatically at startup, you can perform this installation manually, creating a link for the scripts /etc/init.d/khompdrv and /etc/init.d/kserver in the system startup directory. -

In the case of Debian-based distributions the script for loading kernel modules would be linked within the directory /etc/rcS.d, while the services loader would be linked within the directories /etc/rc2.d, /etc/rc3.d, /etc/rc4.d, /etc/rc5.d as follows: -

-

-
# ln -s /etc/init.d/khompdrv  /etc/rcS.d/S19khompdrv
-# ln -s /etc/init.d/kserver   /etc/rc2.d/S20kserver
-# ln -s /etc/init.d/kserver   /etc/rc3.d/S20kserver
-# ln -s /etc/init.d/kserver   /etc/rc4.d/S20kserver
-# ln -s /etc/init.d/kserver   /etc/rc5.d/S20kserver
-
-

Please check the rules of your distribution to initialize the services in accordance with what is expected by the start of it. -
-

-

Apêndice

-

This section presents useful informations about Endpoint and related components. -

-

Arrangement of installed files

-

The directories created/modified in this facility are: - -

-
/etc/init.d/                -- Startup scripts;
-
-/etc/khomp/                 -- Firmware files and settings;
-
-/usr/local/freeswitch/conf/ -- Settings for FreeSWITCH and Endpoint;
-
-/usr/doc/khomp/             -- Docs for the boards, Channel, and utilities;
-
-/usr/sbin/                  -- Utilities and server processes;
-
-/usr/lib/                   -- Shared libraries;
-
-/usr/local/freeswitch/mod/  -- Endpoint module;
- 
-/var/log/khomp2.1/          -- Log directory for K3L and Endpoint;
-
-

The script /etc/init.d/khompdrv is responsible for loading modules kpci9030.ko and kpex8311.ko in the kernel, which should be carried out automatically at system startup. In case of problems, check the Troubleshooting section. -


-

For more details: http://www.khomp.com.br -


-

\ No newline at end of file diff --git a/src/mod/endpoints/mod_khomp/docs/User_Guide.pdf b/src/mod/endpoints/mod_khomp/docs/User_Guide.pdf deleted file mode 100644 index a0645460e5a05443c2026f07f4307206db8a1ed3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464991 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%0AQ`KcxHBBInoN2Y3hGdY&X#;|ywcIhdFcXEMD< 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 d6Bob3YyqPQTm;gcTc1{rhli!mMkR-95&RHvH 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

rHqf!>p+g{w=y2|cXYWEwaL@Vtvgw0mxbOPf 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%0AMyMkG+;e&X{fstALr6cO^p&k#b(}18D8Es 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

4N9o9YksJcFhkbRmn9Aq0}7&QlxD#;o2PZ6 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

34vj4w8=|;Ho>j5 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

K}<)OltaC`xbyGLK!w+Bth+Qn5edc5f} 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 z z2-nfD#P)SfR{To8axV48s+$w9gqtW|VO(*Ra@LVHyBvF@I5NoAgoW`li;}MKLMZKo zhU!T@k0;oT&FusYH|*{`bF~uf{=JG-7Y2r*bL4`s_NSVJFYVck`~5 zFquFoWhqgz*TPdLmpxxkBo&Dc^r6Ji@(p0$oiHr^Vur+K`zUIvy=ZO;)kJ(q-$?dS zihpA%v5tK0ioCem&Kr%MN8exaQ(IU|m%c|pWQ!IqCCBW??7v2FKMfplCu#K{!*mG) zqeF)KmO+{rvr6f#HEGNHMT^oH)-T*>+_r_m=(pnb!hE<*&9obe!!T3JUpPS2ZtaD? zLPSP;u^J$B04$}rFc_LD7#tgpxxLI2m_3>+B#q;^8nu8>@9v4FdL$4A3L0v;j4W^I zB0nj}z>0>3MnRjn|2CP5NsS{>TWMmOK1}JR<@CDmtu7`(W0m@SN*US+nx&3=xzxGW zA$G%Rbym-;?!{-mAn@ji0bjZqBOmcTh_UtoO~^pm+}mO;?^ME3veM?Z{NvspN};Cn=K*{2-50W7XDcNVot_L+&T(l=OZ++3VE0ON$J8zx+AlhHvK6 zyA!Lni{#%gY`fjV_nReZB_$?c!>%>IV0f8*HUo1@mOBG|=~B5ylXIZw{uI@9&;A-Y zSLHeP*oqa?Y};zD-I5MS2(~rm_)=j_o7MjlBqLM>` zCVkE7rj(->cX`B>S*kz#?B0;fW>=3D>Y^$INAbNuND^!g+Yqz&YaJetE)Y@ajYC`-Nn@+#=Rzzp(Pf`b|b*tYN6C7$cbJHXH z(ooV)jt;ilJ3L}sF1Qi+SN|cwf$mKF&l7RjUkd%dorwQw`u(p}r2lOqekT3-pEj~s zPmjtbI+OksDXN)`u-ta)%=xe`rq(N?(_j;wN%Pr1nW|W8X-bnI09!c`OpCtg71Xml zu%;>_bDPwFvylG+d8o*^zvXIa*uEWo@^xNW4!=eHN1_(%fuTL-tFeun^eGfR`W6hx zVMiP5E7XYt?&EhWR0+PI?%3P~3wh{SMoJnKO%`A^fmpI+N=Opr7^;{ApD5&`JdhKS zRq$7Exr-m$9!WDT%MlimY)F-^^blJ+xw)l&p;w(N#g|glK#npn!{u$q=fmDDnr5-m5Eu>SAm{@AR1x zGP0;|F&WQ3)=+l&@F}Oh$j!{{3kjR-y1fpQ&GneFZMVIdj_Kg3eaEd=or_jOB+P6# z!eqU$Cw-=?-e5P)C=@;{-L2^o{qW^#>1QPxhWTwYTtf{=8n2l|-n*h(;K!byEFG#f zKOW;|(BPLgyS7{riDurvTr45vR)|$~QGwq`v|MHp3Gt%z4btjE&b`0~4vWFPPcQ_S z*daHigt7ezo*=s1RLj@8>G6f|?l+p)7jItauOywr$&dJu|T}6SMPXzwgD{jlF-ty>TNl&+lZO%y#V#j(|=2gpz_ zel7pwPVkEStT9$%7G01u?4_Q8y*GuK-Y+~#jn&;_Y=l}CH?8%8A&V9{jK`6#5U5yW zRFOM33NmCA;-sCk^XFYt`V?pXSxV$h(P2J8|E%ph@2}42_BQq=hHqFZ#US|xu@3va z0zxtCql(H1aJI@Abe-TJWjK8^zmGobL!h0almL|KQ;ZhADe%(vh=eS;2p2>GT|*r* z0YX*=Vw}3s-ZONnjZ$V{v{FBEal@N)IMkXe73Ms$XJl_n86hOVHa~lKK3|?At7KLP zsyWpoIh9^Z9>|k27(|HrtfR_dKN7Q$CI+5-u80QgVlvZF|f;M-Q}? zY)KnSpNLF2fsg4>O*-xUNXU^u_%ZVBB8^@&RGM#$ZxD{Kb$?XOoba^WJ_;QEtur2c z;&s%D_RjwBCw>Dywb3c=OEUS%^Z{m&GQ>9`L=f`hb@XK`06|x+g!~l5rNskMxpRAn zgBSMn#?|X=*Lvy-(hxoh2fGhhzt`+;WHK8kKi;ro?``mzC76=zfinKulu;+Y2N{2Bdl z1HkqJ!80J$MGbSDr9aXmiED)OhKNGL&k=5^F`y*SC?s+&Kz;Hl6p|7KH3%cG5b0nB zz01{*T7SM^Yd(3m3VQ6{n#l;#EhGh+{!Eh3`g(DGI4z2B?L^xi+NFeJH)eaiH~{li z)|iCha8W=&yw8&myP872Ri0f5(K$I!K|SL62qAHsopioo_?abZ>$zLBTBK%nn(5`8 zv32E2lElN>@lY)DXk4`c_#4Ix<#V~3UYnp_Sd z%v@=GHIs{dpCeIz<(pgAC(E=LGVE5cOF}_`6-=!ny#ac1Ww9~AWhlu_+26@oWO83` zGS@~wywuDR?a^gJv@@yQl|5&(C?{PRR6{ac3Hkies#ts2^1mO8T+)uzj(6^)o*c+g63@NRFCFfUAJJHm|xge zpSsgI{QiqEnnvD*F_cq?(^T`j>HhU}SpRB?I4!JXmVym?E@G!3=;TRSR~zR>m^>2A zpb6ol={~L8l<*l@*fGS;lBeTyd&^dRD(mYVwc$X$Q_Iin(UMXLt`p6ZynU@^{4%g8 zce)qkiXeJ>`tfCjorlUM2yga#k@iMZW|v75LYH6co_%)M!Fr*rpu(5F&nYExLB3n+ z31rs%{tOLZ_u>ZXhiujHzt-spS7*)lnjkwK)6Zc(+#RB#qS-Y4CrEVAiI|%!VBd`# zZBBIo>5X)s2|!1=*uD0#9)^E3O-@ZuAcq4PrS^caF7084Vv0z!JR?As(gS4P(#LMSQpezE?zA*5?z!A}! zOoxS7SAm4mf*&Tiq|B{~Ys^K`JJ~z9eD)m2vK}KDIObKqLuSJeH^!cDcvM7A80Uys zvAmy2rAQ5pZbr?(3`~L*{p7T1s-%J8*-V#^ftyMV_Y;B;$VG@{JQ^Q>#$tNRgxmXD zlTit6w~Hr{mc%X@s#KJ01-_Q-hLT8_kAN#evVBVO-D>zNuu7{g6e1*bo8Dm*1v-%$ z7fPzwxqygcglbDYe-cS{Vd8L#x|*nAwifWUR#jV2OEky}9z|*f?zIMI>UAhE zW8yOi)>)-c7SO!kNgj%oG_DQL)(1;?RQr{tQ(6~j=zPE)1oj!@?fI~Bm^~Dv!lgGV zqNC;{1&7RX=k7CEo#PyNH#x_Bae7Sz#6F^0ed&FFXenA4|=Om z+EOQn!RnhB%v_SqBukX3(1H8O#X8}QVGFx$kpt#E zF|?>(aKxkCR~lUza~#$drI{z^(w~B^Ta_r-k8=r$X#c%q$Jus)F)wU06aYDtF05q zU3WRzj*)VdRO9@s*O;?&jW<$Q`^5Q}DFj3Jahz{WiE*itWMw_1^D7gr#t+A9W(bjl zlBV{pYg5R5yeqNCYMz*(AkC?rRNJe>0fYk248yl6D%vxzQ0o_Ba<(4hM-;V{_9XyoVgFa&v&87!7sC5WbO{^pq-;Y2CrZzI`gF)-;2(KOC zko<&x5|7+>pf;T zuO}6#dwHc&-;ZY)F|o!5h-%*OZ+-(~ z<7s1TeN}mA1n&`gaotQo zmQR#ad%D(M+tT__0J ze0aWj%_@@BqoO&$-wR&?A9E?h!V8f;C*WMgr{i4tnT}FdAX^SKgm8*WaOBpjncwrH5L|gw#Z`pd#WCG+D3NYPjAYA%@d8wv`71?LaG`aHG@>{SwQe zZ~m3J<+{TDh}tuoh%03o?+9SsCXu^w&w(qc81)Dn&qC}KfxUA4H6$y{TJ&R#{=lYZ zE(6~tA_B3-V)#<31z(K>Glwy)YecdqZ1qk3m2Hjwq7}dWqo?$3gdtRAXt4!<1xIrY zfPr@=d|uFi6t#iMZ&mC37^88DH(MVW5MC78BN)SR-w#B!R@tNmLI}QJCijJpvvRlovt|#fYTZYd?=T{>!B=;NaB2I7} z1n{}1Ch+>iVLcLA5OMwa{u&gvPbwz2+U1gfA`)M`xE0yCUSRw+R>2-;=)-|^8nhw- z0JoV5Kk`By`fofflJ^)lMzmuT-PhsUCHoiFA`3MSCI|L2B-YF#HOv5uiQJx@8af}K zDy}UdZj(-VPTyU2?y?}uBjK3pW+8=l%+uwZkAb6lmE+k}tkhts@*urgzE!a56K*3* z9uea7ax9~F92RsOZiKeSOCCGm8I;Xd@Mlm9E{e%&Xn@2(Ei6Nl??+xkwt&_88Wd+3 zW`R}<({st4LdjUwoIDOI3OecTC$0Z7`2_BEg9h!E%ZClLt39Z<$R@-~m^QeC|3RWS z_PPQUZo-Hq+V@}xSLFg@h{aqA(;_$k`Mtcfm&x#LS`|htFHVB!Yv@G|$a3>=w;+1F zM7Updkh-*1N|*<;O;aZJh9smBHM?xZja6U{mn>Ry4JZ?cY7!?UmPQMw*ujO}FKyT` z><+Dn>c|S1^~)|iZ@!LsyWe(44w>Ql!eZ@$CJ~;_GwMLuqL7 z&@Gp#6FAo4!a~65!^)WFlLUhmQ3uM0l|`|;+lr6?GgjL8b)K!0uQ+0etlnb^%|4Ab zLs-Ba@e6`>QU)E@s=vd%=i!0QBy?$cyd*AWa>lqEmw2{syy9_#k!s-MgEF~O#P6Iy zbAlQFZzb;nKafx$>?N#(0WC(`^UfR=LP8;V%H&P`w}j0_y*idFF5NH2)2v+HKUgftPWqDirjFy$2)odcUMgw? zlwkT^z0zp}UTU&+bn)X>g0y3P)ZpZRZE?NNb6i{V;{h*{cXGFZUuQby{<_w~Uh@eD zbDlbN*oL-+NQ#ZOaR80-RZS${YWM*(V^|KVZ7rlhGP+sqML4zN$AV78DWx_s3Mwy$ zS|3MKeq&eIi$3Q1u{GS5=1gYU+}g@eh?5$X!+>KldKw@=qPojo^Icd1A{BEtGMRWR z$1;MN0KTARmfdgIx;C9Yux2kRa`1?E%rNza%R9O#FkR_K0{E6;eEA_$NQG=on`2xB zB(|@FkOppiYbIlAOAi01yG#UyNxCmkO#Kcx7UKdIR~*;37kWgY1B%%VuQ=Fg;XMh1 z8$CVs6X2YYhW7!x?GO0nVIWcGC4FHf`N^@E)T9eqz9M_i-Dhtm(4m)x02$8;7!S3X zbQIZH|BCX;jcAh8LzMNocA+*1d#{W2O?7Qt{OJQ9#{4i`8tre1=1*p-V8YxMwfbi* z^V|lbBC`7+#ry}j2dB6wjNVhehiv`Ngm%la2V|a%7RxLGE=z$|L9kY)Dj-f{&%Nju5D){ihw`YTnoO>~h| z;w42p$d%~%AS}H89%6Nj;PZy{J>Vb#^(aAuc>|Y(R^(Mic?~f?!xTBBwm!T~Jr;1& z0 z`~Wg}+G&B`2+&cI+g%NYW#&+cML7X67GY&wH04ECfJ7^Q@)|gi49{J>umjNio(nFl z8%AD)H5erL<8ia)F-k&@lPh&I*-kJiuzR~%X00(LiT3dHT2i+d$h7sKk z=Q$N}V|grfV)W&F+}GegWztnSc@4eF{DrJ>OzWB2Lm_;26DX;?j&-ev%$5>2+Tc1H zTPLac&`C_O*3x*NKq=heT@44_s+PyVZ#m*$HX2@B)L6a0`=d`ef6mKI0 z%Q|;n`V=RBV)M@P?#+r8?f#K+OW*k_6-bNSa?Zl$qN5W}oMWPWk17BT_`M!88s69> zX&9l|@Px*Q%@%%4Gcg;na0|X!RfF>w`a%wXAx4qpj#`jPN`klFkpM60g@t`XCz9d| z=J}D&D+h>z*@Pt=`P~PWXOt-@kPF-Zv5ZM6#?h+RKDx;&W7{9V9{Mgd!?m8_2$L0$ zR~KIy1T6#;AZWW5E)E5&w66fqRtm<6yM{^}nnYfeLp591%bSlLajEn>#JBL_-`*9t zg*u>ak2e>(3OxIO?mIA`V(iMkI9RKUQ$Ynk60u|+1LZeB%BG}c^x#}sb7efMrqpt2 zcKD!xMvEh4!Q`f2x+!D?eh(DV;mE*RDs7HBvy4yRxP9M)=}twA`UG25Ar*HJ&VZlF z>zcZEVT3m=IsJOZ8L?nE127rZuvPNCzbnYhx*;lrX(pbHapGkj=RU9_Q(qNlz)>)q zZM*eK_;^{f-$)5Eg%ZAD90s9ued>b(IJ-wu^8mUq)#kD{0qU1FJ=dPocCJ71P+j5m zYL5$r)?Wr~2RLp5!V>s&pl6ab!ZtZkFa!_=0jnT){vjjI#I+!Lq zkMQ0tx>e$lW$SHy4<&p6ioRSE!~9v2^?mG4-gk9Imof?uhw}5mX>A^$9JB!x6_%lt z0~q8X8=S1nH{ALHMk#el=SI=45~aPNZx(^LOD^@H1*}XEFD`%QK<;ZfVMJ^o<@szg zm})$=(|1Tv7$O=91nbek(>8o95!*RVUKw}PZqntu?rF$MH|;wo0|CbEn)suAxMxh;xBv;v(0N9^@5*LJ5#iDFpm` zdwPOKD&-2~tNq*4u><7VB)oayTC71G!{84v8qx>Um+kC2S~cn;?D`jewf^9%$542) zUZ+x5H|D=^S~9#?=C;z={WcnA;cu_QTu86Olgf$`t*&k01QFA$>76kipTcNK{6O9n1!GfkIz( zge7%Hb2v95>uu+Vj{v5H6 zQs1s(Uk@ENP9>quA7CxXcLXWyY{u>lLKcIMy|tqSSV>S7dWT}wWEt#Gqj(b}!(kx+ zH!#!?CrynJzZd5RU<{^rVRQc!t2Sd}|8HrcVY3}8?M>=7!=VR8>VQ}GIXo;-dtS9|700c3hWUAuK+4ZYViKm z*y-`*oTpX69^+q7>7UZ{|8kZ7-)ye`vzvKZVg27}$bb1-f9Un_*I)3r(c#}P>0hG4 z{+UTDl(lSDMUlLYR5WwASrM3-;Q*D61@H{>isjef9*9@XtB2?`JO&?9Jxv?Fysk3Q z4QvHmRMZLZ86H2_pMH8AiIDokeGxRHb=yMOZN2~`kg>891>EU=(}U}EWrrlWulC`9 z)XUj+I5J=8AvJCLqF|ZUiN*`pP0D?F*7s#D>u-nerFhI*p`?ReNCwgyzi8bJS{)km?lWzCTVHCS&R@_{umE?;z1wj1 zk?Gg3Yb2YrL{1CM8c9l5lm!%+OwejU-k0xV5s|+J`**fw%}QYfcp_VI$-v54A*FtC zbx#pDCP+w8*UBPz+H{y|3x9=Ge;{#67;glgiHi!0Y*Arojn|U3kfhXIUcGLJ*$fg! zL~$r1rG-ZQQe#obpdl*Pue;oRJ>3DlymaVrr+z-)`1LT=Rh?p!D8PN<@KW`mU9!LM zQt+$m+GAxa=S47(ZE2gmmcMz(&Ok3$g^;ZKg){w5in?wSBY zho_UVy%qYf&~{Wq$#q_Jb0jiK#0?<)C38~5;lTGwy)oHVsOsO+wxVd(JilseB<;dOX@ea>#wj29`g%TW2O;N@P<$^8i6$eEHkz; z-hxW-HTpnJfA|ZG9g!b4aGT~Dr5m8ck(-ZwVcQ6SzG-k8K2%?&6*gEwq5F7IIZ;YN=}RC< z`-L&}huX_iW07{gsb=5-Xxx1qefS3~C5bSy?i`c!`BsJ^Ch3gj%knGxo|<1<jqc#JvJlEf_ z9SP$|{r#Uo)le&0x3*CIZtQk%OaC&SLaQWBMn+EnD7VE{cm~>smA8JH8OV;Sjfo9q z8u$_ByEwedzJH@kfwkhlw_RhAg;^3#@LA^ft~zFNSYM2n$m2~>)qoZKiV;fUje zIcUIMbBpLvY~>DA%CLaYbk4%%=q6;YyVz3fEi!hJs?t>8W}K+;v-)Fjm;*kf^}JHR zH7!;dPPMhcn%#T5R;-4^yDCRRA>{!4xKz+^bztV19th_MO^p!X+Y(=?^RrRJ?9W1% zAbYhg|H;(NUG5W}ED+l&`@Ufy@n(+Th{6rw)aKog1U@=0+&)*d)tqNJVwC)+>+BmE z$2!C?yOX7=S5*AX4FnrF;W%8F_hWx?v`CU3$G{XNccy{_QwEqxQUQNny6)K#=kr=V@lmpgvcwOSeX0`))S<(3n*s6jP zsmn05F~e(}MkL-HAa?#Px$A#`9{a#$I(-U+_N)FrAXfKBB*lBIdQKWnFP{C1 zkt`YMFfszL>xz6@q*lF1vEI&4p+#^`useQxHF6fJKYbADE2AB>(B=E1D%Bd@6w7)j zqO=~NIRkkQP@-_c0#`YGy{^kR^H!~8&LnlC1>}q7 zn9zZnv{7h-j=ytL4uATmdeuvxy@JU$3^8p^)f^s%uQoGH@j$fBE{b7Tg<6pL6oeRP zvf*2aKA2(-E~0#a$#($iU3%NrLq$9)egb`qFGi8gHGOZ}&=jIEQ%E8y2dSWB{#14d zYH$fN|C8iH*tt6rvWI6zIfidR)fzEaz=$hyQkf4uBTPHCm?7wD`} ziy*3A1Qq~VVp}m07OD|cOtE3SaCR~= zb6!vkL4BI4IlNhgNctTUfuMt1FrHsz-FX^)U->jw^e$eiF`CQTKpXTYoZCLn#nc#p zU7YNr;h~+TMPD+&ai-$oKI@V~U~3SpY;ZGN^S3<@S$?6bEd-|4dP~KNHhNsn^*9oT z37d=Ro^f)g8IhA~>6n)q#n3DlyR+Agxse8|A z)N3R+9Aig^P5i0#0JIjQ-fl5*O>Q@03cfFi1%FRu*mGMe={z2Q+il2>`n5)fH7109 zd^rEOfyT7cY7obBc>5K2hLlIqxRygnS*~DEm$0}|_j0vL;h4dh4$2E7HFQ$7@*xl% z?@pKS5y_2$M9TXUka)4Col2D(r?n%FbXA`N!2XB0~i09`YKe`?0<_LzoqK)=K=BZ@3gfvCq{+RgffL<>`@D5 zxbJ{**@5WNMuIo~@q21?(AS6e zTSpmntWZVtLOlyi*@OdjteGr62aX<(LCQP#qZJ5RQiNIJ5f7fNy935oM*tt?Crx!{ z7q$oHGIbL_dt)2X3u%+#4=oj%TzJ$yb51xw0@7q)sSv|=ZRcdckDl907Dbs|r8 zAN`rKcyweb7?ni#g3-uJ_kC%}L7C^`1IQrLGFb9!t&P&6GxSE=S3jLlrimi$Vy)Q4 z3&afLO7*|6%`7#!CiqN9jx`q)Q&)?9$Dn!{OGvjYCld+)G?gol&HQHch=Yi%S zRceL}qhV;MqQuoKv=?(>Eg6VrumXj)b>$uy&i@tZBBXAvwA`iw6TL#B`9my|s;Deh zo$e}kAl`L{=IrwA#FV8-)sE?m?tC6|lAlc*%sv2&SwY9{_QA1T5T-x1`*WAZmxz zaj~%D=2{xoaDWR*^AJ#doWe^Gd*mk#MFWp2b7oZ-6}3gXZxef-t9W<2@+w!CZ}Tz) z=ux+EALG4$$_ZX$fSZJ0)7!pEW>n*Q5!-yxVmvZ%w zQ+8-Q`*-VckYJpr^J+#hd?MMk37Rent6V)3TqnAtz1f6vhu*O}sE4oa)r8|tq%%yS zI(zK(m>ghpGE^;?J&ZjFFg>ES^(Dtvd?=duLmf>RuX@l%6ax6MIv{z*>HHfKueg$~ z26EN5G%8H)r0!~X+F1bDNU~L_^dfzy=X%a8@#X@tHb-!CjryP9HYS})7%R41r0yokbTy^+%2`K7`SGV#Rp(9XIOVr z1Nlc1GfZin`3{OJqjR8iZmoM8cACl+1b7=U6}aFp9rv=B1dsDAvCUqgFPus9VrYFc zxMA{5Jz1!4tE;>l2%e;Li{9C{b)}-$N?s+40K1yb0uar0ou)975&k+|i9N-b+Ae=> z`@M~syWJSZ1h9}G71N^k;}NNg$!J=(g}vv+vQ1|0_FQC_CPj+Fyp)bK8t?~B^-6Sg zw~u2k*b&l5GP9CknrM8$uV*Hgl;W_T0YC=uJT!9S)6H0nExr=Wh#_@2p=5$_ZAY?Y z?)Ta|ROX4=}>yI_W%T_q_Z2N#@xmmVnbi8WDGShj$LD&q+$;Eh}&q3#An5-R%n(t5WHUu}>sP*Y=%+1WXRpZ26z9 zedy73XB9G=A9P|r+hj}~iyxvNSXd4g{xB=MZJ@D-Tq5Y1P12t;>psg_nL}@V%+Fn zH)fMeW}%f4Aag5R3S-Q~TEXW0WdjGqz;LJE&THzQxy%l!Z3g!F5)Ok#iB!uBf{E*0X;?}Z>PF1mU~NM^Z0$+y5(1( zC%1GWrPZmTmvC2w(JsE7XA*CZQ2oFZw$SJWbF@$=AhvQpldaySo$ex%hZ?VOtoU-S zGx3i1iOZ(uPx(S+aH{AuZ0{#BS0jJrZpw|??aTQBvP2GDRO73pP;Ml2KyeAtF&b1M zgdJQMX3cNZ4sIEBMJ06IWVr*_M~msk6N4&IEBHQ1f|3`5RkFS%hg(r0FUH zQ4n0jS3@l%?DqXY%B)UW6-matW-XEFH1Ra5iQ?5v6-W7pg>UmDgE4TO2;!LAlFqF` zW}?O!YHA^dJ(lrRzwqE3-JBlhitK0|&cxPZNTO?@@DwTI#Y}}7;!T{?Uz8F(=xP?SIe=KKw6mvEw~HF{Zf+Pg~m`j83Z>>ksQ_P(1huDj50 znO8ZM(;`zqgfofc!K>2nnJeiVC7|o&2>6>Bf71+CO_7t8@B!XZo4{r@jlk2)rAV;{ z(dIz0aesOUa90j<%wP5@XQZ?z8`0(=-?Ph>RopGEUb9&)ng=D{g6yRJVib!`^j$}*xf`{x+_wRbEF4tB9L@hMbgB`3qa*EPos z*P*UC|AqRt>}k)a=Em?dO|};p3~>V#U(x<4McsBg7+t(YA`OjbqY%Mmm~qH*t3|~w z2Prs(U%b7;k-q9p{G0akjs>G=?LkxR?NDUw!i7|1??$~@Xv z^F3CZTHcEx1jcICNDrsUn8i@??zueL<79eEvoPamR0|(GU@Q6({E;k#2S|Vi&Y=a- zp1Br<2uQ})?)?{X#Jp!|`(;L2xaxU${V6T8*#V|azMtv&?_8ZR1F)|r)nuMhI^p(ygPr<;Un?56YmkvDWvLmgl9W5E>KER}K zi~12J9QJU>Ly;|IqdH(3ILY8)E&RRbg8XpKiyISNT#+DBWgIqx8?W6@JbwU?kqTz< zdAsGw?19qcC~uF?cPBYGzz>sY^EmYU{4LV^!2ix5hrq-9&2$}>WXN@n>2y`}v8_Y9 zZO!IM_}tvb7AtZHsJ(;#+TF{09@D@T{aS;8Ggl##YN3>u>rv^-)BXB#+ooJ{sP;b( zF8|PL@(0pl|5jl4-!QoRD+TrMpKnd4bF6>88(lC$cPzHFt+LrT6>pd;eB~}-+)mW3X=hYIbyRhrFWG`!9rEO| zWp3OL-D%q=1-k2EOz*UW(1ta0k?bK{K#SUk9)E^huITY zQ&bR_u9cG}ckAM4M~owI?j#fy zfD>KsI(^^V6qJwV-i)U835aPUolO;{NaaYj6v*MzZ-7Lu1{xtHrGAxSrI|_QB)5;# z#Gr(5oa`ZW;gq;RT^nRF>Jta$%0Y3sfwMN6Um2^o6e_!FcH(GlbvaibiuY#EUU4sd z0~}oPV~6>%_gHt0V$cBGkjK<_mi%shjRSK{9R1LcFr>l7$OGFytwotA4URo_%=d!u z3K5zdeU%SbQjtzh1`CWPC_TS8pyJp3W(zZ~sRnQD6rb*R!B++7&f(r9!vs6zRUcVp z2%Z*U7~5};@6=wNM!%bwCqI3>5t_^pJ)mjbPz!fI(mO>=E3M_)R)0r6px-A!_zZvd zQ+3}Ns8}R6P4Z^-spifyiV0$Kk%ggBMj9MyVel5j>e?rryNj*iTfrF_!wj*0k>MHT z>zAy*FT)FiS)!#r!j>~W6}2sJ{26#r&Was!bvb0RN6kBco|wLTUn3PG={JD9S1$7^ zcJh>Jxi6~jk`h7eZ0ME{3SQ%OwT^G%@-#Jy<%`Z5jO3X_Y*^**`YV_GmIFm*MyamG zH2_(<+$gmUC?PGqq)JBO$W5)3!}_H~F^e*Bn2}i}rfNssB{GDBfI9t++5k{2#iWlR z<1D?t_RL%x?Y9i@iSjAk!)M|7@nb*o@!B;*7~<`?x->#s?Xw(XWq;h-1&!Xg(gCYx zj>w1FZI-K+n6$f2K2RfT>W{3*hS^5XZ!LIa&9X_gEd$8MET>tQN0O3m_4qR&t*I6R zN4n6G#M=DM3ZWx%XGuv;o9Cf{vyr^!k5LAJOY6WW7s6+6!$plgtv&54bW9?dzPUk7n1}*CoGYc)PcRHa>#Hima}jf+D8d7nFOlN& zNrDyzc#3u^DQk zp|*8hy#d79%T&lrWU|9d^>>!WjZoU-tP8|C7z+^_?XMH{hy920A2!q2i%`{$W-Ghk zuyX>ExPW0T_`&_N@GaB6NFI-A&-^jR70#`WDF#^<3s+^P3wm!MjW z7U(1$b_jq!8J~9JY23dtwOawiP|I@cMVjQ02kt&eGt`p1KeaDm+~1f9R%MKj$obE1 z^iru*4TDUr{Sa2Pbg1Jvucw)Oo5!lBW#wkKnzCr*kh1A+;^??rv|a84BWyl!dWmQ0 z_pBfKmA#FiW#7l7BVv6y&{Q?l@YLY*E%h$f`Co9}pYjj=t)lh6f%E?TeZl`vEABtk zhy5Ey{7c6FKQm&%-wi|u1<}Bu9KfPUQOm+gZ8^ zwTALK^U}V*25o%vIY)LvD!9L$$bP*{81Ey_jaMglX0Mil@NUO${-S3!(}TN!88s8Q z5_g&4tO8zE&}<~}G)0O0nWm}nQbq1Pxbi{hRkVA0AClpjuEwe+Z~6ymntvnrnsZS zl%Y2PEt#U|i19?wr2%0j4+OYQphcyMmMF@C3aTeROe{VCHFW^%VN}XH$e-n!L|d(W z+eT=|OBYb4sIgcuJB~-=Xr`;`qUn zSt~Joh-1EH#Tb5~uwb-m@skVZTW&0I>3D3?$U~)H-$*?<{kbzNG}FFPJ`HfyN-}R6 zhOlX$Q}2&?$BKz~pL;Vi)h(^~kOhS4$}-O$%pb7dv_in~sa-qQa{&gWbG?dzzP^;o zEBHlJO`Cnka$Y0bzc>aWX-D-gUBkx&8g{>JXe2=bSms*?9&6msH)cFx6u_? z0(%MN0#szG-RCTP|0P7K)WoV{|2>>^_9Cftt#l2mcDYo(&CZpWh@=V4E9O$~y&7nM zBclUieRRUeK&oYUe?iQ^@iya$IrqD^50#7o?OTdRoEcU6$}I}i=dcz7p!wYwEG&)N zFW!QI&s$q3{}$F9MO8Z|`=u2rmF4MiUKpmJTr5`~}Eclh{7XxE@K#G`^AlJBS zy@{sB>#2`5p^RzN#AU!_KwNUks>yDrwx$J(PGLFLkDT|NGyMW8GtU&BBkUe*ri*SK zIc$AG2fJ7*opox*vt2ADTfMj^GE^F`@@4ZcIQ1f6bMWq&pf_aUpn0xvQfYuU&zwIe z26ew_3mJGLP0;j?q*j%<3NA@4zLjlWlU zsWSP;DCWOgkN)~?|4Zu;-S1@Re@6QTWh!BCi~+9x(}>Y<^oX z>Lya`r=F=5~i%dV|uu~*R01Zh&df=5@*yK%;;eUAw+SRYST=>D}cPegM5mhHrd&df*a20A5Z zS1W4ijZQ-kPFegdA?W+`EEVRHhg^i`021ttYdm8%)n2$<6H_T3c2~7h`tX#H=~_Am zUy<+oIq8s}l~K0$o2>(V=kIjcl(n&&Vi=2DL3BiAfAYuxQ%pkbuI?*_-sfbZ09!G^ zNC4kGRf<$mE{XC%bO`9i>JY}-<4|PewpCo&6M2FYrig-7tlcP7WwkB|BEhwIQv(IG z@9E++Oyw=wtH?xt51RC`{Q3LlJUSU&ikydlRwXO!r4c#h-xZ(_jBHS{z}0KmZOw^-|LJDYi3GnF~K9UG*`21u@7AQYVw>tn__ECb z2?LaNL)s_n^8?%JlM>S<{IT|&ykom>W!sB)gK`LY|2#ty2LoRWHXABz>?=m&s`W0ca)9!L-y!&Q4~*DlTqH8HU-V zip|Rd>LPGb5$XlLzBl5N6tgs6hjHuf7SsD-U)cEO$8r3aee@K5<3UKSNqa!?0hNr9 z!d9fLm^nJn_Hb!L9VU>yv@CblcL*qZ$ zjv{|~kP|=WJ2K?Y1lE>5NzO5G!^ngT-NeST=8T-MX5H@2Ot9ui2t0M%sligRw!PJU zXK&>$U@B1a+e=8mpB%rfCd^S|ZuYXB-8}BqgrtQr)^QhE+S_y8-1+(u|=I$%460-$YeP zS8TGk)j8sj44JqH8N6JCu!*N|;-~|w#s4Ah9lR{xvaHdtm0{cV3EQ@f3}!gPW`=Fs zwv}Pq&amx_7hTo;x<}U?U3K5r_j~`q8GDcMJ9Di)=UQ{74a8xS;<};O@BU160Sr0$ z9SK=rD1Aw_6_Ml|Pk81z#0m33TX!qJ^H*=lYmxp2JDl08T0MsB zIOhtc76n7)X}nLwNhM5Om6S@YvIt_w;_>6FlMk2FmcIKvaTzutKLRFPRF|4JR@FAM zb16T5Mq{SbQNy_vD{gb-3$Q86XkOJA{dTdp1^PSC&*IxZ^kc|V!+(FP9{@Q@ zn)R^23!4n|_`Z8h*mIlKIdjCCWryC3kw@z@ivVv5;z_pTlY5>xX_em)T}n4BIbR4( zCxY``E)}>OH0}baW=Sm%c?xfb_^l|(kC_Oxtk4vBq+@S5sVh?iE=psVDEe5=`pJ^q zqNRk<)MC-|Tq+^bDYp{oUC!m5`#3{m*ztB2QfMppHbFXio-jwM#KA^Sh&*AWuE5=* z;jJr(B-5EWs>q%TPxuY!!XB*L6;{2yZBFMyNTa;q9OQAT#8P=%&pk~#VYOCkHF1=5 zVX;Dm{v2|z=^PB*g;<-KPPjAI;ETc6goo}j=Q&8@-|H$u&3=zNNpDCC!6$r}+gcq! zf=Eyff=;4!p>3@r<{8sQgKDqF!k887fw{{fVC#Q~u5Az!9dTxG2}i?1{Xm7o z2Z5jPP0Z!hqzdvX-fyZBW==vZ+4k>9hi^lv4ltX1ig`t+uQL(`fDsuI;ne#0PFl zUs0mfNpM;GvY3-4wy&lbWWnHe3J)qXxd8^#)DJAA>X`C8#_;2`DXMKxhF-g0ZOb}4|M0-@P2#&y{@$T z3y%+=V94XdKY;5$HHz@JbnU+auK$S9|6k=a{-sd_z-N5ve~0S@jsJJO_^kj4ola?S z;6&M&yEK+VmKfaYdMr&#Qd_y8PFhQ`yUXl>cqCz-w9z*Y3TgP4-hsoxIF>hWXlalS z(>=1K3sq*eXQ4Ol_p`YI6tej+t@+N5A1`k=Zx4B*OW3)|S{;nS6qBnJ<`rxCCg8?hrKRmv0@B6EMIeu7Pe&ggqN=UmQPqY@61{Ys_Is zzh%v)4m+k|VbcTzIHo2|$y!bORxMqY43q6_y5$=F*ut4HFOso~j0p50HK&jKq8u8} zCO4txX%n7izs9MBzW6d=ZK^_DXNUc2(~0`&ise&TK&2X+9h-FF!Z)yk<9JP<#~?PV zl*l3_I#BLoFZa{y(zPDr-WW!Gi(&(xH#)*=OQvlGoFW%Jo!VzO?9Lv*sPEt{_fUxo zi2-MCsnS&v10^e}x~neIeYj#tQ+f5RqNog2la5hL)-h@=9@zvD^9C_v7zKfX?Lp6aKdKA7Q}$p1~?VE6@6#EwmVy3B>n;6$E3vS~aKl-ZJx^ zq2!uz0{Sl?T4xV zbu0+QIBuB;z;DdOQY%6IZhtE~j!{y<8|es8I|E#k3HV!` zg4N&FeX6ZnSK!)@-2(C@qP{{8o&gQXj3_o#A(fat-+YeW%kgyX^IH%jcepRSa6k@P z!EFR9FM|@4^my98=c{919j#tZK8~Am8jS4Z3W)QY=bw^8!o$(?4B^rRO#X8Qk-_(wP5be)Gtq#kXGq;+QI*$IKlTy6S^6+ghzR7OCHS(Js>l-rp~ zH6WK}tg!l1)cIxku%z5HNrRjCMMg zW3@2n>+^5Uwm-ZYuja&Sfid=h^)^feekVL~bnt#WIN5J99|<$>-o$^o9Wz0)Vh>lHmEea^v4VW!hr?bjQXP(U zeYEQ=j(HNLo;fH5V&K|k73ncx&DhadpXz;#8dNu1IDC`IP@1#ZtuQfw=6b{&%pWB58IIAj#_&0bva4J86Oh)15a1Bw} z(Zm=!Sw!KF@&}U@ej^>L+nw>yx!)Y3gELagqCn?{M7rL&kmgVO(dp^sG4l|TJ_mrYft9E?bW)@J^cGq)wv+D2D2S5#_LnhP1&{JFN; z-rH`I)5hP$(yqq{U4n-EqtS(LlGAZ8I^fgyE|f^xAWldR5#JC$gvBFmybmmo(cg&) z{_yVV&iymh$N#n0r5u>Ax1FIojV?ovjxf}qvG>%1tCzdHuglNO%}x)s4~k3^9A{Ey z&CaXt#nH~4Er`Q8d2j?*xhl*+6$ajI#5owC0F~LSntU~;vcL& zegzUyhjI)pf#!>il_7ifU@5;Bl>(YAT;#fr* zB%3wf>RHdAZ&B#7qM*?Ac9kEgJ^LM`?V^L_Lr~GiYvhF?b$TpD zy_k94ALtgF_{uJBLKoV@Twplqk2k^;=sZ-yVWp15ovQ*|^!XH0X!uiQ%m^?3UK^QFZi1&n^%O4K=qDFCptg**= z%~`_FaNC~0+|6v5lPIQQ^Trh-Fh*LgVvfOyy{)Kjk1G}*dTE8e(lr=Q`nj|0*`(Kh z6u2lfoVW)baTuE3eyhGEpswYhNo$*&DZvX|z-dLaIO2gU9>=|ASvbefh5uqNI2UD~ zBW7i&&8n%)Ubd0cG++~Ry^uaNrfrs!sXt$4PSY$Uk(mjIX{N8Xok)C>>a;j-lIT_lM3H{4X7cud+u*GlLEzS4-aMw>uzwotRrx&bA$iOt&qA+)~uHrNE~WQ`Ow$ zmW<5#Iu%Ih4g9M^;BETn_w>W{-?vw1#4kU4)giH<5`y`gh6x$n7p-QiQi_~A;!=in zEpshu-!GFoKV-hnF-j{-T!RL7<@#%@a!h0cSK2+T6DzCqy7~*ZrsQgye4$SvmdNA4 z7a!r6JhB%8K2QeSTxUcXz0v2xE^cfG*w&3LYn@U`~jx_85x?H@vpbB_@6QT zAJvFI$*}$X3jYkrIX@@T{sGAsK0QqT%@JxzT_%)ox>=wovQ7E4zL@_Rr|5V&xG^VE1oYi7G76!7n$7!k&BB3p8onBd<+ z-I3_tV15Jw9T~5sFZM5%_&tfffcV1|FrVJ`y>1)Wxl`~!B9p?tuy`m2(;z-%fuwf$ z#5n6?&4)D;civ`-4cOtM5d6gp-cy>|(;XWMcj_gxY1n0jn1sitg>~$!4gb+B`&pLW z=qt}#+@eL_)}fLI{p{~zjg3hX+2h{(!uw%k7!^PPaWT{vYaBU zEvci|{nFRO^k&jJi}C0XWLpGUyx7{Rr>fiJoESvx$D!8i+k$njvKXr-oK-GP@I^|q zP~Cy_IQq|WhALw^5ts4;#GFtu8AO-NjeM<9vt31J9nGzzNL6dFrGv;Vs-VE$BK&&g zWpj{TjYaI9TCk5+O?|F74{+QC8Pdi~Z0p z(D08p#D@&?f?WNKe|6!qOB!R9jpJ~h?n{9sEeED>s?nKt>xG5G);FyERY21Njr+~q z{XO*#vPQ*}>#L7V-3KUB;Mu_ScWsbxe0ySS7ACs*zVxND{%3UJCE~1u&}H)8qrJ1LZ}k4@Po{#d59qGX z{eh(q+_?Mb9hF0UjTU=U9=waN(N9{29roNK3Avr<>u*EKc-~&T)?Qqcqq4pMh0u=ePso#gjeKig^brYIx^$Fc_)y=Xd~E zkV5EvDJURxuik>+WpWBXhjdNgw@nt{4cJ2Q!bc~KVGoBT+dU$xb2W9UG*u2VgTDK4 zVpOgk-Yngx8avM#+POn@mn-BgcObf(_%Pv^(AYhwtd`?1hn{gN>Pt0fenwbKuMIx& zXgDi!Cxlqop#|^XdEng7{me+Dq9jys<|9?2h5w*tIQo!y*gl|*eA@?MyW(LMebPd; zQw}Za^le54KN!Pfshh%ya+matE3nHagzF@{=@SXUpTO`=n~d~?Pd-t_oMLTKYp~Nq zmD$gjS5WeAUz32`>)vXbNt7C&3{er znNZcXonu7xzO3e0RgOtwm0V-R1GP8xd?_o!zXJA{E zxd){|*K0uH0h2z6Y|w8W z0>pE^*g}q@ILK`8h4Hj6inoH$5h3*ZR`|OSz-sshF~jOF(9@r_NjOoNh_89G$D`4J zsfS<&m-0xb>C=qGyB>TwEy@^lK!ml@V*Pr9GlD^tZ=)?Y3nbW98>Cf9)}R>y)D%05 zfO`0Vi)W(&f3vvYI{BGgr^Xn}X)AO-m9g7^4rI@uSFJ)DR1b(}S^F%~L$hRA)ddwP(sPC%%2l1GdEa{yNr?o#MyGUQ#bKcq zkY2VSNUS9S8;d1>;nk3!=TZI)@I)@hE8qxoYnN)F5EcHAXZw&Chv>l1`OxYsdi70A zEJ53mYR19{%Zm&356QT(p*5WztIPM=imL`ImN1pgC03e+JDfi+L&`_DCA7| z#j+VI>vuaSlbl5P0+KzD_<;gpDxnaWMUB#ZkhP5uoO61o z?&>kirN!KdQ`7JW@;QL?Yv_6NDG*Hw_I{Ih7e4dmYdc8CTv@JH;~^X~tXQ~=klaP( z!5QIPN{JGVp_U2{FS8cREtsC5+m_uZe*i## zM)723{F{^4|MdaE|Al_+Us}{>`~wQT@;_aPuP7kHO(ebJJ6Q#S7ldQrg)tB*6%Ik^ zl-Rk$R76H)L*Ab@6ytE(>Fel(eKm4^&fPjZDnxhw%~L+9#~em;#v_mwfx??DH4s|F z5Nz(5L+1G4${Dve8e;R_TjTx;;ez+AyopgqjxfqFQMvM%wpW(sf*{l&5&l7JA*e;e z>kK}5@1eIBr_qxJV3* z>_G?*`i4$qhd<5&;W~vDHjXvo5J~2cbWT>2I+ckcGWhof{D+2iGwVVe?|n3Ugxy|* zbA|IPh)2`6A#CkiEwe5JY^xwgC0jqY6;@;-G@4lG*5dp2Oe(1whw@ba{fSpY!xl>V z-UK=H8+msy?jWRX4{m7|Wz@!t={N#i!%19F^;(`}O{mB0Mq~MK2p_OvmZ2i(IQt(U zSG{Of27G&02Z3A)y@2=MS1(pyip)f}#Wc>4mmE+P>cY_aLPvwI9zxLyk>{@)(LN|@ zCRGXmvcibx%QGIi&*kGkH5)WQ9UcPVtfUw1S`!f>t>|ieH|e)NU{VFeJ6f8)Yn-4U zj!A*_aWyHOzn0vdJQ6#_Dvn~#;cB>*Y2>DZCN(Uqf}D7Q7S0_c9kpx7^LYt_@obp3+a|b*plC-$qMMM zJ4W6U<6fehAT9jjWHp67?2_c6&Qs&Qna)~8stC7NYKTFm(vF_-<8}Y!_=e@aGCX8Zd^xX=aGnlh$j>xIF(l8WYK6HD4i%4RM7i?H6cofCQ(gA;KZ1f z=WeA!{>=F45+?p_wL*j=yrDfSZEz6|RdI;2mkZ?^Idn=OG6#y$hV7&cnN7Y-x4Brg z8`<078D=O3bBKvjTCH=xUZvWv1R>=B?kJEpfLvaR&Lz)e!Ir&){<8_lZe zm?3b0cKegP{B>QK$hjxK??A2Tnph;HpNqC$hgR_$u60<>&vdy@Nx$8V90# zJ1w>Q$QKIep`4a6+fqkfskW1oxp6Qn7Ra?iBX}~YMo3N@KpWqwW6?2wSVkEvXGsxW zn(DZ7n|h@qt6h5a)B;Q}86UtPlT$2bmp05>_gLL$@wR+C@g0AG`GM0h_mM|A;1Amo zo6l=ZEllJXDYG0y0xtQDgv_YVXCri*9FuHnoZ+ggxC2EhxjXL;#%DPayXwpct*%c^ zrizs#y7vZkCP)s!h*g3o?7gnrlfybFTfGRCg6uYFMV9ODiV-ZWL9B21_(InGef1O@ zBNRD%g31>n2aN)*qjf_=cxa-}d(!3ssUe!33|{R&$}U_d>@GXfFd60Rn-Ux>6zkwR zf^T1B#S1dA8&n40ar}~g->HK%$Xi2H1y+Z<`|#N39Y_}&&{8qzyeui5=iH7h0ic?b zsGFg)ZUu5W7;@CI7||xbHfPZ0ZyT`}uUIRc3tl9WIru$DjW}yDq2Hdh2o)u*-c^GOtd}bJ_3U0 z2DAUMoG>wd7KndY)nfXqRINW6Rrx>fuK#x2e_A>iKa;BdyKePqgC(~o@u^#>&yz^} z49(|EZ!()VAk-cmkiM?ofxh(LmBEH9VakW>9If1V$R zme2Qf7lxTzM8tmG?8$-vWyq;oD%>f!jC?jWTfCgb5Z=vbX1nK5|4)Tt>#RnCyMDQMh0 zeMIMkxR^KzRg3K6M?w{Xac-l`QS@?wwiR$5wMU(!pea2`l3pq?d29WN$i)Rq1bySX zp6T11Cj<)@06JY-nQ)SUrUd0i9Kq6O8y@Qa8ccQ4;yq*Oi+Bf_`(@ zg&Wh|>%k~(1oX-*dFqOYz-stS&Fv^UGwNX&#}Qg^K$j6$@xHamfS+&R-Z7P*4{^E{ z{u_){$i?J#JaoT9xrtLRLRFB|sLW<2pw~_r9VbAcBa}qU6iT*;w#l@&FejGF)Cr}Z zB~r<~*szd)@*{F#zau0&i1G?)fD zw5%e9?P~L}C}*OiA2Z5&f^UPUChA03`Q-H&QO()C15^S{)B#aTVky4JS;VpA8ixagQ`3d#|K0Q&cW!1czxvTz2ooOt8Z;7A5!1^`_`R!b@S^fIk7PC>lXQI zg$cop3?%EA0D68pZk12mEI4P%kmXC)gnEV=`QW{1)@_o4v=9lJyAEf*r9!37 zZ~Ui{emd4B`BY3p5UI1@lTy!0B$)2Wd}`9gll*8N%8)VfQ5VIlI_9bE!DcDB>N#}{ z4?V!Ak(7IUKp=nDNZ_aEyuwbH)xE0s;EA6S zso7XKXLb;<=u%k)LSAf1eZjko#Vw(x`Vl%?ra-LtVZUM5#%B`Y1#;@!RKeGrLIN^( z321!j)C?vH*9_;a%L{2HU&2UqOwV4QVN9;jiGR{PbxDm&Tz*Yy^oF^E@Umsaoi$)C z*+eyOI1zQ0{K(-uwkjna^Eu!AWZpn|_{BD$`SJX#E}Pp0*9h#zAzZa0hu%+AzuY|y z6Fg-_C-(8N9_@$xy05#hyyv%qqx=I7gXvGHOH6;gy7U*J?7tFs&ha0yc>k3!t^CX{ zUE@INd{rNx0jCztBh#GROq>5!GmO4Lc|`V^ibs+PFWW|n26#Pnp&VWLX^{q^hr>wf z$U$JciF5Nx8Wh+?HI6k7Qv!&;R4B6NdmFn+5k#g?psj1U3#Y))1Uba!liyTD(aP;a zKM~&Z+q|rl^Ok0 zET#>Gjle~q9G@}b{rn(ve#dQ{{Ok~lLvNrgRnDwRiwVZTxrDvzKZ)5Igeyv_WWQstm z=%`U}*V$1hRNU@%VG|iea?hS?) zFY--a-e1GYgI}$O#cg;mC8q0hho-ztd!#*zb+;X_qV!j=%0T*S?p_(E*aATn{f-Ra zsV;^F`<3ok<9A4O8F!y1>%W|`w z+3bKerKnjZ;AqWep$eR8++7TlQ#?m?3K~q0U;5lNWDswc*JfS+!UfO8I*-k-(882( z-W$aVtsTrVm2Ti@&^x%zCvDbJN5?d_4M@|U`gYj+IeMu?>!RmJsy9ui!RnHSUv!fn zxRP?+hzw6np(U8Q>TPO8l9fD!-uoW6Bm{GKcqBiU5-F-%u3hMIVj5D<^rnC0yt;nj zxKQK<@r}JtVJFyqY=SovAMtQJKa80jq)hctary*k%KGP#Z9^M?jj2feEz0vcktdLX z0M?B%CGcIJO}JPt={3Bk!sMEm;YcVxXzsTX;ObDzwyD@o_NqT5OW}NSPqjW%I2?w3Dk z0soZN!}Ql{J^#`8{VT}~%zr!2KkxDWV6i$#P1bSu6Mb%JUQ&1kXmM~-*62yK=g~Eb z><;Lyzpxrh<7;LGzTdAYt)&k*L#ZexyuZA5CV9(Yf<2kmKoLn1(opalj(n~4!5*wf z^4A0!vEC2@eFACcu&D-@qse{KZdT14`PvYM1&%oxQIi0nj)Dp zAvy<7Xd)adLn>5I`_)~zMFA|MxqW_-6tS&+ACAEs(tiQ8Xs4PT2uyONULph3Wi2x0 zgr=XKlvnjU29$WGptHYj=?GjZx0LZNQM&!-e_-ps7upAFZ#qr#q5L zPjlx*3)Ug^X}PK@rXAbrtDtQIS=v;&)%NpqFMydZ%OHxbB&(g_ z=eBSVqQU?Ql^ENWlHwkW=MMSGxhSh@!ID7?OZAO$4ino^z)+Eerl1cWywjZ0!t1v6h1_PAo$fNBThD}TLmrbI%zI)U!F4mAMVM29LP1o8 zye@A;Z^?CtVc<7_1T)N!93S;QB-nMB9noBU@fwwBwg(bTQDFO~y}Wp-Qb%AkKnH3I zyvKPY$cccN!9e=^&%Dgk(;9wkv_+2f62R5He;L%+xMi60y#lMeitYf=fta zgGx)Liyto}V)tzV)nbT~F_Z<8%}%d`ViNfmX==!T!qEZk?rx&QrDq%|3QI)fUlVO> zIMXErFrjNM=!!ZjsmP0X{@YJMGB`j~C(7Y0m15o=iA(a#4Uqqw>Sh~~q2A7R4QYQIR6;yJW1430%(ov%##>|YwT80BWF zv}Z#In(y)Ds|%DS*oemyUJ@kx1`g5~H^7;dbNG=$e}&e=y>#XZ>7I1ed;!_Kni4zk z#-Bsr(%p6z`6Lb4;rpnxTY7eQvgnc>I|AC&YdwA%u^U^9MjJ%7RrY4K7jDB;bN}XW zlc3P2_yC!2LS+8~9Q;#~6VqQWIsFF?{-;^wzlMnanx@41?@^ckCH3tS5&yFvTa2O{ zBUsf=xA8ZKZIaB;W?&T^vL;g^DmB^A?-sT^m|x3jbr7qNQcj&$MQ9_j-VM zh~<=6jI;)QPg*aDP=*N4lOX&F(Kf?ri{De@15;OrET&nU;use(3af!X8rwK>TMs=a z-ICI@3Y zBk3ne$JfFcW2_#-a<#3>TuU5HrCi0ZE8d8}K~^IrkDH)apaPFd37pOp`vYkAc)um? z$`n(5e|ZKF`I7pr_}7X?k0oGt&oFeTK=v8pT-|M0mOj$ZtCYUsD{`$Z&|0*&MH6yC zPdaXK#JsdBHo?9}*jZA&!5;Q6D3w&605gq6EyJ3M=6j0J!lC)>l<}}A)`M2hc4NQZ z@{%%_8Pk=oYS=v13~=MD;mt;Hc(|(SohcYdU`>AJg0sYph-Ww-3LK*=!vzX)_QpnB zaG1<*cY4}f$z{ASej!csLtxp(>1B^ZV?MH?On7Q%LA(^1h&~%2Mglj|#zCxF;V@h% zQh)K>bU-QQHAf2<_jSH<-AK*jM07peZovR;#Tf2+*1@XhLkNW<+-|U z*M&CmD0nHPIRfV zN4H7^qZO}!hox)g>acq>EfO@lE5Fg^=rFFmkE_L@qJy!+yV9*l^cBj}nPu8_vk4He zwRFA=N0P358bTtKEr2A71XrU@TI=Fy1gE0()18B$pO^3rSAe52=~lM3Am|klZ8s~X zX{~p}YAVhd=Aw|10hvhz^tP;zDduCri`%S1_I?7}HjqkC%gTL@53mL<64T}ykBSQ@7icTD3>8S?7anQ5~A%x3O zP$>u2t@pGhCqe21ZdcUfm~+uk*0MR(?zag~{eXij9qr@V@N#-7YzFoN`hbd{3WPS<--ahQK~1k_#aDz9116m_XSG1Q z{Hh3qi0qB>J|8Ji-M&XiA@D_~J+lo8~?QQV(@|Wbf}J4=T)#$%C2~#7Y)w6y-{tz6ew6YwgZEq|Jsi%SL%7 zofe04oczkDS1OZVW*6O2%$FNUb(M$B%HQUE-80UJfR!0mWA8JQ&Ggnys7F?!*a>@| zQLq{qKxjx%xZBT@n~YL!l2=W$D2l;5%I}n)D}C#k+qM0YF=pUs| zrCLx~;`peVRnh@rvszbwsQfUrt%DO#qwI1j>{R1rPazN%<3K$MjO#1=TM=FMYO}-2 zm302*9vv_3B**P(Lg(yzY%-X2g7iD8TWU$V?8IFo5oT+I6AxE74O82hXC-b)g6ARU z!Re~1juFC)^+M*dUg)WV1A{7=YT3$y06iMT_E=VYyy5!^=7^Ld)%aOeIt*wQ)@DoE z>Xz0U`i-zFG`XLuvl^;(NFPsYi(pEM3Xo;N7uZ zj0*C88$3NRSLGNH59M8B&MlYiaE%D8&2kmve%}adFK4di0gPUA61(_+EEUITaKde9 zH3#%}4BzBY2pL%|5Za6GiL6mA&LxvK0k3=8;Nkz+7=FklEsLUUt4ORmp=UG-w!hQE4l7Jq8;;}Qb(BoDs|*P#r8jic7Hq1KYJRp zu>ZRW=YK`J?{Q-`1&m0dkDdd%&gj!k=^?46dimz8B%(wF26nOl=;aLq=96xMH8)xz z5ajT-Lp=;tJ~G_#ZrsG4DiHuVg+vxwEp?cTuPK~qrWx~(wf2mi)m^?;YvgLz%OSH> zV~;U~{O8jRQ#9JhC?MgvZz8EAJkeikHdwgIp;0oEyotSLc*x+W%x3mxi1U1g-|OdC zR!#Y;W0;9u4n*NQ2d@p_duffO=U^)J=JKGJZMcNtQK-BI&*p!1nG1-GB{Ji|gIYA0 z(cWUr+;g?nkL4Iv2upA6OQU-&jZ(omJ7;Sr@tj=x0A_j0d2<`P_Wi~;@zfBm4-_&_ z_1}8EhZ`n0L{Esq2!w0InTc#YXnNf=w&lVq=%udkrX0ElCv3~FPYs6l5P4oWw-0Bn zV6yJ;WN8jussaA?Stqrp%^@S9o}?1qgw%3qvjC>GPVzn1~zHG z_?{7SzSqeA!AJL}Xk+I8e`w?XY2x-@D#d?0_dokMnV48P|3RBeRQr2G&64_A0iq%= zGMQ2xy|<$!xuP{qXuk~0+_8xPavV}D5U8(OV)Z4xz-R(?dnJ!?q#b8FhsOiZ7B>;x zHAA2USUz-t=ppxb-}ZW>*r6a;zX4SIGe^qIF9Rn0zC{1%Om#^}GrP;3Y`y;Nd)z!C zQkr$X)CfEIxK=cdBxjV$ve%6CNF}x5`|6SA$?bd0zG>SdaTd5_lZ_y-_Ad}{@|6m8 zkUCa{@QkTDU>MjirnCiRlnG$@H(^OT9R~`QHZ2W2usmQ(@1J5%4K|& zG_^E22%5x0OK~@}bEpFdIPiyu)3co zpoBTW{QiVbw;aEbUSjuzj*G9XjOe$=y@2AHnRJF+#-1Q-w)DNaLU+#hDKxs|w^eZ& z3~S#KbT-$2s!v3*2n`DCOpoMv0C`%zox$<_%D~zTkkV3PA->XBW1idfJFN!_3Ajfb zRvoPw)Zh(!fFsQC)I*@ohZHLgpqt@$bz_$2|6n0hlM!m$IbKA&r0?oziv)d5<^}e` zkCAFf>^i||%*RgBD#VR$MseQDS)+zegNybUN~}N5n6GV7M?+1#Oo($O4Rs@jhmlvK zeB&MH55gYb)X)RF%0-CUYtY*!Tz5<;L{ZLdnBzcm{ z0AQm1tKiHTd46WuC+)097PE>#WHeIUbPcB_y#9ilE7BHubWIRCl0Els)0UIpY16(i z8n~UbHf|wE`wM^pJJu@_4Y`{I99(`r%dVyYC&?LUMR3hg(Mim0XEk%Fts=-Mj^?jSHE^*dXNfK ztLVl)Hb=(j;OFxm2Xy!Nt~n7F)CeB5bIl>@sSc60sYr;X{MbP+n+>`-JSF<_nM>Uq zX_ZPI>w|b1VM5_eC@nvbKW0sFgA0|YXcuwbYydO?9;rl?I4my5}uis*TU=RnzdALtm3jprT;b|ZdOabSjF`%oxDGW0e& zJPNZ->M+x*hw4HlZ+WC8Yq?a;MQawef8><@&6(-%LwL(&h)O`Q$QE907C?Yn<$Q@*LfRW6LXKGR@ax#2 z^;qY-OKuPGQJ7n$97bzlVp|tyXXl5mNMfyRiac2v3@fRz8NjO8&Zrkobzchlj{jo2 zY0LhnQQf}(ruhrU3klW^^kmlW6pyqmTB+6A#K97QE+ z>Q(94S25JYaY{g2!2#jOXakj#sH*lwVXmZ1{FUg){iXN$A-l=4Q{`&gZf3*PRY+1=g`bvv}CO3a}+s8gk^f;fpw&2U%7CRfAP8YGHr(ELsou zo6Et_P5c#?^LXP?*^$wHFf}}^#6<*1tIwWUQJVrIL}L*M!VuP@OGUw6++Lih+~FAdDG|R-!^Yg3nA%ylWfW(U z9R8=8gGR%oR5o9K0T3|Ywr$i>H>aLbnvz7++2lJ`Zvfr=`1cPt+Dr_Um(ceflr{Lb zsJuu(yg@4rp1*vZ1&6(Me5I)tlxU-GwggbU4TMNKS{fr$o?_wr9P*O}RY)1nP!`5P&*BUi%0!-@LZ^$zJ1=j8SUSEY{`tT(SXrp3mT8Tix z&fv||N+b`Sq3z6ktG-3Rym0Rw#WAObt9?4WtE@fe)HKmy8ONdwJ$TlHBHY8>h(0tn zW@RYXyCUGr2_Z;ujJRQQ4+t{Y9r>of@0DQt9F=efT}Sv2!q7$@qcrsVL?|;$bGs12 zu170^tejEq6=fG)rM551!{V&*nyc?~3O^CVr+e*UdKua5+{>VwXnI4p))G zEdz!ain(r|qVatY_lY>o)NxEi=@T<)*jrjhRgSXQVvno}uE=T+M2ptTsVOC9AjB-m zEQT~bv5eiSW#q6d-j>!Ql(W?|+%btk;8VjAi+@D^x(u5@b7q7X&iUg6Uy0H%nkOKp z2We*uCNDt_x5JII=hiZti({&3!OV$9&D%<_ZOu0Ya=BRA+4=j?-4UyIlXb@NyPZW( z6Ls!M0;$&IL%dXB#<Lbu?$Ki3B2Ch4UOqaT}m*#PNBwuU;z58GM= zC|%nKwV0KKwWWn=hN%*~2cWoL)-XE4VV&u(%`da>FhjD%s;<%q z!U6(D(LnveC8iE_BhV*?&-Z-0V!#0UrBLO>_wUWAyNFAp% z=trX9d61@(Nsd;rMNnZN@D<)bvNKFpQce=oRj>EDC;K86F-?BJ1j8FUXJ?ZqnO6Bw$9#sIkm1jlB}I6{v_4pXeKx8J%c- zwxbwv)uLO8p%(60jsp7vp8Xi{3>1#q%;ti|aR?{z$vQ!2%mH@aJ&*Lb^mlkh3S&3k zFp$LQ49!CM+%YlDI3AgHZ#La-Og2x;#pipPt}mT&hhJZNAp&RuS=GX2Pgz+RV42KL zRUAQsnIF}C0N4;wWr=9kS;yyE{g4}jes?>RH8Z;3gnRdJWu(USFR=?&xH61&d+aGl zFP+k8ccivox+P`dzvL%RGQ)|)9g67Xbhy&p#KJ>d-8G^T1P`BSk}7~|lNEBMjb$mq zmD|G?ylZrVt_T>o$E?ivLq#fyTh+OrK@728pvQlR|JVd(6wHyB;R<~;Gkc=}340U+ zo4<*KD!GQ+v2LC$pDf)Xbs;z9o_yG#wQT;eku?}poW1;|q7RLtB1h>h4W2&DpSj3M z6lak8|EcZT!=tFKxPFiz;ZgwYMZ|mJ>rSQ9wV?%_W6|L&-Kgq4gzWko-k!4L= zxXz_RKUtnV=8o=bCU<16Ka_v$v(3G}m^5eWp>SpYD|@5~_W$YFUHtzayQd5G#NpKU zx?kxl3WdV4D5p{yt4uyRS+s5cu1Zr)cSIkbRJsg)y4LwL*^E=~uG~CgP4TMh@6UOs zdd~zODW1}r4|gx)pC7IrxBKABjrD~KpKK0WIfviaTAi8yjr3$BuW{#+>hYDso9AD= zFuQtfMq5!u=UKgQO2@d3+w+@lslGbEZFu(!Vb<&Wx1K%slYb0odo}yQ%A<>}Y3yHh zcggOWhhLoA?bgYE+p<50l zgTMOWreNPgN9DCMFFfC|rrVH*9vu5p-Cb9`cf&)gPUL1(-u`M|GA~-#&-(am(ISw{Bnl^~FC9Sl(~ewx!*g#QfQd7pyJ%ti82j z;--P?3eVR@=Y9I#gzVE*=Ppb>|A*swkKFKFOnLLn_71Ub))#wcpR=Bu|4rMOS%sf} zc;sK*_2%-rf!hb0c{jBWoj68>O5>1UPF%Kd z#WTBlT)uR{+xIl9tLE;W)3D>=?7J6VHg?#do_9af zZuF6gn(bE^`}X!euz%r_njN>b)a}~$NY8%vy?IYH|v-F^h|5vj`we@IKH~A^YJ&+zw7I+%`@rTIuz-X&oCe&8lA&PZ~8Yy7G>y3~<=}C}rF12tDK^E1SsZX( zKx}YR0HN2&>+BFq#7|K?7On>bYPew7@KY3`W~4Dt>c)fH6r!l^!2S zGC2G$0ZkE(kGL0?qEpjwC{RgIBBeb!L38kQp-UtiXF0mivDF}SytyM1F+#OwJuTG$ z8rNY=KW7ENXOqtAQHXd|rflixu%CQ7$^f4W*ZRthTEJLP95S5FhfN(G_^rR*tH^|I53v|4|NgfSqkCptB#t90c>H3 zF~bZ-hY$BnjMqn}^6;WOFGh>d{DJ}juBv>a3kpQ%g|8~c3GhC=C3Q(eM&=H^SOUGMV2L*v$|yT zs}1xI7fQ+m%4S}fKr~=AkBmU##O;V8GJT0E(Q`phUtLi&U@j!n;MuN7rs_PbSZX_g zh$^-PWV#A*;cZ8Fn%_J!O_k|y%V40$e zbob$Dr|5*HB#%txiH6ogqWc_#Gsp;ipnqy#2_l;&R*#GjLU%Surm!+uQPF%QRpAwc z705)Iqden5)}cQxjAR7kC#kRjW5!ce`n*fjSHrkKUmdTxq-p~F?2)&xCel40k`aNG z$r6@9S;^q6!Ls4?(CLJc4jo()W1y=#_7_Rlc)IKJ*r#i7(}t0W5{d=rD@oW7bd5-i zEgI_wx~4Fg>Y7TcAY_Zitgo)=gwd<>G$(lb>H_6(BopCoEtW|#Ghdy^%zSm3?y=B# zio)vE=mTg_I{=1}=``b^b~?5hQYDXl4P=6X`hpCysdqdo(-5X0v&)cFy&#k6N0X3D zp*O&>3}X*{;n0I=r}3;_O+&aqU!8th8tF)f0TXWoJeS2lf}I;4Pa=?WkPeCHjD2t; zA8`rjkW~g}pi@?df;krY0(&xgRqW5S9nMi8W8#;}Xg%%4O42cxKsz0CJC)I`ytgmm z>6QY^a2|wK0_ILCqm>KlD`LKab|UM~kQ^CYh=lnC`bsztf{d_!N=O=85_x z*rKGdMM-0en#LA2jV%lxz&te8Cy7RPya-brb1d`)hQ{q=o?RoE$Mp;0Wr2+kS-_k~ z+v&{u0!1*fDvPYY$P&vN5L%4?L0VwvL1e}^pte9<4ED*a?*ctD940Gt&*Q~ZRupy~ zDt&GNYNz770D9?77~D?7bq=)CSl*R&Tz5h{rcNZh!qcZBcx_R5Hl`IG*IdvSN>8S* zfNMBtC*s^gWh%2Cip27Z0;I_304ir?IOli?ISz7(W$s`w4d*9~WV6I95fT z(7m;{9UK#43`9|4d`*-f_;FuIDNJ9PT}x4x@g4%Ud63ZYc(5tKxQM#K>Hx~dyawAh zhOZ<5nrSEMcuxn}l8ti-wm29+iLm%V^fER}unomn!6paqb%~_vOzcAm!f>LbGy4Dn zWXIqF0mAS-lokxv5jXY>`RN3&GvLzdqsug^93phH=f>ZuT%sw{+gCJnD1`i%nHa6?O72 - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mod/endpoints/mod_khomp/examples/transfer.xml b/src/mod/endpoints/mod_khomp/examples/transfer.xml deleted file mode 100644 index 5c66633574..0000000000 --- a/src/mod/endpoints/mod_khomp/examples/transfer.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mod/endpoints/mod_khomp/include/applications.h b/src/mod/endpoints/mod_khomp/include/applications.h deleted file mode 100644 index 14ba1d3323..0000000000 --- a/src/mod/endpoints/mod_khomp/include/applications.h +++ /dev/null @@ -1,1037 +0,0 @@ -/******************************************************************************* - - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2010 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License - Version 1.1 (the "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file - under the MPL, indicate your decision by deleting the provisions above and - replace them with the notice and other provisions required by the LGPL - License. If you do not delete the provisions above, a recipient may use your - version of this file under either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*******************************************************************************/ - -#ifndef _APPLICATIONS_H_ -#define _APPLICATIONS_H_ - -#include "lock.h" -#include "khomp_pvt.h" - -struct Application -{ - Application(Board::KhompPvt * pvt) : _pvt(pvt) {} - ~Application() {} - - Statistics * statistics() { return _app_statistics; } - - template - T* statistics() { return static_cast(_app_statistics); } - - Board::KhompPvt *_pvt; - Statistics *_app_statistics; -}; - -/*************************** FAX **********************************************/ -struct Fax -{ - Fax(Board::KhompPvt * pvt) : _pvt(pvt) {} - - /* - bool clear(Board::KhompPvt * pvt) - { - _pvt = pvt; - return true; - } - */ - - bool adjustForFax(); - - bool sendFax(switch_core_session_t * session, const char *data); - bool receiveFax(switch_core_session_t * session, const char *data); - - bool onFaxChannelRelease(K3L_EVENT *e); - - bool startFaxTX(const char * orig_addr = NULL); - bool stopFaxTX(); - bool startFaxRX(const char * filename, const char * orig_addr = NULL); - bool stopFaxRX(); - bool addFaxFile(const char * filename, bool last = true); - - - Board::KhompPvt *_pvt; - - /* used by app FAX */ - SavedCondition _fax_cond; - KFaxResult _fax_result; - -}; - -/*************************** TRANSFER *****************************************/ -template -struct Transfer -{ - Transfer(Board::KhompPvt * pvt) : _pvt(pvt), _is_ok(false) {} - - bool clear() - { - if(!_is_ok) - { - _call = dynamic_cast(_pvt->call()); - - _is_ok = true; - - if(!_call) - { - DBG(FUNC, D("Error in cast")); - _is_ok = false; - } - } - - _call->_flags.clear(Kflags::XFER_DIALING); - - return true; - } - - bool userTransfer(switch_core_session_t * session, const char *data) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "c")); - - std::string dest(""); - std::string opts(""); - - try - { - Strings::vector_type params; - - Strings::tokenize((const char *)data, params, "|,", 2); - - dest = params[0]; - - if (params.size() > 1) - { - // other options go here... - } - - ScopedPvtLock lock(_pvt); - - int timeout = 5; - - if(!_pvt->call()->_flags.check(Kflags::REALLY_CONNECTED) && !_pvt->loopWhileFlagTimed(Kflags::REALLY_CONNECTED, timeout, false)) - return false; - - DBG(FUNC, PVT_FMT(_pvt->target(), "flashing channel!")); - - _pvt->command(KHOMP_LOG, CM_FLASH); - - lock.unlock(); - - timeout = 15; // 15 * 200000 = 3s - - do - { - usleep(200000); - timeout--; - - ScopedPvtLock lock2(_pvt); - - if(!_pvt->call()->_flags.check(Kflags::IS_INCOMING) && !_pvt->call()->_flags.check(Kflags::IS_OUTGOING)) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "unable to do a user transfer, channel disconnected")); - return false; - } - - } - while(timeout); - - ScopedPvtLock lock3(_pvt); - - _pvt->command(KHOMP_LOG, CM_DIAL_DTMF, dest.c_str()); - - _pvt->call()->_flags.set(Kflags::WAIT_SEND_DTMF); - - lock3.unlock(); - - timeout = 300; // 300 * 200000 = 60s - - do - { - usleep(200000); - timeout--; - - ScopedPvtLock lock4(_pvt); - - if(!_pvt->call()->_flags.check(Kflags::WAIT_SEND_DTMF)) - break; - } - while(timeout); - - } - catch (ScopedLockFailed & err) - { - LOG(ERROR, PVT_FMT(_pvt->target(),"r (unable to lock %s!)") % err._msg.c_str() ); - return false; - } - - - DBG(FUNC, PVT_FMT(_pvt->target(), "r")); - return true; - } - - /* User transfer functions */ - bool doUserXferUnlocked() - { - DBG(FUNC, PVT_FMT(_pvt->target(), "c (flashing channel!)")); - - bool ret = false; - - ret = _pvt->command(KHOMP_LOG, CM_FLASH); - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (%s)") % (ret ? "true" : "false")); - return ret; - } - - bool checkUserXferUnlocked(std::string digit) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "c (CM_FLASH)")); - - - if (_call->_user_xfer_digits.empty()) - { - _call->_digits_buffer += digit; - DBG(FUNC, PVT_FMT(_pvt->target(), "r (disabled)")); - return false; - } - - _call->_user_xfer_buffer += digit; - - /* temporary buffer */ - std::string tmp = _call->_user_xfer_buffer; - - unsigned int amount = tmp.size(); - - try - { - - if (amount == _call->_user_xfer_digits.size()) - { - if (tmp == _call->_user_xfer_digits) - { - bool ret = doUserXferUnlocked(); - - _call->_user_xfer_buffer.clear(); - _call->_digits_buffer.clear(); - - Board::board(_pvt->target().device)->_timers.del(_idx_xfer_dial); - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (ret=%s, done xfer)") % (ret ? "true" : "false")); - return ret; - } - - _call->_digits_buffer += tmp[0]; - _call->_user_xfer_buffer.erase(0, 1); - DBG(FUNC, PVT_FMT(_pvt->target(), "r (false, no xfer)")); - return false; - } - - if (tmp == _call->_user_xfer_digits.substr(0,amount)) - { - if (!(_call->_flags.check(Kflags::XFER_DIALING))) - { - _call->_flags.set(Kflags::XFER_DIALING); - _idx_xfer_dial = Board::board(_pvt->target().device)->_timers.add(Opt::_options._transferdigittimeout(), &userXferTimer, _pvt, TM_VAL_CALL); - } - else - { - Board::board(_pvt->target().device)->_timers.restart(_idx_xfer_dial); - } - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (true, buffering)")); - return true; - } - - } - catch (K3LAPITraits::invalid_device & err) - { - LOG(ERROR, PVT_FMT(_pvt->target(), "Unable to get device: %d!") % err.device); - } - - _call->_digits_buffer += tmp[0]; - _call->_user_xfer_buffer.erase(0, 1); - DBG(FUNC, PVT_FMT(_pvt->target(), "r (false, buffering)")); - - return false; - - } - - static void userXferTimer(Board::KhompPvt * pvt) - { - DBG(FUNC, PVT_FMT(pvt->target(), "c")); - - T * call = static_cast(pvt->call()); - - try - { - ScopedPvtLock lock(pvt); - - if (!call->_user_xfer_buffer.empty()) - { - pvt->command(KHOMP_LOG, CM_DIAL_DTMF, call->_user_xfer_buffer.c_str()); - - /* clear the buffer that has been send */ - call->_user_xfer_buffer.clear(); - } - - call->_flags.clear(Kflags::XFER_DIALING); - } - catch (ScopedLockFailed & err) - { - LOG(ERROR, PVT_FMT(pvt->target(),"r (unable to lock %s!)") % err._msg.c_str() ); - return; - } - - DBG(FUNC, PVT_FMT(pvt->target(), "r")); - } - - bool _is_ok; - T * _call; - Board::KhompPvt * _pvt; - Board::ChanTimer::Index _idx_xfer_dial; -}; - -template -struct Transfer -{ - Transfer(Board::KhompPvt * pvt) : _pvt(pvt), _is_ok(false) {} - - bool clear() - { - if(!_is_ok) - { - _call = dynamic_cast(_pvt->call()); - - _is_ok = true; - - if(!_call) - { - DBG(FUNC, D("Error in cast")); - _is_ok = false; - } - } - - _call->_flags.clear(Kflags::XFER_DIALING); - _call->_flags.clear(Kflags::XFER_QSIG_DIALING); - - return true; - } - - bool userTransfer(switch_core_session_t * session, const char *data) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "c")); - - std::string dest(""); - - bool opt_nowait = false; - - try - { - Strings::vector_type params; - - Strings::tokenize((const char *)data, params, "|,", 2); - - dest = params[0]; - - if (params.size() > 1) - { - opt_nowait = (params[1].find('n') != std::string::npos); - - // other options go here... - } - - ScopedPvtLock lock(_pvt); - - int timeout = 5; - - if(!_pvt->call()->_flags.check(Kflags::REALLY_CONNECTED) && !_pvt->loopWhileFlagTimed(Kflags::REALLY_CONNECTED, timeout, false)) - return false; - - DBG(FUNC, PVT_FMT(_pvt->target(), "ss_transfer on channel!")); - - _pvt->command(KHOMP_LOG, CM_SS_TRANSFER, - STG(FMT("transferred_to=\"%s\" await_connect=\"%d\"") - % dest % (opt_nowait ? 0 : 1)).c_str()); - - } - catch (ScopedLockFailed & err) - { - LOG(ERROR, PVT_FMT(_pvt->target(),"r (unable to lock %s!)") % err._msg.c_str() ); - return false; - } - - - DBG(FUNC, PVT_FMT(_pvt->target(), "r")); - return true; - } - - /* User transfer functions */ - bool doUserXferUnlocked(void) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "c")); - - bool ret = false; - - if (_call->_flags.check(Kflags::XFER_QSIG_DIALING)) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "ss_transfer on channel!")); - - _call->_flags.clear(Kflags::XFER_DIALING); - _call->_flags.clear(Kflags::XFER_QSIG_DIALING); - - ret = _pvt->command(KHOMP_LOG, CM_SS_TRANSFER, - STG(FMT("transferred_to=\"%s\" await_connect=\"1\"") % _call->_qsig_number).c_str()); - } - else - { - DBG(FUNC, PVT_FMT(_pvt->target(), "starting to store digits for ss_transfer...")); - _call->_flags.set(Kflags::XFER_QSIG_DIALING); - - _xfer_thread = threadCreate(Transfer::userXferPlayback,(void*) _pvt); - _xfer_thread->start(); - - ret = true; - } - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (%s)") % (ret ? "true" : "false")); - return ret; - - } - - bool checkUserXferUnlocked(std::string digit) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "c (CM_SS_TRANSFER)")); - - - if (_call->_user_xfer_digits.empty()) - { - _call->_digits_buffer += digit; - DBG(FUNC, PVT_FMT(_pvt->target(), "r (disabled)")); - return false; - } - - _call->_user_xfer_buffer += digit; - - DBG(FUNC, PVT_FMT(_pvt->target(), "c digits=[%s] buffer=[%s]") % _call->_user_xfer_digits % _call->_user_xfer_buffer ); - - /* temporary buffer */ - std::string tmp = _call->_user_xfer_buffer; - - unsigned int amount = tmp.size(); - - try - { - - if (amount == _call->_user_xfer_digits.size()) - { - if (tmp == _call->_user_xfer_digits) - { - bool ret = doUserXferUnlocked(); - - _call->_user_xfer_buffer.clear(); - _call->_qsig_number.clear(); - _call->_digits_buffer.clear(); - - if(!_call->_flags.check(Kflags::XFER_QSIG_DIALING)) - { - Board::board(_pvt->target().device)->_timers.del(_idx_xfer_dial); - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (ret=%s, done xfer)") % (ret ? "true" : "false")); - } - else - { - Board::board(_pvt->target().device)->_timers.restart(_idx_xfer_dial); - DBG(FUNC, PVT_FMT(_pvt->target(), "r (waiting digits for transfer)")); - } - return ret; - } - - if (_call->_flags.check(Kflags::XFER_QSIG_DIALING)) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "putting digits ('%s') on transfer-to number!") % tmp); - - _call->_qsig_number += tmp[0]; - _call->_user_xfer_buffer.erase(0, 1); - Board::board(_pvt->target().device)->_timers.restart(_idx_xfer_dial); - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (true, qsig transfer)")); - return true; - } - - _call->_digits_buffer += tmp[0]; - _call->_user_xfer_buffer.erase(0, 1); - DBG(FUNC, PVT_FMT(_pvt->target(), "r (false, no qsig)")); - return false; - } - - if (tmp == _call->_user_xfer_digits.substr(0,amount)) - { - if (!(_call->_flags.check(Kflags::XFER_DIALING) || _call->_flags.check(Kflags::XFER_QSIG_DIALING))) - { - _call->_flags.set(Kflags::XFER_DIALING); - _idx_xfer_dial = Board::board(_pvt->target().device)->_timers.add(Opt::_options._transferdigittimeout(), &userXferTimer, _pvt, TM_VAL_CALL); - } - else - { - Board::board(_pvt->target().device)->_timers.restart(_idx_xfer_dial); - } - - DBG(FUNC, PVT_FMT(_pvt->target(), "r (true, buffering)")); - return true; - } - - if (_call->_flags.check(Kflags::XFER_QSIG_DIALING)) - { - DBG(FUNC, PVT_FMT(_pvt->target(), "putting digits ('%s') on transfer-to number!") % tmp); - - _call->_qsig_number += tmp[0]; - _call->_user_xfer_buffer.erase(0, 1); - - Board::board(_pvt->target().device)->_timers.restart(_idx_xfer_dial); - DBG(FUNC, PVT_FMT(_pvt->target(), "r (true, qsig buffering)")); - return true; - } - - } - catch (K3LAPITraits::invalid_device & err) - { - LOG(ERROR, PVT_FMT(_pvt->target(), "Unable to get device: %d!") % err.device); - } - - _call->_digits_buffer += tmp[0]; - _call->_user_xfer_buffer.erase(0, 1); - DBG(FUNC, PVT_FMT(_pvt->target(), "r (false, buffering)")); - - return false; - } - - static void userXferTimer(Board::KhompPvt * pvt) - { - DBG(FUNC, PVT_FMT(pvt->target(), "c")); - - T * call = static_cast(pvt->call()); - - try - { - ScopedPvtLock lock(pvt); - - if (!call->_user_xfer_buffer.empty()) - { - pvt->command(KHOMP_LOG, CM_DIAL_DTMF, call->_user_xfer_buffer.c_str()); - - /* clear the buffer that has been send */ - call->_user_xfer_buffer.clear(); - } - - if (!call->_qsig_number.empty()) - { - pvt->command(KHOMP_LOG, CM_SS_TRANSFER, - STG(FMT("transferred_to=\"%s\" await_connect=\"1\"") % call->_qsig_number).c_str()); - - /* clear the buffer that has been send */ - call->_qsig_number.clear(); - } - - call->_flags.clear(Kflags::XFER_DIALING); - call->_flags.clear(Kflags::XFER_QSIG_DIALING); - } - catch (ScopedLockFailed & err) - { - LOG(ERROR, PVT_FMT(pvt->target(),"r (unable to lock %s!)") % err._msg.c_str() ); - return; - } - - DBG(FUNC, PVT_FMT(pvt->target(), "r")); - } - - static switch_status_t dtmfCallback(switch_core_session_t *session, void *input, switch_input_type_t itype, void *buf, unsigned int buflen) - { - char sbuf[3]; - - if(!session) - { - DBG(FUNC,D("session is NULL")) - return SWITCH_STATUS_FALSE; - } - - switch_channel_t * chan = switch_core_session_get_channel(session); - - if(!chan) - { - DBG(FUNC,D("channel is NULL")) - return SWITCH_STATUS_FALSE; - } - - switch_core_session_t *peer_session = switch_core_session_locate(switch_channel_get_partner_uuid(chan)); - - if(!peer_session) - { - DBG(FUNC,D("session is NULL")) - return SWITCH_STATUS_FALSE; - } - - switch (itype) - { - case SWITCH_INPUT_TYPE_DTMF: - { - switch_dtmf_t *dtmf = (switch_dtmf_t *) input; - - Board::KhompPvt * tech_pvt = static_cast< Board::KhompPvt* >(switch_core_session_get_private(peer_session)); - if(!tech_pvt) - { - DBG(FUNC,D("Init: pvt is NULL")) - switch_core_session_rwunlock(peer_session); - return SWITCH_STATUS_FALSE; - } - - char s[] = { dtmf->digit, '\0' }; - tech_pvt->sendDtmf(s); - - break; - } - default: - break; - } - - switch_core_session_rwunlock(peer_session); - return SWITCH_STATUS_SUCCESS; - } - - - static int userXferPlayback(void * pvt_ptr) - { - /* get pointer... */ - Board::KhompPvt * pvt = static_cast < Board::KhompPvt * > (pvt_ptr); - - DBG(FUNC, PVT_FMT(pvt->target(), "c")); - - try - { - ScopedPvtLock lock(pvt); - - /* get the owner */ - switch_channel_t * chan = pvt->getFSChannel(); - - /* get other side of the bridge */ - switch_core_session_t * peer_session = NULL; - switch_core_session_get_partner(pvt->session(),&peer_session); - - if(!peer_session) - { - DBG(FUNC, PVT_FMT(pvt->target(), "r (session is null)")); - return NULL; - } - - switch_channel_t * peer = switch_core_session_get_channel(peer_session); - - /* put the channel in hold */ - //switch_core_session_t *session = switch_core_session_locate(switch_channel_get_partner_uuid(chan)); - //switch_channel_t *chan_core = switch_core_session_get_channel(session); - - const char *stream; - - if (!(stream = switch_channel_get_variable(chan, SWITCH_HOLD_MUSIC_VARIABLE))) - { - stream = "silence"; - } - - DBG(FUNC, PVT_FMT(pvt->target(), "stream=%s") % stream); - - if (stream && strcasecmp(stream, "silence")) - { - /* Freeswitch not get/put frames */ - //switch_channel_set_flag(channel, CF_HOLD); - switch_ivr_broadcast(switch_core_session_get_uuid(pvt->session()),stream, SMF_ECHO_ALEG | SMF_LOOP | SMF_PRIORITY); - } - - switch_core_session_rwunlock(peer_session); - lock.unlock(); - - /* kickstart my heart */ - switch_input_args_t args = {0}; - args.input_callback = dtmfCallback; - - /* wait while xfering... */ - while (true) - { - switch_ivr_collect_digits_callback(peer_session,&args,1000,0); - ScopedPvtLock lock2(pvt); - - if (!pvt->call()->_flags.check(Kflags::XFER_QSIG_DIALING)) - { - break; - } - - lock2.unlock(); - } - - //switch_channel_clear_flag(channel, CF_HOLD); - - switch_channel_stop_broadcast(chan); - switch_channel_wait_for_flag(chan, CF_BROADCAST, SWITCH_FALSE, 5000, NULL); - switch_core_session_rwunlock(pvt->session()); - switch_core_session_rwunlock(peer_session); - - //switch_ivr_unhold_uuid(switch_channel_get_partner_uuid(chan)); - } - catch (ScopedLockFailed & err) - { - LOG(ERROR, PVT_FMT(pvt->target(),"r (unable to lock %s!)") % err._msg.c_str() ); - return NULL; - } - catch (Board::KhompPvt::InvalidSwitchChannel & err) - { - LOG(ERROR, PVT_FMT(pvt->target(), "r (%s)") % err._msg.c_str() ); - return NULL; - } - - DBG(FUNC, PVT_FMT(pvt->target(), "r")); - - return NULL; - } - - bool _is_ok; - T * _call; - Board::KhompPvt * _pvt; - Thread * _xfer_thread; - Board::ChanTimer::Index _idx_xfer_dial; -}; - -/*************************** SMS **********************************************/ -#define ESL_SMS_RECEIVED "khomp::sms_received" -#define ESL_SMS_SENT "khomp::sms_sent" - -struct SMS : public Application -{ - typedef std::list< switch_core_session_t *> OwnersList; - - struct SMSStatistics : public Statistics - { - SMSStatistics(): - _sms_number_incoming(0), - _sms_number_outgoing(0), - _sms_number_confirm(0), - _sms_number_broadcast(0) {}; - - void incrementIncoming() - { - _sms_number_incoming++; - } - - void incrementOutgoing() - { - _sms_number_outgoing++; - } - - void incrementConfirm() - { - _sms_number_confirm++; - } - - void incrementBroadcast() - { - _sms_number_broadcast++; - } - - std::string getDetailed() - { - std::string tmpBuffer; - - tmpBuffer.append(STG(FMT("Number of incoming SMS: \t%d\n") % _sms_number_incoming)); - tmpBuffer.append(STG(FMT("Number of outgoing SMS: \t%d\n") % _sms_number_outgoing)); - tmpBuffer.append(STG(FMT("Number of broadcast SMS: \t%d\n") % _sms_number_broadcast)); - tmpBuffer.append(STG(FMT("Number of confirm SMS: \t%d\n") % _sms_number_confirm)); - - return tmpBuffer; - } - - void clear() - { - _sms_number_incoming = 0; - _sms_number_outgoing = 0; - _sms_number_confirm = 0; - _sms_number_broadcast = 0; - } - - unsigned int _sms_number_incoming; - unsigned int _sms_number_outgoing; - unsigned int _sms_number_confirm; - unsigned int _sms_number_broadcast; - }; - - SMS(Board::KhompPvt * pvt) : - Application(pvt), - _thread(NULL), - _shutdown(false), - _can_receive(false), - _can_send(false), - _result(0), - _mutex(Globals::module_pool), - _cond(Globals::module_pool), - _buffer(8) - { - _cond.reset(); - _app_statistics = new SMSStatistics(); - } - - ~SMS() - { - stop(); - delete _app_statistics; - } - - struct ReceiveData - { - ReceiveData() {}; - - ReceiveData(const ReceiveData & o) - { - _type = o._type; - _from = o._from; - _date = o._date; - _size = o._size; - _coding = o._coding; - _serial = o._serial; - _id = o._id; - _page = o._page; - _pages = o._pages; - _sc_date = o._sc_date; - _status = o._status; - _body = o._body; - }; - - void clear(void) - { - /* reset data stuff */ - _type.clear(); - _from.clear(); - _date.clear(); - _size.clear(); - _coding.clear(); - _serial.clear(); - _id.clear(); - _page.clear(); - _pages.clear(); - _sc_date.clear(); - _status.clear(); - _body.clear(); - }; - - std::string _type; - std::string _from; - std::string _date; - std::string _size; - std::string _coding; - std::string _serial; - std::string _id; - std::string _page; - std::string _pages; - std::string _sc_date; - std::string _status; - std::string _body; - }; - - struct SendData - { - SendData(): _conf(false) {}; - - SendData(const SendData & o) - { - _dest = o._dest; - _body = o._body; - _conf = o._conf; - }; - - void clear(void) - { - /* reset data stuff */ - _dest.clear(); - _body.clear(); - _conf = false; - }; - - std::string _dest; - std::string _body; - bool _conf; - }; - - static struct _SMSEvent : public ESL - { - - _SMSEvent() : ESL("khomp::sms") - { - if(_events) - { - _events->push_back(ESL_SMS_RECEIVED); - _events->push_back(ESL_SMS_SENT); - } - } - - ~_SMSEvent() - { - if(_events) - { - //Remove two from vector - _events->pop_back(); - _events->pop_back(); - } - } - - bool operator()(Board::KhompPvt * pvt, ReceiveData & data) - { - switch_event_t *event = create(ESL_SMS_RECEIVED); - - if(!event) - { - LOG(ERROR, "Cannot create SMS ESL"); - return false; - } - - add(event, pvt->target()); - add(event, "Type", data._type); - add(event, "From", data._from); - add(event, "Date", data._date); - add(event, "Size", data._size); - add(event, "Coding", data._coding); - add(event, "Serial", data._serial); - add(event, "Id", data._id); - add(event, "Page", data._page); - add(event, "Pages", data._pages); - add(event, "Sc_date", data._sc_date); - add(event, "Status", data._status); - add(event, "Body", data._body); - - return fire(&event); - } - - bool operator()(Board::KhompPvt * pvt, SendData & data) - { - switch_event_t *event = create(ESL_SMS_SENT); - - if(!event) - { - LOG(ERROR, "Cannot create SMS ESL"); - return false; - } - - add(event, pvt->target()); - add(event, "Dest", data._dest); - add(event, "Body", data._body); - add(event, "Confirmation?", (data._conf ? "Yes" : "No")); - - - return fire(&event); - } - - - - } SMSEvent; - - struct Request - { - /* "empty" constructor */ - Request(): _finished(NULL), _cause(NULL) {}; - - /* "real" constructor */ - Request(SendData & send_sms, volatile bool * finished, volatile KGsmCallCause * cause) - : _send_sms(send_sms), _finished(finished), _cause(cause) - {}; - - SendData _send_sms; - - volatile bool * _finished; - volatile KGsmCallCause * _cause; - }; - - bool start() - { - _pvt->call()->_flags.clear(Kflags::SMS_DOING_UPLOAD); - - _thread = threadCreate(&smsThread, (void*) this); - _thread->start(); - } - - bool stop() - { - if(!_thread) - { - return false; - } - - _shutdown = true; - _cond.signal(); - _thread->join(); - delete _thread; - _thread = NULL; - - return true; - } - - bool justAlloc(unsigned int count = 0); - bool justStart(); - - bool sendSMS(switch_core_session_t * session, const char *data); - - - bool onNewSMS(K3L_EVENT *e); - bool onSMSInfo(K3L_EVENT *e); - bool onSMSData(K3L_EVENT *e); - bool onSMSSendResult(K3L_EVENT *e); - - Thread *_thread; - bool _shutdown; - bool _can_receive; - bool _can_send; - ReceiveData _got_sms; - SendData _send_sms; - int _result; - SavedCondition _cond; - Globals::Mutex _mutex; - Ringbuffer < SMS::Request > _buffer; - OwnersList _owners; - - static int smsThread(void * sms_ptr); -}; - -/******************************************************************************/ - - -#endif /* _APPLICATIONS_H_ */ - diff --git a/src/mod/endpoints/mod_khomp/include/cli.h b/src/mod/endpoints/mod_khomp/include/cli.h deleted file mode 100644 index 5df472bb66..0000000000 --- a/src/mod/endpoints/mod_khomp/include/cli.h +++ /dev/null @@ -1,1273 +0,0 @@ -/******************************************************************************* - - KHOMP generic endpoint/channel library. - Copyright (C) 2007-2010 Khomp Ind. & Com. - - The contents of this file are subject to the Mozilla Public License - Version 1.1 (the "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" basis, - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for - the specific language governing rights and limitations under the License. - - Alternatively, the contents of this file may be used under the terms of the - "GNU Lesser General Public License 2.1" license (the “LGPL" License), in which - case the provisions of "LGPL License" are applicable instead of those above. - - If you wish to allow use of your version of this file only under the terms of - the LGPL License and not to allow others to use your version of this file - under the MPL, indicate your decision by deleting the provisions above and - replace them with the notice and other provisions required by the LGPL - License. If you do not delete the provisions above, a recipient may use your - version of this file under either the MPL or the LGPL License. - - The LGPL header follows below: - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this library; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*******************************************************************************/ - -#ifndef _CLI_H_ -#define _CLI_H_ - -#include "globals.h" -#include "logger.h" - -struct Command -{ - /* print in client the usage */ - void printUsage(switch_stream_handle_t *stream) - { - if(stream) - { - printBrief(stream); - K::Logger::Logg2(C_CLI,stream, -"------------------------------ Description --------------------------------"); - K::Logger::Logg2(C_CLI,stream, -"---------------------------------------------------------------------------"); - K::Logger::Logg2(C_CLI,stream,(char*) usage.c_str()); - K::Logger::Logg2(C_CLI,stream, -"---------------------------------------------------------------------------"); - } - else - { - LOG(ERROR,FMT("Invalid stream for commmand: %s") % complete_name); - } - } - - /* print in client the brief */ - void printBrief(switch_stream_handle_t *stream) - { - if(stream) - { - K::Logger::Logg2(C_CLI,stream, -"---------------------------------------------------------------------------"); - K::Logger::Logg2(C_CLI,stream, -"-------------------------------- Brief ------------------------------------"); - K::Logger::Logg2(C_CLI,stream, -"---------------------------------------------------------------------------"); - K::Logger::Logg2(C_CLI,stream,(char*) brief.c_str()); - K::Logger::Logg2(C_CLI,stream, -"---------------------------------------------------------------------------"); - } - else - { - LOG(ERROR,FMT("Invalid stream for commmand: %s") % complete_name); - } - } - - /* pure virtual */ - virtual bool execute(int argc, char *argv[]) = 0; - - std::string complete_name; /* specify the command in console */ - std::vector options; /* extra options for command */ - std::string brief; /* brief of the command, a path */ - std::string usage; /* usage of the command, a help */ -}; - -struct CommandXMLOutput : public Command -{ - void createRoot(const char *name) - { - root = switch_xml_new(name); - } - - void insertXML(switch_xml_t xml) - { - switch_xml_insert(xml,root,0); - } - - void clearRoot() - { - if(root) - { - switch_xml_free(root); - root = NULL; - } - } - - void printXMLOutput(switch_stream_handle_t *stream) - { - K::Logger::Logg2(C_CLI,stream,switch_xml_toxml(root,SWITCH_FALSE)); - } - - CommandXMLOutput() : root(NULL) {}; - - switch_xml_t root; /* for commands that ouput as xml */ -}; - -struct Cli -{ - /* Useful definitions --------------------------------------------------- */ - typedef switch_status_t (APIFunc)(const char*, switch_core_session_t*, switch_stream_handle_t*); - typedef std::vector Commands; - - /* Define the output types form commands */ - typedef enum - { - VERBOSE = 1, - CONCISE, - DETAILED, - XML - } OutputType; - - /* register our commands, but you must create the command function */ - static void registerCommands(APIFunc func,switch_loadable_module_interface_t **mod_int); - - /* delete the commands */ - static void unregisterCommands() - { - switch_console_set_complete("del khomp"); - } - - /* stream is very useful */ - static void setStream(switch_stream_handle_t *s) - { - if(!s) - { - LOG(ERROR,"Invalid stream passed"); - return; - } - - stream = s; - } - - /* gets the khomp usage */ - static void printKhompUsage() - { - if(stream) - { - K::Logger::Logg2(C_CLI,stream,(char*) _khomp_usage.c_str()); - } - else - { - LOG(ERROR,"Invalid stream for command: printKhompUsage"); - } - } - - /* is responsible for parse and execute all commands */ - static bool parseCommands(int argc, char *argv[]); - - /* The Commands --------------------------------------------------------- */ - - /* khomp summary */ - static struct _KhompSummary : public CommandXMLOutput - { - _KhompSummary(bool on_cli_term = true): - CommandXMLOutput(), - _on_cli_term(on_cli_term), - xdevs(NULL) - { - complete_name = "summary"; - - options.push_back("verbose"); - options.push_back("concise"); - options.push_back("xml"); - - brief = "Print system info."; - usage = \ -"Prints detailed info about the system like API version and \n" \ -"boards characteristics like DSPs version.\n\n" \ -"Usage: khomp summary [concise|verbose|xml]"; - - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - bool _on_cli_term; /* indicates if message is sent to fs_cli */ - switch_xml_t xdevs; /* support xml needed to help the interation */ - } KhompSummary; - - /* khomp show calls */ - static struct _KhompShowCalls : public Command - { - _KhompShowCalls() - { - complete_name = "show calls"; - brief = \ -"Show each Khomp channel which have more than one call state associated."; - - usage = \ -"Show each Khomp channel which have more than one call state associated.\n\n" \ -"Usage: khomp show calls [ []]"; - - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - - /* support function for _KhompShowCalls */ - void showCalls(unsigned int device, unsigned int object, std::string &buffer); - } KhompShowCalls; - - /* khomp channels disconnect */ - static struct _KhompChannelsDisconnect : public Command - { - _KhompChannelsDisconnect() - { - complete_name = "channels disconnect"; - brief = "Disconnect a(ll) channel(s)."; - usage = \ -"Disconnects channels in boards, or specific board/channel if parameter \n" \ -"is supplied.\n\n" \ -"Usage: khomp channels disconnect {all | all | }\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"\tchannel -- Number of the channel (start from 0).\n" \ -"e.g. khomp channels disconnect all - Disconnect all channels of all boards.\n"\ -"e.g. khomp channels disconnect 0 5 - Disconnect channel 5 of board 0."; - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - - /* support function for _KhompChannelsDisconnect */ - bool forceDisconnect(unsigned int device, unsigned int channel); - } KhompChannelsDisconnect; - - /* khomp channels unblock */ - static struct _KhompChannelsUnblock : public Command - { - _KhompChannelsUnblock() - { - complete_name = "channels unblock"; - brief = "Unblock a(ll) channel(s)."; - - usage = \ -"The board will request to the PBX or network where it is connected to \n" \ -"unblock the channel if its blocked.\n\n" \ -"Usage: khomp channels unblock {all | all | }\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"\tchannel -- Number of the channel (start from 0).\n" \ -"e.g. khomp channels unblock all - Unblock all channels of all boards.\n" \ -"e.g. khomp channels unblock 0 all - Unblock all channels of board 0.\n" \ -"e.g. khomp channels unblock 1 20 - Unblock channel 20 of board 1."; - - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - } KhompChannelsUnblock; - - /* khomp show statistics */ - static struct _KhompShowStatistics : public CommandXMLOutput - { - _KhompShowStatistics() : CommandXMLOutput(), xdevs(NULL) - { - complete_name = "show statistics"; - - options.push_back("verbose"); - options.push_back("detailed"); - options.push_back("xml"); - - brief = "Shows statistics of the channels."; - - usage = \ -"Shows statistics of the channels, like number of calls incoming \n" \ -"and outgoing, status, status time.\n\n" \ -"Usage: khomp show statistics [{{verbose|xml} [ []]} | \n" \ -" {detailed }]\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"\tchannel -- Number of the channel (start from 0).\n" \ -"e.g. khomp channels statistics - Shows general statistics \n" \ -" of all boards.\n" \ -"e.g. khomp channels statistics 0 - Shows general statistics \n" \ -" of board 0.\n" \ -"e.g. khomp channels statistics verbose - Shows general statistics \n" \ -" of all boards.\n" \ -"e.g. khomp channels statistics verbose 0 - Shows general statistics \n" \ -" of board 0.\n" \ -"e.g. khomp channels statistics detailed 0 2 - Shows detailed statistics \n" \ -" of channel 2 on board 0."; - - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - - /* support functions */ - void cliStatistics(unsigned int device, OutputType output_type); - void cliDetailedStatistics(unsigned int device, unsigned int channel, OutputType output_type); - switch_xml_t xdevs; /* support xml needed to help the interation */ - - } KhompShowStatistics; - - /* khomp show channels */ - static struct _KhompShowChannels: public CommandXMLOutput - { - _KhompShowChannels() : CommandXMLOutput(), xdev(NULL) - { - complete_name = "show channels"; - - options.push_back("verbose"); - options.push_back("concise"); - options.push_back("xml"); - - brief = "Show all channels status."; - usage = \ -"List the status of each channel, both on asterisk point of view and on \n" \ -"khomp API point of view.\n\n" \ -"Usage: \n" \ -"khomp show channels [{ []} | \n" \ - "{{concise|verbose|xml} [ []]}]\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"e.g. khomp show channels - List status of all channels of all boards.\n" \ -"e.g. khomp show channels concise 0 - List status of all channels of \n" \ -" board 0 in a concise way.\n" \ -"e.g. khomp show channels xml 0 - List status of all channels of \n" \ -" board 0 in a xml structure."; - - _commands.push_back(this); - }; - - /* support function for _KhompShowChannels */ - void showChannel(unsigned int device, unsigned int channel, OutputType output_type = Cli::VERBOSE); - void showChannels(unsigned int device, OutputType output_type = Cli::VERBOSE); - - bool execute(int argc, char *argv[]); - switch_xml_t xdev; /* support xml needed to help the interation */ - - } KhompShowChannels; - - /* khomp show links */ - static struct _KhompShowLinks: public CommandXMLOutput - { - _KhompShowLinks() : CommandXMLOutput(), xdev(NULL) - { - complete_name = "show links"; - - options.push_back("verbose"); - options.push_back("concise"); - options.push_back("xml"); - options.push_back("errors"); - options.push_back("errors verbose"); - options.push_back("errors concise"); - options.push_back("errors xml"); - - brief = "Show E1 link(s) status/errors counters in a concise \n" \ - "way or not."; - - usage = \ -"Prints information about the signaling, syncronization and general \n" \ -"status/the error counters of each link on the board. It prints in \n" \ -"a concise way for parsing facilities.\n\n" \ -"Usage: \n" \ -"khomp show links [[errors] [{} | {{concise|verbose|xml} []}]]\n"\ -"e.g. khomp show links - Show all links of all boards.\n" \ -"e.g. khomp show links xml - Show all links of all boards in xml.\n" \ -"e.g. khomp show links errors - Show error counters of all links of \n" \ -" all boards.\n" \ -"e.g. khomp show links errors 0 - Show error counters of all links of \n" \ -" board 0."; - - _commands.push_back(this); - }; - - /* support function for _KhompShowLinks */ - void showLinks(unsigned int device, OutputType output_type = Cli::VERBOSE); - void showErrors(unsigned int device, OutputType output_type = Cli::VERBOSE); - std::string getLinkStatus(int dev, int obj, Verbose::Presentation fmt); - - bool execute(int argc, char *argv[]); - switch_xml_t xdev; /* support xml needed to help the interation */ - } KhompShowLinks; - - /* khomp clear links */ - static struct _KhompClearLinks: public Command - { - _KhompClearLinks() - { - complete_name = "clear links"; - - brief = "Clear the error counters of the links."; - - usage = \ -"Clear the error counters of the links.\n\n" \ -"Usage: khomp clear links [ []]\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"\tlink -- Number of the link (start from 0).\n" \ -"e.g. khomp clear links 0 -- Clear error counters of all links of board 0."; - - _commands.push_back(this); - }; - - /* support function for _KhompClearLinks */ - void clearLink(unsigned int device, unsigned int link); - - bool execute(int argc, char *argv[]); - } KhompClearLinks; - - /* khomp clear statistics */ - static struct _KhompClearStatistics: public Command - { - _KhompClearStatistics() - { - complete_name = "clear statistics"; - - brief = "Clear statistics of the channels."; - - usage = \ -"Clear statistics of the channels, like number of calls incoming \n" \ -"and outgoing, status, status time.\n\n" \ -"Usage: khomp clear statistics [ []]\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"\tchannel -- Number of the channel (start from 0).\n" \ -"e.g. khomp clear statistics 0 -- Clear statistics of board 0."; - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - } KhompClearStatistics; - - - /* khomp reset links */ - static struct _KhompResetLinks: public Command - { - _KhompResetLinks() - { - complete_name = "reset links"; - - brief = "Reset the specified link."; - - usage = \ -"Reset the specified link.\n\n" \ -"Usage: khomp reset links [ []]\n" \ -"\tboard -- Number of the board (start from 0).\n" \ -"\tlink -- Number of the link (start from 0).\n" \ -"e.g. khomp reset links 0 1 -- Reset link 1 of board 0."; - - _commands.push_back(this); - }; - - /* support function for _KhompResetLinks */ - void resetLink(unsigned int device, unsigned int link); - - bool execute(int argc, char *argv[]); - } KhompResetLinks; - - /* khomp sms */ - static struct _KhompSMS : public Command - { - _KhompSMS() - { - complete_name = "sms"; - brief = "Send an SMS message using a Khomp KGSM board."; - - usage = \ -"Send an SMS message using a Khomp KGSM board.\n\n" \ -"Usage: khomp sms \n" \ -"\tdevice -- Device to use (same string used in Dial for \n" \ -"\t channel allocation).\n" \ -"\tdestination -- Phone number of the destination.\n" \ -"\tmessage -- Message to send.\n" \ -"e.g. khomp sms b0 99887766 Oi, tudo bem?"; - - _commands.push_back(this); - }; - - bool execute(int argc, char *argv[]); - } KhompSMS; - - /* khomp log console */ - static struct _KhompLogConsole : public Command - { - _KhompLogConsole() - { - complete_name = "log console"; - - options.push_back("errors"); - options.push_back("warnings"); - options.push_back("messages"); - options.push_back("events"); - options.push_back("commands"); - options.push_back("audio"); - options.push_back("modem"); - options.push_back("link"); - options.push_back("cas"); - options.push_back("standard"); - options.push_back("all"); - options.push_back("no"); - options.push_back("just"); - - brief = "Enables/disables showing console messages for the channel."; - usage = \ -"Enables/disables showing channel messages, where can be:\n" \ -"\terrors -- Error messages, when something goes really \n" \ -"\t wrong. Enabled by default.\n" \ -"\twarnings -- Warnings, used when something might not be \n" \ -"\t going as expected. Enabled by default.\n" \ -"\tmessages -- Generic messages, used to indicate some \n" \ -"\t information. Enabled by default.\n" \ -"\tevents -- Show received K3L events as console \n" \ -"\t messages. Disabled by default.\n" \ -"\tcommands -- Show sent K3L commands as console \n" \ -"\t messages. Disabled by default.\n" \ -"\taudio -- Enable messages for K3L audio events. \n" \ -"\t Disabled by default (very verbose!).\n" \ -"\tmodem -- Enable messages for data received from \n" \ -"\t KGSM modems. Disabled by default.\n" \ -"\tlink -- Enable logging of link status changes. \n" \ -"\t Enabled by default.\n" \ -"\tcas -- Enable logging of MFCs and line state \n" \ -"\t changes in KPR board. Disabled by default.\n" \ -"\tstandard -- Special identifier, enable default \n" \ -"\t console messages.\n" \ -"\tall -- Special identifier, enable ALL console \n" \ -"\t messages (should not be used naively).\n\n" \ -"Usage: khomp log console \n" \ -"e.g. khomp log console standard"; - - _commands.push_back(this); - } - - bool execute(int argc, char *argv[]); - } KhompLogConsole; - - /* khomp log disk */ - static struct _KhompLogDisk : public Command - { - _KhompLogDisk() - { - complete_name = "log disk"; - - options.push_back("errors"); - options.push_back("warnings"); - options.push_back("messages"); - options.push_back("events"); - options.push_back("commands"); - options.push_back("audio"); - options.push_back("modem"); - options.push_back("link"); - options.push_back("cas"); - options.push_back("functions"); - options.push_back("threads"); - options.push_back("locks"); - options.push_back("streams"); - options.push_back("standard"); - options.push_back("debugging"); - options.push_back("all"); - options.push_back("no"); - options.push_back("just"); - - brief = "Enables/disables logging to file messages for the channel."; - usage = \ -"Enables/disables the logging of channel messages to disk, where \n" \ -"can be:\n" \ -"\terrors -- Error messages, when something goes really \n" \ -"\t wrong. Enabled by default.\n" \ -"\twarnings -- Warnings, used when something might not be \n" \ -"\t going as expected. Enabled by default.\n" \ -"\tmessages -- Generic messages, used to indicate some \n" \ -"\t information. Enabled by default.\n" \ -"\tevents -- Record received K3L events as log messages. \n" \ -"\t Disabled by default.\n" \ -"\tcommands -- Record sent K3L commands as log messages. \n" \ -"\t Disabled by default.\n" \ -"\taudio -- Enable messages for K3L audio events. \n" \ -"\t Disabled by default (very verbose!).\n" \ -"\tmodem -- Enable messages for data received from \n" \ -"\t KGSM modems. Disabled by default.\n" \ -"\tlink -- Enable logging of link status changes. \n" \ -"\t Enabled by default.\n" \ -"\tcas -- Enable logging of MFCs and line state \n" \ -"\t changes in KPR board. Disabled by default.\n" \ -"\tfunctions -- Enable debugging for functions. Disabled \n" \ -"\t by default (should not be used naively!).\n" \ -"\tthreads -- Enable debugging for threads. Disabled by \n" \ -"\t default (should not be used naively!).\n" \ -"\tlocks -- Enable debugging for locks. Disabled by \n" \ -"\t default (should not be used naively!).\n" \ -"\tstreams -- Enable debugging for streams. Disabled by \n" \ -"\t default (should not be used naively!).\n" \ -"\tstandard -- Special identifier, enable default messages.\n" \ -"\tdebugging -- Special identifier, enable debugging messages \n" \ -"\t (should not be used naively).\n" \ -"\tall -- Special identifier, enable ALL disk \n" \ -"\t messages (DO NOT USE THIS!).\n\n" \ -"Usage: khomp log disk \n" \ -"e.g. khomp log disk "; - - _commands.push_back(this); - } - - bool execute(int argc, char *argv[]); - } KhompLogDisk; - - /* khomp log trace k3l */ - static struct _KhompLogTraceK3L : public Command - { - _KhompLogTraceK3L() - { - complete_name = "log trace k3l"; - - options.push_back("on"); - options.push_back("off"); - - brief = "Set K3L tracing (debug) option."; - - usage = \ -"Sets the low-level log for K3L API. Should not be set for long time \n" \ -"periods.\n\n" \ -"Usage: khomp log trace k3l {on|off}\n" \ -"e.g. khomp log trace k3l on"; - - _commands.push_back(this); - } - - bool execute(int argc, char *argv[]); - } KhompLogTraceK3L; - - /* khomp log trace ISDN */ - static struct _KhompLogTraceISDN : public Command - { - _KhompLogTraceISDN() - { - complete_name = "log trace isdn"; - - options.push_back("q931"); - options.push_back("lapd"); - options.push_back("system"); - options.push_back("off"); - - brief = "Set ISDN signaling trace."; - - usage = \ -"Sets the low-level log for ISDN signalling. Should not be set for \n" \ -"long time periods.\n\n" \ -"Usage: khomp log trace isdn [,[,..]]\n" \ -"\twhat -- \"q931\", \"lapd\", \"system\" or \"off\" \n" \ -"\t (comma-separated values).\n" \ -"e.g. khomp log trace isdn q931,system"; - - _commands.push_back(this); - } - - bool execute(int argc, char *argv[]); - } KhompLogTraceISDN; - - /* khomp log trace R2 */ - static struct _KhompLogTraceR2 : public Command - { - _KhompLogTraceR2() - { - complete_name = "log trace r2"; - - options.push_back("on"); - options.push_back("off"); - - brief = "Set R2 signaling trace."; - - usage = \ -"Sets the low-level log monitor for R2 digital signalling. Should not \n" \ -"be set for long time periods.\n\n" \ -"Usage: khomp log trace r2 {on|off}\n" \ -"e.g. khomp log trace r2 on"; - - _commands.push_back(this); - } - - bool execute(int argc, char *argv[]); - } KhompLogTraceR2; - - /* khomp get */ - static struct _KhompGet : public Command - { - _KhompGet() - { - complete_name = "get"; - - options.push_back("dialplan"); - options.push_back("echo-canceller"); - options.push_back("auto-gain-control"); - options.push_back("out-of-band-dtmfs"); - options.push_back("suppression-delay"); - options.push_back("auto-fax-adjustment"); - options.push_back("fax-adjustment-timeout"); - options.push_back("pulse-forwarding"); - options.push_back("r2-strict-behaviour"); - options.push_back("r2-preconnect-wait"); - options.push_back("context-digital"); - options.push_back("context-fxs"); - options.push_back("context-fxo"); - options.push_back("context-gsm-call"); - options.push_back("context-gsm-sms"); - options.push_back("context-pr"); - options.push_back("log-to-console"); - options.push_back("log-to-disk"); - options.push_back("trace"); - options.push_back("output-volume"); - options.push_back("input-volume"); - options.push_back("fxs-global-orig"); - options.push_back("fxs-co-dialtone"); - options.push_back("fxs-bina"); - options.push_back("fxs-sharp-dial"); - options.push_back("disconnect-delay"); - options.push_back("delay-ringback-co"); - options.push_back("delay-ringback-pbx"); - options.push_back("ignore-letter-dtmfs"); - options.push_back("fxo-send-pre-audio"); - options.push_back("fxo-busy-disconnection"); - options.push_back("fxs-digit-timeout"); - options.push_back("drop-collect-call"); - options.push_back("kommuter-activation"); - options.push_back("kommuter-timeout"); - options.push_back("user-transfer-digits"); - options.push_back("flash-to-digits"); - options.push_back("accountcode"); - options.push_back("audio-packet-length"); - - brief = "Get configuration options in the Khomp channel."; - - usage = \ -"Usage: khomp get