RFC 3311 (метод Update ) проблемы несовместимости.

Кратко. Метод Update возможность смены типа медии в одной SIP сессии без разрыва. Аналог, так называемый reinvite. То есть, создание второй сессии (через INVITE) c новыми параметрами медиа протокола.

1. Если есть возможность отключить данный метод в UAC лучше это сделать. Сэкономится куча времени на решении проблем. Reinvite работает не хуже.
2. Семейство клонов SER, Openser, Kamailio, openSIPS не имеют ни одного примера правильной обработки сообщения UPDATE из за NAT.

Решение тривиальное:
if (is_method(«BYE|CANCEL»)) {
unforce_rtp_proxy();
} else if (is_method(«INVITE|UPDATE«)){
force_rtp_proxy();

}

3. Еще одна пренеприятнейшая особенность всей линейки устройств от Grandstream. При входящем звонке, при совпадении  нескольких кодеков они выдают в SDP список кодеков вместо одного. Соответственно, если вызывающая сторона поддерживает RFC3311 она делает UPDATE. Принудительно выключит эту багофичу можно только в последних версиях:

Use First Matching Vocoder in 200 OK SDP должно быть YES

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

5 Комментариев

Конвертор TOS в DSCP

Найду время подровняю.

ToS dec ToS hex ToS bin ToS Prec. (bin) ToS Prec. (dec) ToS Delay Flag ToS Throgh-
put Flag
ToS Relia-
bility FLag
DSCP bin DSCP hex DSCP dec DSCP Class
0 0×00 00000000 000 0 0 0 0 000000 0×00 0 none
32 0×20 00100000 001 1 0 0 0 001000 0×08 8 cs1
40 0×28 00101000 001 1 0 1 0 001010 0x0A 10 af11
48 0×30 00110000 001 1 1 0 0 001100 0x0C 12 af12
56 0×38 00111000 001 1 1 1 0 001110 0x0E 14 af13
64 0×40 01000000 010 2 0 0 0 010000 0×10 16 cs2
72 0×48 01001000 010 2 0 1 0 010010 0×12 18 af21
80 0×50 01010000 010 2 1 0 0 010100 0×14 20 af22
88 0×58 01011000 010 2 1 1 0 010110 0×16 22 af23
96 0×60 01100000 011 3 0 0 0 011000 0×18 24 cs3
104 0×68 01101000 011 3 0 1 0 011010 0x1A 26 af31
112 0×70 01110000 011 3 1 0 0 011100 0x1C 28 af32
120 0×78 01111000 011 3 1 1 0 011110 0x1E 30 af33
128 0×80 10000000 100 4 0 0 0 100000 0×20 32 cs4
136 0×88 10001000 100 4 0 1 0 100010 0×22 34 af41
144 0×90 10010000 100 4 1 0 0 100100 0×34 36 af42
152 0×98 10011000 100 4 1 1 0 100110 0×26 38 af43
160 0xA0 10100000 101 5 0 0 0 101000 0×28 40 cs5
184 0xB8 10111000 101 5 1 1 0 101110 0x2E 46 ef
192 0xC0 11000000 110 6 0 0 0 110000 0×30 48 cs6
224 0xE0 11100000 111 7 0 0 0 111000 0×38 56 cs7
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Комментировать

Настройки DLNA сервера mediatomb для телевизора Samsung

Сбылась мечта «менеджера среднего звена». Прикупил себе телевизор:
LE37B652T4WXUA
Поскольку дома стоит Линукс роутер, решил сделать из него DLNA файлопомойку.
Здесь собраны разного рода дополнения к базовой конфигурации Mediatomb, для нормального взаимодействия с телевизором.

Без этого вообще не работает:

<protocolInfo extend="yes"/>
<custom-http-headers>
<add header="transferMode.dlna.org: Streaming"/>
<add header="contentFeatures.dlna.org:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000"/>
</custom-http-headers>

Это добавляет тумбналы для фильмов

    <extended-runtime-options>
      <ffmpegthumbnailer enabled="yes">
        <thumbnail-size>128</thumbnail-size>
        <seek-percentage>5</seek-percentage>
        <filmstrip-overlay>yes</filmstrip-overlay>
        <workaround-bugs>no</workaround-bugs>
      </ffmpegthumbnailer>
      <mark-played-items enabled="yes" suppress-cds-updates="yes">
        <string mode="prepend">*</string>
      </mark-played-items>
    </extended-runtime-options>

