VideoMost Knowledgebase
Отправить по email
Несколько адресов email разрешено разделять запятой

Подтверждения кода изображения

Введите символы на изображении выше в точности так как Вы их видите



Удаленная установка настроек в мобильный клиент VM SDK

При интеграции VM SDK в свои приложения часто возникает задача передавать настройки VM SDK в разрабатываемое приложение так, как это сделано на сервере VideoMost. Статья ниже именно об этом случае. Ð•ÑÐ»Ð¸ приложение не использует сервер VideoMost, то можно также Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ Ð½Ð°ÑÑ‚ройки Ñ помощью профилей (см. статью "Загрузка настроек в мобильный клиент VM SDK с помощью профилей").

Для получения настроек сервера, необходимо в коде мобильного клиента сделать GET-запрос по адресу http://<servername>/service/ext/settings_a с параметрами:
confid - id конференции, string
confpass - пароль конференции, string
lang – язык на котором будет возвращено сообщение о ошибке(ru|en) (опционально)
sid – session id для залогиненного участника. Возвращается вызовом Login XML-RPC поле sessionkey (опционально)
Пример выполнения запроса консольной утилитой wget:
wget -O- "http://go.videomost.com/service/ext/settings_a?confid=533931&confpass=0197&lang=ru"
Ответом на этот запрос будет json с параметрами:
cm – список параметров для СМ (как раз требуемые параметры)
global – параметры настройки сервера (только те, что могут пригодиться приложению)
confinfo – параметры конфернции
XMPPserver – адрес XMPP сервера
login – jid для клиента предлагаемый сервером
confjid – jid конференции
version –версия сервера
Из них нам нужен параметр "cm":
"cm":{
    "view.name":"1",
    "view.rating":"1",
    "view.stat":"0",
    "view.aspect":"16:9",
    "video.maxparticipants":4,
    "video.speaker-selector":"0",
    "voice.bitrate":"10000",
    "voice.framelength":"60",
    "voice.ars.enabled":1,
    "voice.ars.bitrate":"{7;34}",
    "voice.fec":"none",
    "voice.fec.request":"none",
    "voice.rd.enabled":"1",
    "voice.rd.auto":"1",
    "voice.rd.mode":"fd",
    "voice.rd.echopath":"0",
    "voice.rd.nlp":"1",
    "voice.rd.cng":"1",
    "voice.rd.ns":"1",
    "voice.rd.agc":"1",
    "voice.encoder.cn":1,
    "voice.encoder.ssvad":"1",
    "video.size":"{640;360}",
    "video.encoder.bitrate":270,
    "video.framerate":12,
    "video.encoder.keyperiod":"0",
    "video.ars.enabled":"1",
    "video.ars.bitrate":"{30;384}",
    "video.ars.framerate":"{3;20}",
    "video.autofec":"1",
    "video.fec":"none",
    "video.fec.request":"none",
    "video.rtx-jb-delay":"1500",
    "video.rtx-time":"3000",
    "vnc.client.bitrate":"normal",
    "vnc.client.scaling":100,
    "log.level":"full",
    "log.brtp":"0",
    "transport.use_tls":"1",
    "transport.tunnel.port":"80",
    "transport.proxy.usetype":"use",
    "transport.console.show":"0",
    "transport.disable_detect_best_channel":1,
    "transport.srtp.enabled":"0",
    "transport.srtp.crypto":"",
    "transport.tcprelay.servers":"videomost.com:444",
    "transport.udprelay.servers":"videomost.com:7000",
    "transport.stun.servers":"videomost.com",
    "video.bitrate":"384",
    "global.reduced_rtcp":1,
    "global.sync_streams":1
}

Параметры могут быть другими и их может быть любое количество.
Применять параметры нужно до вызова Login().
Чтобы применить параметр, используйте метод SetOption, например:
CallManager.SetOption("video.bitrate", 0, "384");