У нас российский номер 8800 (SIP регистрация), используется подход как в официальном блоге (Standalone conference, 2 сценария — Gatekeeper + Manager).
Входящий вызов направляется в конференцию через VoxEngine.callConference, в сценарии конференция создается с помощью VoxEngine.createConference, то есть мы НЕ используем HTTP API и StartConference. В этом случае нет возможности указать какой конкретно сервер использовать?
Спасибо за ответ. Звонки осуществляются в центральном регионе, например один человек звонит с московского номера МТС на номер, привязанный к приложению Voximplant, а второй с калужского, ну или оба с московских номеров. Если я правильно понимаю, задержка вызвана расстоянием до сервера, который может находится вообще на другом континенте, в таком случае как мы можем решить эту проблему?
Мы сейчас используем аудиоконференции Voximplant с авторизацией клиентов по пин-коду, по паре клиентов на комнату аудиоконференции. Реализация достаточно проста: клиенты звонят на бесплатный номер, (номер зарегистрирован по SIP в Voximplant), авторизация происходит с помощью http запросов от приложения Voximplant к нашему серверу, далее участники объединяются в конференцию.
Есть большая проблема — задержка голоса между участниками приблизительно в 0.6 — 1 секунду, это сильно снижает качество общения клиентов. До сих пор не можем найти решения, задержка не зависит от того какой номер мы используем, будь то бесплатный номер Voximplant или наш с настроенной SIP регистрацией.
Помогите найти решение, очень не хочется возиться с Asterisk и подобным.
Недавно настраивал capybara-webkit, для работы с сабдоменами пришлось написать небольшой модуль с макросами, а так все прекрасно работает. Если решитесь попробовать, могу скинуть исходники и пояснить как настроить.
Не могу с вами не согласиться, что уж слишком много восхищения, аж приторно. Но я думаю это явление уже идет на спад. Если не секрет с чего пришлось вернуться до того как понадобилось решить эту задачу, то есть с чем вы работаете каждый день помимо Ruby и собственно в чем заключается эта задача?
Зачем же так грубо? Просто уделите ему побольше внимания и взгляните на этот язык непредвзято. Не надо сношаться, попробуйте полюбить :)
С первого взгляда Ruby очень простой и кажется что «вот как щас сяду и напишу за пару дней», но при более длительном изучении обнаруживаются детали, которые сложно понять и принять в один момент. Пожалуйста, будьте терпеливы и вы обретете прекрасного помощника в лице Ruby.
Если я правильно понял суть джема состоит в том, что вам не нужно подключать скрипт во views, а только объявить в layout, такие вьюхи немного легче поддерживать, мне нравится этот подход тем, что логика js полностью отделяется от разметки в представлениях.
javascript_tag писать не нужно, я не очень ясно выразился. Мы по прежнему в layout пишем <%= javascript_pluggable_tag %>, но суть хелпера меняется. Вот посмотрим код метода:
def javascript_pluggable_tag
controller = params[:controller]
action = define_pair_action
if File.exist?(Rails.root + "app/assets/javascripts/pluggable/#{controller}/#{action}.js.coffee")
javascript_include_tag "pluggable/#{controller}/#{action}"
end
end
Таким образом все скрипты попадают в один скомпилированный application.js
Другое дело если скрипт достаточно большой и применяется лишь изредка (например настройка и вызов TinyMCE, CKEditor, Fineuploader и т.п.), то файл можно подгружать отдельно, тогда нам кроме application.js нужно подгружать например posts/new.js
Предлагаю сделать 2 хелпера, чтобы можно было выбирать подгружать отдельный файл или вызывать функцию, передавать хелперам что-нибудь типа only:… и except:… как необязательные параметры (или тоже самое реализовать в инициализаторе).
Для отдельного большого скрипта для определенного набора страниц:
javascript_pluggable_tag only: %w(posts/new*)
Для вызова функции для определенного набора страниц:
На самом деле я и мои коллеги часто сталкиваемся с тем, что забываем сделать в нужной вьюхе (обычно вложенные partials) требуемый javascript_include_tag или вызов других функций. Некоторое количество времени на отладку все-таки можно сэкономить.
Что касается роли, тут нужно расширять функции джема, например можно реализовать DSL в инициализаторе для определения условий подключения отдельно скомпилированного файла или вызова функции, в хелпер можно передавать дополнительные параметры, если требуется.
Я имею ввиду, что вью оставим чистым, но вместо javascript_include_tag('...') сделаем: javascript_tag "Post.index()"
В этом случае не нужно вносить объявление файла в массив precompile и нет еще одного запроса. =)
Джем интересный, а что генерирует хелпер javascript_pluggable_tag? Если он подключает js файл, то нужно будет указать его в массиве precompile в production.rb.
А если вместо подключения файла просто вызывать нужную функцию js? Ведь тогда не нужно будет делать лишний запрос.
Я приходил со своим ноутом в РГБ и наткнулся на странную вещь — зачем в WiFi сети РГБ закрыли доступ к Google CDN? Многие сайты просто не работают так как должны. Там еще есть целый набор ресурсов, доступ к которым заблокирован только из сети РГБ.
Входящий вызов направляется в конференцию через VoxEngine.callConference, в сценарии конференция создается с помощью VoxEngine.createConference, то есть мы НЕ используем HTTP API и StartConference. В этом случае нет возможности указать какой конкретно сервер использовать?
Есть большая проблема — задержка голоса между участниками приблизительно в 0.6 — 1 секунду, это сильно снижает качество общения клиентов. До сих пор не можем найти решения, задержка не зависит от того какой номер мы используем, будь то бесплатный номер Voximplant или наш с настроенной SIP регистрацией.
Помогите найти решение, очень не хочется возиться с Asterisk и подобным.
Для символов кириллицы попробуйте использовать метод mb_chars (нужен джем 'activesupport'):
Зачем же так грубо? Просто уделите ему побольше внимания и взгляните на этот язык непредвзято. Не надо сношаться, попробуйте полюбить :)
С первого взгляда Ruby очень простой и кажется что «вот как щас сяду и напишу за пару дней», но при более длительном изучении обнаруживаются детали, которые сложно понять и принять в один момент. Пожалуйста, будьте терпеливы и вы обретете прекрасного помощника в лице Ruby.
Можно написать альтернативный метод:
Таким образом все скрипты попадают в один скомпилированный application.js
Другое дело если скрипт достаточно большой и применяется лишь изредка (например настройка и вызов TinyMCE, CKEditor, Fineuploader и т.п.), то файл можно подгружать отдельно, тогда нам кроме application.js нужно подгружать например posts/new.js
Предлагаю сделать 2 хелпера, чтобы можно было выбирать подгружать отдельный файл или вызывать функцию, передавать хелперам что-нибудь типа only:… и except:… как необязательные параметры (или тоже самое реализовать в инициализаторе).
Для отдельного большого скрипта для определенного набора страниц:
Для вызова функции для определенного набора страниц:
Что касается роли, тут нужно расширять функции джема, например можно реализовать DSL в инициализаторе для определения условий подключения отдельно скомпилированного файла или вызова функции, в хелпер можно передавать дополнительные параметры, если требуется.
javascript_include_tag('...')
сделаем:javascript_tag "Post.index()"
В этом случае не нужно вносить объявление файла в массив precompile и нет еще одного запроса. =)
А если вместо подключения файла просто вызывать нужную функцию js? Ведь тогда не нужно будет делать лишний запрос.
расширенияразрешения экранов»Исправьте, пожалуйста.