Skip to content

v3.1.0 - Call Implemented!

Choose a tag to compare

@EdamAme-x EdamAme-x released this 28 May 05:28
· 85 commits to main since this release

?? Call Implemented!

This is the complete stable LINE Calls release. v3.1.0 is the stable public release line for the full PLANET/Cassini call stack.

Diff From The Current v2 Stable

Compared with v2.18.0:

  • 25 commits
  • 37 files changed
  • 9,383 insertions / 173 deletions
  • Full diff: v2.18.0...v3.1.0

Highlights

  • Added the public call export: @evex/linejs/call.
  • Implemented the reverse-engineered PLANET/Cassini call transport.
  • Added 1:1 outgoing audio call support through PlanetTransport.
  • Added call route acquisition wrappers and call client convenience APIs.
  • Added PLANET setup, setup response, answer, info request/response, keepalive, release, and media state handling.
  • Added SRTP media encryption/decryption, RTP/RTCP helpers, Opus encoding/decoding, WAV decoding, resampling, and audio streaming utilities.
  • Added group-call route/join support and native-shaped group PLANET participate payloads.
  • Added example/call/call_on_command.ts: a reusable !call example that calls the sender and streams unity.wav.
  • Added a bundled sample WAV with credits in example/call/CREDITS.md.
  • Added compact message support: compact plain messages, compact E2EE messages, response decoding, and fallback handling.
  • Updated device/application defaults to avoid stale x-line-application login failures.
  • Fixed login helpers so version and endpoint are passed through to BaseClient.
  • Expanded the call documentation with a full outgoing-call writeup, protocol flow, troubleshooting, and Discord support note.

Notable Files

  • packages/linejs/client/features/call/planet/transport.ts
  • packages/linejs/client/features/call/planet/schema.ts
  • packages/linejs/client/features/call/planet/crypto.ts
  • packages/linejs/client/features/call/planet/cassini.ts
  • packages/linejs/client/features/call/opus.ts
  • packages/linejs/client/features/call/audio.ts
  • packages/linejs/base/service/talk/compact.ts
  • example/call/call_on_command.ts
  • docs/docs/call.md

Verification

  • deno test -A: 189 passed, 0 failed
  • deno publish --dry-run --allow-dirty for packages/linejs: success
  • deno publish --dry-run --allow-dirty for packages/types: success in rc4 validation
  • Live device/profile smoke testing confirmed the updated login app profiles and QR-safe example defaults

Contributors

Huge congratulations and thanks to every contributor who got linejs to this milestone:

@EdamAme-x, @piloking, @nakasyou, @MocA-Love, @Madoa5561, @usuraiyukito, @techfish-11, @hafusun, @komkeao, @0xr27, @akku1139, @vonernue, @xxtomm, @nezumi0627, and @taisan11.

Special thanks to q0jt for the compact message protocol details.

Upgrade Notes

Use the stable package version:

import { PlanetTransport, decodeWavSync, opusCodecFactory } from "jsr:@evex/linejs@3.1.0/call";

The repository example can be run with:

deno run -A example/call/call_on_command.ts

If anything goes wrong, please reach out on Discord.