В текущем разделе описаны команды управления медиа-профилями.
В ряде случаев необходимо иметь возможность ограничивать список кодеков, которые используются для установления соединения, а так же выбирать кодеки с определенным приоритетом. При этом эти предпочтения могут быть установлены как глобально для домена, так и индивидаульно для абонента или для транка.

Настроенный медиа-профиль устанавливается на уровне алиасов, параметром media-profile и/или media-profile-outgoing (если нужно использовать отдельный медиа-профиль для исходящей свиязи).

В домене по-умолчанию используются установки медиа-профиля default.

Созданные медиа профили назначаются на alias. Более подробно описано на странице /domain/<DOMAIN>/alias/ - команды управления алиасами

copy

Команда для копирования медиа-профилей

Путь команды:

/domain/<DOMAIN>/media-profile/copy

Синтаксис:

copy <OLD_MEDIA_PROFILE_NAME> <NEW_MEDIA_PROFILE_NAME> [<NEW_DESCRIPTION>]

Параметры:

<OLD_MEDIA_PROFILE_NAME> - имя медиа-профиля, который нужно скопировать
<NEW_MEDIA_PROFILE_NAME-TYPE> - имя нового медиа-профиля
[<NEW_DESCRIPTION>] - строка, описание медиа-профиля одним словом или предложением, записывается в двойных кавычках

Пример:

admin@[mycelium1@ecss1#ECSS 010145]:/$ domain/biysk.local/media-profile/copy old_profile new_profile new          
Media-profile general information:

┌──────────────────┬─────────────┐
│    Parameter     │ Value       │
├──────────────────┼─────────────┤
│name              │new_profile  │
│description       │new          │
│codecs-priority   │user         │
│dtmf-receive-type │auto         │
│dtmf-transmit-type│transit      │
└──────────────────┴─────────────┘

Media type configuration:
┌──────────┬────────────┬─────┐
│Codec type│  Property  │Value│
├──────────┼────────────┼─────┤
│<other>   │offroad     │false│
│          │rtcp-enabled│true │
│audio     │offroad     │false│
│          │rtcp-enabled│true │
└──────────┴────────────┴─────┘

Codec type: audio codecs configuration:
┌───────┬───────────────┬──┬────────┬─────┐
│Enabled│     Codec     │PT│Property│Value│
├───────┼───────────────┼──┼────────┼─────┤
│       │G722           │* │        │     │
│       │PCMA           │* │        │     │
│       │PCMU           │* │        │     │
│       │G729           │* │        │     │
│       │telephone-event│* │        │     │
└───────┴───────────────┴──┴────────┴─────┘

Codec type: <other> codecs configuration:
┌───────┬───────┬──┬────────┬─────┐
│Enabled│ Codec │PT│Property│Value│
├───────┼───────┼──┼────────┼─────┤
│       │<other>│* │        │     │
└───────┴───────┴──┴────────┴─────┘

Legend:
 Enabled  - is codec enabled. Empty means true.
 Codec    - list of codec names and special value <other>.
 PT       - Payload Type, * means any value.
 Property - name of attribute.
 Value    - value of attribute.
If attribute not specified in table it has Default value.

[exec at: 24.12.2019 07:30:49, exec time: 100ms, nodes: ds1@ecss2]

codecs-add

Команда для добавления одного или нескольких аудио-кодеков определенного типа в медиа-профиль.

Путь команды:

/domain/<DOMAIN>/media-profile/codecs-add

Синтаксис:

codecs-add <MEDIA_PROFILE_NAME> <CODECS-TYPE> <CODEC-NAME> <CODEC-PT> <ENABLED>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля
<CODECS-TYPE> - тип кодеков: audio/video/image/<other>
<CODEC-NAME> - имя кодека из SDP. В подсказках система показывает все кодеки которые указаны в IANA, а так же можно ввести своё дополнительное имя кодека, если оно не стандартное. В качестве специального имени кодека можно использовать имя other которое означает любой кодек который не перечислен
<CODEC-PT> - Payload Type для кодека, это числовой параметр, система будет предлагать автоматически стандартное PT по имени кодека согласно IANA, но можно задать свой PT, если он не стандартный
<ENABLED> - показывает разрешен кодек или нет

Добавление кодеков производится в конец существующего списка кодеков, но специальный кодек <OTHER> всегда остается последним в списке.

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-add profile_k508 audio PCMA 8 true PCMU 0 true GSM * true
Media-profile: profile_k508 adds audio codecs successfully.

Codec type: audio codecs configuration:
┌───────┬─────┬──┐
│Enabled│Codec│PT│
├───────┼─────┼──┤
│       │G722 │9 │
│       │PCMA │8 │
│       │PCMU │0 │
│       │GSM  │* │
└───────┴─────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 10:28:49, exec time: 83ms, nodes: ds1@ecss1]

