Pregunta

¿Hay alguna Perl módulo disponible para enviar mensajes a Office Communicator? He buscado en CPAN, pero sin ninguna suerte. ¿Puedo usar Python o Ruby para enviar mensajes a Office Communicator. Quiero hacer esto desde una máquina Linux.

¿Fue útil?

Solución

Como "Office Communicator" está utilizando una versión modificada del SIP, puede probar a usar los clientes SIP como Net :: SIP (o Net :: :: SIP simple desde mismo paquete).

Otros consejos

Creo que se le han encontrado una solución después de más de un año, pero sin embargo, si lo que desea enviar un mensaje SIP escribir un programa Perl, puede echar un vistazo a este enfoque: http://archive.cert.uni-stuttgart.de/bugtraq/2005/07/msg00276 .html

Una posible personalizar:

#!/usr/bin/perl
use strict;
use warnings;
use Socket;

sub SendSIPTo {
    my ($from, $to, $text, $ProxyIP) = @_;

    my $contentLength = length($text);

    my $AT = '@';
    my $domain = 'example.com';
    my $ToURI = 'sip:' . $to . $AT . $domain;
    my $FromURI = 'sip:' . $from . $AT . $domain;

    my $MESG = "MESSAGE $ToURI SIP\/2.0\r
Via: SIP/2.0/UDP 10.10.10.10;branch=z9hG4bK8fe6.db5fade4.0\r
To: $ToURI\r
From: <$FromURI>;tag=578c0e59d7504cca4dc4a96522981b0a-0c8b\r
CSeq: 1 MESSAGE\r
Call-ID: 609ded3a79a9cbd5\r
Content-Length: $contentLength\r
User-Agent: perl\r
\r
" . $text;

    my $proto = getprotobyname('udp');
    socket(SOCKET, PF_INET, SOCK_DGRAM, $proto) ;
    my $iaddr = inet_aton("0.0.0.0");
    my $paddr = sockaddr_in(5060, $iaddr);
    bind(SOCKET, $paddr) ;

    my $port = 5060;
    my $hisiaddr = inet_aton($ProxyIP) ;
    my $hispaddr = sockaddr_in($port, $hisiaddr);
    send(SOCKET, $MESG, 0, $hispaddr ) || warn "send $!\n";

    return 'OK';
}

1;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top