blob: 10de56f9d8a76ad5e80ad06e0aa6bfe6b837cf56 [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 */
18import { AccountTextMessage, WebSocketMessage, WebSocketMessageType } from 'jami-web-common';
19import 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
28function sendWebRTCData(message: Partial<WebSocketMessage>) {
29 const data: AccountTextMessage = message.data;
30 if (!data.from || !data.to || !data.message) {
31 log.warn('Incorrect format for AccountTextMessage (require from, to and message):', data);
32 return;
33 }
34 jamid.sendAccountTextMessage(data.from, data.to, JSON.stringify(message));
35}
36
37export function bindWebRTCCallbacks() {
38 ws.bind(WebSocketMessageType.WebRTCOffer, sendWebRTCData);
39 ws.bind(WebSocketMessageType.WebRTCAnswer, sendWebRTCData);
40}