lua – asterisk – еще немного размышлений

При написании диалплана на lua переходишь от простого программирования к объектно-ориентированному. Т.е. каждый вызов – это контакт двух объектов – caller и callee. caller инициирует вызов, callee принимает.

В свете современных интеграций прежде чем достигнуть callee caller обрастает достаточно большим объемом данных – что за номер, регион, страна, клиент, категория обслуживания, контактный менеджер. Соединившись с callee, caller может продолжить свое путешествие-обслуживание будучи переведенным на другого callee. И весь набор своих данных нести за собой.

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

Advertisements
lua – asterisk – еще немного размышлений

3 useful npms #nodejs #npm #js #javascript

tracer – отличная замена стандартному console

пишем var console = require(‘tracer’).colorConsole(); и радуемся жизни

config – больше не надо заботиться о конфигах, просто поставьте переменную окружения. Особенно удобно использовать совместно с process.json в pm2. В process.json указываем переменные окружения NODE_ENV, NODE_CONFIG_DIR и радуемся жизни.

joi – валидация js-объектов по заранее определенной схеме. Например, очень удобно валидировать конфиг, чтобы не забыть какой-то новый параметр добавить.

 

3 useful npms #nodejs #npm #js #javascript

https + letsencrypt

Вот уже происходит определенная эволюция – “https anywhere”. График роста использования ssl-сертификатов показывает, что это востребованно. И удобно. Удобно использовать простую утилиту для создания и обновления сертификатов.

letsencrypt – спасибо, что ты есть ))

https + letsencrypt

Из обсуждения на форуме – преимущества pjsip #voip #telecom #asterisk

Из обсуждения на форуме – преимущества pjsip

Возможность иметь несколько сетевых профилей, слушать одновременно разные порты на одном или нескольких интерфейсах

+ 100% поддержка rfc

Регистрация нескольких устройств на одного пира
Более правильная работа с DNS
Возможность настроить обмен devicestate и mwi между Астерисками без софта со стороны
Возможность расширения функциональности своими модулями, без изменения кода Астериска
Не знаю, зачем нужны Resource List Subscriptions, но их тоже до кучи

Из обсуждения на форуме – преимущества pjsip #voip #telecom #asterisk

Софт-парад 2016 Красноярск #софтпарад2016

В целом Софт-Парад достаточно камерное событие. Т.е. конечно и СМИ говорили, и в интернете написали. Но не особо интересно это массам. Поэтому участвуют только те, кто у кого есть мотивация. И не важно, внутренняя или внешняя 🙂

Мне понравилось. Люди учатся. Люди презентуют в первый раз, во второй.. И учатся. Что-то делать, общаться, получать обратную связь. Поэтому дальше отмечу несколько по моему скромному мнению хороших проектов, которые могут развиться в что-то более масштабное.

ZDM-auto.ru – будущее проекта вызывает у меня огромный скепсис, но очень надеюсь, что я не прав.

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

21 в cli – клевая задумка. Но аудитория такой игры – это люди сидящие в консоли на Linux, freebsd, а не в MS-DOS.

Выжигатель на STM32 – орудие пыток. А может быть скоро тату таким образом на людях выжигать будут или штрих-коды печатать.

Дополненная реальность, интерактивный поход в национальный парк – вообще, бомба!

Приложение для общения студентов СФУ, умный дом, умные часы и другие проекты – достаточно интересные направления мысли.

Но хочу отметить еще несколько моментов, которые мне хотелось бы улучшить:
1. участники выкладывают код библиотек/разработок на гитхаб, показывают работающие приложения и сайты – это очень клево, потому что даже уйдя с мероприятия, все те кто познакомился с проектом, могут придти домой и найти его в интернете. Могу только порекомендовать всем остальным, кто не готов выкладывать продукт в общий доступ или хочет это сделать на определенных условиях – сделать страничку, где предложить условия взаимодействия.

2. Обмен идеями/мыслями/разработками между участниками – такие же разработчики, которые еще находятся в процессе поиска должны знакомиться с проектами друг друга и могут найти общие точки соприкосновения для получения развития. Например, девушка разрабатывает обучающее приложение, где необходима игра (ФинБаскет), а в другом конце зала сидит парень, который делает игру с обезьянами.

В общем, мыслите шире. Всем добра.

Софт-парад 2016 Красноярск #софтпарад2016

selinux

Из чата asterisk-support.ru вынесу свое отношение к selinux:

напишу таки свои пять копеек про selinux ко вчерашнему разговору

Андрей думает, что это мало кого беспокоит. Но так и есть. Все спокойно хранят свои данные в облаках и умают, что о них должны заботиться компании. Только небольшое количество спецов понимают, что да как, где дыряво, где не заштопано. При этом менять архитектуру/основу системы не каждому дано, по большей части люди используют только верхние готовые упрощенные интерфейсы. И зачастую такой подход работает. А уж если речь идет о дополнительной настройке (да еще и не обязательной), то тут как бы и вовсе о чем говорить?

но тема таки может быть интересной, т.к. используемая с тех пор когда мамонты еще были молодыми и не такими шерстяными система разграничения rwx для 3-х уровней не всегда достаточна. Особенно для упоротых на безопасности, для параноиков.

Но для обычных прикладных чижей, к коим отношу например и себя, она вообще побоку.

Но время покажет. Т.е. чтобы эта тема вошла в обиход, ее должны начать поддерживать и использовать как раз производители ПО. Т.е. в мануалах, заметках, how-to’сах должно быть написано, что делать чтобы повысить безопасность приложения. Чтобы ты не сам придумывал, как да что. А были уже предзаготовленные решения, которые устанавливались сразу при установке, а не надо было раскурить трубку, попить чаю, раздуплить два раза тему и потом настроить абы как. Пока этого нет.

И еще про время. Время покажет, что удобно, а что нет. Возьмем к примеру docker. Технология зашла и начала резкий взлет совсем не так давно, хотя cgroups, на которых она базируется, уже 10 лет как есть в линуксе. Просто нашлись чижы которые раздуплили как из этого сделать удобную конфету с человекопонятными командами и донесли до сообщества. Теперь у нас даже есть рецепты как между двух докеров засунуть третий и маслом намазать.

Когда я вижу asterisk_t и метку типа ast_cod_lib_t – я думаю, еб№на мать, если я к этому вернусь через полгода, фиг чего я разберу, зачем я это сделал, лучше я с этим связываться вообще не буду. Когда я вижу cgcreate, cgexec, cgclassify – о, боже, как это все бросать в суп – вместе или по очереди, а посолить-поперчить? когда я пользую docker exec, docker build – ну на порядок структурированней и понятней (в общем, cli тоже надо уметь варить)

Хотя selinux тоже уже давненько присутствует, его использование пока не дает “а-а-а!.. дайте два” эффекта. Возможно, кто-то сядет и напишет тулзу, которая будет все аккуратно за тебя делать, возможно разработчики будут видеть пользу от применения при эксплуатации своего ПО и рекомендовать использовать, или что-то еще. Но пока… хз.

Теперь попробую привести примеры. Вот допустим у нас есть веб-сервис, который пускает только авторизованных пользователей. С определенных ip. По https. Но в нашем веб-сервисе есть возможность загрузить файл, который как-то затем обрабатывается, например загружаем картинку и изменяем ей размер. И мы знаем, что у этого веб-сервиса используетс ядля ресайза либа, которая для определенных gif с котиками, выполняет код. Наш пользователь может что-то у нас сделать, что мы ему не разрешали делать. Это печаль.

Или еще пример. Я написал прогу. Говорю, эй парни, у меня есть хорошая прога, agi-сервер для астериска, который все делает хорошо. Бинарник, однако, извините. Но в него добавил exploit, который на определенных линуксах запускает код. Т.е. вы сами поставили троянского коня. Это тоже печаль.

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

Если у вас более масштабное решение, т.е. кол-во пользователей исчисляется тысячами и много больше пользователей. То тут как раз и встает вопрос о том, что всем им просто так доверять тоже не стоит. Каждый из них имеет определенный уровень доступа и уже что-то может делать с вашей системой. Вы же их не забаните по ip? Отсюда, следует, чтобы все процессы и данные, к которым имеют доступ такие пользователи не делали всего того, что не следует. А значит их нужно ограничить. И у вас есть для этого средства: а) писать свои проги так, чтобы пользователи не пихали туда все, что не нужно, б) эти проги должны быть существенно ограничены системой.

Ну, и наверное стоит помнить, что это разработка АНБ. Т.е. АНБ заказали разработку какого-то демона, допустим конвертит wav в mp3, чтобы места хватило для записи всех разговоров всех американцев. Но вдруг этот конвертер еще и Сноудену будет mp3 отправлять? Ай-вай. Было бы хорошо, дать доступ к двум папкам и запретить использовать сеть вообще. ок, selinux.

Как-то так.

selinux