Revision
16952
Author
brian
Date
2010-03-08 22:12:48 -0600 (Mon, 08 Mar 2010)

Log Message

 allow custom subs to subclass/custom events 

Modified Paths

Diff

Modified: freeswitch/trunk/libs/esl/perl/ESL/Dispatch.pm (16951 => 16952)


--- freeswitch/trunk/libs/esl/perl/ESL/Dispatch.pm	2010-03-09 04:02:01 UTC (rev 16951)
+++ freeswitch/trunk/libs/esl/perl/ESL/Dispatch.pm	2010-03-09 04:12:48 UTC (rev 16952)
@@ -24,7 +24,7 @@
   $self->{pass} = $args->{pass} ||= "ClueCon";
   $self->{_esl} = new ESL::ESLconnection("$self->{host}", "$self->{port}", "$self->{pass}");
   $self->{_callback} = undef;
-
+  $self->{_custom_subclass} = undef;
   return bless($self, $class);
 }
 
@@ -38,6 +38,10 @@
   my $self = shift;
   my $event = shift;
   $self->{_callback}->{$event} = shift;
+  my $subclass = shift;
+  if($subclass) {
+    $self->{_custom_subclass} = split(/,/, $subclass);
+  }
 }
 
 sub render_event($;$) {
@@ -75,6 +79,12 @@
   for(;;) {
     # Only register for events we have callbacks for.
     for my $key ( keys %{$self->{_callback}} ) {
+      if ($key eq "CUSTOM") {
+	foreach $subclass (@{$self->{_custom_subclass}}) {
+	  $self->{_esl}->events("plain", "$key $subclass");
+	}
+	next;
+      }
       $self->{_esl}->events("plain", "$key");
     }