LINUX.ORG.RU

Сообщения VladV

 

IP камера получила адрес 127.0.0.12, как на нее зайти?

Форум — Admin

Вечер добрый всем! Случилась очень интересная ситуация, стояла себе и работала IP камера, на ноутбуке была запущена программа для настройки и мониторинга этой самой камеры, при запуске программа сканирует устройства и добавляет их в список доступных, иногда, если камера находится не в той подсети программа меняет ей адрес на «правильный». И вот эта самая программа, решила сменить камере адрес на 127.0.0.12 и все! Сама, сука, написала, что устройство оффлайн и больше найти ее не могла, разные пляски с бубном помогли камеру найти и удостовериться, что она висит в сети под адресом 127.0.0.12, но как на нее зайти? Винда вообще не разрешает вписать адрес 127 в настройках сетевого адаптера, Линукс позволяет, но подключится так и не удалось. Прописанный маршрут при нормальной адресации тоже не дает возможности зайти на камеру. Может кто-то может подсказать, как поменять адрес камере? Заранее благодарю!

 ,

VladV
()

Какой маршрутизатор взять для 200 ед. устройств?

Форум — General

Доброго времени суток друзья! Есть необходимость обеспечить качественным интернетом достаточной большой офис, примерное количество устройств в сети, около 200 единиц. Ноутбуки, ПК, МФУ, телефоны сотрудников, телефоны гостей, видеонаблюдение и так далее. До меня весь этот дурдом пытался работать под чутким руководством такой техники как TP-link Archer c3150. Пока было устройств до 50, вроде дело шло не плохо, сегодня уже под сотню и еще будет расти. Роутер на коленях, даже его админка грузится долго, клиенты либо вообще не получают адреса либо получают адреса, но интернета у них нет… Я с такой задачей столкнулся впервые, точнее с таким масштабом. Прошу совета, что лучше поставить, чтобы обеспечить стабильную работу?

Сейчас рассматриваю такие варианты:

1.Маршрутизатор TL-R600VPN от TP-Link

  1. Маршрутизатор MikroTik CRS109-8G-1S-2HND-IN

  2. Тупо поднять сервер на Linux для раздачи интернета, но тут из-за масштаба не совсем уверен какой мощности должен быть сервер.

 ,

VladV
()

Трансляция HLS или MPEG-DASH потока на сайт [РЕШЕНО]

Форум — General

Здравствуйте друзья! Не был уверен под какую ветку подходит мой пост, думаю эта больше всего.)))

Очень нужна помощь в осуществлении трансляции rtsp потока с камер на сайт, столько всего перепробовал — не получается вывести поток на страницу сайта на Wordpress. Нужен взгляд со стороны на все мною проделанное, буду благодарен любым советам и подсказкам!

Есть некий сайт работающий на хостинге с SSL на Wordpress, на этот сайт нужно опубликовать живую трансляцию с 4х IP камер. Перелопатив хренову тучу материала в сети понял, что есть два реальных варианта, HLS и MPEG-DASH. Причем MPEG-DASH в некоторых случаях требует перекодирования потока, а так как ПК для ретрансляции не шибко мощный, то HLS выглядит интереснее, но в целом задача запустить хоть что-то.

Для ретрансляции был установлен NGINX на свежий Linux, собран с модулем nginx-rtmp, конфиг настроен по мануалу, уточню, что раньше с NGINX дела не имел, больше использовал Apache. Так же уточню, что сервер для ретрансляции находится за натом, через Iptables были проброшены порты для http и для rtmp.

И так, все готово, все настроено! Проверка через VLC внутри сети показала, что все работает, поток запустился! Запуск из вне дался хуже, если я находясь внутри сети пытаюсь открыть поток через VLC по внешнему адресу, например http://196.96.186.86:8080/cams/stream1.m3u8, то ничего не откроется, если этот же адрес запросить снаружи, то поток запускается, я так понимаю, что проблема где-то в правилах Iptables, устранить эту проблему мне не удалось (т. к. тоже редко имею дело с iptables), но поскольку запрашивать поток будет сайт, который находится снаружи, я решил этот вопрос отложить напоследок.

