Вот и пришёл Новый Год. Как-то совсем быстро. Но это только кажется, в действительности за этот год произошло множество событий, всего уже и не упомнить. Если на новогодних выходных удастся выкроить время, то посмотрю архивы, смахну пыль со старых новостей и сделаю обзор самых заметных на мой взгляд событий за 2007 год. Естественно в мире Asterisk. Прошедшая же неделя прошла тихо и не заметно: в западном мире празднуют Рождество, все убежали по рождественским распродажам и никто никаких значимых изменений не вносил. Хотя что-то конечно есть 🙂
Небольшое замечание. Впредь я постараюсь делать более информативные заметки, плюс добавлять ссылки на записи в трекере, если описание той или иной функции не полно. Так же если встречается имя той или иной команды, буду по-возможности делать ссылки на русский вики. Если есть какие-либо замечания и просьбы — пишите в комментариях.
Новые функции:
- Добавлено новое приложение — PickupChan. Такое приложение было включено в набор GPL дополнений на sourceforge, а теперь будет «из коробки» доступно в 1.6. Перехватывает вызов по названию канала, что гораздо удобнее, на мой взгляд, чем пользоваться перехватом по экстенжену.
- Добавлена передача thread id в agi... Сомнительная возможность, сделано для удобства ведения логов из AGI, чтобы потом удобно было сопоставлять логи из AGI и сообщения консоли астериска.
- Добавлена возможность записи логов app_queue в любое realtime хранилище. В виде патчей и всевозможных скриптов было ещё, наверное, с версии 1.0. Теперь хранение и мгновенный анализ логов из очередей не составит проблем (sergee)
- Добавлена функция DIALPLAN_EXISTS (), которая проверяет, существует ли указанная место в диалплане. Наверное будет удобно в паре с GoTo (), чтобы не отправлять звонки в никуда.
- В app_amd добавили новый параметр maximumWordLength
Исправления:
- Файл codecs.conf теперь не обязателен для запуска астериска.
- Исправления в console_video для chan_oss. Продолжается допиливание поддержки видео в консоли, едва ли не половина всех ревизий на этой неделе.
- Исправлено «размножение» пользователей в iax2, я лично встречался с багом когда настраивал iaxmodem. Данный зверь встречается только в транке.
- исправлено поведение приложения Park (): по таймауту оно «перепарковывало» заново (1.4)
- ast_translator_best_choice () теперь обращает внимание только на аудио-кодеки. Это позволяет решать проблему, когда звонок использует video, и сеанс связи установлен не может быть.
- Исправлен дедлок в ast_hint_state_changed ()
- Исправлена ошибка в app_queue. При стратегии ringall могли быть использованы для вызова агенты с меньшим приоритетом, в то время как есть свободные агенты (с меньшим penalty)
Внутреннее:
Приводимое в этом разделе будет интересно только программистам, непосредственно работающих с исходными кодами проекта.
- патч к chan_zap, чтобы значение для callprogress обозначить константами (dimas)
- Исправлена работа с IMAP, функция mail_copy ожидала имя папки, а не указатель на структуру с описанием.
- Функции, выполняющие загрузку модуля должны возвращать AST_MODULE_LOAD_FAILURE или AST_MODULE_LOAD_SUCCESS
Ветки:
Готова к тестированию ветка, в которой значительно увеличина скорость работы со списком каналов
благодаря использованию ast_obj2. Использован хеш, вместо связных списков в ast_channel, что и должно дать увеличение производительности. Теперь поиск канала по имени происходит намного быстрее. Эти изменения затрагивают ядро астериска, так что нет чего-либо, что нужно тестировать отдельно. Любое использование затронет произведенные изменения, так что если кто-то имеет такую возможность: скачайте и установите код из данной ветки, чтобы протестировать этот, без сомнения, полезный код.
SVN: http://svn.digium.com/svn/asterisk/team/russell/chan_refcount