codecs-enable

Команда для включения/выключения одного и нескольких кодеков определенного типа в медиа-профиле.

Путь команды:

/domain/<DOMAIN>/media-profile/codecs-enable

Синтаксис:

codecs-enable <MEDIA_PROFILE_NAME> <CODECS-TYPE> <CODEC-NAME> <CODEC-PT> <ENABLED>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля
<CODECS-TYPE> - тип кодеков: audio/video/image/<other>
<CODEC-NAME> - имя кодека из SDP. В подсказках система показывает все кодеки которые указаны в IANA, а так же можно ввести своё дополнительное имя кодека, если оно не стандартное. В качестве специального имени кодека можно использовать имя other которое означает любой кодек который не перечислен
<CODEC-PT> - Payload Type для кодека, это числовой параметр, система будет предлагать автоматически стандартное PT по имени кодека согласно IANA, но можно задать свой PT, если он не стандартный
<ENABLED> - показывает разрешен кодек или нет

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-enable remote_users video H264-AVC * false
Media-profile: remote_users enables video codecs successfully.

Codec type: video codecs configuration:
┌───────┬────────┬──┐
│Enabled│ Codec  │PT│
├───────┼────────┼──┤
│false  │H264-AVC│* │
└───────┴────────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 10:31:46, exec time: 58ms, nodes: ds1@ecss1]

codecs-get

Команда для получения списка аудио-кодеков медиа-профиля определенного типа в формате пригодном для модификации и последующей установки в профиль.

Путь команды:

/domain/<DOMAIN>/media-profile/codecs-get

Синтаксис:

codecs-get <MEDIA_PROFILE_NAME> <CODECS-TYPE>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля
<CODECS-TYPE> - тип кодеков: audio/video/image/<other>

Команда возвращает список настроек аудио-кодеков в формате пригодном для команды codecs-set.

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-get remote_users audio   
PCMA 8 true PCMU 0 true GSM * true G729 18 true telephone-event * true

[exec at: 13.03.2019 10:30:58, exec time: 50ms, nodes: ds1@ecss1]

codecs-priority

Команда для изменения приоритета кодека выбранного типа в медиа-профиле.

Путь команды:

/domain/<DOMAIN>/media-profile/codecs-priority

Синтаксис:

codecs-priority <MEDIA_PROFILE_NAME> <CODECS-TYPE> <CODEC-NAME> <CODEC-PT> up|down|set <LEVEL>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля.
<CODECS-TYPE> - тип кодеков: audio/video/image/<other>.
<CODEC-NAME> - имя кодека из SDP. В подсказках система показывает все кодеки которые указаны в IANA, а так же можно ввести своё дополнительное имя кодека, если оно не стандартное. В качестве специального имени кодека можно использовать имя other которое означает любой кодек который не перечислен
<CODEC-PT> - Payload Type для кодека, это числовой параметр, система будет предлагать автоматически стандартное PT по имени кодека согласно IANA, но можно задать свой PT, если он не стандартный
<LEVEL> - целое число больше 0, указывающее позицию кодека в списке согласно приоритету кодека.

Примеры:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-priority profile_k508 audio G722 9 set 3 
Media-profile: profile_k508 priority changed for audio codecs successfully.