Следующий этап, попытка вставить поток на сайт. Испробовав кучу разных плееров типа FV Player, Videojs, … запустить поток на сайте так и не получилось, все плееры выдают какую-то ошибку, причем некоторые говорят, что возможно формат не тот, а другие пишут, что проблема с сетью. Но VLC же нормально запускает поток! В чем может быть проблема? Случайно попал на информацию, что если сайт использует https (именно по этому я упомянул SSL в начале), то и поток должен использовать https, а у меня NGINX вообще висит даже без домена на белом IP, кто сталкивался с этим, есть ли разница по какому протоколу будет идти поток? Для проверки этой теории, я перевел весь сайт на хостинге на http, получил кучу страшных предупреждений, но сайт теперь, так сказать, на одной волне с сервером ретрансляции, все используют http. Но чуда не произошло, плееры на странице так и не показали поток, повторюсь, VLC же отлично все показывает.

ОГРОМНОЕ СПАСИБО тем, кто дочитал до этих строк! Куда двигаться? Почему при любых раскладах, будь то трансляция в HLS или MPEG-DASH, с транскодированием или нет VLC все нормально показывает, а на странице сайта одни ошибки?

Действительно ли, что протоколы веб сервера и сервера ретрансляции должны совпадать, стоит ли покупать домен, создавать сертификаты или это не поможет?

Заранее спасибо всем отозвавшимся!!!


Совершенно случайно увидел, что Firefox на Android, именно на телефоне, запустил HLS поток с сайта!! При этом на ПК в Firefox или Сhromium поток не запускается, так же поток отказался запускаться и в Chrome на телефоне, WTF?!! Наверное это позволяет снять вопрос о разности протоколов полностью и скорее всего указывает на проблемы в конфиге NGINX, вот только в чем может быть проблема…

 , , ,

VladV
()

Pulseaudio настройка 5.1, друзья, помогите.... [РЕШЕНО]

Форум — Multimedia

Всем доброго времени суток! Примерно полтора года у меня на медиацентре стоял Manjaro KDE + Kodi, все работало четко, звук 5.1 работал без нареканий. Так случилось, что пришлось переставить систему. Поставил свежий Manjaro 18.0, но уже XFCE. По началу вообще не было звука (dummy interface), пока на буржуйском форуме не прочел, что парню помогло отключить все джеки и подключить обратно. Проверил, помогло... до презагрузки, затем снова теже действия. Снова в сеть, искать как люди решают такую проблему. Не помню каким чудом добился постоянного стерео. Зашел в alsamixer нашел что установлено 2 канала вместо 6ти, я было обрадовался, но мое счастье закончилось с перезагрузкой, снова 2 канала. Спустя еще 6 часов в сети успеха я так и не добился, плюнул и решил поставить что-то Убунтовое. Выбор пал на Elementary OS, давно хотел попробовать. Тут ситуация обстоит чуть лучше. Наконец-то в pavucontrol я смог выбрать в профиле своей звуковой карты «Аналоговой 5.1». Казалось бы счастье было близко, но нет!!!

Проблема номер 1: Поканальной настройки нет, т.е. я не могу настроить громкость Центра или Саба отдельно, точно также как я не могу настроить Левый передний канал или Правый предний, с зданими каналами ситуация такая же. В Pulseaudio есть только Мастер, т.е. общая громкость на все каналы.

Проблема номер 2: При проверке каналов, т.е. Левый передний, или Саб или Задний правый звук идет со всех каналов одновременно, как будто у меня стерое подключенное к 6ти колонкам и все.

Проблема номер 3: «speaker-test -t wav -D plug:surround51 -c6 -l2» - дает звук поканально, alsamixer - дает возможность настроить громкость только на один канал целеком, т.е. только Передний или только Заднний или только Центр/Саб. Настроить отдельно громкость на передний левый я не могу, ну Бог с ним, хотя бы так. Но и опять засада! Громкость Саба вообще не регулируется, даже вместе с Центром. Т.е. в центре я слышу разницу, а вот громкость Саба зависит исключительно от общей громкости. Чем выще общая громкость, тем выше громкость Саба.

Может кто-то сталкивался с таким? Как добится нормального звука 5.1? Потратил 2.5 дня на это, так и не нашел выхода.

Материнка: Zotac IONITX-A-E

Аудиокарта: Audio device: NVIDIA Corporation MCP79 High Definition Audio (rev b1)

Ядро: 4.15.0-39

Заранее благодарю за советы!

 ,

VladV
()

Посоветуйте библиотеку С++ для работы с Asterisk

Форум — Development

Всем доброго времени суток! Кто сталкивался, как лучше связать программу на С++ с АТС Астериск 11? Пишу свой пробный проект, не знаю с чего начать. Задачи довольно простые: инициировать звонок, определить статус завершенного звонка, узнать длительность звонка и время его начала и конца.

