0
Answered

SIP адресация панелей при помощи скриптов

evg 3 years ago updated by Vladimir Ovchinnikov (expert) 3 years ago 7

Добрый день!

На объекте установлены:

- вызывная многоабонентская панель vizit на подъезде, подключенная через Beward DK103M

- вызывная пенель у квартиры 2N IP Verso

- 3 планшета с ПО iRidium

Проблема в следующем: в настройках драйвера в проекте клиента внесены определенные параметры SIP: ID, пароль. При обновлении проекта все панели принимают данные настройки. При этом сип-сервер перестает отправлять на них звонок и сбоит. Если вручную в параметрах драйвера на панели задать верные данные, то все работает.

Загвоздка в том, что параметры в SIP драйвер можно внести только через боковое меню и настройки драйвера.

Параметры, введенные через это окно не изменяют параметры драйвера:

Image 47378

Попытка записать параметры драйвера в каждой панели через такой скрипт не возымела успеха. Тут все панели поименованы.

function SetSIPParameters()

{

var panelName = IR.GetVariable("System.Device.Name");

IR.Log("Panel name: " + panelName);

switch(panelName)

{

case "iPad living":

IR.SetVariable("Tokens.sipid","204");

IR.SetVariable("Tokens.callerid","204");

IR.SetVariable("Tokens.pass","204204");

break;

case "iPad bedroom":

IR.SetVariable("Drivers.SIP.sipid","205");

IR.SetVariable("Drivers.SIP.callerid","205");

IR.SetVariable("Drivers.SIP.pass","205205");

break;

case "EVG-NOTE":

IR.SetVariable("Drivers.SIP.sipid","208");

IR.SetVariable("Drivers.SIP.callerid","208");

IR.SetVariable("Drivers.SIP.pass","1234");

break;

}

}

Вариации IR.SetVariable("Tokens.sipid"... и IR.SetVariable("Drivers.SIP.sipid"... - это попытки найти способ писать из скрипта.

Чувствую, что это недокументированная история. Помогите решить проблему

Under review

Добрый день.

Менять параметры драйвера нужно методом SetParameters. Для SIP доступны свои свойства.

Для "iPad living" вы записываете не в свойства драйвера, а в токены. Если эти токены потом не используются, то драйвер не узнает о новых настройках.

Что вы понимаете под обновлением проекта? Если новый (изменённый) проект загружается на панель, то i3 pro отключает все предыдущие соединения и начинает новые (согласно настройкам в драйверах проекта).

Я решил это вот так:

var sip_Dev = [

{ hwid: "7bd3fe9da0cf9a4c7ea88baa8b324ac", sip: "124", name: "Panel1" },

{ hwid: "ccc8f4a1ab543a4f59abf6aac2cf2dc", sip: "125", name: "Panel2" },

{ hwid: "1220f9c8fe95d0697d5d4c19583", sip: "126", name: "Panel3" },

{ hwid: "8841037ca097ea49fca9eecab52ea7b", sip: "128", name: "Panel4" },

{ hwid: "060a817da34eda49c2a9d2da874ae54", sip: "129", name: "Panel5" },

];

for ( var i = 0; i < sip_Dev.length; i++ ) {

if ( IR.HWID != sip_Dev[i].hwid ) continue;

IR.GetDevice("SIP 1").SetParameters({ ID: sip_Dev[i].sip, CallerID: sip_Dev[i].name });

IR.SetVariable("Tokens.Panel_Name", sip_Dev[i].name );

};

Добрый день.

У вас есть ещё вопросы?

Все работает. Спасибо!

Answered

Рады помочь.

а как то же самое сделать для i3 lite?

Добрый день.

Для модуля SIP в i3 lite нет возможности использовать разные параметры подключения на разных панелях. Для решения вашего вопроса используйте i3 pro.