Codec type: audio codecs configuration:
┌───────┬─────┬──┐
│Enabled│Codec│PT│
├───────┼─────┼──┤
│       │PCMA │8 │
│       │PCMU │0 │
│       │G722 │9 │
│       │GSM  │* │
└───────┴─────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 10:35:01, exec time: 133ms, nodes: ds1@ecss1]
admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-priority profile_k508 audio G722 9 down 2
Media-profile: profile_k508 priority changed for audio codecs successfully.

Codec type: audio codecs configuration:
┌───────┬─────┬──┐
│Enabled│Codec│PT│
├───────┼─────┼──┤
│       │PCMA │8 │
│       │PCMU │0 │
│       │G722 │9 │
│       │GSM  │* │
└───────┴─────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 10:36:04, exec time: 75ms, nodes: ds1@ecss1]

codecs-remove

Команда удаления одного или нескольких кодеков определенного типа из медиа-профиля.

Путь команды:

/domain/<DOMAIN>/media-profile/codecs-remove

Синтаксис:

codecs-remove <MEDIA_PROFILE_NAME> <CODECS-TYPE> <CODEC-NAME> <CODEC-PT>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля
<CODECS-TYPE> - тип кодеков: audio/video/image/<other>
<CODEC-NAME> - имя кодека из SDP. В подсказках система показывает все кодеки которые указаны в IANA, а так же можно ввести своё дополнительное имя кодека, если оно не стандартное. В качестве специального имени кодека можно использовать имя other которое означает любой кодек который не перечислен
<CODEC-PT> - Payload Type для кодека, это числовой параметр, система будет предлагать автоматически стандартное PT по имени кодека согласно IANA, но можно задать свой PT, если он не стандартный

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-remove profile_k508 audio speex *      
Media-profile: profile_k508 removes audio codecs successfully.

Codec type: audio codecs configuration:
┌───────┬─────┬──┐
│Enabled│Codec│PT│
├───────┼─────┼──┤
│       │G722 │9 │
└───────┴─────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 10:26:12, exec time: 75ms, nodes: ds1@ecss1]

codecs-set

Команда установки полного списка кодеков определенного типа.

Путь команды:

/domain/<DOMAIN>/media-profile/codecs-set

Синтаксис:

codecs-set <MEDIA_PROFILE_NAME> <CODECS-TYPE> <CODEC-NAME> <CODEC-PT> <ENABLED>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля
<CODECS-TYPE> - тип кодеков: audio/video/image/<other>
<CODEC-NAME> - имя кодека из SDP. В подсказках система показывает все кодеки которые указаны в IANA, а так же можно ввести своё дополнительное имя кодека, если оно не стандартное. В качестве специального имени кодека можно использовать имя other которое означает любой кодек который не перечислен
<CODEC-PT> - Payload Type для кодека, это числовой параметр, система будет предлагать автоматически стандартное PT по имени кодека согласно IANA, но можно задать свой PT, если он не стандартный
<ENABLED> - показывает разрешен кодек или нет

В этой команде список кодеков должен быть исчерпывающим.

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/codecs-set remote_users audio G722 9 true PCMA 8 true PCMU 0 true GSM * true
Media-profile: remote_users set audio codecs successfully.

Media-profile detailed information:
┌───────────────┬───────────────────────┐
│   Parameter   │         Value         │
├───────────────┼───────────────────────┤
│name           │remote_users           │
│description    │Для удаленных абонентов│
│codecs-priority│system                 │
└───────────────┴───────────────────────┘

Media type configuration:
┌──────────┬────────┬─────┐
│Codec type│Property│Value│
├──────────┼────────┼─────┤
│audio     │offroad │true │
│video     │offroad │true │
│<other>   │offroad │true │
└──────────┴────────┴─────┘

Codec type: audio codecs configuration:
┌───────┬─────┬──┐
│Enabled│Codec│PT│
├───────┼─────┼──┤
│       │G722 │9 │
│       │PCMA │8 │
│       │PCMU │0 │
│       │GSM  │* │
└───────┴─────┴──┘