Заранее благодарю за советы!

 ,

VladV
()

HP ENVY TouchSmart зависает при выключении, в чем может быть проблема?

Форум — Linux-hardware

Добрый день! Столкнулся со следующей ошибкой, ноутбук при выключении тупо виснет и выключается только варварским способом, даже слышно как жесткач охреневает от такого выключения. Перед зависанием на экране получаю примерно такой выхлоп, фото: https://drive.google.com/open?id=1Qwdl1gY0xySHiflfQs5xZWOrJOiI4aiR Частенько после такого выключения ноутбук где-то с минуту вообще не зажигает экран, потом выдает ошибку «90b fan error» и спрашивает, продолжить, но возможно проблемы, или выключить ноутбук? Но дело в том, что система охлаждения исправно работает, это слышно и чувствуется, показатели температуры, тоже вроде в норме. Да и возможно ли вообще зависание из-за плохой работы системы охлаждения именно в процессе выключения?

Такая ошибка повторяется уже не первый раз, первый раз такая хрень произошла где-то месяц назад, пришлось выключать ноутбук зажав кнопки питания, жесткачу это не понравилось, пришлось восстанавливать файловую систему, честно говоря думал уже бежать за новым hdd, но позже посмотрел smart и не увидев ничего страшного, списал это на разовый глюк.

Система установлена Manjaro, Core i7 4510, HDD Seagate FireCuda, ноутбуку лет, только веник новый, ему год максимум.

Заранее благодарен за советы!

 

VladV
()

Странная картинка с IP камер, кто может что подсказать?

Форум — General

Вечер всем добрый! Не так давно была необходимость собрать из ноутбука и 2х IP камер систему наблюдения, которая будет делать фото каждую минуту и отправлять по FTP, также одна из задач была максимальная автономность системы, т.е. у ноута свой аккум, а камеры, роутер, POE-инжектор работают от 12В бесперебойника. Система выглядит следующим образом:

Железо: 1. Современный ноут (модель не помню). 2. Роутер от Микротик подключенный к ИБП 12В. 3. Камера №1 подключена через пассивный POE инжектор к ИБП 12В (длина кабеля до камеры до 20м). 4. Камера №2 подключена через активный POE инжектор к ИБП 48В (длина кабеля до камеры ~90м). 5. Активный POE инжектор, в свою очередь, подключен через повышающий преобразователь (12В -> 48В ) к ИБП 12В.

Софт: 1. Mnajaro 17. 2. Motion (для создания фото).

Все собрано и готово к использованию, перед установкой было успешно протестировано в течении 1.5 недели, без единого сбоя.

После установки картинка с камер начала жить своей жизнью. Причем жизнь эта начинается примерно с 7 утра и продолжается до 4 - 5 вечера. Все начинается с легкого шума (белые пиксели) в самом низу фото, на первый взгляд даже незаметного, затем шум покрывает всю область картинки, а дальше как повезет. Может внезапно пропасть (шум), а может подойти тяжелая артиллерия в виде артефактов, картинка может быть на половину розовой, зеленой, иногда синей, иногда даже желтой. Может быть испорчено 50% картинки, а может и все 100%, но факт в том, что после 5 вечера, все приходит в норму. Так же была замечена неделя, когда все 100% времени картинка была идеальна.

Кто может предположить что это такое и как с ним бороться? У разных спецов спрашивал и говорил, что может это наводки от чего-то может силовая проводка, мне говорят, что никто не сталкивался с наводками на IP камеры, ладно бы аналог - вопросов нет, а тут цифра.

Катить бочку в сторону Motion - рука не поднимается, т.к. в офисе на тесте 1.5 недели все было четко, да и проблема не постоянна, а имеет почти четкие границы времени от и до. Так же в защиту Motion могу сказать, что такой же шум (правда только шум «радужных» картинок не встречал) был при просмотре через программку для мобильного XmEYE, я не придал этому значения, так как списал это на плохой Wi-Fi.

Монтажники, говорят, что кабель FTP хоть и идет по столбам рядом с силовыми проводами, но на достаточном расстоянии от них, следовательно наводки исключены, кабель медный.

Даже не знаю в какую еще сторону смотреть, также задача усложняется тем, что я нахожусь вдалеке от этого места и имею доступ только через SSH и доступ к FTP. Картинку в реальном времени (прямо с камеры) я видеть не могу.

Буду благодарен за любой совет/подсказку/идею Заранее благодарю, всех кто хотя бы смог прочесть все это))))

 , ,

