Frage

Gibt es ein Perl-Modul verfügbar Nachrichten an Office Communicator schicken? Ich suchte in CPAN aber ohne Erfolg. Kann ich Python oder Ruby verwenden, um Nachrichten zu Office Communicator zu senden. Das mag ich von einer Linux-Box tun.

War es hilfreich?

Lösung

Als "Office Communicator" ist eine modifizierte Version von SIP verwenden, können Sie versuchen, SIP-Clients wie Net :: SIP (oder Net :: SIP :: Simple aus demselben Paket).

Andere Tipps

Ich glaube, dass Sie eine Lösung nach mehr als einem Jahr gefunden haben, aber dennoch, wenn Sie nur eine SIP-Nachricht zu schreiben ein Perl-Programm senden möchten, können Sie einen Blick auf diesen Ansatz haben: http://archive.cert.uni-stuttgart.de/bugtraq/2005/07/msg00276 .html

Eine mögliche Anpassung:

#!/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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top