tis-wave-phone icon

Wave

Paquet d'installation silencieuse pour Wave

1.35.8-1
Messaging
Messaging

  • package: tis-wave-phone
  • name: Wave
  • version: 1.35.8-1
  • categories: Messaging
  • maintainer: WAPT Team,Tranquil IT
  • editor: Grandstream Networks, Inc.
  • licence: Proprietary
  • locale: all
  • target_os: darwin
  • impacted_process: Wave
  • architecture: x64
  • signature_date:
  • size: 147.34 Mo
  • homepage : https://www.grandstream.com/products/ucm-series-ip-pbxs/wave-app

package           : tis-wave-phone
version           : 1.35.8-1
architecture      : x64
section           : base
priority          : optional
name              : Wave
categories        : Messaging
maintainer        : WAPT Team,Tranquil IT
description       : Grandstream Wave is a softphone and unified communications client for Grandstream UCM IP PBX systems, offering calls, video meetings and chat.
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : darwin
min_wapt_version  : 2.3
sources           : https://fw.gdms.cloud/wave/download
installed_size    : 
impacted_process  : Wave
description_fr    : Grandstream Wave est un softphone et client de communications unifiées pour les IPBX Grandstream UCM, offrant appels, visioconférences et messagerie.
description_pl    : Grandstream Wave to softphone i klient komunikacji zunifikowanej dla central IP Grandstream UCM, oferujący połączenia, wideokonferencje i czat.
description_de    : Grandstream Wave ist ein Softphone und Unified-Communications-Client für Grandstream UCM IP-Telefonanlagen, der Anrufe, Videokonferenzen und Chat bietet.
description_es    : Grandstream Wave es un softphone y cliente de comunicaciones unificadas para las centralitas IP Grandstream UCM, que ofrece llamadas, videoconferencias y chat.
description_pt    : Grandstream Wave é um softphone e cliente de comunicações unificadas para as centrais IP Grandstream UCM, que oferece chamadas, videoconferências e chat.
description_it    : Grandstream Wave è un softphone e client di comunicazioni unificate per i centralini IP Grandstream UCM, che offre chiamate, videoconferenze e chat.
description_nl    : Grandstream Wave is een softphone en unified communications-client voor Grandstream UCM IP-telefooncentrales, met gesprekken, videovergaderingen en chat.
description_ru    : Grandstream Wave представляет собой софтфон и клиент унифицированных коммуникаций для IP-АТС Grandstream UCM, обеспечивающий звонки, видеоконференции и чат.
audit_schedule    : 
editor            : Grandstream Networks, Inc.
keywords          : grandstream,wave,softphone,sip,voip,ucm,telephony,video,conference
licence           : Proprietary
homepage          : https://www.grandstream.com/products/ucm-series-ip-pbxs/wave-app
package_uuid      : 176283fa-997d-4463-851d-ddb295bf9a95
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.grandstream.com/support/firmware/wave-releases
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 5b1da41600bbc7d42d2d15e47c94bfdcc774de452349a093845622daec5aef29
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2026-10-24T08:00:23.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : blvWJ+3siSt8t2zhk57/SFW9x1g6mQxA7/8BkmnV44jTg+gWgkM4q33XQWiIVHA+OCCZ5B2XQ2L/FHNpYqwATfHhrJrsMD1NNYLNgswH5/jqDN7IzahML6Vn/M72kS6ceASAlyS6L1ZsFcUfz5WRQ3tOrcp61Ti4O1BYBFgqBbshiA1V44jlgi1Z3crSKexvNPzm+D8h4xiWigsBarKAFn8BldcUr8rRCto/eZgMhiFww5N6MRO6oL+6CqMQ+xV33ZZ9q+ugJqrhxX7jmwZKqWVxX8JpwKxKiE8grGgwwxoa0sq7UUZAEoco31hQG8ho21weJtxX1ZQXt3bYDIhryg==

# -*- coding: utf-8 -*-
from setuphelpers import *

