#!/bin/sh opensips_opts="fifo get_statistics all" opensips_cmd= opensips_update_every=5 opensips_timeout=2 opensips_priority=80000 opensips_get_stats() { timeout $opensips_timeout "$opensips_cmd" $opensips_opts |\ grep "^\(core\|dialog\|net\|registrar\|shmem\|siptrace\|sl\|tm\|uri\|usrloc\):[a-zA-Z0-9_ -]\+[[:space:]]*=[[:space:]]*[0-9]\+[[:space:]]*$" |\ sed \ -e "s|-|_|g" \ -e "s|:|_|g" \ -e "s|[[:space:]]\+=[[:space:]]\+|=|g" \ -e "s|[[:space:]]\+$||" \ -e "s|^[[:space:]]\+||" \ -e "s|[[:space:]]\+|_|" \ -e "s|^|opensips_|g" local ret=$? [ $ret -ne 0 ] && echo "opensips_command_failed=1" return $ret } opensips_check() { # if the user did not provide an opensips_cmd # try to find it in the system if [ -z "$opensips_cmd" ] then require_cmd opensipsctl || return 1 fi # check once if the command works local x="$(opensips_get_stats | grep "^opensips_core_")" if [ ! $? -eq 0 -o -z "$x" ] then echo >&2 "$PROGRAM_NAME: opensips: cannot get global status. Please set opensips_opts='options' whatever needed to get connected to opensips server, in $confd/opensips.conf" return 1 fi return 0 } opensips_create() { # create the charts cat <&2 "$PROGRAM_NAME: opensips: failed to get values, disabling." && return 1 # write the result of the work. cat <