blob: 409a030a48b7b380d9b0540b310b7a0f5e5e05c7 [file] [log] [blame]
Charlie2bc0d672022-11-04 11:53:44 -04001/*
2 * Copyright (C) 2022 Savoir-faire Linux Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as
6 * published by the Free Software Foundation; either version 3 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Affero General Public License for more details.
13 *
14 * You should have received a copy of the GNU Affero General Public
15 * License along with this program. If not, see
16 * <https://www.gnu.org/licenses/>.
17 */
Issam E. Maghni0432cb72022-11-12 06:09:26 +000018import { AccountTextMessage, WebSocketMessageType } from 'jami-web-common';
Charlie2bc0d672022-11-04 11:53:44 -040019import log from 'loglevel';
20import { Container } from 'typedi';
21
22import { Jamid } from '../jamid/jamid.js';
23import { Ws } from '../ws.js';
24
25const jamid = Container.get(Jamid);
26const ws = Container.get(Ws);
27
Issam E. Maghni0432cb72022-11-12 06:09:26 +000028function sendWebRTCData<T>(data: Partial<AccountTextMessage<T>>) {
Charlie2bc0d672022-11-04 11:53:44 -040029 if (!data.from || !data.to || !data.message) {
30 log.warn('Incorrect format for AccountTextMessage (require from, to and message):', data);
31 return;
32 }
Issam E. Maghni0432cb72022-11-12 06:09:26 +000033 jamid.sendAccountTextMessage(data.from, data.to, JSON.stringify(data.message));
Charlie2bc0d672022-11-04 11:53:44 -040034}
35
36export function bindWebRTCCallbacks() {
37 ws.bind(WebSocketMessageType.WebRTCOffer, sendWebRTCData);
38 ws.bind(WebSocketMessageType.WebRTCAnswer, sendWebRTCData);
Charlie461805e2022-11-09 10:40:15 -050039 ws.bind(WebSocketMessageType.IceCandidate, sendWebRTCData);
Charlie2bc0d672022-11-04 11:53:44 -040040}