VladV
()

Есть среди нас те у кого нормально работает Bumblebee/Prime? [РЕШЕНО]

Форум — General

Всем доброго времени суток! Собственно более 2х, а может и 3х лет назад я пытался запустить гибридную графику Intel/Nvidia, я понял что все это куча головняка и забил на это. Сегодня я купил себе новый жесткач и решил, наконец-то, переставить систему (Kubuntu 17.04). И думаю, ну вот сейчас-то уже точно можно будет дискретку запускать нормально, но нет! Официальный драйвер от Nvidia при переключении просит перелогиниться и после этого тупо отваливается весь интерфейс, т.е. графика есть, но она не работает, при попытке выполнить перезагрузку или завершение сеанса получаю ошибку, выход один CTRL+ALT+F1 и уже там выполнять перезагрузку или еще что-то. Пробовал Bumblebee, вроде все по инструкции делал, но ОНО не работает! Optirun постоянно выдает то один, то другой глюк, вот подсказали попробовать Manjaro, мол там все работает лучше, что скажите? Суть вопроса, если кто-то заставил работать дискретку адекватно( лучше конечно через bumblebee, чтобы не нужно было выполнять вход, выход перед использованием мощностей)) ), дайте инструкцию рабочую или поделитесь как этого добились Вы, спасибо!!

 , , ,

VladV
()

Опрос GPIO на компьютерах типа Raspberry, Banana, Orange ...

Форум — Development

Добрый день всем! Занимаюсь написанием консольной программки, на С++, для опроса GPIO портов. Раньше программа писалась только для работы на Raspberry, для опросов GPIO можно было использовать библиотеку WiringPi, библиотеку от Broadcom или самый простой метод - опрос файлов через sysfs (/sys/class/gpio/gpioX/value). Теперь есть необходимость сделать ее более универсальной, чтобы эту самую программу можно было с легкостью использовать как на Raspberry так и на форках типа Banana, Ornage и т.д. Мне кажется, что самый простой и универсальный метод опроса - это опрос sysfs, тогда программе нужно просто будет указать с какими портами работать и все, нет необходимости подключать новые библиотеки и переписывать программу под них. Интересно послушать чужое мнение насчет такого подхода, возможно есть еще какие-то универсальные способы опроса более адекватные. Буду благодарен за любое мнение или совет.

 ,

VladV
()

Нужен совет по С++ (vector + class + mutex + thread)

Форум — Development

Есть класс подключения разных устройств Device, в этом классе кроме прочих членов находиться std::mutex mlock;, так как объекты класса Device будут использоваться для работы в потоках. В начале программы я создаю Вектор объектов класса Device, «vector <Device> DeviceList(Config.GetDevAmount());» Здесь все работает как должно, вопросов нет, а вот дальше мне приходиться выполнять различные манипуляции с Вектором. Например, у меня в Векторе 10 объектов класса Device, в процессе работы мне нужно добавить еще 3 объекта класса Device после объекта с индексом 6, т.е., например, использовать модификатор insert. Но при использовании insert происходит копирование, а mutex копировать нельзя. push_back так же выполняет копирование, та же ситуация с resize. Может кто-то подсказать как правильно использовать mutex внутри объекта класса, чтобы можно было свободно работать с вектором?

Заранее благодарю за любой совет, так как сам уже несколько дней ломаю голову, а выхода не нашел. P.S. В операторе копирования в классе Device, попробовал создавать новый мютекс при копировании объектов. Если ручками написать Dev2 = Dev1, то все работает, а вот Вектор все равно ругает при компиляции и пока не выкинешь мютекс из класса - компилиться не хочет((((

 , , , ,

VladV
()

Вызвать метод класса в потоке, С++

Форум — Development

Добрый день! Изучаю ООП С++, попутно переписываю старые программы в стиле ООП, наткнулся на проблему. Есть объект Х класса Test, в классе есть два метода, допустим метод А и метод Б, метод А крутится в цикле и ожидает определенного события, когда событие происходит метод А должен вызвать метод Б в параллельном потоке (thread t1) и открепить (t1.detach()) его, в свою очередь метод Б должен иметь возможность продолжать работать с объектом Х. Подскажите как это правильно реализовать? Для запуска обычной функции в потоке, все было просто

thread t1(Function, Param1, Param2);
t1.detach();
С методами, понятное дел, так не получается, буду благодарен за пример или объяснение.

 , ,

VladV
()

С чего начать знакомство с OpenSSL новичку?

Форум — Development

Всем доброго времени суток! Пишу проект на С++, несколько программ, которые общаются между собой через сетевые сокеты, хотелось бы как-то шифровать трафик. Поиск в сети привел к OpenSSL(с OpenSSL раньше дела не имел, полный 0), но хотелось бы получить совет у знающих, с чего начать? Информации в сети валом, примеры все достаточно навороченные, такое впечатление вроде пытаешь напиться воды с гидранта. Может кто-то знает хороший ресурс с простыми примерами, типа Hello world только с OpenSSL)))) Или может помочь примерами. Заранее благодарю!

 , ,

