К сожалению я не смог подготовить предыдущий выпуск, так как целиком был занят
восстановлением последствий сбоя на freesource.info. К счастью все данные целы.
По той же причине не были подготовлены и выложены патчи, использующиеся у меня
для сборки — можете не волноваться, выложу :)
Этот выпуск содержит в себе информацию за две недели в очень краткой форме.
Разное
в test-this-branch oej добавил патч для G.722 passthrouw и
записи/воспроизведения (сентябрьский патч от andrew, доработаный мной до
работоспособности на текущем trunk);
множество исправлений было сделано для Solaris / SPARC сборки и сборки для
Free BSD, я при этом напоминаю что Asterisk без zaptel (хотя бы на уровне
ztdummy) очень слабый продукт, потому до появления ztdummy под Solaris
смысла в использовании на нем Asterisk я не вижу;
множество небольших исправлений, в том числе doxygen документации;
ведется активная работа по переработке say.c, для лучшей
интернационализации Asterisk в будущем;
T.38
Судя по последним патчам для T.38, его явно тестирует очень небольшое
количество людей. Пожалуйста, поучаствуйте в тестировании и отладке этого патч
— он очень важен для всех нас, и для наших клиентов.
codec negotiation
В ветки team/oej/codecnegotiation начата моя работа по изменению channel API,
связанного с кодеками. Эта работа важна для будущего упрощения множества давно
ожидаемх улучшений в алгоритме выбора кодеков для использования. К сожалению я
не имею прямого доступа в svn, и передаю все патчи через oej, что резко
осложняет работу.
IAX2
– commit file's work to convert iax2 multithreading to use pthread conditions
instead of signals (with some modifications) — было бы крайне интересно
узнать, если кто-нибудь протестирует эти изменения, и скажет изменилась ли в
лучшую сторону стабильность Asterisk при использовании iax2 multithreading.
По последней информации из asterisk-dev@ последние изменения в IAX2 сделали
его работу много стабильнее.
fix build without SCHED_MULTITHREADED defined (issue #6719) — я пытался
собрать chan_iax2 без новомодного мультитредового шедулера, который вместо
того чтобы работать роняется астериск прямо и косвенно. Благо оставили
возможность собрать без него (убрав #defined SCHED_MULTITHREADED). Но, увы,
никто даже не пытался собрать в таком режиме, кроме меня, ибо оно не
собиралось. Тривиальный патч ушел в багзиллу и был принят. Теперь я
настоятельно рекомендую всем пользователям svn head комментирвать строку с
#definde SCHED_MULTITHREADED, если они не желают участвовать в отладке
этого кода (который был бы очень полезен, если бы работал).
Изменения в SIP
– Issue #6576 – SIP_CODEC not used for early media (reported by gpapadop73)
– add a missing header to fix building with -Werror (issue #6717) — я
постоянно тестирую сборку Asterisk с -Werror и результаты отправляю в
bugtracker, в настоящий момент я не использую сборок Asterisk, которые бы не
собираись с -Werror и вам того же желаю
– Issue #6690: clarify progressinband default setting (документация)
– Issue #6728: Remove parameters to Event: header on SUBSCRIBE requests
– Issue #6759, generate warning when refusing connection requiring unsupported
SIP extensions
– Issue #6766 – fix ;user=phone functionality.
– change “regcontext” to “global_regcontext” to mark it as a global setting
– show regexten in “sip show peer <name>"
– Reset global_rtautoclear at sip reload
– Fix SETUP_ACK handling so that we change channels if so requested
– show which peers in “sip show peers” and “sip show peer” that are cached
realtime peers.
Заключение
Все усиленно готовятся к freeze'у. svn head при этом, как ни странно, но
становится все более стабильным с каждым днем.
voicemail
– Fix a minor code issue
– Small fixes to the messagecount function (while trying to understand a bug
report...)
– Remove unused variable “ret”
– Declare char* pointers in the block where they are used
– add a couple of variables to clarify some code (issue #6700)
– Bug 6714 – Workaround to avoid retrieving incomplete voicemail message
– Issue #6781 – Verbose levels not enforced in app_voicemail (Reported by
flobi)
cdr
– remove calculations that always evaluate to zero, thanks Luigi!
– Furthermore, set the disposition to FAILED if the CDR was never even started
– Issue #5918 – Disposition showing FAILED even though call is answered
successfully (Reported by tracinet)
iax
– Don't overwrite ANI if it's already sent with IES
– Опция mailboxdetail больше не используется в виду своей бессмысленности в
настоящий момент. Ранее она использовалась, чтобы включить передачу не
только флага MWI (есть сообщения), но и детализации (сколько старых/новых
сообщений);
meetme
– Bug 6526 – app_meetme.c: Add a reference count to avoid crash
Остальные изменения
– pbx.c: add locking to protect the list of global dialplan variables
– Issue 6710: saydate crash. Fix by Luigi Rizzo — старая ошибка,
заключавшаяся в падении saydate при неуказании формата, вообще патчи от
Luigi очень высокого качества и содержат в себе как интересные архитектурные
изменения, так и разумные cleanup's. Была-бы моя воля, я бы содержимое его
branch'а давно отправил в svn — постабильнее бы была система;
– rawplayer.c: catch read/write errors and exit if they occur (issue #6721)
– clarify which global options are enabled by default — теперь общий #define
AST_DEFAULT_OPTIONS определяются эти опции — очень удобно для тех, кто
упаковывает астериск в дистрибутивы или спецрешения, и собирается менять
опции по-умолчанию.
– queue: fix a problem with not loading realtime queue members by always
reloading a realtime queue from the database even if it is found in the list
(issue #6680)
– app_rpt: update to reflect conversion of the accountcode to use stringfields
(issue #6722) — моя работа
– Bug 6316 – Add flag to not speak single user announcement (флаг '1')
– don't calculate a duration if the CDR wasn't started, as it will result in a
totally bogus value. Thanks, Luigi! :)
– fix the return value for the provided unsetenv() for Solaris
– fix memory leak due to not freeing the channel's string fields in
ast_channel_destroy() (issue #6746)
– fix the build of eagi-test on Solaris in combination with astmm
– fix astmm on sparc or any other architecture that doesn't allow unaligned
memory access
– don't add conference participant if the user hangs up while recording their
name (issue #6661)
– add a CLI command that allows converting files to other formats using the
Asterisk file format and codec translator modules (issue #6062)
– Bug 6699 – Fix for ENUMLOOKUP
– Meetme file is parsed with comma-delimiters, not vertical bars
– fix crash when using the Park And Announce application. When using this
application, there will be no peer channel to play the parking announcement
to. (issue #6756)
– update LOCAL_USER_ADD to use ast_calloc
– fix REGEX on strings that contain quotes (issue #6678)
– app_readfile: don't crash when asked to read from a file that doesn't exist
(issue #6786)
– zap: Allow channels to be moved if channel change is requested in SETUP_ACK,
also add a WAY cool new field to the nsf option
– Issue #6764 – Return BUSY signal when other party is busy at Attended
Transfer (Reported by mnachev)
– ensure global variables lock is held during 'show globals' CLI command
– add a CLI command that allows conversion of files to other formats using the
Asterisk file format and codec translation modules (issue #6062) --
используется просто, “convert oldfile.ext newfile.ext”
– Bug #5884 – fix a possible race state in app_meetme when a channel has gone
away and we are reading continuously for more frames. (mneuhauser)
– fixed G.723.1 building (после долгих споров в bugtracker'ы мы с PCadach были
посланы далеко и надолго, но проблема была решена наиболее правильным
патчем, увы, мой был больше похож на грязный хак :)
– pbx.c: Bug 6745 – Fix for ranges that wrap around the ends
– zap: always use the callerid signalling method set in the zt_pvt strucutre
as opposed to the last one read from the config file (issue #6734, with
mods)
– zap: Added separate outsignalling specification, and fixed FEATDMF to allow