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");
}