Asterisk with Avaya 9640 phone

Щоб не кричати на увесь будинок було вирішено поставити пару телефонів. З обладнання у наявності – мережа з підтримкою PoE на усіх порта[, Ethernet у місцях майбутнього розташування телефонів, ubuntu з Docker де вже запущено openhab та телефон Avaya 9640. Після недовгого аналізу вирішено було ставити для тесту Asterisk на вже існуючий Docker та робити SIP телефонію. У результаті з’явились таки вимоги:

  • SIP телефонія на базі Asterisk з підтримкою телефона Avaya
  • наявність HTTP сервера для Avaya (апдейт та налаштування)
  • окремий VLAN для IP телефонії, бажано без доступу навіть в інші мережі
  • інсталяція у вже існуючий докер, бажано з окремою IP мережею
Read More

Моніторінг температури у будинку

Вартість енергоносіїв вимагає бути від сучасних будинків енергоефективними. Одного дня було вирішено перевірити наскільки температура всередині будинку залежить від температури на вулиці коли вдома немає опалення. Щоб ще зробити треба просто розташувати кілька вимірювачів температури, зібрати показники та намалювати графік. Read More

Друге життя Windows Phone – модем

Вже багато років в мене лежить Samsung Focus ( SGH-I917).  От він дочекався свого часу – його можна використовувати як 3G/LTE модем.

Він надасть можливість отримувати дані про температуру на дачі. Як “сервер” сбору даних будемо використовувати Orange Pi One (так само й як телефон просто лежала та чекала свого часу).  Підключити OrangePi до мережі інтернет за допомогою телефона дуже просто.

Телефон

  1.  Набираємо ##634# та дзаонимо – після цього з’являється діагностичне меню.
  2.  У діагностичному меню набираємо *#7284# – Modem, USB diag.
  3.  Вставляємо у модем картку яка дозволяє користуватись інтернетом.

OrangePi

Йдемо на сайт https://www.armbian.com/download/ та завантажуємо образ
Записуємо на SD картку за допомогою Win32diskimager
Вставляємо картку та завантажуємо систему, створюємо пароль, та нового користувача.
Підключаємо телефон до USB порта, перевіряємо що система його побачила (повинен бути пристрій ttyACM0):

Встановлюємо wvdial за допомогою команди

sudo apt-get install wvdial

Створюємо конфігурацію за допомогою команди

sudo wvdialconf

ця команда створить файл конфігурації cat /etc/wvdial.conf

Після додавання правильної APN вийшов такий файл:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","internet"
Modem Type = USB Modem
Phone = *99***1#
ISDN = 0
Auto Reconnect = on
Password = xz
New PPPD = yes
Username = xz
Modem = /dev/ttyACM0
Baud = 921600
Auto Reconnect = on

Перевіряємо найвність посилання /etc/resolv.conf =>  /run/resolvconf/resolv.conf, якщо немає – створюємо.
Додаємо до файлу /etc/network/interfaces конфігурацію:

auto ppp0
iface ppp0 inet wvdial

Перезавантажуємо, перевіряємо що все працює автоматично.

Встановлюємо openvpn клієнт за допомогою команди

apt-get install -y openvpn

додаємо конфігурацію клієнта та маємо можливість у будь-який час під’єднатись до пристроя.

Створення gerber з EAGLE

Зробити плату для DIY проекту можна вдома чи замовити на фабриці. Якщо є час та натхнення, то односторонню плату можна зробити вдома, якщо є ще більше часу та натхнення то можна зробити двосторонню плату вдома, а потім паяти перемички між шарами плати вручну. Але якщо ви бажаєте мати нормальну металізацію між шарами, дуже тонкі доріжки та інше – простіше замовити плату на фабриці. 5-10 плат розміром десь 10х10 см коштують $12-13 разом з доставкою в Україну. Деякі компанії можуть узяти в роботу файли з sprint layout чи EAGLE, але для універсальним є gerber формат.Read More

pfSense mitm SSL proxy та firefox з Android

Після налаштування SSL Man In the Middle Filtering на pfSense для нормальної роботи треба встановити ca сертифікат на усіх пристроях.

Якщо просто завантжити сертифікат на Android за допомогою firefox, firefox завантажить сертифікат та ви зможете встановити його до системи, але firefox цей сертифікат його використовувати не буде. Щоб firefox розпізнав сертифікат як CA сертифікат треба щоб сервер віддав його як “application/x-x509-ca-cert” content-type.

Зробити це можна багатьма шляхами, я зробив це за допомогою сервера на Java:

package maxx.ca.rest;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.io.IOUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CertPage {
    @GetMapping(value = "/android", produces = "application/x-x509-ca-cert")
    public @ResponseBody
    byte[] getImageWithMediaType() throws IOException {
        InputStream in = getClass().getResourceAsStream("/ssl+ca.crt");
        return IOUtils.toByteArray(in);
    }
}

Відкриваємо firefox на Android та вводимо http://host:8080/android у строку адреси, встановлюємо сертифікат.