# https://docai.grandstream.com/knowledge-base/how-to-deploy-wave-desktop-clients-in-batches-user-guide/
init_cfg = """\
ServerAddress=https://monentreprise.fr
language=fr-FR
timeFormat=24
dateFormat=MM/DD/YYYY
isLaunchOnSystemStartup=0
enableUpgrade=0
"""


def install():
    bin_name = glob.glob("Wave-*-mac-*.dmg")[0]
    install_dmg(
        bin_name,
        min_version=control.get_software_version(),
        killbefore=ensure_list(control.impacted_process),
    )


def uninstall():
    uninstall_app("Wave.app")


def session_setup():
    init_cfg_path = makepath(user_home_directory(), "Library", "Application Support", "Wave", "init.cfg")
    ensure_dir(init_cfg_path)

    print(f"Writing: {init_cfg_path}")
    with open(init_cfg_path, "w", encoding="utf-8") as f:
        f.write(init_cfg)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def get_manifest_version(manifest_url, proxies):
    manifest = wgets(manifest_url, proxies=proxies)
    if isinstance(manifest, bytes):
        manifest = manifest.decode("utf-8")
    for line in manifest.splitlines():
        if line.startswith("version:"):
            return line.split(":", 1)[1].strip()


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name

    base_url = "https://fw.gdms.cloud/wave/desktop/download/ucm"
    update_dict = {
        "windows-x64": ("win64", "latest.yml", "-win-x64.msi"),
        "darwin-x64": ("mac", "latest-mac.yml", "-mac-x64.dmg"),
        "darwin-arm": ("macarm64", "latest-mac.yml", "-mac-arm64.dmg"),
    }
    os_type = control.target_os + "-" + ensure_list(control.architecture)[0]
    feed_dir, manifest_name, bin_suffix = update_dict[os_type]

    # Branches are not contiguous (only odd minors exist), probe a window above the current one
    current_minor = int(control.get_software_version().split(".")[1])
    for minor in range(current_minor, current_minor + 10):
        url = f"{base_url}/1.0.{minor}.x/{feed_dir}"
        if requests.head(f"{url}/{manifest_name}", proxies=proxies).ok:
            print(f"Found branch: 1.0.{minor}.x")
            branch_url = url

    version = get_manifest_version(f"{branch_url}/{manifest_name}", proxies)
    latest_bin = f"Wave-{version}{bin_suffix}"
    download_url = f"{branch_url}/{latest_bin}"

    # Downloading latest binaries
    print(f"Latest {app_name} version is: {version}")
    print(f"Download URL is: {download_url}")
    if not isfile(latest_bin):
        print(f"Downloading: {latest_bin}")
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print(f"Binary is present: {latest_bin}")

    # Deleting outdated binaries
    for f in glob.glob(f"*.{latest_bin.rsplit('.', 1)[-1]}"):
        if f != latest_bin:
            remove_file(f)

    # Changing version of the package
    if Version(version) > Version(control.get_software_version()):
        print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
        package_updated = True
    else:
        print(f"Software version up-to-date ({Version(version)})")
    control.set_software_version(version)
    control.save_control_to_wapt()

    return package_updated

38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
847e8c11dea6dbfd6bb0fc73a59d2e099f593b7a1c2e166418b8be6e8dec4e78 : WAPT/control
5b1da41600bbc7d42d2d15e47c94bfdcc774de452349a093845622daec5aef29 : WAPT/icon.png
c541015886e8ed04ad3ca3ee0935dc4171bd8af4eaff06a819017dcb4b855363 : Wave-1.35.8-mac-x64.dmg
4908cb60b54c4471b429e58c1f37da3c585942c7808b52e5c6f5b5db68e29048 : luti.json
c85a971a5119e8920199e57e4caf073b758d4396fb89f5526a9e22ea5c9a7c7c : setup.py
e270f58de1b741df21148ff6ddf8b46f05e412fbee0cbb2000c9abb899e5373b : update_package.py