Encontrei becos sem saída para esse problema em diferentes fóruns e sites, seria hora de resolvê-lo para o bem de todos.
Dados 2 dispositivos:
Um telefone IP cisco 894x com suporte h264
Software softphone B Bria com suporte h264
Antes de dizer omg é tão complexo, estes não são compatíveis blah blah, acho que tanto o áudio e o vídeo funciona perfeitamente se o Cisco - > chama - > Bria
Não o contrário. Nesse caso, o cliente Bria não oferece fluxo de vídeo e ao clicar em "enviar fluxo de vídeo", ele diz não suportado. Eu vejo o seguinte no log do asterisco.
chan_sip.c: 10118 em process_sdp: Ignorando a oferta de fluxo de vídeo porque o número da porta é zero
Os dois dispositivos estão na mesma LAN sem firewall ou entre eles. O servidor Asterisk está na mesma LAN sem firewall, então todos os 3 têm acesso perfeito um ao outro, mas eu habilitei canreinvite = sim, então depois que a sessão SIP é estabelecida, os 2 dispositivos podem falar diretamente uns com os outros ao invés de passar pelo Asterisco. Eu posso confirmar que isso está funcionando olhando os despejos de tráfego do PBX.
Então, o que está causando o seguinte erro que a comunicação para vídeo só funciona de uma maneira? Não faz sentido. Minhas configurações básicas de asterisco e dispositivo específico:
[general]
context=default
directmedia=yes
nat=force_rport,comedia
Extension config o outro é o espelho disso com outro número:
[101]
canreinvite=yes
videosupport=yes
type=friend
host=dynamic
secret=hello
context=home
mailbox=101@home
deny=0.0.0.0/0
permit=192.168.0.0/255.255.0.0;
disallow=all
allow=g722
allow=speex
allow=ulaw
allow=alaw
allow=h261
allow=h263
allow=h263p
allow=h264
insecure=invite,port
Versão do asterisco:
astlinux-1.2.8 x86_64 - Asterisk 11.23.1
O que eu tentei:
insecure = o convite foi o original que eu mudei para insecure = invite, port - > nenhuma diferença
adição de videosupport = yes - > nenhuma diferença