Revision
17195
Author
math.parent
Date
2010-04-02 05:21:47 -0500 (Fri, 02 Apr 2010)

Log Message

perl-skinny: Add call test

- more verbose when incomplete message
- guess hostname
- do a basic call to Voicemail:
  + Newcall softkey, wait 5
  + Voicemail button, wait 20
  + EndCall softkey

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_skinny/Net/Skinny/Message.pm (17194 => 17195)


--- freeswitch/trunk/src/mod/endpoints/mod_skinny/Net/Skinny/Message.pm	2010-04-02 10:15:33 UTC (rev 17194)
+++ freeswitch/trunk/src/mod/endpoints/mod_skinny/Net/Skinny/Message.pm	2010-04-02 10:21:47 UTC (rev 17195)
@@ -49,7 +49,9 @@
         $parsed_count++;
     }
     if($parsed_count != scalar(keys %{$self->{'data'}})) {
-        printf "Incomplete message: %d out of %d\n", $parsed_count, scalar(keys %{$self->{'data'}});
+    	printf "Incomplete message (type=%s (%X)) %d out of %d\n", Net::Skinny::Protocol::skinny_message_type2str($self->{'type'}), $self->{'type'},
+            $parsed_count, scalar(keys %{$self->{'data'}});
+        print Dumper(@$struct);
         return;
     }
     $self->{'socket'}->send_data($self->{'type'}, $raw);

Modified: freeswitch/trunk/src/mod/endpoints/mod_skinny/test-skinny.pl (17194 => 17195)


--- freeswitch/trunk/src/mod/endpoints/mod_skinny/test-skinny.pl	2010-04-02 10:15:33 UTC (rev 17194)
+++ freeswitch/trunk/src/mod/endpoints/mod_skinny/test-skinny.pl	2010-04-02 10:21:47 UTC (rev 17195)
@@ -11,12 +11,13 @@
 use strict;
 use warnings;
 
+use Sys::Hostname;
 use Net::Skinny;
 use Net::Skinny::Protocol qw/:all/;
 use Net::Skinny::Message;
 
 #Config
-my $skinny_server = '127.0.0.1';
+my $skinny_server = hostname;
 my $device_name = "SEP001120AABBCC";
 my $device_ip = 10+256*(11+256*(12+256*13)); # 10.11.12.13
 #======
@@ -70,6 +71,7 @@
 
 $socket->send_message(SOFT_KEY_SET_REQ_MESSAGE);
 $socket->receive_message(); # SoftKeySetRes
+$socket->receive_message(); # SelectSoftKeys
 
 $socket->send_message(
     LINE_STAT_REQ_MESSAGE,
@@ -82,8 +84,68 @@
     count => 2
     );
 
-while(1) {
-	$socket->sleep(20);
+for(my $i = 0; $i < 1; $i++) {
+	$socket->sleep(5);
 	$socket->send_message(KEEP_ALIVE_MESSAGE);
 	$socket->receive_message(); # keepaliveack
 }
+$socket->sleep(5);
+
+#NewCall
+$socket->send_message(
+    SOFT_KEY_EVENT_MESSAGE, 
+    event => 2, #NewCall
+    line_instance => 2,
+    call_id => 0
+    );
+$socket->receive_message(); # SetRinger
+$socket->receive_message(); # SetSpeakerMode
+$socket->receive_message(); # SetLamp
+$socket->receive_message(); # SelectSoftKeys
+$socket->receive_message(); # DisplayPromptStatus
+$socket->receive_message(); # ActivateCallPlane
+$socket->receive_message(); # StartTone
+
+$socket->sleep(5);
+
+#VoiceMail
+$socket->send_message(
+    STIMULUS_MESSAGE, 
+    instance_type => 0xf, #VoiceMail
+    instance => 0,
+    );
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+$socket->receive_message(); # 
+
+#
+$socket->send_message(
+    OPEN_RECEIVE_CHANNEL_ACK_MESSAGE, 
+    status => 1,
+    ip => $device_ip,
+    port => 12,
+    pass_thru_party_id => 0,
+    );
+$socket->receive_message(); # StartMediaTransmission
+
+$socket->sleep(20);
+
+#EndCall
+$socket->send_message(
+    SOFT_KEY_EVENT_MESSAGE, 
+    event => 0x09, #NewCall
+    line_instance => 1,
+    call_id => 0
+    );
+
+while(1) {
+    $socket->receive_message();
+}
+