VladV
()

How to: Настрока Click to Call через SIP(Asterisk) для Firefox и Kontakt

Форум — General

На днях была необходимость настроить сабж для офиса, до этого работала только кнопка clik_to_call на сайте. Решил поделится наработкой, возможно это сэкономит кому-то время. Данная информация не открывает Америку и рассчитана скорее на новичков, хотя может и Гуру будет полезна.

Настройка Click to call для Firefox и Kontakt (Органайзер в Kubuntu) через SIP и АТС Asterisk.

Первое что должно быть - это сам Asterisk, веб-сервер и настроено PHP, так совпало, что у меня все на одной машине, конечно можно разнести это по разным машинам, если есть нужда или уже так работает.

Если АТС и веб-сервер работают, можно приступать к настройке, и так:

  • Настройка manager.conf (Конфигфайл Asterisk, в Ubuntu / Debian он лежит по адресу /etc/asterisk).

    Открываем кому чем удобно, я, на время работы, открыл доступ к этим файлам через samba по сети.
    Правим:

    [general]
    enabled = yes
    port = 5038
    bindaddr = 111.22.33.444 ;localhost (127.0.0.1) или реальный IP вашего Asterisk
    ;у меня, кроме офисного clickTOcall, так же АТС принимает звонки с сайта, так
    ;что я указал свой реальный IP
    
    [office] ;имя пользователя, которое нужно будет указать в php скрипте
    secret=PassWord ;пароль соответственно
    deny=0.0.0.0/0.0.0.0 ;запрет на подключение с любого IP
    permit=111.22.33.444 ;разрешение на подключение только с какого-то одного,
    ;в моем случае это внешний адрес сервера, у вас может быть 127.0.0.1
    ;или еще что-то
    write = call,log,verbose,originate ;даем пользователю разрешения
    


    Сохраняем manager.conf, открываем консоль Asterisk и выполняем “manager reload”.
    На этом с Asterisk все.
  • Далее открываем папку откуда у нас будет доступен скрипт click_to_call.php и создаем его.
    У меня адрес к файлу выглядит так:
    /var/www/vhost/my.companyname.com/click_to_call.php.

    Открываем click_to_call.php и правим:
    <?php
    #ip address that asterisk is on.
    $strHost = "111.22.33.444";
    $strUser = "office" ;#specify the asterisk manager username you want to login with
    $strSecret = "PassWord" ;#specify the password for the above user
    
    #specify the channel (extension) you want to receive the call requests with
    #EXAMPLE $strChannel = "SIP/100"
    $strChannel = $_REQUEST['exten']; 
    $strContext = "local_office"; Контекст по которому совершаются звонки внутри офиса
    
    #specify the amount of time you want to try calling the specified channel before hangin up
    $strWaitTime = "30";
    
    #specify the priority you wish to place on making this call
    $strPriority = "1";
    
    #specify the maximum amount of retries
    $strMaxRetry = "2";
    $number=strtolower($_REQUEST['number']);
    $pos=strpos($number,"local");
    
    if ($number == null):
    echo "number is null";
    exit();
    endif;
    
    echo"Number is $number </br>";
    echo"pos is $pos </br>";
    
    if ($pos === false)
    {
    $errno=0;
    $errstr=0;
    $strCallerId = "Click_to_Call $number";
    $oSocket = fsockopen($strHost, “УКАЗАТЬ ТУТ ПОРТ С manager.conf” 5038, $errno, $errstr);
    echo "pos == false</br>";
    }
    
    if (!$oSocket)
    {
    echo "$errstr ($errno)<br>\n";
    exit();
    }
    else
    {
    #DEBUG, comment it if needed
    echo "sending data...";
    echo "</br></br></br>";
    
    echo "Action: login</br>";
    echo "Username: $strUser</br>";
    echo "Action: originate</br>";
    echo "Channel: $strChannel</br>";
    echo "CallerId: $strCallerId</br>";
    echo "Exten: $number</br>";
    echo "Context: $strContext</br>";
    echo "</br></br></br>";
    #DEBUG END
    
    fputs($oSocket, "Action: login\r\n");
    fputs($oSocket, "Events: off\r\n");
    fputs($oSocket, "Username: $strUser\r\n");
    fputs($oSocket, "Secret: $strSecret\r\n\r\n");
    fputs($oSocket, "Action: originate\r\n");
    fputs($oSocket, "Channel: $strChannel\r\n");
    fputs($oSocket, "WaitTime: $strWaitTime\r\n");
    fputs($oSocket, "CallerId: $strCallerId\r\n");
    fputs($oSocket, "Exten: $number\r\n");
    fputs($oSocket, "Context: $strContext\r\n");
    fputs($oSocket, "Priority: $strPriority\r\n\r\n");
    fputs($oSocket, "Action: Logoff\r\n\r\n");
    sleep(2);
    fclose($oSocket);
    }
    echo "Extension $strChannel should be calling $number.</br>";
    echo "BYE!";
    exit();
    ?>
    

    Сохраняем.
  • Проверяем.
    Если все настроено верно, то следующие действия должны выполнить вызов абонента.
    Открываем любой браузер и в адресной строке пишем адрес к вашему файлу, у меня он получился такой:
    http://my.companyname.com/click_to_call.php

    Перейдите по этому адресу, если скрипт рабочий, в ответ вы должны получить “number is null”.

    Теперь открываем консоль Asterisk и в адресную строку вписываем следующее:
    http://my.companyname.com./click_to_call.php?exten=SIP/111&number=0681232233
    где SIP/111 - ваш sip номер (у меня это IP телефон), а number - соответственно номер вызываемого абонента.

    Переходим по ссылке и смотрим в Asterisk, если все ок, должен пойти вызов. Если вызов пошел - поздравляю!

  • В процессе теста скрипта обнаружил одну штуку, номера в формате +3…. т.е. номера с плюсами могут не работать, “+” не передается в АТС, т.е. либо отправляйте номера без плюса либо отрезайте плюс. Как я это сделал, расскажу ниже.
  • Кто дожил до этого пункта, поздравляю! Осталась только настроить FireFox и Kontakt.
  • Настройка FireFox.
    Заходим Firefox > Дополнения > Получить дополнения и в поиске пишем Telify.
    Инсталлируем, перезагружаем браузер
    Открываем Расширения > Настройки > Напротив Telify жмем настроить.
    Общие настройки > Использовать протокол > Другой.
    Все остальное по-вкуссу.

    Ссылка для вызова выглядит так:
    http://my.companyname.com/click_to_call.php?exten=$1&number=$0

    Где $1 - параметр 1, туда нужно вписать наш SIP/111, а $0 - сам номер передаваемый браузером.
    Все закрываем, открываем страницу с номером телефона, нажимаем, проверяем.
  • Настройка Kontakt.
    Для тех кто не знает, Kontakt - это шикарный органайзер в Kubuntu, кроме прочего он может синхронизировать адресную книгу с Гуглом, а так как я использую Андроид, то для меня это сказка.
    Как настроить синхронизацию рассказывать не буду, это не тяжело, расскажу как выполнять вызов с этой адресной книги через IP-телефон на столе.

    И так, открываем Контакт > Настройка > Настроить Контакт > Действие с контактом > Набор телефонного номера > Внешнее приложение.
    И вставляем команду, сама команда, у меня, отличается от команды в Firefox. Основное отличие в том, что эта команда убирает + с номера иначе вызова не происходит

    Команда:
    curl "http://my.companyname.com./click_to_call.php?exten=SIP/111&number=`echo %n |tail -c 11`"
    

    Пояснения: ну про SIP/XXX думаю объяснять нет нужды, далее number. Номер телефона Контакт передает через %n, ну а поскольку я не использую в своей адресной книге номера длиннее 11 символов, я их обрезал через tail тем самым и убрал + из номера.
    Вставляем команду, сохраняем, закрываем.
  • Теперь если у вас не установлен curl, нужно его поставить. sudo apt-get install -y curl
  • Открываем контакты, ищем номер своего друга и нажимаем прямо на номер.
    Если все получилось -ПОЗДРАВЛЯЮ!

