Преглед на файлове

kamctl: option for rpc command to replace tokens in parameters

- supported now: replace '=CRLF=' with '\r\n'
- fix 'kamctl ping' command by replacing '=CRLF=' with '\r\n'
in multi-headers parameter
Daniel-Constantin Mierla преди 4 години
родител
ревизия
1c66f6a1a5
променени са 2 файла, в които са добавени 13 реда и са изтрити 2 реда
  1. 1 1
      utils/kamctl/kamctl
  2. 12 1
      utils/kamctl/kamctl.rpcfifo

+ 1 - 1
utils/kamctl/kamctl

@@ -2036,7 +2036,7 @@ kamailio_stop() {
 options_ping() {
 	myhost=`get_my_host`
 	require_ctlengine
-	CMDPARAMS="tm.t_uac_start OPTIONS \"$1\" \".\" \".\" \"From:sip:daemon@$myhost"$'\r\n'"To:<$1>"$'\r\n'"Contact:sip:daemon@$myhost"$'\r\n'"\""
+	CMDPARAMS="= tm.t_uac_start OPTIONS \"$1\" \".\" \".\" \"From:sip:daemon@$myhost=CRLF=To:<$1>=CRLF=Contact:sip:daemon@$myhost=CRLF=\""
 	if [ $CTLENGINETYPE -eq 1 ] ; then
 		ctl_cmd_run $CMDPARAMS
 	else

+ 12 - 1
utils/kamctl/kamctl.rpcfifo

@@ -101,6 +101,12 @@ rpc_cmd()
 		chmod a+w $path
 	fi
 
+	PARAMEVAL="no"
+	if [ "$1" = "=" ]; then
+		PARAMEVAL="yes"
+		shift
+	fi
+
 	# construct the command now
 	CMD="{\"jsonrpc\": \"2.0\", \"method\": \"$1\"";
 	shift
@@ -114,7 +120,12 @@ rpc_cmd()
 		shift
 		while [ -n "$1" ] ; do
 			rpcparamval "${1}"
-			CMD="${CMD}, ${RPCVAL}"
+			if [ "$PARAMEVAL" = "yes" ]; then
+				CMDPARAM=`echo "$RPCVAL" | awk -F'=CRLF=' '{$1=$1}1' OFS='\r\n'`
+				CMD="${CMD}, ${CMDPARAM}"
+			else
+				CMD="${CMD}, ${RPCVAL}"
+			fi
 			shift
 		done
 		CMD="${CMD}]"