Доступно ли модуль Perl для отправки сообщений в Office Communicator?

StackOverflow https://stackoverflow.com/questions/3955901

  •  08-10-2019
  •  | 
  •  

Вопрос

Доступно ли модуль Perl для отправки сообщений в Office Communicator? Я искал в CPAN, но без какой-либо удачи. Могу ли я использовать Python или Ruby, чтобы отправить сообщения в Office Communicator. Я хочу сделать это с коробки Linux.

Это было полезно?

Решение

Как «Office Communicator» использует модифицированную версию SIP, вы можете попробовать использовать клиенты SIP, как Net :: Sip. (или Net :: Sip :: просто из того же пакета).

Другие советы

Я думаю, вы нашли решение после более чем в год, но, тем не менее, если вы просто хотите отправить сообщение SIP, написание программы Perl, вы можете взглянуть на этот подход: http://archive.cert.uni-stutgart.de/bugtraq/2005/07/msg00276.html.

Возможная настройка:

#!/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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top