Свежие записи

pjsip и Билайн

Конфиг транка для модуля pjsip и билайна. В некоторых местах вместо sip.beeline.ru написан IP этого сервера - 195.239.174.100 Это бжжжж не спроста. Если там писать имя сервера, дальше регистрации дело не идет. Подробнее об этом в предыдущем посту.

[Bi] type=aor qualify_frequency=60 contact=sip:195.239.174.100:5060

[Bi] type=auth auth_type=userpass password=bigpassword username=74955555555@sip.beeline.ru

[Bi] type=endpoint transport=0.0.0.0-udp context=from-pstn disallow=all allow=g729,ulaw,alaw,gsm,g726,g723 aors=Bi language=ru outbound_auth=Bi from_domain=sip.beeline.ru from_user=74955555555 t38_udptl=no t38_udptl_ec=none fax_detect=no t38_udptl_nat=no dtmf_mode=auto

[Bi] type=identify endpoint=Bi match=195.239.174.100

[Bi] type=registration transport=0.0.0.0-udp outbound_auth=Bi retry_interval=120 max_retries=10 expiration=3600 auth_rejection_permanent=no contact_user=74955555555 server_uri=sip:195.239.174.100:5060 client_uri=sip:74955555555@sip.beeline.ru:5060

Читать далее →

MTT vs Beeline

Не знаю, что я делаю не так, но не могу настроить sip от Beeline. Коннект проходит, но при разговоре голос слышно только с одной стороны. Да, я знаю про особенности sip и nat :) но… у конкурентов билайна все работает :)

Сначала пробовал на железяке: не работает. Для проверки своей криворукости взял аккаунт у МТТ. У них все работает. Тупо меняю в настройках sip.beeline.ru на voip.mtt.ru и… у билайна не работает, у  МТТ все летает.

Читать далее →

javafx RowFactory или как я красил строки таблицы.

Задача тривиальная: в зависимости от значения в наборе данных, надо красить строку зелёненким цветом.
Примеров решений задачи в инете, вагон и маленькая тележка.

Обычно рекомендуют что то типа такого:

tableView.setRowFactory((row) -> {
            return new TableRow(){
                @Override
                public void updateItem(MainTable item, boolean empty){
                    super.updateItem(item, empty);
                    if (item == null || empty) {
                        setStyle("");
                    } else {
                        Iterator it = tableZakaz.getItems().iterator();
                        while (it.hasNext()) {
                            Long zakazIndex = it.next().getProductIndex();
                            Long pIndex = item.getIndex();
                            if ( Objects.equals(zakazIndex, pIndex) )   {
                                setStyle("-fx-background-color:lightgreen");
                            } 
                        }
                    }
                }
            };
        });

Читать далее →

LXC error cpio: cap_set_file

Ндя, “Всё глыбже и глыбже.” (с) не я

Собираю контейнер под FreePBX. И тут у меня вдруг не устанавливается апач из стандартных пакетов. Выдает ошибку: cpio: cap_set_file

Лечится явным прописыванием в конфиг файл контейнера параметров:
lxc.cap.drop = mac_admin mac_override
#lxc.cap.drop = setfcap
lxc.cap.drop = sys_module sys_nice sys_pacct
lxc.cap.drop = sys_rawio sys_time

Обратите внимание, что в глобальных параметрах, lxc.cap.drop = setfcap был определен. Если его не прописывать явно в конфиге, то все будет пучком.

Читать далее →

LXC контейнер, systemd-journal грузит CPU на 100%

Ну вот, таки начал разбираться с LXC.
Базовая система Centos 7, контейнер Centos 7 и сразу бабах! CPU 100% на процессе systemd-journal. Контейнер не отзывается, и грохается жестко только через kill -9.

Проблема в закольцованном файле kmsg, который создается при запуске контейнера в директории rootfs.dev.
Лечится удалением ссылки из rootfs.dev и отменой записи сообщений ядра.

1. В конфигурационном файле контейнера config добавляем строку:
lxc.kmsg = 0. Он запрещает создание файла kmsg.

Читать далее →

Asterisk pjsip и Youmagic (MTT)

Взял тестовый номерок на YouMagiс. Решил через него астериск погонять. И тут выяснилось, что все примеры используют стандартный chan_sip или для FreePBX. А у меня pjsip стоит и рулю я ручками через конфиги:). Вообщем в итоге получилось, вот так :

