my $sock_from = IO::Socket::INET->new( Proto => 'tcp', LocalPort => '5070', LocalAddr => '0.0.0.0', ); my $sock_to = IO::Socket::INET->new( Proto => 'tcp', PeerAddr => 'somesortofsomething', PeerPort => '5060', ); my $leg_from = Net::SIP::Leg->new( sock => $sock_from ); my $leg_to = Net::SIP::Leg->new( sock => $sock_to ); my $ua = Net::SIP::Simple->new( legs => [$leg_from, $leg_to], from => $from, outgoing_proxy => 'something', domain => 'something', ); my $timeout = 5; my $stopvar; $ua->add_timer($timeout , \$stopvar ); my $invite = $ua->invite($to); print Dumper($invite); -------------------