А это перекодировка mime encode, Теперь показывает практически все.

    <mappings>
      <extension-mimetype ignore-unknown="no">
        <map from="mp3" to="audio/mpeg"/>
        <map from="ogg" to="application/ogg"/>
        <map from="asf" to="video/x-ms-asf"/>
        <map from="asx" to="video/x-ms-asf"/>
        <map from="wma" to="audio/x-ms-wma"/>
        <map from="wax" to="audio/x-ms-wax"/>
        <map from="wmv" to="video/x-ms-wmv"/>
        <map from="wvx" to="video/x-ms-wvx"/>
        <map from="wm" to="video/x-ms-wm"/>
        <map from="wmx" to="video/x-ms-wmx"/>
        <map from="m3u" to="audio/x-mpegurl"/>
        <map from="pls" to="audio/x-scpls"/>
        <map from="ts" to="video/mpeg"/>
        <map from="m2ts" to="video/mpeg"/>
        <map from="vob" to="video/mpeg"/>
        <map from="wav" to="audio/wav"/>
        <map from="mpg" to="video/mpeg"/>
        <map from="aac" to="audio/x-aac"/>
        <map from="m4a" to="audio/mp4"/>
        <map from="mkv" to="video/x-matroska"/>
        <map from="mov" to="video/x-quicktime"/>
        <map from="flv" to="video/x-flv"/>
        <map from="divx" to="video/divx"/>
        <map from="avi" to="video/x-msvideo"/>
      </extension-mimetype>

Перекодировка на лету через ffmpeg или VLC не получилась. Мощность процессора малость не та.

Вопрос, который возникает у многих при пользовании DLNA, как прокручивать и останавливать.
Для управления DLNA прокруткой и паузы используются круглые клавиши Влево Вправо и Enter в центре пульта, а не ‘видеомагнитафонные’ клавиши внизу.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

7 Комментариев

GRUB2 Hard Disk Upgrade Mini How-To

Гуляющий в интернете Hard Disk Upgrade Mini How-немного устарел, в связи с тем, что все дистрибутивы перешли с LILO на GRUB, а особо продвинутые, например горячо любимый Ubuntu 9.10, на GRUB2.
Здесь будет сверхкраткий HOW-TO о том, как проинсталлировать GRUB2 на новом диске.

/dev/sda это родной диск (source)
/dev/sdb это куда копируем (destination).
каталоги /boot и / на одном диске. LVM нет.
Подготовка нового диска с помощью fdisk, mkfs.ext4, mkswap здесь не описана.
Считаем новый диск размечен и отформатирован.

Итак начнем:

Если это живой сервер, где что-то пишется, чтобы не запороть файлы
#telinit 1
Если нет сразу монтируем, копируем:
#sudo bash
#mount /dev/sdb1 /mnt
#cp -ax / /mnt

определяем UUID нового Диска
#ls -Al /dev/disk/by-uuid
Редактируем в /etc/mnt/fstab, где XXXX это UUID логического диска.
UUID=XXXX / ext4 errors=remount-ro,noatime 0 1
Ну и swap тоже не забываем:
UUID=XXXX none swap sw 0 0

Монтруем служебные каталоги:
#mount -t proc none /mnt/proc
#mount -t sysfs none /mnt/sys
#mount /dev /mnt/dev -o bind
Делаем новый диск rootfs
#chroot /mnt/

Дальше шаманим с GRUB2
#grub-mkdevicemap –no-floppy
#grub-install /dev/sdb
#update-grub

Вроде все, грузимся с нового диска.
# reboot.

Заметка писалась через неделю после собственно действия, мог что нибудь и упустить.
Надеюсь товарищи подскажут.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Комментировать

cannot create temporary file – (13) Permission denied

Глюк в дефолтной инсталляции qmail в Plesk под Centos (RH). В связи с чем локальные письма скажем на root@localhost  не идут а в логах пишется бред типа:
Jan 23 05:27:21 web qmail-local-handlers[1425]: Handlers Filter before-local for qmail started …
Jan 23 05:27:21 web qmail-local-handlers[1425]: cannot create temporary file – (13) Permission denied
Jan 23 05:27:21 web qmail-local-handlers[1425]: cannot read message from stdin

проблема в том что скриптик qmail-local не имеет соответствующих прав для записи в /usr/local/psa/handlers/spool

лечится:

cd /var/qmail/bin
chown mhandlers-user:popuser qmail-local
chmod g+s,g-r,o-r qmail-local
/etc/init.d/qmail restart

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Комментировать