Comprobar comunicación SIP
Monday, 10 December 5551
Inicio | Documentacion | Software | Acerca de

Documentación y Software
Inicio
Documentacion
Software
Acerca de


Probando el protocolo SIP


(c) Servitux 2007

En determinadas ocasiones necesitamos saber si un servidor SIP está accesible, responde correctamente, o incluso si existe la posibilidad de que un firewall o router esté interrumpiendo la comunicación entre el servidor SIP y el cliente SIP.

Para ello podemos usar este pequeño programa en perl, que manda un paquete SIP
por UDP al puerto 5060:

#!/usr/bin/perl

use IO::Socket::INET;
$elsocket = new
# modificar la direccion IP por la del servidor destino
IO::Socket::INET->new(PeerPort=>5060,Proto=>'udp',PeerAddr=>'127.0.0.1');

# no editar el mensaje SIP
$mensaje = "INVITE sip:sip%3Auser%40example.com@company.com;other-param=summit SIP/2.0
To: sip:user@company.com
From: sip:caller@university.edu
Call-ID: 4@10.0.0.1
CSeq: 1 INVITE
Via: SIP/2.0/UDP 135.180.130.133
Content-Type: application/sdp
Content-Length: 174

v=0
o=mhandley 29739 7272939 IN IP4 126.5.4.3
s=SIP Call
c=IN IP4 135.180.130.88
t=3149328700 0
m=audio 49210 RTP/AVP 0 12
m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC/8000

";
$elsocket->send($mensaje);
print "\n\n$mensaje enviado\n\n";

El mensaje que se envía es válido, y el servidor SIP debería generar una respuesta 404.

Si pruebas este programa contra un servidor Asterisk, desde la linea de comando ejecutas "sip debug" y verás como llega el paquete SIP y como se genera la respuesta 404. Si no lo ves, es posible que haya algún router o firewall que esté filtrando la conexión.
  Last modified: Thu, 22 December 2016  Contenidos © ServiTux Servicios Informáticos