Страница 1 из 1

Автоматическое переключение между симкартами LtAP mini

Добавлено: 29 авг 2019, 16:20
green4eg
Добрый день. Требуется помощь. Имеется LtAP mini LTE kit. Требуется переподключаться между симкартами при потере связи у одной из них. Нужно определять состояние рабочего слота сим карты и при определении, соответственно, переподключать либо на up, либо на down.

Re: Автоматическое переключение между симкартами LtAP mini

Добавлено: 05 сен 2019, 13:19
green4eg
Если кому интересно, на гитхабе есть скрипт для переключения сим по уровню сигнала. Я взял его за основу и засунул в netwatch.
RouterOS script that changes active sim slot if GSM network is unreachable or running low signal (<-99 dBm)
https://github.com/strobil/ltap-mini-dualsim-failover

 Скрипт

Код: Выделить всё

{
	:global initTimeout 60
	:global connectTimeout 60
	:global minimumSignalLevel -99

	:global switchSIM do={
		:local simSlot [/system routerboard sim get sim-slot]

		:if ($simSlot="down") do={
			:log info message="Switching to \"up\" sim slot (Vodafone)"
			/system routerboard sim set sim-slot=up
		} else={
			:log info message="Switching to \"down\" sim slot (Kyivstar)"
			/system routerboard sim set sim-slot=down
		}
	}

	:global initialize do={
		:global initTimeout

		:local i 0
		:while ($i < $initTimeout) do={
			:if ([:len [/interface lte find ]] > 0) do={
				:return true
			}			
			:set $i ($i+1)
			:delay 1s
		}

		:return false
	}

	:global waitConnect do={
		:global connectTimeout

		:local i 0
		:while ($i < $connectTimeout) do={
			:if ([/interface lte get [find name="lte1"] running] = true) do={
				:return true
			}
			:set $i ($i+1)
			:delay 1s
		}

		:return false
	}

	:if ([$initialize] = true) do={
		:if ([$waitConnect] = true) do={
			:local info [/interface lte info lte1 once as-value]
			:local rssi ($info->"rssi")
			:if ($rssi < $minimumSignalLevel) do={
				:log info message=("Current RSSI ".$rssi." < ".$minimumSignalLevel.". Trying to switch active sim slot.")
				$switchSIM
			}
		} else={
			:log info message="GSM network is not connected. Trying to switch active sim slot."
			$switchSIM
		}
	} else={
		:log info message="LTE modem did not appear, trying power-reset"
		/system routerboard usb power-reset duration=5s
	}		
}