Codec type: video codecs configuration:
┌───────┬────────┬──┐
│Enabled│ Codec  │PT│
├───────┼────────┼──┤
│false  │H264-AVC│* │
└───────┴────────┴──┘

Codec type: <other> codecs configuration:
┌───────┬───────┬──┐
│Enabled│ Codec │PT│
├───────┼───────┼──┤
│       │<other>│* │
└───────┴───────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 10:42:15, exec time: 83ms, nodes: ds1@ecss1]

declare

Команда предназначена для создания нового медиа-профиля.

Путь команды:

/domain/<DOMAIN>/media-profile/declare

Синтаксис:

declare <MEDIA_PROFILE_NAME> <DESCRIPTION> <PRIORITY>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля
<DESCRIPTION> - строка, описание медиа-профиля одним словом или предложением, записывается в двойных кавычках
<PRIORITY> - user|system определяет предпочтения по кодекам, в варианте user порядок кодеков заданный пользователем в offer SDP сохраняется, а в варианте system порядок кодеков в SDP перестраивается согласно системных предпочтений (в каком порядке заданы кодеки в профиле)

Профиль создается в режиме пропускания всех кодеков.

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/declare profile_k508 "for tester k.508" user    
Media-profile: profile_k508 declared successfully.

Media-profile detailed information:
┌───────────────┬────────────────┐
│   Parameter   │     Value      │
├───────────────┼────────────────┤
│name           │profile_k508    │
│description    │for tester k.508│
│codecs-priority│user            │
└───────────────┴────────────────┘

Media type configuration:
┌──────────┬────────┬─────┐
│Codec type│Property│Value│
├──────────┼────────┼─────┤
│<other>   │offroad │true │
└──────────┴────────┴─────┘

Codec type: <other> codecs configuration:
┌───────┬───────┬──┐
│Enabled│ Codec │PT│
├───────┼───────┼──┤
│       │<other>│* │
└───────┴───────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 08:49:42, exec time: 116ms, nodes: ds1@ecss1]

info

Команда для просмотра параметров конкретного медиа-профиля.

Путь команды:

/domain/<DOMAIN>/media-profile/info

Синтаксис:

info <MEDIA_PROFILE_NAME>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля

Результатом выполнения команды будет полная информация о указанном медиа-профиле.

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/info remote_users   
Media-profile general information:
┌───────────────┬───────────────────────┐
│   Parameter   │         Value         │
├───────────────┼───────────────────────┤
│name           │remote_users           │
│description    │Для удаленных абонентов│
│codecs-priority│system                 │
└───────────────┴───────────────────────┘

Media type configuration:
┌──────────┬────────┬─────┐
│Codec type│Property│Value│
├──────────┼────────┼─────┤
│<other>   │offroad │true │
│audio     │offroad │true │
│video     │offroad │true │
└──────────┴────────┴─────┘

Codec type: audio codecs configuration:
┌───────┬───────────────┬──┐
│Enabled│     Codec     │PT│
├───────┼───────────────┼──┤
│       │PCMA           │8 │
│       │PCMU           │0 │
│       │GSM            │* │
│       │G729           │18│
│       │telephone-event│* │
└───────┴───────────────┴──┘

Codec type: video codecs configuration:
┌───────┬────────┬──┐
│Enabled│ Codec  │PT│
├───────┼────────┼──┤
│       │H264-AVC│* │
└───────┴────────┴──┘

Codec type: <other> codecs configuration:
┌───────┬───────┬──┐
│Enabled│ Codec │PT│
├───────┼───────┼──┤
│       │<other>│* │
└───────┴───────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 09:47:57, exec time: 58ms, nodes: ds1@ecss1]

list

Команда для просмотра списка медиа-профилей сконфигурированных в домене.

Путь команды:

/domain/<DOMAIN>/media-profile/list

Синтаксис:

