По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Спешим поделиться тем, как с помощью IP-АТС Asterisk можно провести двусторонний видео - звонок. В качестве терминалов, которые будут участвовать в данном соединении, мы выбрали программный open - sourсe клиент IP-телефонии на базе протокола SIP - Linphone (Linux Phone) версии 3.10.2 для Windows и приложение Linphone для Android версии 3.1.1. Настройки произведем с помощью графического интерфейса FreePBX 13. Конфигурация FreePBX Приступим к настройке. Для начала необходимо создать на сервере два внутренних номера (Extension). Важно: обязательно создавайте номера с типом CHAN_SIP. Теперь новым внутренним номерам нужно включить поддержку видео. Для этого переходим во вкладку Advanced: И напротив строки Video Support выбираем Yes. Такую процедуру проделываем для всех номеров, которым хотим разрешить пользоваться видео - вызовами. Теперь необходимо включить глобальную поддержку видео. Для этого переходим по следующему пути: Settings -> Asterisk SIP Settings и открываем вкладку Chan SIP Settings: По умолчанию, в разделе Video Codecs поддержка видео отключена. Для того, чтобы её выключить, нажимаем Enabled: Откроется список поддерживаемых видео кодеков. По умолчанию, Asterisk поддерживает следующие кодеки: H.261, mpeg4, H.263, H.263+, H.264 и последний кодек, который мы будем использовать далее - VP8. Чтобы исключить возможные проблемы с подключением SIP-терминалов в дальнейшем, можно изменить ещё один параметр. Дело в том, что практически все SIP-терминалы используют 5060 порт для отправки запросов регистрации, а в FreePBX 13 для технологии CHAN_SIP используется порт 5160, соответственно, на этапе регистрации Endpoint’а могут возникнуть проблемы. Что бы этого избежать, в строке Bind Port поставим 5060. Не забудьте предварительно поменять порт для CHAN_PJSIP, может возникнуть внутренний конфликт. На этом настройка FreePBX завершена, теперь необходимо настраивать терминалы. Настройка видео - терминалов Как было сказано в начале, для теста будем использовать Linphone (Linux Phone) версии 3.10.2. После установки дистрибутива, нас встречает помощник настройки учётной записи SIP: Вводим данные для ранее созданного внутреннего номера, например - 1022, и жмём Применить. Если всё было сделано верно, то мы увидим наш полный идентификатор и зелёный круг, свидетельствующий о том, что регистрация была успешной. Далее переходим в настройки, выбираем требуемые параметры видео (разрешение и частоту кадров) В разделе кодеки, следует обязательно убедиться в том, что кодек VP8 – разрешен к использованию. На этом настройка десктопного клиента для Windows закончена. Теперь сконфигурируем Linphone Android клиент. После установки приложения, нужно выбрать USE SIP ACCOUNT Ввести данные учетной записи в соответствии с данными, которые мы вводили на сервере. В качестве транспорт укажите UDP. В разделе Settings устанавливаем требуемые параметры по видео (разрешение, частоту кадров, максимальную пропускную способность) и обязательно разрешаем использование кодека VP8. Если всё было сделано правильно, то мы увидим статус Registered. Софтфон готов к использованию. Теперь можно проводить вызовы с трансляцией видео. Набираем номер нужного абонента и жмём на значок трубки. Нажав на значок Видео начнётся двусторонняя видеотрансляция. Ниже пример как это выглядит на десктопной версии: И пример того, как это выглядит в мобильном приложении:
img
Начиная с Windows Server 2012 R2 в Hyper-v появились машины второго поколения. Они добавляют некоторые преимущества по сравнению с виртуальными машинами первого поколения, поэтому следует подумать о переходе. Хотя автоматического преобразования не существует, есть способ избежать новой установки и настройки виртуальной машины. Есть несколько причин, по которым рабочие системы до сих пор работают на виртуальных машинах первого поколения. Часто они существуют уже несколько лет и были созданы в версии Hyper-V, которая поддерживает только виртуальные машины 1-го поколения. Их по-прежнему можно использовать в более новой версии гипервизора, и они полностью поддерживаются. И наоборот, также возможно, что версия Windows была изначально установлена на виртуальной машине, которая поддерживает только виртуальные машины 1-го поколения. Гостевая ОС, возможно, за это время была обновлена, но функции 2-го поколения в старой виртуальной машине заблокированы. Может случиться и так, что Gen 1 будет случайно выбран при создании виртуальной машины, поскольку это по-прежнему выбирается по умолчанию в диспетчере Hyper-V. Преимущества 2 поколения Одним из наиболее важных преимуществ новых виртуальных машин является более высокая производительность, поскольку гостевая ОС «знает», что она работает на гипервизоре, и, следовательно, не требует эмуляции оборудования. Виртуальные машины второго поколения обладают поддержкой UEFI, работают под управлением только 64-разрядной гостевой ОС, могут загружаться с виртуального контроллера SCSI. Подключенные к контроллеру виртуальные жесткие диски можно добавлять, удалять и изменять их размер во время работы. Сетевые адаптеры также могут быть добавлены во время работы системы. Если вы хотите настроить виртуальную машину с UEFI, вы можете сделать это только с виртуальной машиной поколения 2, т.е. безопасная загрузка доступна только в ней. Виртуальные машины поколения 1 поддерживают только BIOS и, следовательно, ограничены структурой MBR дисков и это основное препятствие при миграции. Поиск старых виртуальных машин Первым шагом будет обзор того, какие виртуальные машины относятся к Gen 1 (Поколение 1). С помощью PowerShell это относительно легко узнать: Get-VM | select vmname, generation Эта команда выведет вам список всех виртуальных машин на локальном хосте, их имена и поколение. По сути, теперь вы можете приступить к преобразованию старых виртуальных машин. Однако это невозможно, если гостевая ОС старше Windows Server 2012 R2 или имеет 32-разрядную версию. Следовательно, вам необходимо выяснить, какая ОС установлена на виртуальной машине. Это можно относительно легко определить через PowerShell: Get-ComputerInfo -Property WindowsProductName, OsArchitecture Изменение таблицы разделов на GPT После того как вы определили, какие виртуальные машины подходят для преобразования, вам следует сначала обновить гостевую ОС до версии Windows, которую вы запланировали для новой среды. Затем преобразовать системный диск в GPT. Начиная с Windows 10 1703, Microsoft предоставляет для этой цели MBR2GPT.exe. Программа запускается на рабочей системе со следующими параметрами: mbr2gpt.exe /convert /allowFullOS Утилита находится в %SystemRoot%system32 и может быть легко скопирована на другие компьютеры, если ее там нет. Это относится, например, и к серверам Windows. Однако в случае более старых версий ОС Microsoft рекомендует выключить виртуальную машину, загрузиться в среду предустановки Windows и начать преобразование в GPT оттуда. Тогда команда выглядит немного иначе: mbr2gpt.exe /convert /disk:<disknumber> Номера дисков можно посмотреть программой diskpart с помощью: list disk Перенос виртуального диска на новую виртуальную машину Поскольку преобразовать виртуальную машину поколения 1 в поколение 2 невозможно, теперь необходимо создать новую виртуальную машину Gen 2 и подключить к ней виртуальный жесткий диск. Одним из побочных эффектов этого действия является то, что оно также поднимает версию виртуальной машины до текущего уровня. Это необходимо, чтобы воспользоваться преимуществами новых функций Hyper-V, доступных в Server 2016 или 2019. Новая виртуальная машина больше не будет работать на более старом гипервизоре.
img
Channel event logging (события на канале) – система, созданная для детального логирования телефонных событий. Система CEL позволяет пошагово отслеживать сложные сценарии вызовов, последовательно записывая их в таблицу данных. Сегодня расскажем о типах событий CEL и о содержимом таблицы ‘cel’ ? Как и обычно, подключаемся к базе данных asteriskcdrdb: [root@asterisk]# mysql // подключаемся к MySQL mysql> use asteriskcdrdb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Смотрим содержимое таблица cel, видим поля и типы данных: mysql> show columns from cel; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | eventtype | varchar(30) | NO | | NULL | | | eventtime | datetime | NO | | NULL | | | cid_name | varchar(80) | NO | | NULL | | | cid_num | varchar(80) | NO | | NULL | | | cid_ani | varchar(80) | NO | | NULL | | | cid_rdnis | varchar(80) | NO | | NULL | | | cid_dnid | varchar(80) | NO | | NULL | | | exten | varchar(80) | NO | | NULL | | | context | varchar(80) | NO | MUL | NULL | | | channame | varchar(80) | NO | | NULL | | | appname | varchar(80) | NO | | NULL | | | appdata | varchar(80) | NO | | NULL | | | amaflags | int(11) | NO | | NULL | | | accountcode | varchar(20) | NO | | NULL | | | uniqueid | varchar(32) | NO | MUL | NULL | | | linkedid | varchar(32) | NO | MUL | NULL | | | peer | varchar(80) | NO | | NULL | | | userdeftype | varchar(255) | NO | | NULL | | | extra | varchar(512) | NO | | NULL | | +-------------+--------------+------+-----+---------+----------------+ 20 rows in set (0.00 sec) К описанию таблицы CEL мы вернемся чуть позже, а сейчас давайте разберем возможные события в рамках системы Channel Event Logging : Событие Описание CHAN_START Канал связи был создан CHAN_END Канал связи был разорван LINKEDID_END Канал связи с указанным ID был разорван ANSWER На созданном канале связи ответили на звонок. При звонке в город, данное событие генерируется когда удаленный (вызываемый абонент) поднимет трубку HANGUP Была повешена трубка. Как правило, это событие сразу же сопровождается событием CHAN_END. Разница в том, что HANGUP происходит когда трубка положена, а CHAN_END, когда Asterisk освободил все ресурсы, занимаемые этим каналом APP_START Определенное приложение было запущено для этого канала. Например, это может быть Dial, Busy или Congestion APP_END Указанное приложение в событие APP_START завершило свое выполнение PARK_START Была произведена «Парковка» вызова. Функция парковки, представляет собой определенный номер, в который помещается вызов, работу с которым, могут продолжить другие сотрудники. PARK_END Вызов был снят с «Парковки» BRIDGE_START Между двумя каналами образовалось соединение (мост). Данное событие сопровождает такие приложения, как Dial() или Queue() BRIDGE_END Мост между каналами был разрушен BRIDGE_UPDATE В соединении между каналами произошло обновление. Это события появляется тогда, например, если изменится имя или прочая канальная информация BLINDTRANSFER Был выполнен «слепой» (без предварительной консультации) трансфер ATTENDEDTRANSFER На канале был выполнен трансфер с предварительной консультацией USER_DEFINED Кастомное событие, которое определяется в приложении CELGenUserEvent() В таблице выше мы перечислили основные события в рамках системы CEL. Теперь перейдем к описанию таблицы ‘cel’ в рамках базы asteriskcdrdb: Столбец Пример значения Описание eventtype CHAN_START Имя произошедшего события (все события описаны в таблице выше) eventtime 2016-04-01 14:53:54 Время, в которое произошло указанное выше событие cidname Oleg Ivanov Имя, передаваемое в рамках CallerID (CID), закрепленное за данным каналом cidnum 84991111111 Номер, передаваемый в рамках CallerID (CID), закрепленный за данным каналом в рамках соответствующего события cidani 84991111111 Automatic Number Identification (ANI), или другими словами – автоматическое определение номера на данном канале в рамках соответствующего события cidrdnis 84991111234 Номер перенаправления на данном канале в рамках соответствующего события ciddnid 84993456458 Набранный номер на канале в рамках соответствующего события exten 7057 Добавочный номер, который был набран, в рамках плана нумерации context Local Контекст для добавочного номера, который был набран channame SIP/0007B3060EB4-00000010 Имя установленного канала appname Dial Название приложения, которое было выполнено appdata SIP/0007B3060EB4 Параметры, которые были переданы в приложении согласно плана нумерации amaflags DOCUMENTATION Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова. accountcode 6473 Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя. uniqueid 6547653456.18332 Уникальный идентификатор для канала userfield Chto ugodno Пользовательское поле linkedid 6547653456.18332 Данный идентификатор, позволяет связать воедино звонок по частям. Например, если одна часть звонка была входящей из города, следом был трансфер, потом еще один – у все этих вызовов будет разный uniqueid, но одинаковый linkedid peer SIP/0007B306054F-00000020 Название канала, к которому, который соединен (bridge) с каналом с идентификатором channame Теперь, давайте рассмотрим как выглядит запись в таблице ‘cel’. Для этого выполним нижеследующий запрос к базе данных asteriskcdrdb: mysql> SELECT * FROM `cel` WHERE `uniqueid` = '1459503113.15'; +------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+ | id | eventtype | eventtime | cid_name | cid_num | cid_ani | cid_rdnis | cid_dnid | exten | context | channame | appname | appdata | amaflags | accountcode | uniqueid | linkedid | peer | userdeftype | extra | +------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+ | 2339 | CHAN_START | 2016-04-01 12:31:53 | | | | | | 89641111111 | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | | | 2346 | APP_START | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | | | 2347 | APP_END | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | | | 2364 | HANGUP | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | {"dialstatus":"CANCEL","hangupcause":16,"hangupsource":"dialplan/builtin"} | | 2365 | CHAN_END | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | | +------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+ 5 rows in set (0.00 sec) В указанном выше запросе мы извлекли все содержимое таблицы ‘cel’, где поле uniqueid = 1459503113.15. Полученные данные можно обрабатывать и использовать для глубокой аналитики
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59