Развитие Asterisk 11: chan_motif

Администратор, 30.07.2012

Если Вы следите за обновлениями базы модулей Asterisk, то возможно заметили появление нового драйвера каналов chan_motif.

И должно быть Вы спросили себя "Motif? Что ещё за motif? Это что ещё за новоиспечённый протокол?"

Что ж, сейчас мы Вам всё объясним, но сначала немного истории.

04.02.06 в Asterisk было добавлено то, что впоследствии стало chan_jingle.

В то время он обслуживал и протокол Jingle (точнее то, что должно было им стать), и Google Talk.

Конечно, вскоре возникли определённые проблемы: протокол, внедрённый Google оказался несовместимым со спецификацией Jingle! Таким образом (что вполне предсказуемо), был создан chan_gtalk.

Первое плановое сообщение о chan_gtalk, датируемое 23.08.06 звучит так: "Первым делом нужно отделить jingle от gtalk, это облегчит работу, а затем можно постепенно отказываться и от этого разделения"

Как показали прошедшие 6 лет, нет более долгосрочного решения проблемы, чем её временное решение. На протяжении этих 6 лет сообщество разработчиков Asterisk старалось поддерживать оба драйвера каналов, отслеживая изменения в протоколе Jingle и в его целевой программе, которой и был Google Talk.

В конечном итоге не всё пошло так, как хотелось бы. Частично это было связано со структурой драйверов каналов (к примеру с тем, что их два!), частично с тем, что Google вносили изменения в протокол Google Talk.

В Digium решили заручиться поддержкой сообщества разработчиков и попросили их взять оба драйвера под личный контроль.

К сожалению, ни Digium, ни сообщество разработчиков open source не смогли поддержать chan_jingle / chan_gtalk на том уровне, на котором нам бы хотелось.

И тем не менее, шесть лет спустя появилась некая определённость. У протокола Jingle появилась полноценная и стабильная спецификация с базой драйвера каналов.

Google выпустили ветку библиотек (Google Jingle) libjingle 0.5.x, которая намного ближе к протоколу Jingle, чем старый протокол Google Talk.

Различия между протоколом Jingle и Google Talk стали теперь куда понятнее, чем тогда, когда были написаны оригинальные драйверы каналов. Всё это привело к тому, что темпы вносимых изменений значительно сбавились.

После долгих и кропотливых исследований Digium отважились на альтернативу принятому 6 лет назад решению и совместили функции chan_jingle и chan_gtalk в одном драйвере каналов.

Этот новый драйвер должен был сочетать в себе поддержку Jingle, Google Jingle и Google Talk. К сожалению, создание замены на основе chan_jingle потребовало бы реализации конечного драйвера в одном из тех видов, которые нас изначально ограничивали - поэтому Digium решил создать абсолютно новый драйвер каналов. Так появился chan_motif.

Драйвер каналов chan_motif не только одновременно заменяет chan_gtalk и chan_jingle, но и обладает определёнными чертами не присущими ни одному из вышеуказанных. Они включают в себя:

  • Полную совместимость с Jingle и Google Jingle, а также совместимость со спецификацией Google Talk для работы с Google Voice

  • Полностью перезагруженные конфигурации

  • Поддержку всех видео кодеков

  • Двухстороннее сопоставление причин завершения звонка.

  • Индикаторы удержания / снятия с удержания / звонка

Драйвер каналов chan_motif будет главным драйвером каналов, поддерживаемым Asterisk. Digium планирует исправить все проблемы совместимости XEP и надеются, что это даст более стабильный механизм поддержки Jingle / Google Jingle/ Google Talk.


А теперь: почему chan_motif?

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

Источник - http://blogs.digium.com