$self->Invoke('SET USERSTATUS NA');
}
- if ( $string =~ m{CALL (\d+) STATUS INPROGRESS} ) {
+ if ( $string =~ m{CALL (\d+) STATUS RINGING} ) {
+ $self->Invoke("ALTER CALL $1 ANSWER");
+ } elsif ( $string =~ m{CALL (\d+) STATUS INPROGRESS} ) {
my $call_id = $1;
- my $port = 5000;
+ my $port = 5000 + $call_id;
+
+ my $gst = qq{
+ gst-launch -v
+ tcpserversrc port=$port !
+ "audio/x-raw-int,rate=16000,width=16,channels=1" !
+ wavenc !
+ filesink location=/tmp/$port.wav
+ };
+ $gst =~ s{[\s\n\r]+}{ }gs;
+
+ warn "# $gst\n";
+ open(my $g, '-|', $gst) || die $!;
+ while(<$g>) {
+ warn "## $_";
+ last if m/PREROLL/;
+ }
+
$self->Invoke(qq|ALTER CALL $call_id set_output port="$port"|);
+ } elsif ( $string =~ m{CALL (\d+) STATUS FINISHED} ) {
+ my $port = $1 + 5000;
+ my $path = "/tmp/$port.wav";
+ warn "# $path ", -s $path, " bytes\n";
+# } elsif ( $string =~ m{} ) {
}
return 0;