Протестированные устройства:
- уличный SIP-видеодомофон i31S
- уличный SIP-видеодомофон i16V
- уличный SIP-видеодомофон i32V
- уличный SIP-аудиодомофон i12-01P
- уличный SIP-видеодомофон i33V
- внутренний SIP-аудиодомофон i10
- внутренний SIP-аудиодомофон i20S
Настройка IP-домофонов Fanvil
В зависимости от модели и версии прошивки видеофонов настройки могут незначительно отличаться.
Модель Fanvil i31S

Данная модель оснащена встроенными динамиком, микрофоном, фронтальной камерой. Камера 2 Мп с инфракрасной подсветкой и режимом ночного видения обеспечивает достаточное качество передачи видео для идентификации посетителя. Видео передается в качестве 720p при помощи кодека H264.
Для передачи звука был использован аудиокодек G722. В домофоне нет встроенного эхоподавления, данная модель поддерживает только шумоподавление. Собеседник слышит пользователя четко, но тихо. При повышении чувствительности громкости микрофона появляются посторонние шумы.
Настройка панели (версия прошивки 2.6.1.6726):
1. Войдите в web-интерфейс, введите логин и пароль (по умолчанию admin и admin).
2. Настройте IP-адрес так, как требуется для сети вашей SIP-системы.

3. Задайте аудиокодеки (проверено на G722).

4. Настройте громкость:
- Speakerphone Volume громкость динамика;
- Speakerphone Ring Volume громкость звонка;
- Broadcast Output Volume чувствительность микрофона.

5. Задайте параметры доступа к внешнему SIP-серверу.
Данные SIP-клиента, для подключения к серверу:
- Phone number имя пользователя;
- Display name имя, отображаемое при звонке;
- Authentication Name имя пользователя для регистрации на SIP-сервере;
- Authentication Password пароль пользователя для регистрации на сервере;
- Activate включить / отключить SIP-профиль.
Данные сервера:
- SIP Proxy Server Address IP-адрес сервера;
- SIP Proxy Server Port порт.

