Como desativar o buffer RTP para chamadas SIP no software FreeSWITCH pbx?

4

Desejo desativar o buffer de chamadas SIP no software de pbx com freeswitch.

O Freeswitch retém os dados RTP dos clientes no buffer e os envia a cada 20 ms.

Eu quero passar livremente pelos pacotes sem segurar.

Como configurá-lo?

----- EDIT (informações adicionais) -----

Eu tenho dois clientes SIP e o FreeSwitch PBX.

Taxa de amostragem de voz de 8 kHz, codificação A-Law (8 bytes por amostra, sem compactação)

Quando eu ligo diretamente de um cliente para outro, a saída do tcpdump em um cliente é:

00:00:00.000475 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031599 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.032012 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.000315 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031775 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.000384 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031499 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031986 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.000475 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031578 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031936 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.000419 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172
00:00:00.031573 IP 10.64.177.34.5440 > 10.64.0.42.5082: UDP, length 172

Mas quando eu me conecto de um cliente para outro usando o pbx como ponto intermediário, recebo:

00:00:00.020013 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.019969 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.020017 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.019984 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.020078 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.020016 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.019850 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.020045 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.020012 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.019974 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.020054 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.019996 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172
00:00:00.019972 IP 10.64.72.24.30230 > 10.64.0.42.5078: UDP, length 172

O tempo médio em ambos os casos é de aproximadamente 20ms (menos claro no caso direto), mas porções de dados não regulares parecem melhores para o cliente porque não há lacunas na voz ouvida (no alto-falante ou fones de ouvido). Eu suponho que porções regulares de dados causam problemas devido ao problema de desvio do relógio.

Por isso, quero desativar esse recurso no FreeSwitch, para que os dados apareçam em carimbos de data / hora originais.

    
por sibislaw 09.08.2017 / 14:29

2 respostas

2

Encontrei uma solução para minha pergunta.

Você precisa adicionar linha

<X-PRE-PROCESS cmd="set" data="rtp_notimer_during_bridge=true"/>

no arquivo

/etc/freeswitch/vars.xml

Isso faz com que o FreeSwitch no modo em ponte preserve os intervalos originais de pacotes.

    
por 21.08.2017 / 14:48
1

Como a comunicação Sip usa o udp para enviar os dados de voz, existe um buffer obrigatório necessário para preencher cada quadro, 20 ms é a quantidade usual de dados retidos por um pacote udp em uma comunicação sip.
Você não poderá ignorá-lo, mas poderá reduzi-lo por configuração

Eu não uso o freepbx, mas o Asterisk como um pbx, então não sei se é um recurso ou apenas o atraso de computação. Talvez você deva considerar usar o equivalente do recurso direct_media encontrado no asterisco para que a negociação do sip seja feita através do pbx, mas a carga útil do rtp seja direta entre os pares.

    
por 09.08.2017 / 15:38