Module: sip-router
Branch: master
Commit: 833632a0eafcbbbcd7ce53937c4b4a21f99d9bec
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=833632a0eafcbbbcd7ce53937c4b4a21f99d9bec

Author: Marius Zbihlei <[email protected]>
Committer: Marius Zbihlei <[email protected]>
Date:   Thu May 20 16:24:55 2010 +0300

Extended kamctl with new features built over sercmd:

1. Posibility to run sercmd commands via "kamctl ser" (no readline enhancements 
yet)
2. A new CTLENGINE ser_mi that besides unixsock and fifo provides access to mi 
commands.
"CTLENGINE=ser_mi kamctl ser_mi debug 3"

---

 utils/kamctl/Makefile      |   10 ++++
 utils/kamctl/kamctl        |   20 ++++++++-
 utils/kamctl/kamctl.ser    |   60 +++++++++++++++++++++++++++
 utils/kamctl/kamctl.ser_mi |   98 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 187 insertions(+), 1 deletions(-)

diff --git a/utils/kamctl/Makefile b/utils/kamctl/Makefile
index 61bcee0..57677a0 100644
--- a/utils/kamctl/Makefile
+++ b/utils/kamctl/Makefile
@@ -48,6 +48,16 @@ install-bin: $(bin_prefix)/$(bin_dir)
                        $(modules_prefix)/$(lib_dir)/kamctl/kamctl.fifo
                rm -fr /tmp/kamctl.fifo
                sed -e "s#/usr/local#$(bin_target)#g" \
+                       < kamctl.ser > /tmp/kamctl.ser
+               $(INSTALL_CFG) /tmp/kamctl.ser \
+                       $(modules_prefix)/$(lib_dir)/kamctl/kamctl.ser
+               rm -fr /tmp/kamctl.ser
+               sed -e "s#/usr/local#$(bin_target)#g" \
+                       < kamctl.ser_mi > /tmp/kamctl.ser_mi
+               $(INSTALL_CFG) /tmp/kamctl.ser_mi \
+                       $(modules_prefix)/$(lib_dir)/kamctl/kamctl.ser_mi
+               rm -fr /tmp/kamctl.ser_mi
+               sed -e "s#/usr/local#$(bin_target)#g" \
                        < kamctl.unixsock > /tmp/kamctl.unixsock
                $(INSTALL_CFG) /tmp/kamctl.unixsock \
                        $(modules_prefix)/$(lib_dir)/kamctl/kamctl.unixsock
diff --git a/utils/kamctl/kamctl b/utils/kamctl/kamctl
index afb7a46..09a0fb8 100755
--- a/utils/kamctl/kamctl
+++ b/utils/kamctl/kamctl
@@ -127,8 +127,21 @@ case $CTLENGINE in
                        CTLENGINELOADED=1
                fi
                ;;
+       SER_MI|ser_mi)
+               if [ -f "$MYLIBDIR/kamctl.ser_mi" ]; then
+                       . "$MYLIBDIR/kamctl.ser_mi"
+                       CTLENGINELOADED=1
+               fi
+               ;;
 esac
 
+#### ------------------------------------------------- #####
+### Load sercm interface
+#
+if [ -f "$MYLIBDIR/kamctl.ser" ]; then
+       . "$MYLIBDIR/kamctl.ser"
+fi
+
 if [ $CTLENGINELOADED -eq 1 ] ; then
        mdbg "Control engine '$CTLENGINE' loaded"
 else
@@ -2313,12 +2326,17 @@ case $1 in
                trusted "$@"
                ;;
 
-       fifo|unixsock)
+       fifo|unixsock|ser_mi)
                require_ctlengine
                shift
                $CTLCMD "$@"
                ;;
 
+       ser)
+               shift
+               $SERCTLCMD "$@"
+               ;;
+
        lcr)
                shift
                lcr "$@"