list <MEDIA_PROFILE_NAME>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/list   
List of media-profiles:
┌────────────┬─────────────────────────────────────────┐
│    Name    │               Description               │
├────────────┼─────────────────────────────────────────┤
│default     │Default media profile for current domain.│
│mp4office1  │mp4ofiice1                               │
│profile_k508│for tester k.508                         │
│remote_users│Для удаленных абонентов                  │
└────────────┴─────────────────────────────────────────┘

[exec at: 13.03.2019 09:50:14, exec time: 58ms, nodes: ds1@ecss1]

remove

Команда для удаления медиа-профиля.

Путь команды:

/domain/<DOMAIN>/media-profile/remove

Синтаксис:

remove <MEDIA_PROFILE_NAME>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля.

Команда должна выполнить проверку использования этого профиля в каких-либо сущностях системы (установлен для домена/абонента/транка). При положительном ответе запрашивает подтверждение об удалении (можно показать список сущностей, где используется профиль).
Если подтверждение об удалении было получено, то происходит удаление профиля и подчистка информации о медиа-профиле у всех сущностей, которые его использовали (для домена профиль устанавливается в default).
Профиль default удалить нельзя.

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/remove profile_k508              
Media profile: profile_k508 removed successfully.

[exec at: 13.03.2019 10:44:08, exec time: 58ms, nodes: ds1@ecss1]

set

Команда для изменения общих параметров медиа-профиля.

Путь команды:

/domain/<DOMAIN>/media-profile/set

Синтаксис:

remove <MEDIA_PROFILE_NAME> <PARAM> <VALUE>

Параметры:

<MEDIA_PROFILE_NAME> - имя медиа-профиля.
<PARAM> - имя параметра для изменения, может быть description или codecs-priority
<VALUE> - значение для выбранного параметра: строка для параметра description, и system или user для параметра codecs-priority

Пример:

admin@[ds1@ecss1]:/$ domain/biysk.local/media-profile/set profile_k508 offroad audio false 
Media-profile: profile_k508 set offroad successfully.

Media-profile detailed information:
┌───────────────┬────────────────┐
│   Parameter   │     Value      │
├───────────────┼────────────────┤
│name           │profile_k508    │
│description    │for tester k.508│
│codecs-priority│user            │
└───────────────┴────────────────┘

Media type configuration:
┌──────────┬────────┬─────┐
│Codec type│Property│Value│
├──────────┼────────┼─────┤
│<other>   │offroad │true │
│audio     │offroad │false│
└──────────┴────────┴─────┘

Codec type: audio codecs configuration:
┌───────┬─────┬──┐
│Enabled│Codec│PT│
├───────┼─────┼──┤
└───────┴─────┴──┘

Codec type: <other> codecs configuration:
┌───────┬───────┬──┐
│Enabled│ Codec │PT│
├───────┼───────┼──┤
│       │<other>│* │
└───────┴───────┴──┘

Legend:
 Enabled - is codec enabled. Empty means true.
 Codec   - list of codec names and special value <other>.
 PT      - Payload Type, * means any value.

[exec at: 13.03.2019 09:52:08, exec time: 58ms, nodes: ds1@ecss1]

Были добавлены параметры:

Взамен параметра dtmf_source на уровне медиа-профиля добавить два свойства:

  • dtmf-receive = auto :: signalling | none | auto | rfc2833 | inband - метод детекции DTMF;
    • none - не принимать DTMF с данного интерфейса;
    • auto - автоматически детектировать источник DTMF по первому полученному сообщению;
    • signalling - детектировать DTMF на основе SIP Info;
    • rfc2833 - детектировать DTMF из RTP по rfc2833;
    • inband - детектировать DTMF из RTP по INBAND
  • dtmf-transmit = transit :: signalling | none | transit | rfc2833 | inband - метод передачи DTMF
    • none - не передавать DTMF на данный интерфейса;
    • transit - передавать DTMF в том формате, в котором он был получен;
    • signalling - передавать DTMF в SIP Info;
    • rfc2833 - передавать DTMF через RTP по rfc2833;
    • inband - передавать DTMF через RTP по INBAND
      2.1 Команда для изменения свойств dtmf-receive, dtmf-transmit медиа-профиля: