Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Документация и статьи по Asterisk PBX Asterisk: новости


Asterisk development

Мои поздравления!

Вышел 1.4.0.

Кроме того теперь можно честно заявлять что качество IP-телефонии на базе Asterisk выше, чем качество традиционной цифровой телефонии, ибо в транк ушла реализация G.722 кодека от Steve Underwood. Разумеется я сделал бэкпорт (благо транк в том что касается кодеков ещё не убежал далеко), и все желающие смогут насладиться прелестями G.722 под Asterisk 1.4.

Увы, в официальные сборки 1.4 эта поддержка, видимо, не попадет.

Что мы имеем?

Выход 1.4 дал очень многое, но не произошло многого из того о чем мы мечтали.

У нас теперь есть реализация jitterbuffer для всех channels. Теперь есть зачатки поддержки T.38 транзита, сильно переработан chan_skinny (поддержка SCCP), сильно доработан штатный chan_h323.

Кроме этого нас ожидает резкое увеличение производительности на всех RTP-based протоколах, увеличение максимальной нагрузки на IAX2, и множество улучшений в качестве кода.

А также много чего хорошего, Digium похвастается этим в своих press release'ах :)

Я же предпочту сказать то, чего они не скажут -- что у нас есть плохого.

- в chan_h323 ещё осталось некоторое количество граблей. Например он не собирается на x86_64, при загрузке модуля блокирует загрузку всех остальных модулей, не переносит reload, и содержит много других радостей;

- chan_skinny ещё не дорос до chan_sccp, но автор второго отказался подписать дисклеймер для Digium, а сам работу над ним забросил, и с 1.4 он не совместим.

- chan_iax2 пока содержит некоторое количество известных критических багов, так что тем кому он критичен лучше дождаться выхода 1.4.1;

- многие сторонние модули до сих пор не портированы на 1.4, в наших сборках часть таки портировано, но у меня только одна голова и две руки, так что до портирования остальных ещё пройдет некоторое время;

- изменения в codec negotiation, которые так долго ждали так и не были приняты, и даже мои простые патчи слегка дополняющие API чтобы в будущем такое изменение было сделать проще -- так же не прошли;

- сейчас в svn для ветки 1.4 все ещё очень активно делаются багфиксы;

В общем радоваться стоит, а вот бежать резко обновляться -- не стоит.

Текущие изменения

Как только разморозили trunk туда сразу же вошла поддержка SS7 в chan_zap (увы, по отзывам тех кто её тестировал, она куда хуже чем chan_ss7 в настоящий момент), а также вновь проявился Luigi Rizzo со своими способностями по оптимизации и всего и вся.

Кроме этого начата активная работа над использованием rwlocks. Для тех кто незнаком с этим механимзом рассказываю подробнее.

В настоящий момент везде где в астериске используются mutex'ы речь идет о том, что доступ к к объектам защищеным mutex'ом одновременно нельзя получить нескольким нитям. В случае, когда доступ на чтение осуществляется чаще чем на запись, это вносит лишнее замедление работы, тем большее, чем больше нитей пытаются одновременно получить доступ к ресурсу.

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

Особенно чудесным образом это заметно при попытках использовать Asterisk на процессорах Niagara.

Логика же rwlocks такова, что к ресурсу может иметь доступ либо одна нить на запись, либо неограниченое количество нитей на чтение.

Вместе с тем, что в 1.4 переработали RTP-стек, реализовали frame caching и внутреннее API для использования thread local storage (TLS), это очередной серьезный шаг по увеличению масштабируемости Asterisk.

Однако его полноценная реализация потребует ещё переделки всех внешних модулей, чтобы они также использовали это API (кстати частично добавленое уже в 1.4, правда только в 1.4 branch, уже после релиза 1.4.0).

MATH()

Да, забыл упомянуть вроде как малозначительную мелочь -- в trunk теперь функция MATH понимает операции сдвига и возведения в степень. Разумеется в следующей же версии SeirosPBX будет backport этих изменений.

В избранное