Развитие Asterisk 11: chan_motif
Администратор, 30.07.2012
Если Вы следите за обновлениями базы модулей
И должно быть Вы спросили себя "Motif? Что ещё за motif? Это что ещё за новоиспечённый протокол?"
Что ж, сейчас мы Вам всё объясним, но сначала немного истории.
04.02.06 в Asterisk было добавлено то, что впоследствии стало chan_jingle.
В то время он обслуживал и протокол
Конечно, вскоре возникли определённые проблемы: протокол, внедрённый 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?
Источник -