Перейти к содержимому
Калькуляторы

Art_isT

Новичок
  • Публикации

    1
  • Зарегистрирован

  • Посещение

О Art_isT

  • Звание
    Абитуриент
    Абитуриент

Контакты

  • ICQ
    Array
  1. Проблема со скриптом, бьюсь уже неделю не могу понять причину проблемы. Есть скрипт на удаление соединения sip: :local pingcount "4"; :local pingip "8.8.8.8"; :local voiceGwIp "10.1.2.250:5060"; :local replyHost; :local gateway; :local gatewayDn; :local activeReply; :local activeRoute; :local routeDn; :local voiceCon; :local pingresult [/ping $pingip count=$pingcount]; :if ($pingresult > 0) do={ :set activeRoute [/ip route find where active routing-mark=tel]; :if ($activeRoute = "") do={ :local mes1 "Clear-sip-connections: route is not found."; } :set routeDn [/ip route find where routing-mark=dn]; :if ($routeDn = "") do={ :local mes2 "Clear-sip-connections: route Dn is not found."; } :set voiceCon [/ip firewall connection find where src-address=$voiceGwIp]; :if ($voiceCon = "") do={ :local mes3 "Clear-sip-connections: connection is not found."; } :if (($activeRoute != "" ) && ($routeDn != "" ) && ($voiceCon != "" )) do={ :set gateway [/ip route get $activeRoute gateway]; :set gatewayDn [/ip route get $routeDn gateway]; :set activeReply [/ip firewall connection get $voiceCon reply-dst-address]; :if ($gateway = $gatewayDn) do={ :set replyHost "xxx.xxx.xxx.xxx:5060"; } else={ :set replyHost "yyy.yyy.yyy.yyy:5060"; } :if ($activeReply != $replyHost) do={ /ip firewall connection remove $voiceCon; :log warning ("Clear-sip-connections: clearing connection src-address:$voiceGwIp, reply-dst-address:$activeReply"); } else={ :nothing; } } else={ :log warning ("$mes1 $mes2 $mes3"); } } else={ :log warning ("Clear-sip-connections: no ping"); } Скрипт сам по себе работает (запускается через планировщик каждые 30 сек.), соединение убивает, но иногда в лог пишет "script error: no such item (4)". Выяснил, что проблема происходит на этом участке: :set voiceCon [/ip firewall connection find where src-address=$voiceGwIp]; Но почему он иногда выдает ошибку понять не могу, так это соединение висит постоянно, к тому же пробовал задавать заведомо неверный src-address, на выходе получаю пустой результат. Версия системы 6.6.