pjsip.conf ======================[global]type=global; да, я даже freepbx заводил в виртуалке :) но не понравилось; оно мне, часть конфига спер оттуда.user_agent=FPBX-13.0.190.19(13.14.0)default_outbound_endpoint=dpma_endpoint**; debug не понравился. Лучше tcpdump для отладки еще****; ничего не придумали :);debug=yes[dpma_endpoint]type=endpointcontext=dpma-invalid[0.0.0.0-udp]type=transportprotocol=udpbind=0.0.0.0:5060; разумеется вместо 999 надо писать реальный IP роутера,; за которым за натом стоит астерискexternal_media_address=999.999.999.999external_signaling_address=999.999.999.999allow_reload=yeslocal_net=192.168.0.0/24; тут определены два внутренних телефона 100 и 101; много текста не показано;==== YouMagic =======================** ; Предположим, что МТТ дали телефон, он же логин (хотя логин **; при регистрации можно установить любой):; 74990000000****; и пароль: хитрыйпароль**[reg_voip.mtt.ru]type = registrationretry_interval = 20max_retries = 10contact_user = 74990000000expiration = 120transport = 0.0.0.0-udpoutbound_auth = auth_reg_voip.mtt.ruclient_uri = sip:74990000000@voip.mtt.ruserver_uri = sip:voip.mtt.ru:5060[auth_reg_voip.mtt.ru]type = authpassword = хитрыйпарольusername = 74990000000[mytrunk]type = aorcontact = sip:74990000000@voip.mtt.ru[mytrunk]type = identifyendpoint = mytrunk; это IP MTT сервераmatch = 80.75.132.66[mytrunk]type = authusername = 74990000000password = хитрыйпароль;realm = voip.mtt.ru[mytrunk]type = endpointcontext = from-externaltransport=0.0.0.0-udpdisallow = allallow = ulawallow = alawrtp_symmetric = yesrewrite_contact = yesfrom_user = 74990000000from_domain=voip.mtt.ru**; МТТ не может аутентифицироваться на нашем сервере****; поэтому не включаем аутентификацию при входящих с МТТ**;auth = mytrunkoutbound_auth = mytrunkaors = mytrunk=======================================================

Читать далее →

Проблема выбора.

Выбираю софт для группы IP телефонных станций. Щупаю Asterisk и FreeSWITCH .

Решил таки предложить использовать первый. Уж очень он легко и прозрачно конфигурируется :) Возможно FreeSWITCH надежнее и  быстрее, но блин, руками править XML - это жестоко. А мне ведь в будущем систему отдавать в обслуживание телефонистам старой закалки :) Там точно XML не пройдет.

Ну и FastAGI в мыслях держу.

З.Ы. Заодно разобрался с докером. Все думал, зачем оно мне надо, а тут “очень даже в дырочку”. Сложная в установке система, при помощи докера великолепно распространяется на много машин. Мне понравилось.

Читать далее →

JavaFX и java.lang.nullpointerexception location is required

Написал тут программульку для копания в OpenLDAP. Локально из jar файла все работает великолепно. Решил раздавать ее коллегам правильно, через веб сервер. И тут началось:

java.lang.nullpointerexception location is required

Не грузит сволочь fxml файл.

Облазил все форумы, пробовал и через class.getClassLoader().getResource() и просто class.getResource(). Читаю документацию, указываю пути как надо, с учетом выбранного метода. Не работает хоть тресни.

А всего то, надо было подписать приложение… твою едрить через это самое…

Читать далее →

Будни

На неделе пришлось импортировать базу из древнего Paradox приложения в MySQL. Оказывается этим однопользовательским чудом еще кто то активно пользуется.
Ну это, всякие бесплатные конверторы из парадокса в майскул (и не только в него) оказались полным отстоем. Платные я не пробовал, и не хотел пробовать. Разовый импорт данных должен быть бесплатным по определению :).
Попытка найти нормальный бесплатный драйвер Paradox для jdbc не увенчалась успехом. Покупать платный … ну вы поняли. Поэтому написать свою программульку на java не получилось.
В результате пришлось искать инсталяшку Парадокса, открывать таблицы в нем и экспортировать данные в csv. Далее путем небольшого шаманства, типа конвертации типов данных, все успешно переехало в мускуль.

Читать далее →

А ещё

А ещё я работу поменял. Был строителем, стал химиком.
Еще один профессиональный праздник в копилку :)

Читать далее →