Я создал программу, которая использует sipp для генерации sip-трафика. хотел бы сгенерировать случайное число для пункта назначения случайным образом и во время выполнения без внедрения из внешнего CSV. В настоящее время я делаю то же самое для отправителя с помощью команды [service]. Есть ли другая команда, которую я могу использовать из командной строки? Могу ли я сгенерировать случайное число внутри сценария?
sipp генерирует случайную строку в сценарии
Ответы (1)
Я не думаю, что возможно заставить SIPp напрямую генерировать случайное число. Но если у вас есть доступ к общим утилитам Unix, вы можете предоставить его через командную строку.
Но я не уверен, что вы хотите сделать.
Если вы хотите выполнить один вызов, вы можете указать случайный пункт назначения в командной строке благодаря параметру командной строки set
.
Пример:
mydest=`n=8; rand -M $((10**${n})) | awk "{ printf(\"%0${n}u\", \\$1) }"`
sipp ... -set service_route mydest $mydest
(замените n=8 на количество цифр, которое вы хотите. Если вам не нужно фиксированное количество цифр, просто удалите часть awk)
Затем вы объявляете свою переменную в начале вашего сценария SIPp:
<Global variables="mydest" />
<Reference variables="mydest" />
После этого вы можете разместить его в сообщениях SIP с помощью [$mydest]
.
Но если вы хотите выполнять много вызовов с одного и того же запуска SIPp, вы можете на лету сгенерировать CSV-файл со случайными числами.
Пример:
n=8; echo "RANDOM" > zrandom; rand -e -N 1000000 -d "\n" -M $((10**${n})) | awk "{ printf(\"%0${n}u\n\", \$1) }" >> zrandom
sipp ... -inf zrandom
(то же замечание: замените n = 8 на количество цифр, которое вы хотите. Если вам не нужно фиксированное количество цифр, просто удалите часть awk)