IPTV : Freebsd 8.1 + udpxy
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2010-01-22 19:18:18
IPTV : Freebsd 8.1 + udpxy
Здравствуйте все. Собственно сабж.
Есть провайдер, который вещает iptv. Есть шлюз на 8.1 с NAT и ipfw. Udpxy не работает. В смысле вообще ничего не показывает. Плейлист я переделал, но тем не менее, ничего. Куда рыть? Обязательны ли опции в ядре типа MULTICAST?
Спасибо.
Есть провайдер, который вещает iptv. Есть шлюз на 8.1 с NAT и ipfw. Udpxy не работает. В смысле вообще ничего не показывает. Плейлист я переделал, но тем не менее, ничего. Куда рыть? Обязательны ли опции в ядре типа MULTICAST?
Спасибо.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- xelplogoog
- мл. сержант
- Сообщения: 134
- Зарегистрирован: 2010-01-02 12:14:56
Re: IPTV : Freebsd 8.1 + udpxy
смотри в лог vlc (запуская с консоли с флагами -v)
в ядре я не ковырялся, когда заводил эту тему
все работает
в ядре я не ковырялся, когда заводил эту тему
все работает
/usr/ports/x11/yakuake-kde4 user
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2010-01-22 19:18:18
Re: IPTV : Freebsd 8.1 + udpxy
короче в момент перезагрузки файерволла все работает, потом секунд через 5 снова падает.
Конфиг ipfw:
ЧЯДНТ?
p.s. про VLC - че-то я не вкурил, куда он лог кладет. запускаю из под винды.
Конфиг ipfw:
Код: Выделить всё
fw="/sbin/ipfw"
iif="re0"
oif="age0"
oip="##.##.##.##"
iip="192.168.1.1"
inet="192.168.1.0/24"
${fw} -f flush
${fw} add check-state
${fw} add allow ip from any to any via lo0
${fw} add allow ip from any to 192.168.1.1 via ${iif}
${fw} add allow ip from 192.168.1.1 to any via ${iif}
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any
${fw} add deny ip from any to 10.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 in via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 in via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 in via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 in via ${oif}
${fw} add deny icmp from any to any frag
${fw} add deny icmp from any to 255.255.255.255 in via ${oif}
${fw} add deny icmp from any to 255.255.255.255 out via ${oif}
${fw} add deny ip from not ${allowip} to not ${inet} via ${iif}
${fw} add deny ip from not ${inet} to not ${allowip} via ${iif}
${fw} add divert natd ip from ${inet}/24 to any out via ${oif}
${fw} add divert natd ip from any to ${oip} in via ${oif}
${fw} add allow ip from me to any
${fw} add allow ip from any to me
${fw} add deny ip from 10.0.0.0/8 to any out via ${oif}
${fw} add deny ip from 172.16.0.0/12 to any out via ${oif}
${fw} add deny ip from 192.168.0.0/16 to any out via ${oif}
${fw} add deny ip from 0.0.0.0/8 to any out via ${oif}
${fw} add deny ip from 169.254.0.0/16 to any out via ${oif}
${fw} add deny ip from 224.0.0.0/4 to any out via ${oif}
${fw} add deny ip from 240.0.0.0/4 to any out via ${oif}
${fw} add allow tcp from any to any established
${fw} add allow udp from any 53 to any
${fw} add allow udp from any to any 53
${fw} add allow icmp from any to any icmptypes 0,8,11
${fw} add allow ip from any to any via ${iif}
proxy#
p.s. про VLC - че-то я не вкурил, куда он лог кладет. запускаю из под винды.
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2010-01-22 19:18:18
Re: IPTV : Freebsd 8.1 + udpxy
причем когда в конфиге ipfw одна строка
все работает.
Код: Выделить всё
allow ip from any to any
- xelplogoog
- мл. сержант
- Сообщения: 134
- Зарегистрирован: 2010-01-02 12:14:56
Re: IPTV : Freebsd 8.1 + udpxy
у меня pf
смотри в логе фаервола, че он блочит. и разрешай
лог vlc уже не нужен
смотри в логе фаервола, че он блочит. и разрешай
лог vlc уже не нужен
/usr/ports/x11/yakuake-kde4 user
- Dog
- лейтенант
- Сообщения: 723
- Зарегистрирован: 2006-09-21 10:34:36
- Откуда: Kharkiv, Ukraine
- Контактная информация:
Re: IPTV : Freebsd 8.1 + udpxy
Присоединюсь к теме.
Ретрансляция через udpxy почему-то не работает. Имеется:Ядро собрано с опцией
updxy запущен и работает:В файрволе поставил вот такие правила:
Когда на локальном компе врубаю vlc и скармливаю ему плейлист со строками вида http://172.31.0.1:4022/udp/239.0.0.x:yyyy, то он тупо проходится по списку каналов до конца, ничего не отображая. При этом в логах udpxy появляются сообщения вида:tcpdump на внешнем интерфейсе показывает, что какие-то пакеты все же проходят:а в логах vlc, если его запускать из консоли с ключиком -v, валятся такие матюки:Таблица мультикаст-форвардинга при этом тоже пустая:
Гуглил долго и упорно, но что-то пока безрезультатно. Пытался в файрволе играться с опциями сохранения состояния modulate state/no state, результат нулевой. Временный перевод файрвола в режим pass all - ну, вы поняли. Чем можно побороть-то?
Ретрансляция через udpxy почему-то не работает. Имеется:
Код: Выделить всё
dog@euthanasic:~> uname -a
FreeBSD euthanasic 8.2-RELEASE-p2 FreeBSD 8.2-RELEASE-p2 #0: Sat May 28 17:38:41 EEST 2011 root@euthanasic:/usr/obj/usr/src/sys/EUTHANASIC i386
Код: Выделить всё
dog@euthanasic:~> grep MROUT /usr/src/sys/i386/conf/EUTHANASIC
options MROUTING # Multicast routing
Код: Выделить всё
dog@euthanasic:~> sockstat | grep udpxy
root udpxy 31489 1 dgram -> /var/run/logpriv
root udpxy 31489 5 tcp4 172.31.0.1:4022 *:*
dog@euthanasic:~> ps ax | grep udpxy
31489 ?? I 0:00,18 /usr/local/sbin/udpxy -p 4022 -v -p 4022 -l /var/log/udpxy.log -a 172.31.0.1 -m AAA.BBB.CCC.DDD
Код: Выделить всё
pass quick proto igmp from any to any allow-opts
pass in on $ext_if proto udp to 239.0.0.0/8
pass in on $ext_if proto udp to 240.0.0.0/8
pass quick on $ext_if proto udp from any to any port 1234 allow-opts
pass quick on $int_if proto udp from $local_net to $int_if port 4022
Код: Выделить всё
2011-06-04 21:44:21.064570 EEST 31489 Accepted socket=[6]
2011-06-04 21:44:21.064672 EEST 31489 Reading command from socket [6]
2011-06-04 21:44:21.065416 EEST 31489 HTTP buffer [58 bytes] received
2011-06-04 21:44:21.065473 EEST 31489 Request=[udp/239.0.0.59:1234], length=[19]
2011-06-04 21:44:21.065496 EEST 31489 Command [udp] with params [239.0.0.59:1234] read from socket=[6]
2011-06-04 21:44:21.065518 EEST 31489 udp_relay : new_socket=[6] param=[239.0.0.59:1234]
2011-06-04 21:44:21.065785 EEST 31489 Added client: pid=[32016], maddr=[239.0.0.59], mport=[1234], saddr=[172.31.0.2], sport=[39664]
2011-06-04 21:44:21.065871 EEST 31489 Closed accepted socket [6]
2011-06-04 21:44:21.065892 EEST 31489 Server is waiting for input: socket=[5], pipe=[2]
2011-06-04 21:44:21.066014 EEST 31489 Client process=[32016] started for socket=[6]
2011-06-04 21:44:21.066371 EEST 32016 min socket buffer = [65536], max space to use = [1500], Rmsgs = [1]
2011-06-04 21:44:21.066402 EEST 32016 Setting up multicast listener
2011-06-04 21:44:21.066506 EEST 32016 current receive buffer size is [65536] bytes for socket [2]
2011-06-04 21:44:21.067291 EEST 32016 multicast-group [ADD]
2011-06-04 21:44:21.067344 EEST 32016 Mcast listener socket=[2] set up
2011-06-04 21:44:21.067366 EEST 32016 min socket buffer = [65536], max space to use = [1500], Rmsgs = [1]
2011-06-04 21:44:21.067387 EEST 32016 Data buffer will hold up to [1] messages
2011-06-04 21:44:21.067409 EEST 32016 UDP stream, RTP check enabled
2011-06-04 21:44:21.067495 EEST 32016 current send buffer size is [66608] bytes for socket [6]
2011-06-04 21:44:21.067519 EEST 32016 current receive buffer size is [65536] bytes for socket [2]
2011-06-04 21:44:21.067588 EEST 32016 Sent HTTP response code=[200], reason=[OK] to socket=[6]
2011-06-04 21:44:21.067644 EEST 32016 Relaying traffic from socket[2] to socket[6], buffer size=[2048], Rmsgs=[1], pauses=[0]
2011-06-04 21:44:26.068631 EEST 32016 read_buf: read: Resource temporarily unavailable
2011-06-04 21:44:26.068678 EEST 32016 read_data - EOF
2011-06-04 21:44:26.068699 EEST 32016 Exited relay loop: received=[-1], sent=[0], quit=[0]
2011-06-04 21:44:26.069329 EEST 32016 multicast-group [DROP]
2011-06-04 21:44:26.069391 EEST 32016 Mcast listener socket=[2] closed
2011-06-04 21:44:26.069529 EEST 32016 Child process=[32016] exits with rc=[0]
2011-06-04 21:44:26.070002 EEST 31489 *** Caught SIGCHLD in process=[31489] ***
2011-06-04 21:44:26.070082 EEST 31489 Client [32016] has exited.
2011-06-04 21:44:26.070116 EEST 31489 Deleted client: pid=[32016]
2011-06-04 21:44:26.070140 EEST 31489 Server is waiting for input: socket=[5], pipe=[2]
2011-06-04 21:44:26.099109 EEST 31489 Accepted socket=[6]
2011-06-04 21:44:26.099227 EEST 31489 Reading command from socket [6]
2011-06-04 21:44:26.099259 EEST 31489 HTTP buffer [58 bytes] received
2011-06-04 21:44:26.099281 EEST 31489 Request=[udp/239.0.0.60:1234], length=[19]
2011-06-04 21:44:26.099302 EEST 31489 Command [udp] with params [239.0.0.60:1234] read from socket=[6]
2011-06-04 21:44:26.099322 EEST 31489 udp_relay : new_socket=[6] param=[239.0.0.60:1234]
2011-06-04 21:44:26.099591 EEST 31489 Added client: pid=[32017], maddr=[239.0.0.60], mport=[1234], saddr=[172.31.0.2], sport=[55896]
2011-06-04 21:44:26.099681 EEST 31489 Closed accepted socket [6]
2011-06-04 21:44:26.099703 EEST 31489 Server is waiting for input: socket=[5], pipe=[2]
2011-06-04 21:44:26.099837 EEST 31489 Client process=[32017] started for socket=[6]
2011-06-04 21:44:26.099964 EEST 32017 min socket buffer = [65536], max space to use = [1500], Rmsgs = [1]
2011-06-04 21:44:26.099987 EEST 32017 Setting up multicast listener
2011-06-04 21:44:26.100083 EEST 32017 current receive buffer size is [65536] bytes for socket [2]
2011-06-04 21:44:26.101076 EEST 32017 multicast-group [ADD]
2011-06-04 21:44:26.101122 EEST 32017 Mcast listener socket=[2] set up
2011-06-04 21:44:26.101144 EEST 32017 min socket buffer = [65536], max space to use = [1500], Rmsgs = [1]
2011-06-04 21:44:26.101164 EEST 32017 Data buffer will hold up to [1] messages
2011-06-04 21:44:26.101185 EEST 32017 UDP stream, RTP check enabled
2011-06-04 21:44:26.101265 EEST 32017 current send buffer size is [66608] bytes for socket [6]
2011-06-04 21:44:26.101290 EEST 32017 current receive buffer size is [65536] bytes for socket [2]
2011-06-04 21:44:26.101360 EEST 32017 Sent HTTP response code=[200], reason=[OK] to socket=[6]
2011-06-04 21:44:26.101416 EEST 32017 Relaying traffic from socket[2] to socket[6], buffer size=[2048], Rmsgs=[1], pauses=[0]
2011-06-04 21:44:31.102106 EEST 32017 read_buf: read: Resource temporarily unavailable
2011-06-04 21:44:31.102152 EEST 32017 read_data - EOF
2011-06-04 21:44:31.102173 EEST 32017 Exited relay loop: received=[-1], sent=[0], quit=[0]
2011-06-04 21:44:31.102781 EEST 32017 multicast-group [DROP]
2011-06-04 21:44:31.102837 EEST 32017 Mcast listener socket=[2] closed
2011-06-04 21:44:31.102972 EEST 32017 Child process=[32017] exits with rc=[0]
2011-06-04 21:44:31.103425 EEST 31489 *** Caught SIGCHLD in process=[31489] ***
2011-06-04 21:44:31.103500 EEST 31489 Client [32017] has exited.
2011-06-04 21:44:31.103522 EEST 31489 Deleted client: pid=[32017]
2011-06-04 21:44:31.103543 EEST 31489 Server is waiting for input: socket=[5], pipe=[2]
Код: Выделить всё
dog@euthanasic:~> sudo tcpdump -n -i fxp0 port 1234 or igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on fxp0, link-type EN10MB (Ethernet), capture size 96 bytes
21:46:04.420318 IP AAA.BBB.CCC.DDD > 239.0.0.59: igmp v2 report 239.0.0.59
21:46:09.421511 IP AAA.BBB.CCC.DDD > 224.0.0.2: igmp leave 239.0.0.59
21:46:09.458444 IP AAA.BBB.CCC.DDD > 239.0.0.60: igmp v2 report 239.0.0.60
21:46:14.459931 IP AAA.BBB.CCC.DDD > 224.0.0.2: igmp leave 239.0.0.60
21:46:14.472257 IP AAA.BBB.CCC.DDD > 239.0.0.58: igmp v2 report 239.0.0.58
21:46:19.473896 IP AAA.BBB.CCC.DDD > 224.0.0.2: igmp leave 239.0.0.58
^C
6 packets captured
3178 packets received by filter
0 packets dropped by kernel
Код: Выделить всё
[0x81e250670] main stream error: cannot pre fill buffer
[0x81e3e46f0] main input warning: cannot create a stream_t from access
*** Unable to locate valid config! Falling back to auto-detection...
*** Unable to locate PAC! Falling back to direct...
Код: Выделить всё
dog@euthanasic:~> sudo netstat -g | grep -A2 "IPv4 Multicast Forwarding Table"
IPv4 Multicast Forwarding Table is empty
Oh my God, they killed init! Bastards!
- kharkov_max
- капитан
- Сообщения: 1854
- Зарегистрирован: 2008-10-03 14:56:40
Re: IPTV : Freebsd 8.1 + udpxy
А если так ?
где
iptv_host="10.1.1.1"
iptv_lan="240.0.0.0/4"
iptv_port="1234"
У меня работает.....
Разберите эти правила - там все просто ...
Код: Выделить всё
pass quick on { $int_if $ext_inet } proto igmp to { $iptv_host $iptv_lan } allow-opts modulate state queue qext_iptv
pass quick on { $int_if $ext_inet } proto udp to { $iptv_host $iptv_lan } port $iptv_port keep state queue qext_iptv
iptv_host="10.1.1.1"
iptv_lan="240.0.0.0/4"
iptv_port="1234"
У меня работает.....
Разберите эти правила - там все просто ...
-
- проходил мимо
- Сообщения: 7
- Зарегистрирован: 2011-07-14 12:46:17
Re: IPTV : Freebsd 8.1 + udpxy
Роутер-СайтСервер Freebsd
раздаёт Интернет на Windows машины пользователей внутренней сети
Для раздачи мультикаст IPTV от провайдера
ядро с опцией MROUTING
запущен udpxy по инструкции http://asy.org.ua/udpxy/
# /etc/rc.conf
udpxy_enable="YES"
udpxy_flags= "-l /var/log/udpxy.log -v -S -c 20 -M 300 -m 192.168.0.2 -p 4022 -a 192.168.1.1"
раздаёт нормально
на клиентские машины для медиаплееров VLC 1.1.11, SimpleTV версия 0.4 (vlc 1.1.8),
даже одновременно и нормально переключаются каналы.
Если запустить на клиентской машине IP-TV Player - справка, он запускается и начинает отображать вещание бесконечно долго,
но если попытаться переключить на другой канал вещания,
то сразу отключается udpxy на роутере.
И у всех IPTV естественно пропадает.
запускать приходится
# /usr/local/etc/rc.d/udpxy start
и снова все нормально на всех плеерах отображается и переключается до попытки переключить на IP-TV Player канал вещания,
хотя у него тоже указан движок от VLC .
/var/log/udpxy.log пустой
На основной консоли от udpxy start до вылета отображает
или
если udpxy start , нормальное переключение каналов в VLC , udpxy stop отображает
для сравнения при ручном udpxy start , udpxy stop отображает
По моему подозрению могут быть и другие медиаплееры которые смогут остановить udpxy,
подскажите как исключить эту возможность настройками в роутере ?
udpxy пробовал с разными ключами и совсем без ключей, результат не изменялся.
раздаёт Интернет на Windows машины пользователей внутренней сети
Для раздачи мультикаст IPTV от провайдера
ядро с опцией MROUTING
запущен udpxy по инструкции http://asy.org.ua/udpxy/
# /etc/rc.conf
udpxy_enable="YES"
udpxy_flags= "-l /var/log/udpxy.log -v -S -c 20 -M 300 -m 192.168.0.2 -p 4022 -a 192.168.1.1"
раздаёт нормально
на клиентские машины для медиаплееров VLC 1.1.11, SimpleTV версия 0.4 (vlc 1.1.8),
даже одновременно и нормально переключаются каналы.
Если запустить на клиентской машине IP-TV Player - справка, он запускается и начинает отображать вещание бесконечно долго,
но если попытаться переключить на другой канал вещания,
то сразу отключается udpxy на роутере.
И у всех IPTV естественно пропадает.
запускать приходится
# /usr/local/etc/rc.d/udpxy start
и снова все нормально на всех плеерах отображается и переключается до попытки переключить на IP-TV Player канал вещания,
хотя у него тоже указан движок от VLC .
/var/log/udpxy.log пустой
На основной консоли от udpxy start до вылета отображает
Код: Выделить всё
udpxy[38902]: udpxy 1.0-Chipmunk (build 19) standard is starting
udpxy[38902]: server_loop: accept: Software caused connection abort
udpxy[38904]: write_buf: write: Broken pipe
udpxy[38902]: wait_children: waitpid: Interrupted system call
udpxy[38902]: udpxy 1.0-Chipmunk (build 19) standard is exiting with rc=[1]
Код: Выделить всё
udpxy[3093]: udpxy 1.0-Chipmunk (build 19) standard is starting
udpxy[3094]: write_buf: write: Broken pipe
udpxy[3093]: server_loop: accept: Software caused connection abort
udpxy[3093]: udpxy 1.0-Chipmunk (build 19) standard is exiting with rc=[1]
Код: Выделить всё
udpxy[3202]: udpxy 1.0-Chipmunk (build 19) standard is starting
udpxy[3374]: write_buf: write: Broken pipe
udpxy[3375]: write_buf: write: Broken pipe
udpxy[3376]: write_buf: write: Broken pipe
udpxy[3377]: write_buf: write: Broken pipe
udpxy[3378]: write_buf: write: Broken pipe
udpxy[3202]: udpxy 1.0-Chipmunk (build 19) standard is exiting with rc=[0]
для сравнения при ручном udpxy start , udpxy stop отображает
Код: Выделить всё
udpxy[39075]: udpxy 1.0-Chipmunk (build 19) standard is starting
udpxy[39075]: udpxy 1.0-Chipmunk (build 19) standard is exiting with rc=[0]
подскажите как исключить эту возможность настройками в роутере ?
udpxy пробовал с разными ключами и совсем без ключей, результат не изменялся.
делай добро и бросай его в Интернет, оно не пропадёт, кому-нибудь сгодится.
-
- проходил мимо
- Сообщения: 7
- Зарегистрирован: 2011-07-14 12:46:17
Re: IPTV : Freebsd 8.1 + udpxy
После длительных поисков решения вопроса в поисковиках и в процессе ожидания ответа на вопрос оставленный в форуме, решил обратиться напрямую к автору программы
udpxy and udpxrec - Pavel V. Cherenkov
с подробным описанием проблемы и Логами, конфигурации системы и установленных программ.
На моё удивление Павел сразу написал ответ и выслал первый patch для более широкого сбора статистики,
на отосланные ему Логи
пришел следующий patch1 который и решил полностью проблему.
В след за этим patch появился на
http://sourceforge.net/projects/udpxy/f ... pmunk-1.0/
как
udpxy.1.0-Chipmunk-PATCH120.tgz 2011-10-06 79.1 kB
и в последующем вышла
udpxy.1.0-Chipmunk-build21.tgz 2011-11-25 82.8 kB
которая уже давно есть в портах
и после длительного тестирования udpxy.1.0-Chipmunk-build21 установленной из портов проблем не обнаружено.
Описание и Инструкция по работе с программой и ключах на английском и русском udpxy-manual-RU.rtf языках есть в пакете с программой udpxy…….tgz.
На данный момент Pavel V. Cherenkov готовит анонс специально для провайдеров.
Публично выражаю большую благодарность Pavel V. Cherenkov за решение моей проблемы.
udpxy and udpxrec - Pavel V. Cherenkov
с подробным описанием проблемы и Логами, конфигурации системы и установленных программ.
На моё удивление Павел сразу написал ответ и выслал первый patch для более широкого сбора статистики,
на отосланные ему Логи
пришел следующий patch1 который и решил полностью проблему.
В след за этим patch появился на
http://sourceforge.net/projects/udpxy/f ... pmunk-1.0/
как
udpxy.1.0-Chipmunk-PATCH120.tgz 2011-10-06 79.1 kB
и в последующем вышла
udpxy.1.0-Chipmunk-build21.tgz 2011-11-25 82.8 kB
которая уже давно есть в портах
и после длительного тестирования udpxy.1.0-Chipmunk-build21 установленной из портов проблем не обнаружено.
Описание и Инструкция по работе с программой и ключах на английском и русском udpxy-manual-RU.rtf языках есть в пакете с программой udpxy…….tgz.
На данный момент Pavel V. Cherenkov готовит анонс специально для провайдеров.
Публично выражаю большую благодарность Pavel V. Cherenkov за решение моей проблемы.
делай добро и бросай его в Интернет, оно не пропадёт, кому-нибудь сгодится.