Gibt es einen Perl-Modul verfügbar Nachrichten an Office Communicator zu schicken?
-
08-10-2019 - |
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.
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;