Подзадержался я с написанием очередного выпуска, постараюсь исправиться. В конце апреля был внесён большой объём изменений, причём основные изменения были сделаны неожиданно. Вот Top4 изменений на мой взгляд:
- Внесение огромного количества изменений из ветви team/murf/bug11210
- Начался перенос из Swichvox возможностей, которые уже долгое время доступны пользователям этого продукта, хоть какая-то польза сообществу от покупки, сделанной Digium. В следующем выпуске так же будут нововведения из этой серии.
- Авторизация NOTIFY для запросов сконфигурированных в sip_notify.conf. Это конечно мелочь, но патч я сделал ещё в мае прошлого года.
- Произвольное количество слотов для парковки, может пригодиться для PBX, обслуживающих несколько компаний.
С этого выпуска я постараюсь больше внимания уделять внесённым нововведениям, давать ссылки на описания функций на voip.rus.net и voip-info.org.
Новое:
- Переход на использование astobj2 в chan_sip для хранения основных данных канала (список пиров, диалогов). До 4х кратного улучшения производительности (при большом количестве одновременно обрабатываемых диалогов, входящих звонков). Добавлен документ, описывающий каким образом производить тестирование срс.
- Краткий экскурс: astobj2 предоставляет абстракцию для хранения произвольных данных, позволяющую автоматически отслеживать использования данных, уничтожать неиспользуемые данные. Кроме того как основной контейнер для данных используется хэш-таблица, которая намного эффективнее для хранения данных по сравнению с односвязным списком.
- Увеличение скорости выполнения функций ast_sched_ (используются в канальных драйверах)
- event_unsubscribe использует теперь двусвязные списки, что должно увеличить скорость обработки MWI
- (#9896) Поддержка авторизации NOTIFY запросов, настраиваемых через sip_notify.conf (IgorG)
- (#11691) Добавлена функция MEETME_INFO (), позволяющая получить информацию о запущенной конференции (длительность разговора, количество участников и т.п.)
- (#6113) Добавлена возможность настраивать несколько слотов для парковки вызовов, устанавливая переменную PARKINGLOT и добавляя слоты в res_features.conf
- (#12425, #12484) Добавлена расшифровка некоторых ошибочных сообщений в libss7 и поддержка generic name
- (#12467) Добавлен оператор слияния строк ~~ для использования в AEL диалпланах
- Добавлена опция c () в приложение Jack () и функцию JACK_HOOK () для использования произвольного имени клиента. По умолчанию используется имя канала
- Добавлен код из team/russell/parking_updates. Новые возможности добавлены в приложение Park () и доступны в виде опций. Добавлены возможность указывать точку выхода из приложения, таймаут, возможность проигрывать тон вместо MoH и случайно выбирать слот для парковки
- (#12028) Добавлена возможность перенаправлять сообщение голосовой почты с комментарием, в случае использования IMAP
- Новая опция 'B' в ChanSpy (). Эта опция похожа на действие опции 'w', но позволяет передать сообщение обоим сторонам разговора
- (#12524) Добавлена команда CLI 'sip qualify peer'
Исправления:
- (#10078) Исправление уязвимости AST-2008-006
- (#12462) Переменная AGISTATUS должна иметь значение FAILURE если исполняемый файл не найден
- (#12007) При создании звонка через AMI Originate не устанавливался CDR (accountcode)
- (#12493) Обрезание двух символов в выводе различных данных через AMI
- (#12214) Передача MWI в Skinny переписана так, чтобы не вызывать segfault
- (#12440) Генерируемые asterisk'ом DTMF длинной в 0мс
- (#12490) Исправление работы опции setqueuevar=yes в app_queue
- (#12460) Функции ADSI не доступны в Skinny
- Информация о использовании MoH требует наличия завершающего конца строки, иначе «asterisk -rx 'help moh reload'» зависнет.
- (#12461) Восстановлена работа групп в ChanSpy ()
- (#12472) Значение переменной ${CALLINGPRES} должно быть в формате, приемлемом для SetCallingPres ()
- При автодополнении команды 'sip show channel <channel>' выдавать имя канала только один раз
- (#12502) Не прерывать диалплан если SayNumber () не может воспроизвести цифру из-за её величины
- (#11575) Исправлена работа команд reload/unload в модуле res_musiconhold
- (#12498) При нажатии * в ChanSpy () не происходил переход к следующему отслеживаемому каналу
- (#12496) Восстановлена работа MoH через mISDN каналы
- (#12292) Баг с неверным временем во времени MeetMe () конференции
- (#11328) При окончании работы канала переменная HANGUPCAUSE будет передаваться по цепочке к родительским каналам
- Добавлять только один заголовок max-forwards в исходящий REFER.
- Разнообразные исправления: сообщения об ошибках, утечки памяти, сборка app_voicemail.c с опцией IMAP_STORAGE и TDS, разнообразные дедлоки.
Внутреннее:
- Добавлена реализация двусвязных списков из ветви team/murf/bug11210
- Объединение приложения app_pickupchan с app_directed_pickup в целях сокращения дублирующегося кода. В рамках переноса кода из Switchvox.
- Множество дополнений в работу astobj2, а так же добавление новых структур данных (двойной связный список, refcount). Добавлена утилита refcounter
- Объявлены AST_LOG_* так как аналогичные переменные есть в syslog.h