Display Caller ID info for incoming calls.
authorAndrew Ruthven <puck@catalyst.net.nz>
Wed, 24 Sep 2008 03:57:39 +0000 (15:57 +1200)
committerAndrew Ruthven <puck@dirk.wgtn.cat-it.co.nz>
Wed, 24 Sep 2008 03:57:39 +0000 (15:57 +1200)
lib/Display/Plugins/Asterisk.pm

index 8d077c4..04e920c 100644 (file)
@@ -37,6 +37,9 @@ sub new {
       asterisk_hangup => {
         'Event' => 'Hangup'
       },
+      asterisk_dial => {
+        'Event' => 'Dial'
+      },
       asterisk_input => ':all',
     },
 
@@ -52,6 +55,7 @@ sub new {
         $kernel->state('asterisk_ring',    $self, 'ring');
         $kernel->state('asterisk_ringing', $self, 'ringing');
         $kernel->state('asterisk_hangup',  $self, 'hangup');
+        $kernel->state('asterisk_dial',    $self, 'dial');
       },
     },
   );
@@ -83,11 +87,26 @@ sub input {
   my ($self, $kernel, $input) = @_[OBJECT, KERNEL, ARG0];
 
   print STDERR "Other input - $input->{Event}\n";
-  #print Dumper($input);
+  print Dumper($input);
 }
 
 sub hangup {
   my ($self, $kernel, $input) = @_[OBJECT, KERNEL, ARG0];
 }
 
+sub dial {
+  my ($self, $kernel, $input) = @_[OBJECT, KERNEL, ARG0];
+
+  my $dest = $input->{Destination};
+  $dest =~ s/(.*)-.*/$1/;
+
+  my $text = Clutter::Label->new('Sans 20', "Call from " . $input->{CallerIDName} . "\n    " . $input->{CallerID} . "\nFor $dest");
+  $text->set_color(Clutter::Color->parse('White'));
+  $text->set_ellipsize('end');
+
+  $kernel->post('display', 'notifications_add', $text);
+}
+
+
+
 1;