diff --git a/utils/kamctl/kamctl.ser b/utils/kamctl/kamctl.ser
new file mode 100644
index 0000000..b70deed
--- /dev/null
+++ b/utils/kamctl/kamctl.ser
@@ -0,0 +1,60 @@
+#
+# $Id$
+#
+# control tool for maintaining Kamailio
+#
+#===================================================================
+
+##### ----------------------------------------------- #####
+### FIFO specific variables and functions
+#
+
+##### ----------------------------------------------- #####
+### load CTL base
+#
+if [ -f "$MYLIBDIR/kamctl.ctlbase" ]; then
+       . "$MYLIBDIR/kamctl.ctlbase"
+else
+       mwarn "Cannot load CTL core functions '$MYLIBDIR/kamctl.ctlbase' ..."
+       # exit -1
+fi
+
+#
+##### ----------------------------------------------- #####
+### parameters
+#
+SERCMD=`which sercmd`
+if [ -z "$SERCMD" ] ; then 
+    SERCMD="/usr/local/sbin/sercmd"
+fi
+
+#
+##### ----------------------------------------------- #####
+### functions
+#
+usage_ser() {
+       echo
+       mecho " -- command 'ser'"
+       echo
+cat <<EOF
+ ser ............................... send  command thru sercmd
+EOF
+}
+USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_ser"
+
+
+ser_cmd()
+{
+       mdbg "entering ser_mi_cmd $*"
+       
+       if [ "$#" -lt 1 ]; then
+               merr "ser_cmd must take at least command name as parameter"
+               exit 1
+       fi
+
+       
+       $SERCMD "$@"
+}
+
+SERCTLCMD=ser_cmd
+
diff --git a/utils/kamctl/kamctl.ser_mi b/utils/kamctl/kamctl.ser_mi
new file mode 100644
index 0000000..fdf247c
--- /dev/null
+++ b/utils/kamctl/kamctl.ser_mi
@@ -0,0 +1,98 @@
+#
+# $Id$
+#
+# control tool for maintaining Kamailio
+#
+#===================================================================
+
+##### ----------------------------------------------- #####
+### FIFO specific variables and functions
+#
+
+##### ----------------------------------------------- #####
+### load CTL base
+#
+if [ -f "$MYLIBDIR/kamctl.ctlbase" ]; then
+       . "$MYLIBDIR/kamctl.ctlbase"
+else
+       mwarn "Cannot load CTL core functions '$MYLIBDIR/kamctl.ctlbase' ..."
+       # exit -1
+fi
+
+#
+##### ----------------------------------------------- #####
+### parameters
+#
+SERCMD=`which sercmd`
+if [ -z "$SERCMD" ] ; then 
+    SERCMD="/usr/local/sbin/sercmd"
+fi
+
+#
+##### ----------------------------------------------- #####
+### functions
+#
+usage_ser_mi() {
+       echo
+       mecho " -- command 'ser_mi'"
+       echo
+cat <<EOF
+ ser ............................... send mi  command thru sercmd
+EOF
+}
+USAGE_FUNCTIONS="$USAGE_FUNCTIONS usage_ser_mi"
+
+
+ser_mi_cmd()
+{
+       mdbg "entering ser_mi_cmd $*"
+       
+       if [ "$#" -lt 1 ]; then
+               merr "ser_cmd must take at least command name as parameter"
+               exit 1
+       fi
+
+       
+       $SERCMD mi "$@"
+}
+
+CTLCMD=ser_mi_cmd
+
+ser_mi_monitor() {
+       trap "rm $path;  clear; echo monitor ^C-ed; exit 1" 2
+       attempt=0
+       if [ "$2" = "" ]; then
+           loops=-1;
+       else
+           loops=$2;
+       fi
+       clear
+       while [ $loops -ne $attempt ] ; do
+               attempt=`$EXPR $attempt + 1`
+               #clear
+               tput clear
+               
+               # print_stats $name $path $attempt
+               mecho "[cycle #: $attempt; if constant make sure server lives]"
+
+               $SERCMD mi version
+               $SERCMD mi uptime
+               mecho "Transaction Statistics"
+               $SERCMD mi get_statistics UAS_transactions UAC_transactions 
inuse_transactions
+
+               mecho "Stateless Server Statistics: "
+               $SERCMD mi get_statistics sent_replies sent_err_replies 
received_ACKs
+
+               mecho "UsrLoc Stats: "
+               $SERCMD mi get_statistics usrloc
+               if [ $loops -ne $attempt ] ; then
+                       sleep $WATCH_PERIOD
+               fi
+       done
+       exit 0
+}
+
+OPENSER_MONITOR=ser_mi_monitor
+
+
+


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to