Asterisk версии 1.6.x
Изменения по сравнению с версией 1.4:
Ядро системы:
- Параметр файла asterisk.conf: 'languageprefix' объявлен устаревшим и для месторасположения неанглийских звуковых файлов по умолчанию используется 'новый стиль', который был введен в Asterisk 1.4 (и он используется в автоматическом инсталляторе звуковых файлов при помощи Makefile).
- Код ast_expr2 был модифицирован для поддержки чисел с плавающей точкой. Числа в формате D.D теперь могут использоваться в качестве аргументов для обработчика "expr", где "D" - это строка, представляющая десятичное число. Теперь все вычисления производятся, на основании того, что все аргументы имеют тип "long double", если это поддерживается вашей компьютерной архитектурой или компилятором. Это является промежуточным решением, которое с одной стороны является багфиксом (т.к. функция MATH, по умолчанию, возвращает результат типа "long double"), а с другой расширяет возможности системы в целом. Кроме того, для ряда 'функций', которые используют (или требуют) целочисленных вычислений, в код для "expr" была также добавлена возможность, позволяющая использовать несколько типов округления/усечения чисел, наряду с функциями, которые работают с числами с плавающей точкой, такие как: sin, cos, tan, log, pow, и т.д. Также была добавлена возможность вызывать внешние функции, такие как CDR(), и т.д., без необходимости использовать синтаксис: ${...}.
- Разделитель параметров, который используется для передачи параметров в приложения был изменен на запятую (','), т.к. именно этот разделитель привыкли использовать пользователи в файле конфигурации extensions.conf. Если вы используете Realtime екстеншены в плане набора, то Вы должны отредактировать Ваш план набора, чтобы использовался этот новый разделитель. Чтобы использовать запятую, как символ, а не разделитель, Вам нужно экранировать этот символ с помощью символа обратной наклонной черты ('\'). Еще один возможный побочный эффект состоит в том, что Вам возможно будет необходимо удалить излишние символы обратной наклонной черты, которые были необходимы для правильной работы плана набора в версии 1.4 и предыдущих версиях. Это должно в будущем сделать написание плана набора более удобным, хотя все равно с проблемами однопроходного конвертирования.
- Параметр файла конфигурации logger.conf: 'rotatetimestamp' был объявлен устаревшим в пользу 'rotatestrategy'. Этот новый параметр поддерживает стратегию ротации лог-файлов: 'rotate', которая ближе, в терминах ротации лог файлов, системному логеру - syslogd (newsyslog).
- Краткие версии различных CLI команд были объявлены устаревшими. Рекомендуется использовать "менеджер интерфейс" (AMI) для интеграции Asterisk с другими приложениями.
AMI - manager interface (TCP/TLS/HTTP)
- Код Интерфейса Менеджера (AMI) подвергся большому количеству изменений, все они описаны в файле: doc/manager_1_1.txt
- Версия Менеджер интерфейса изменена на 1.1
- Добавлена новая AMI команда: 'CoreShowChannels' для получения списка текущих каналов и некоторой информации о них.
- Добавлена новая AMI команда: 'SIPshowregistry' для получения списка SIP регистраций.
- Добавлена поддержка TLS для AMI интерфейса и HTTP сервера.
- Добавлен конфигурационный параметр для переназначения по URI на другой url во встроенном HTTP сервере.
- Вывод поля CallerID в событиях, генерируемых Менеджер Интерфейсом, сделан теперь более понятным. CallerIDNum - используется для получения поля номера, а CallerIDName - для получения имени.
- Включаемая поддержка https для встроенного http сервера. Для более детальной информации см: configs/http.conf.sample
- Добавлена новая AMI команда: GetConfigJSON, которая может возвратить содержимое файла конфигурации Asterisk в формате JSON. Она предназначена для улучшения взаимодействия AJAX приложений, которые используют связь с AMI через HTTP.
- В событиях, генерируемых Менеджер Интерфейсом для SIP и IAX каналов, теперь всегда используется поле "ChannelType", где указывается используемый драйвер канала. Ранее, мы использовали комбинацию из заголовков "Channel" и "ChannelDriver".
- Добавлена новая AMI команда: "Bridge", которая позволяет Вам соединить потоки любых двух активных канала в системе.
- Добавлена новая AMI команда: "ListAllVoicemailUsers", которая позволяет Вам получить список всех пользовательских настроек голосовой почты.
- Добавлены новые AMI команды: 'DBDel' и 'DBDelTree'.
- события из модуля cdr_manager теперь поступают в уровне "cdr", тем самым они были отделены от очень подробного уровня событий - "call".
- Аккаунты для Менеджер Интерфейса теперь хранятся в памяти, а не загружаются каждый раз из файлов. Если Вы произвели какие-либо изменения в файле manager.conf (или users.conf, которые касаются AMI интерфейса), Вам необходимо перегрузить AMI интерфейс (Rem: Мой патчик )
- Добавлено новое событие - Masquerade, для отображения происходящих изменений между двумя каналами.
- Добавлена новая CLI команда "manager reload", для перезагрузки конфигурации AMI. (Rem: Тоже мой патчик )
- Множество команд, которые только предоставляют информацию, теперь можно вызывать, только если установлен уровень привилегий "Reporting", вместо использования привилегий "Call" или "System".
- AMI Команды вида: IAX* теперь требуют наличия у вызывающего привилегий "System" или "Reporting", дабы соответствовать командам вида: SIP*.
Изменения в функциях плана набора.
- Добавлена функция плана набора: DEVICE_STATE(), которая позволяет получить состояние любого устройства в плане набора, а также создавать специальные состояния для устройств, которыми можно управлять из плана набора.
- Расширены возможности функции CALLERID(), с помощью аргументов "pres" и "ton", для получения значения "calling number presentation indicator" представленного в виде строки и представленного в виде числа.
- Команда MAILBOX_EXISTS (ex MailboxExists) теперь является функцией плана набора.
- Новый параметр для команды Dial,:::::()" class="wiki wiki_page">Dial(), для указания IP телефонам не считать вызов как "пропущенный", если ни кто не ответил на него в заданный интервал времени или, если вызов был отменен.
- Добавлены функции: LOCK(), TRYLOCK(), и UNLOCK(), которые предоставляют одноуровневый доступ к мьютексу (блокировке) плана набора. При этом невозможны взаимные блокировки (deadlock), команда LOCK() позволяет выполнить только одну блокировку для любого заданного канала. Также, блокировка автоматически снимается, когда канал освобождается.
- Добавлена функция плана набора: HINT(), которая позволяет получить информацию, связанную с "hint". Hint - это соответствие между екстеншеном и устройством, которое создается ради определения состояние екстеншена. Эта функция может вернуть список устройств или имен, которые связанны с заданным "hint".
- Добавлена функция плана набора: EXTENSION_STATE(), которая позволяет получить состояние любого екстеншена.
- Добавлена функция плана набора: SYSINFO(), которая позволяет получить системную информацию.
- Добавлена функция плана набора: DIALPLAN_EXISTS(), которая позволяет проверить наличие определенной точки обработки в плане набора.
- Добавлены две новые функции плана набора: TOUPPER и TOLOWER, которые, соответственно, конвертируют заданную строку в верхний или нижний регистр.
- При соединении каналов, сервер Asterisk устанавливает BRIDGEPVTCALLID в значение "unique ID" драйвера канала для вызова (это не значение "Asterisk call ID" или "unique ID"), при условии, что драйвер канала это поддерживает. Для канала SIP, вы получаете "SIP call-ID" для соединенного канала, который Вы можете сохранить в CDR, как дополнительное поле (custom field).
Изменения в CLI командах
- Новая CLI команда: "core show hint" (использование: core show hint <екстеншен>).
- Новая CLI команда: "core show settings".
- Добавлена новая CLI команда: 'core show channels count'.
- Добавлена возможность устанавливать уровень отладки и verbose, в зависимости от используемого файла.
- Добавлены новые CLI команды: 'queue pause member' и 'queue unpause member'.
- Появилась возможность устанавливать лимиты на процессы ("ulimit") без перезапуска сервера Asterisk.
- Расширен синтаксис команды "agi debug", для вывода имени канала в виде префикса в отладочной информации, чтобы сделать процесс отладки загруженных систем более простым.
- Новая CLI команда: "dialplan set extenpatternmatching true/false"
- Новая CLI команда: "core set chanvar" для установки переменной канала из CLI.
- Добавлена простая возможность выполнения CLI команд при загрузке сервера Asterisk. Будут выполнены все команды, перечисленные в секции startup_commands файла конфигурации cli.conf.
Изменения, касающиеся канала SIP
- Улучшена поддержка работы с NAT и STUN. chan_sip теперь может использовать номер порта в параметрах bindaddr, externip и externhost, так же как и обращаться к STUN серверу для определения своего внешнего IP адреса для SIP сокета. Смотри секцию 'NAT' в файле конфигурации sip.conf.sample.
- По умолчанию, SIP идентификатор "useragent=" теперь включает в себя версию Asterisk.
- Новый параметр файла конфигурации sip.conf - "match_auth_username" изменяет алгоритм поиска соответствия входящих запросов с имеющимися в конфигурации пользователями. Если установлен, и поступивший запрос содержит авторитизационные данные, то будет использовано имя пользователя (для поиска в списке пользователей) из данных Дайджест авторизации, вместо имени пользователя из заголовочного поля "From:". Это нововведение пока считается экспериментальным.
- Установки файла sip.conf: "musiconhold" и "musicclass" были удалены, т.к. они были запенены параметрами "mohsuggest" и "mohinterpret" в версии 1.4
- Установочный параметр "localmask" бул удален еще в версии 1.2, теперь было удалено и напоминание, что данная настройка была удалена.
- Добавлен новый параметр - "busylevel", для установки количества вызовов, когда asterisk будет считать устройство занятым, для отделения этого условия занятости от параметра "call-limit". Это значение также было добавлено в функцию плана набора SIPPEER.
- Новое семейство для механизма realtime - "sipregs", теперь может использоваться для хранения данных SIP регистраций. Если определено это семейство, "sippeers" будет использоваться для конфигурации, а "sipregs" для регистрации клиентов. Если это семейство не определено, "sippeers" будет использоваться для хранения данных регистраций, как и раньше.
- Функция плана набора SIPPEER теперь имеет новые опции для номера порта, группы вызовов и pickup группы.
- Добавлена поддержка передачи текстовых данных в реальном времени - T.140 в SIP/RTP.
- Установка файла sip.conf: "checkmwi" была удалена, т.к. в ней больше нет необходимости из-за того, что обработка MWI была сильно реконструирована. Для дополнительной информации, смотри описание параметров "pollmailboxes" и "pollfreq" в файле конфигурации voicemail.conf.
- Новый параметр "rtpdest" добавлен в функцию плана набора CHANNEL().
- Добавлены новые переменные SIPREFERRINGCONTEXT и SIPREFERREDBYHDR, которые устанавливаются, когда имеет место перевод вызова (transfer).
- SIP теперь добавляет заголовок в сообщение CANCEL, если на вызов ответили с другова телефона, в пределах одной команды Dial() или, если в команде Dial() использовалась новая опция "c".
- Теперь, по умолчанию, промежуточный ответ "100 Trying" не будет отправляться на запрос "REGISTER", поскольку в RFC спецификации указано, что это делать не требуется. Однако, для телефонов, которым требуется это промежуточное сообщение, можно использовать новый параметр "registertrying", который восстановит отправку промежуточного сообщения для клиента.
- Новый параметр - "callcounter" (Для секций global/peer/user), включает счетчик вызовов, который необходим для лучшего определения статуса клиента, что используется при подписке на SIP оповещения о состоянии екстеншенов. (Для этих целей ранее использовался параметр Call-Limit).
- Новые установки для таймера T1 и таймера B можно указывать, как в глобальной части конфигурации, так и персонально для каждого устройства. Это делает возможным установить значение таймаута в большее значение для медленных SIP серверов. Эта настройка предназначена для опытных пользователей, не изменяйте ее, если вы точно не уверены в своих действиях.
- Добавлена новая опция для строки вызова, которая позволяет установить значение заголовочного поля "To:" сообщения INVITE в значение любого SIP uri.
- Новый глобальный и клиентский параметр - "qualifyfreq", который позволяет настроить вам периодичность проверки доступности клиента.
- Добавлена поддержка "SIP Session Timers" (RFC 4028). Это предотвращает подвисание SIP сессий, которые не были завершены должным образом из-за проблем с сетью или отказа на конечной точке, в процессе установления SIP сессии.
- Добавлена поддержка TCP и TLS для протокола SIP. Для дополнительной информации, см содержимое файлов: doc/siptls.txt и configs/sip.conf.sample.
Изменения, касающиеся канала IAX2
- Добавлен новый параметр настройки канала chan_iax2 - "trunkmaxsize".
- Добавлен новый параметр файла конфигурации iax.conf - "srvlookup".
- Добавлена поддержка OSP. значение этого токена может быть установлено и получено с помощью функции CHANNEL() плана набора.
Изменения, касающиеся канала XMPP Google Talk/Jingle
- Добавлен новый параметр файла конфигурации gtalk.conf - "bindaddr".
Изменения, касающиеся канала Skinny
- Добавлены новые CLI команды: "skinny show device", "skinny show line" и "skinny show settings".
- Надлежащая поддержка кодеков для канала chan_skinny.
- Добавлена поддержка запросов для установки IP и Ethernet QoS.
Изменения, касающиеся канала MGCP
- В файле конфигурации mgcp.conf добавлены отдельные настройки QoS для медиапотоков.
Изменения, касающиеся канала Console
- Добавлена экспериментальная поддержка передачи и приема видео для канала chan_oss. Для этого требуется SDL и ffmpeg/avcodec, плюс Video4Linux или X11, для работы в качестве источника видео.
Изменения, касающиеся канала Phone (chan_phone)
- Добавлена поддержка режима passthrough для кодека G729 в chan_phone для карт от Sigma Designs.
Изменения, касающиеся канала H.323
- Добавлена поддержка сообщений о состоянии hold удаленной H323 клиента (remote hold notification) (с помощью сообщений NOTIFY и/или дополнительного сервисного протокола - H.450)
Изменения, касающиеся канала Local
- Функциональность статуса устройства в драйвере канала Local была улучшена для правильного отображения состояний INUSE или NOT_INUSE, когда используется канал типа Local, вместо состояния UNKNOWN, для существующего екстеншена.
- Добавлена поддержка jitter буфера для chan_local. Это позволяет Вам использовать возможности основного jitter буфера, когда входящие вызовы обрабатываются Asterisk приложениями. Например, это позволяет вам использовать jitter буфер для входящих вызовов по протоколу SIP в систему голосовой почты, поместив прохождение этого вызова через канал Local на пути от SIP канала до голосовой почты. Эта возможность может быть активирована, путем использования опции 'j' в команде Dial, при вызове через канал Local в сочетании с существующей опцией 'n' для канала типа Local.
продолжение следует...