SIP адресация панелей при помощи скриптов
Добрый день!
На объекте установлены:
- вызывная многоабонентская панель vizit на подъезде, подключенная через Beward DK103M
- вызывная пенель у квартиры 2N IP Verso
- 3 планшета с ПО iRidium
Проблема в следующем: в настройках драйвера в проекте клиента внесены определенные параметры SIP: ID, пароль. При обновлении проекта все панели принимают данные настройки. При этом сип-сервер перестает отправлять на них звонок и сбоит. Если вручную в параметрах драйвера на панели задать верные данные, то все работает.
Загвоздка в том, что параметры в SIP драйвер можно внести только через боковое меню и настройки драйвера.
Параметры, введенные через это окно не изменяют параметры драйвера:
Попытка записать параметры драйвера в каждой панели через такой скрипт не возымела успеха. Тут все панели поименованы.
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"... - это попытки найти способ писать из скрипта.
Чувствую, что это недокументированная история. Помогите решить проблему
Сервис поддержки клиентов работает на платформе UserEcho
Добрый день.
Менять параметры драйвера нужно методом 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 );
};
Добрый день.
У вас есть ещё вопросы?
Все работает. Спасибо!
Рады помочь.
а как то же самое сделать для i3 lite?
Добрый день.
Для модуля SIP в i3 lite нет возможности использовать разные параметры подключения на разных панелях. Для решения вашего вопроса используйте i3 pro.