diff --git a/libs/esl/perl/dispatch.pl b/libs/esl/perl/dispatch.pl index fd61913d83..ce7a82ef30 100644 --- a/libs/esl/perl/dispatch.pl +++ b/libs/esl/perl/dispatch.pl @@ -2,7 +2,11 @@ use ESL::Dispatch; use Data::Dumper; + my $daemon = init ESL::Dispatch({}); +my $calls; +# Debug Yo! +#ESL::eslSetLogLevel(7); $| = 1; @@ -11,23 +15,34 @@ sub worker { print "I'm a worker\n"; } -sub heartbeat { +sub register { my $self = shift; my $event = shift; - print Dumper $event; + my $esl = $self->{_esl}; + my $contact = $event->{contact}; + my $profile = $event->{'profile-name'}; + my $callid = $event->{'call-id'}; + + return if $call->{$callid}; + + $contact =~ s/.*\<(.*)\>.*/{my_call_id=$callid}sofia\/$profile\/$1/; + $esl->api('bgapi', "originate $contact &echo"); + print "Adding $callid to calls hash\n"; + $call->{$callid} = 1; } sub channel_hangup { my $self = shift; my $event = shift; - print Dumper $event; - print "DO SQL GOODIES HERE!\n"; + my $callid = $event->{variable_my_call_id}; + print "Removing $callid from calls hash\n"; + delete $call->{$callid}; } $0 = "ESL::Dispatch rocks!"; $daemon->set_worker(\&worker, 2000); -$daemon->set_callback("heartbeat", \&heartbeat); +$daemon->set_callback("custom", \®ister, 'sofia::register'); $daemon->set_callback("channel_hangup", \&channel_hangup); $daemon->run;