2010-02-24 11:59:41 +00:00
|
|
|
#!/usr/bin/perl
|
|
|
|
|
2010-03-27 22:43:18 +00:00
|
|
|
# Copyright (c) 2010 Mathieu Parent <math.parent@gmail.com>.
|
|
|
|
# All rights reserved. This program is free software; you can redistribute it
|
|
|
|
# and/or modify it under the same terms as Perl itself.
|
|
|
|
|
|
|
|
BEGIN {
|
|
|
|
push @INC, 'src/mod/endpoints/mod_skinny';
|
|
|
|
}
|
|
|
|
|
2010-02-24 11:59:41 +00:00
|
|
|
use strict;
|
|
|
|
use warnings;
|
2010-03-27 22:43:18 +00:00
|
|
|
|
|
|
|
use Net::Skinny;
|
|
|
|
use Net::Skinny::Protocol qw/:all/;
|
2010-03-29 07:44:25 +00:00
|
|
|
use Net::Skinny::Message;
|
2010-02-24 11:59:41 +00:00
|
|
|
|
2010-03-01 11:06:47 +00:00
|
|
|
#Config
|
|
|
|
my $skinny_server = '127.0.0.1';
|
|
|
|
my $device_name = "SEP001120AABBCC";
|
|
|
|
my $device_ip = 10+256*(11+256*(12+256*13)); # 10.11.12.13
|
|
|
|
#======
|
2010-02-24 11:59:41 +00:00
|
|
|
$| = 1;
|
|
|
|
|
2010-03-27 22:43:18 +00:00
|
|
|
my $socket = Net::Skinny->new(
|
2010-03-01 11:06:47 +00:00
|
|
|
PeerAddr => $skinny_server,
|
2010-02-24 11:59:41 +00:00
|
|
|
PeerPort => 2000,
|
|
|
|
);
|
|
|
|
|
2010-03-27 22:43:18 +00:00
|
|
|
if(!$socket) {
|
|
|
|
print "Unable to connect to server\n";
|
|
|
|
exit 1;
|
2010-02-24 11:59:41 +00:00
|
|
|
}
|
2010-02-24 12:00:45 +00:00
|
|
|
# =============================================================================
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(
|
|
|
|
REGISTER_MESSAGE,
|
|
|
|
device_name => $device_name,
|
|
|
|
user_id => 0,
|
|
|
|
instance => 1,
|
|
|
|
ip => $device_ip,
|
|
|
|
device_type => 7,
|
|
|
|
max_streams => 0,
|
|
|
|
);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # RegisterAck
|
2010-02-24 11:59:41 +00:00
|
|
|
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(
|
|
|
|
PORT_MESSAGE,
|
|
|
|
port => 2000,
|
|
|
|
);
|
2010-02-24 12:00:45 +00:00
|
|
|
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(
|
|
|
|
HEADSET_STATUS_MESSAGE,
|
|
|
|
mode => 2, #Off
|
|
|
|
);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # CapabilitiesReq
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(
|
|
|
|
CAPABILITIES_RES_MESSAGE,
|
|
|
|
count => 2,
|
|
|
|
caps => pack("Vva10"."Vva10",
|
|
|
|
2, 8, "", # codec, frames, res
|
|
|
|
4, 16, "", # codec, frames, res
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
$socket->send_message(BUTTON_TEMPLATE_REQ_MESSAGE);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # ButtonTemplateMessage
|
2010-02-24 12:00:45 +00:00
|
|
|
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(SOFT_KEY_TEMPLATE_REQ_MESSAGE);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # SoftKeyTemplateRes
|
2010-02-24 12:00:45 +00:00
|
|
|
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(SOFT_KEY_SET_REQ_MESSAGE);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # SoftKeySetRes
|
2010-02-24 12:00:45 +00:00
|
|
|
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(
|
|
|
|
LINE_STAT_REQ_MESSAGE,
|
|
|
|
number => 1,
|
|
|
|
);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # LineStat
|
2010-02-24 11:59:41 +00:00
|
|
|
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(
|
|
|
|
REGISTER_AVAILABLE_LINES_MESSAGE,
|
|
|
|
count => 2
|
|
|
|
);
|
2010-02-24 11:59:41 +00:00
|
|
|
|
2010-02-24 11:59:49 +00:00
|
|
|
while(1) {
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->sleep(20);
|
2010-03-29 07:44:25 +00:00
|
|
|
$socket->send_message(KEEP_ALIVE_MESSAGE);
|
2010-03-27 22:43:18 +00:00
|
|
|
$socket->receive_message(); # keepaliveack
|
2010-02-24 11:59:49 +00:00
|
|
|
}
|