Всем спасибо! How-to пишу редко, так что если что не так, не судите строго.
P.S. Не знал куда лучше кинуть такую тему, кинул в General.

 , ,

VladV
()

Захват видео из своей программы

Форум — Development

Добрый день всем! Подскажите, начал разбираться с OpenCV, получил кучу не понятных для себя проблем, основная - это не желание моей программы захватывать видео с IP-камеры по rtsp. Короче решил начать с более легкого, захват одного кадра и сохранение и захват потока по RTSP видео+аудио. Начал искать как можно это сделать, чаще всего встречаются gstreamer и снова OpenCV. Но насколько я понимаю, использовать в программе OpenCV только для захвата и сохранения видео это как пить из гидранта, избыточно. Следовательно остается только gstreamer, но что-то примеров как через него выполнить захват видео, я не нашел. Может кто подскажет как проще всего выполнить захват одного кадра и захват потокового видео, как это правильно делается, с чего начать?

Огромное спасибо всем, кто хотя-бы читал)))

 , ,

VladV
()

IP телефон cisco 7911 пропущенные вызовы

Форум — General

Доброго времени суток,всем кто сюда зашел! Оооочень нужен совет или помощь, уже не первый месяц не могу решить проблему с пропущенными вызовами и нигде не могу найти ответ на два, как мне кажется, простых вопроса. Может тут мне кто-то поможет?