6. Настройте параметры DTMF-тонов:
- DTMF Type тип DTMF-тона;
- DTMF SIP INFO Mode тип обработки кнопок звездочка (*) и решетка (#).

Нажмите кнопку Apply. При успешном подключении к SIP-серверу должен отобразиться статус аккаунта Registered.
7. Помимо номерного набора данная модель поддерживает вызов с кнопки. Для вызова с клавиатуры необходимо набрать: звездочка (*), номер абонента, звездочка (*).
Настройте вызов абонента при помощи кнопки:
- Hot Key режим набора заранее заданного абонента (панель с клиентом i3Pro);
- Value 1 основной номер;
- Value 2 резервный номер;
- Line линия SIP.

8. Настройте код для DTMF-тонов:
- Calling Password код для активации реле через SIP-клиент iRidium.

Подробные отчеты по тестированию и настройке других устройств можно изучить на iRidium Wiki. Там же можно посмотреть сравнительные видео качества динамиков и микрофона панели по отношению к планшетам iPad Air 2 и iPad Pro.
Примечание
Для более качественной работы устройств необходимо через web-интерфейс настроить громкость микрофона и динамика устройства, стандартные значения задаются в диапазоне (1-9). Рекомендуемое значение для i31S, i33V, i20S, i32V 5. Для моделей i10, i12-01P, i16V рекомендуются значения 6-7.
Работа в iRidium Studio
1. Создайте панельный проект.
2. Добавьте драйвер SIP и настройте его.

На скриншоте выше красным выделены самые важные настройки:
- Host необходимо ввести IP-адрес вызывной панели (по умолчанию 192.168.1.5);
- Port порт вызывной панели (по стандарту SIP всегда 5060);
- SIP ID username SIP-аккаунта;
- Password password SIP аккаунта;
- Use SIP TONE true, генерировать SIP-сообщения тонального набора;
- Use DTMF Tone false, не генерировать обычные сообщения тонального набора;
- Codec PCMU true, активация аудиокодека G.711;
- Codec PCMA true, активация аудиокодека G.711a;
- Codec H264 true, активация видеокодека H.264.
Остальные кодеки следует отключить (false).
3. Добавьте графические элементы на экран панели и настройте их.

4. Добавьте скрипт в проект:
outdoor_station_number = 0101010100; // topological code of IPerVoice panel
var SIP = IR.GetDevice(SIP); // name of SIP driver
var action = CALL; // default action
ButtonAction = IR.GetItem(Page 1).GetItem(Button_action);
LabelName = IR.GetItem(Page 1).GetItem(Label_name);
LabelNumber = IR.GetItem(Page 1).GetItem(Label_number);
SwitchVideo = IR.GetItem(Page 1).GetItem(Switch_video);
IR.AddListener(IR.EVENT_START,0,function()
{
// display the SIP video
IR.GetItem(Page 1).GetItem(Video).GetState(0).Image = sip_image://;
});
IR.AddListener(IR.EVENT_TAG_CHANGE, SIP, function(name, value) {
if (name == STATUS) {
var flagReady = (value == On Hook... || value == Incoming Call...);
ButtonAction.Enable = flagReady;
var flagTalk = (value == Talking...);
IR.GetItem(Page 1).GetItem(Button_door).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button1).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button2).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button3).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button4).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button5).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button6).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button7).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button8).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button9).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button0).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button_asterisk).Enable = flagTalk;
IR.GetItem(Page 1).GetItem(Button_octothorp).Enable = flagTalk;
var flagConnect = (value == Dialing... || value == Trying... || value == Ringing... || value == Talking...
|| value == Not Found... || value == Not Acceptable... || value == Not Available... || value == Service Unavailable...);
IR.GetItem(Page 1).GetItem(Button_cancel).Enable = flagConnect;
SwitchVideo.Enable = !flagConnect;
if (value == Incoming Call...) {
action = ANSWER;
LabelName.Text = SIP.GetFeedback(INCOMING CALL NAME);
LabelNumber.Text = SIP.GetFeedback(INCOMING CALL NUMBER);
}
if (value != Incoming Call... && value != Talking...) {
action = CALL;
LabelName.Text = "---";
LabelNumber.Text = outdoor_station_number;
}
var flagShow = (flagReady || flagConnect || flagTalk);
LabelName.Visible = flagShow;
LabelNumber.Visible = flagShow;
}
});
function Talk() {
SIP.SetFeedback(NUMBER, outdoor_station_number); // when calling number is required
SIP.Set(action, SwitchVideo.Value); // call or answer, audio or audio+video
}
5. Настройте графические элементы для взаимодействия с драйвером SIP и скриптом.
Настройка кнопки для открытия двери
По нажатию кнопки на вызывной панели будет происходит вызов. Для открытия двери необходимо отправить цифровой код, который можно задать в настройках вызывной панели (по умолчанию *50)
1. Создайте новый скрипт
2. Добавьте в него следующее:
function SIPsendtone1(){
var SIPdevice1=IR.GetDevice(SIP);
SIPdevice1.Set(SEND TONE, 10); // отправка *
SIPdevice1.Set(SEND TONE, 5);// отправка 5
SIPdevice1.Set(SEND TONE, 0);// отправка 0
}
3. Создайте кнопку и привяжите к ней вызов данного скрипта.
Демо-проект
Скачать демо-проект можно на iRidium Wiki.
В проекте для панели имеются:
- дисплей, на котором в реальном времени отображается видео с видеокамеры панели,
- клавиатура для набора номера,
- кнопка вызова/ответа,
- кнопка отмены,
- кнопка открытия двери,
- отображение текущего статуса,
- отображение данных абонента (имя, номер),
- настройки громкости динамика и микрофона панели i3 pro.

Подробную техническую консультацию можно получить в компаниях АйПиМатика и Иридиум.