fix IO::Async abuse - thanks leo
parent
9f4abd59f5
commit
68cdcbdcab
|
@ -62,6 +62,8 @@ my $bot_verto = Net::Async::WebSocket::Client->new(
|
||||||
);
|
);
|
||||||
$loop->add( $bot_verto );
|
$loop->add( $bot_verto );
|
||||||
|
|
||||||
|
my $sessid = lc new Data::UUID->create_str();
|
||||||
|
|
||||||
my $bot_matrix = Net::Async::Matrix->new(
|
my $bot_matrix = Net::Async::Matrix->new(
|
||||||
%MATRIX_CONFIG,
|
%MATRIX_CONFIG,
|
||||||
on_log => sub { warn "log: @_\n" },
|
on_log => sub { warn "log: @_\n" },
|
||||||
|
@ -79,20 +81,18 @@ my $bot_matrix = Net::Async::Matrix->new(
|
||||||
$bot_matrix_rooms{$room->room_id} = $room;
|
$bot_matrix_rooms{$room->room_id} = $room;
|
||||||
|
|
||||||
# log in to verto on behalf of this room
|
# log in to verto on behalf of this room
|
||||||
my $sessid = lc new Data::UUID->create_str();
|
|
||||||
$bridgestate->{$room->room_id}->{sessid} = $sessid;
|
$bridgestate->{$room->room_id}->{sessid} = $sessid;
|
||||||
|
|
||||||
$room->configure(
|
$room->configure(
|
||||||
on_message => \&on_room_message,
|
on_message => \&on_room_message,
|
||||||
);
|
);
|
||||||
|
|
||||||
Future->wait_all(
|
my $f = send_verto_json_request("login", {
|
||||||
send_verto_json_request("login", {
|
|
||||||
'login' => $CONFIG{'verto-dialog-params'}{'login'},
|
'login' => $CONFIG{'verto-dialog-params'}{'login'},
|
||||||
'passwd' => $CONFIG{'verto-config'}{'passwd'},
|
'passwd' => $CONFIG{'verto-config'}{'passwd'},
|
||||||
'sessid' => $sessid,
|
'sessid' => $sessid,
|
||||||
}),
|
});
|
||||||
)->get;
|
$matrix->adopt_future($f);
|
||||||
|
|
||||||
# we deliberately don't paginate the room, as we only care about
|
# we deliberately don't paginate the room, as we only care about
|
||||||
# new calls
|
# new calls
|
||||||
|
@ -133,11 +133,12 @@ sub on_unknown_event
|
||||||
# XXX: collate using the right m= line - for now assume audio call
|
# XXX: collate using the right m= line - for now assume audio call
|
||||||
$offer =~ s/(a=rtcp.*[\r\n]+)/$1$candidate_block/;
|
$offer =~ s/(a=rtcp.*[\r\n]+)/$1$candidate_block/;
|
||||||
|
|
||||||
send_verto_json_request("verto.invite", {
|
my $f = send_verto_json_request("verto.invite", {
|
||||||
"sdp" => $offer,
|
"sdp" => $offer,
|
||||||
"dialogParams" => \%dp,
|
"dialogParams" => \%dp,
|
||||||
"sessid" => $bridgestate->{$room_id}->{sessid},
|
"sessid" => $bridgestate->{$room_id}->{sessid},
|
||||||
})->get;
|
});
|
||||||
|
$matrix->adopt_future($f);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# ignore them, as no trickle ICE, although we might as well
|
# ignore them, as no trickle ICE, although we might as well
|
||||||
|
@ -149,10 +150,11 @@ sub on_unknown_event
|
||||||
}
|
}
|
||||||
elsif ($event->{type} eq 'm.call.hangup') {
|
elsif ($event->{type} eq 'm.call.hangup') {
|
||||||
if ($bridgestate->{$room_id}->{matrix_callid} eq $event->{content}->{call_id}) {
|
if ($bridgestate->{$room_id}->{matrix_callid} eq $event->{content}->{call_id}) {
|
||||||
send_verto_json_request("verto.bye", {
|
my $f = send_verto_json_request("verto.bye", {
|
||||||
"dialogParams" => \%dp,
|
"dialogParams" => \%dp,
|
||||||
"sessid" => $bridgestate->{$room_id}->{sessid},
|
"sessid" => $bridgestate->{$room_id}->{sessid},
|
||||||
})->get;
|
});
|
||||||
|
$matrix->adopt_future($f);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
warn "Ignoring unrecognised callid: ".$event->{content}->{call_id};
|
warn "Ignoring unrecognised callid: ".$event->{content}->{call_id};
|
||||||
|
|
Loading…
Reference in New Issue