diff libervia/cli/cmd_call.py @ 4233:d01b8d002619

cli (call, file), frontends: implement webRTC data channel transfer: - file send/receive commands now supports webRTC transfer. In `send` command, the `--webrtc` flags is currenty used to activate it. - WebRTC related code have been factorized and moved to `libervia.frontends.tools.webrtc*` modules. rel 442
author Goffi <goffi@goffi.org>
date Sat, 06 Apr 2024 13:43:09 +0200
parents 9218d4331bb2
children 79c8a70e1813
line wrap: on
line diff
--- a/libervia/cli/cmd_call.py	Sat Apr 06 12:59:50 2024 +0200
+++ b/libervia/cli/cmd_call.py	Sat Apr 06 13:43:09 2024 +0200
@@ -21,15 +21,16 @@
 from functools import partial
 import importlib
 import logging
+from typing import Any
 
 
 from libervia.backend.core.i18n import _
 from libervia.backend.tools.common import data_format
 from libervia.cli.constants import Const as C
 from libervia.frontends.tools import jid
+from libervia.frontends.tools.webrtc_models import CallData
 
 from . import base
-from .call_webrtc import CallData, WebRTCCall
 
 __commands__ = ["Call"]
 
@@ -58,6 +59,19 @@
         self.parser.add_argument(
             "--no-ui", action="store_true", help=_("disable user interface")
         )
+        sources_group = self.parser.add_mutually_exclusive_group()
+        sources_group.add_argument(
+            "-s", "--sources", choices=['auto', 'test'], default='auto',
+            help='Well-known sources to use (default: "auto").'
+        )
+
+    def get_call_data_kw(self) -> dict[str, Any]:
+        """Get relevant keyword arguments for CallData"""
+        kwargs: dict[str, Any] = {}
+        if self.args.sources == "test":
+            kwargs["sources"] = "test"
+        return kwargs
+
 
     async def start(self):
         root_logger = logging.getLogger()
@@ -120,6 +134,7 @@
         await super().start()
         await super().output(CallData(
             callee=jid.JID(self.args.entity),
+            kwargs=self.get_call_data_kw()
         ))
 
 
@@ -178,7 +193,8 @@
         await super().output(CallData(
             callee=peer_jid,
             sid=action_data["session_id"],
-            action_id=action_id
+            action_id=action_id,
+            kwargs=self.get_call_data_kw()
         ))
 
     async def start(self):