Попали в руки три телефона (cisco 7911), до этого дела с cisco телефонами не имел, удалось их запустить, но есть 2 но!

Вопрос 1.На экране отображаются пропущенные вызовы, а вот как им перезвонить? Доступны только кнопки «новый вызов(NewCall)» и «Повторный набор(Redial)», соответственно ни то ни другое не перезванивает человеку, который звонил. Думаю ладно, особенность телефона, захожу в «Меню» -> «Пропущенные звонки(Directories -> Missed Calls)» и там пусто. Т.е. единственный возможный вариант как перезвонить человеку от которого пропущен вызов - это тупо набрать этот номер вручную, но это бред! Даже стандартный панасоник имеет возможно перезвонить на пропущенный номер, а тут целый CISCO и не может. Закрадывается сомнение, что я не правильно его настроил.

Вопрос 2. Как отчистить экран телефона от пропущенных вызовов? Сейчас для того чтобы отчистить экран мне приходится либо тупо перезагружать телефон (что совершенно бредово) либо выделять каждый пропущенный вызов и нажимать кнопку «Повтор(Redial)», а затем быстро нажимать EndCall ибо происходит набор не пропущенного номера, который я выделил, а того номера на который я звонил последний раз. Не смотря на полный бред такого алгоритма, после него пропущенные звонки пропадают с экрана.

Гугл не помог решить эту проблему, живые люди - пока тоже, нужен совет! Заранее благодарю!

P.S. Конфиг телефона, если нужен (Хотел закинуть под спойлер, но что-то не прячется он).

<device>
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>user</sshUserId>
<sshPassword>123</sshPassword>
<devicePool>
<dateTimeSetting>
<dateTemplate>D.M.Y</dateTemplate>
<timeZone>E. Europe Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<name>192.168.0.200</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5176</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>192.168.0.200</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<sipProfile>
<sipProxies>
<backupProxy></backupProxy>
<backupProxyPort></backupProxyPort>
<emergencyProxy></emergencyProxy>
<emergencyProxyPort></emergencyProxyPort>
<outboundProxy></outboundProxy>
<outboundProxyPort></outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x-serviceuri-cfwdall</callForwardURI>
<callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
<callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
<callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
<meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
<abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
<rfc2543Hold>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>0</dndControl>
<remoteCcEnable>true</remoteCcEnable>
</sipCallFeatures>
<sipStack>
<sipInviteRetx>6</sipInviteRetx>
<sipRetx>10</sipRetx>
<timerInviteExpires>180</timerInviteExpires>
<timerRegisterExpires>3600</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>120</timerKeepAliveExpires>
<timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>true</remotePartyID>
<userInfo>None</userInfo>
</sipStack>
<autoAnswerTimer>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<preferredCodec>g711ulaw</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>info</dtmfOutofBand>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>
<natEnabled>false</natEnabled>
<natAddress></natAddress>
<phoneLabel>Cisco</phoneLabel>
<stutterMsgWaiting>0</stutterMsgWaiting>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>
<sipLines>
<line button="1">
<featureID>9</featureID>
<featureLabel>110</featureLabel>
<proxy>192.168.0.200</proxy>
<port>5176</port>
<name>110</name>
<displayName>NAME</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName>NAME</authName>
<authPassword>PASS</authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>3501</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>110</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>true</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>
</sipLines>
<voipControlPort>5176</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate>
</sipProfile>
<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>1</callLogBlfEnabled>
</commonProfile>
<loadInformation>SIP11.8-5-3S</loadInformation>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>0</autoSelectLineEnable>
<webAccess>1</webAccess>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp>
<networkLocale>US</networkLocale>
<networkLocaleInfo>
<name>US</name>
<version>5.0(2)</version>
</networkLocaleInfo>
<deviceSecurityMode>1</deviceSecurityMode>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL></servicesURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>2</transportLayerProtocol>
<capfAuthMode>0</capfAuthMode>
<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>
<certHash></certHash>
<encrConfig>false</encrConfig>
</device> 

 ,

VladV
()

Детектор движения на С/С++ с IP камеры, помогите начать

Форум — Development

Доброго времени суток, есть необходимость создать детектор движения используя rtsp поток с IP камеры, чаще всего встречаю похожие проекты с использованием OpenCV, но так же встречал не очень хорошие отзывы о этой библиотеке, говорят кривая, косая используйте что-то другое, но что другое, никто не говорит. Так как я начинающий, хотелось бы действительно узнать, что лучше использовать для таких целей? Возможно кто-то разбирается в этом и может подсказать, а еще лучше если и пару примеров сможет дать/показать. Интересует только Linux, windowые библиотеки не интересны.

Заранее благодарю!

 , ,

VladV
()

Кто может объяснить странное поведение motion?

Форум — Multimedia

Доброго времени суток всем! Пытаюсь сделать что-то типа СКД для дома, ничего особо сложного, так это мой первый проект. Ситуация такая, есть программа сервер (secure), которая принимает данные с proximity считывателя карт, в зависимости от разных ситуаций эта программа должна запустить программу motion либо остановить. Запуск программы выполняется через функцию system(), "system(«/usr/local/bin/motion»)", после запуска motion начинаются проблемы с считывателем, моя программа не получает данных с него. Решил проверить, возможно motion и моя программа используют одинаковые порты, набираю lsof -i |grep 9761 и смотрю выхлоп вот что я вижу:

secure    14315     root   13u  IPv4 305612      0t0  TCP *:9761 (LISTEN)
secure    15011     root   13u  IPv4 305612      0t0  TCP *:9761 (LISTEN)
secure    15011     root   14u  IPv4 305613      0t0  TCP 192.168.0.113:9761->192.168.0.191:1068 (ESTABLISHED)
motion    15230     root   13u  IPv4 305612      0t0  TCP *:9761 (LISTEN)
motion    15230     root   14u  IPv4 305613      0t0  TCP 192.168.0.113:9761->192.168.0.191:1068 (ESTABLISHED)

И lsof -i |grep motion

motion    15230     root    3u  IPv4 305600      0t0  TCP localhost:13013 (LISTEN)
motion    15230     root    4u  IPv4 306048      0t0  TCP localhost:http-alt (LISTEN)
motion    15230     root    8u  IPv4 306044      0t0  TCP 192.168.0.113:39106->192.168.0.114:http (ESTABLISHED)
motion    15230     root    9u  IPv4 306052      0t0  TCP localhost:tproxy (LISTEN)
motion    15230     root   13u  IPv4 305612      0t0  TCP *:9761 (LISTEN)
motion    15230     root   14u  IPv4 305613      0t0  TCP 192.168.0.113:9761->192.168.0.191:1068 (ESTABLISHED)

Motion и моя программа используют одинаковыей порт 9761, поменял порты в своей программе, проверяю... И снова вижу тоже самое, только номер порта другой. Думаю ладно, грохну motion и выполню запуск сам, т.е. «sudo motion». Motion запустился, делаю lsof -i |grep motion

motion     8577     root    3u  IPv4 292557      0t0  TCP localhost:http-alt (LISTEN)
motion     8577     root    5u  IPv4 292550      0t0  TCP 192.168.0.113:39167->192.168.0.114:http (ESTABLISHED)
motion     8577     root    6u  IPv4 292561      0t0  TCP localhost:tproxy (LISTEN)
И вижу, что motion нормально себе работает с IP камерой на 114 айпишнике, и знать ничего не знат про порт 9761, соответственно «lsof -i |grep 9761» показывает мне только мою программу.

Может мне кто-то объяснить что за фигня происходит и как сделать так, чтобы motion не дублировала соединения той программы, которая ее запускает?

Заранее благодарю всех, кто хотя бы дочитал до этого момента!

 ,

VladV
()

RSS подписка на новые темы