NIP-ACは、Nostr上でpeer-to-peerの音声通話とビデオ通話を行うためのプロトコルを提案します。この仕様は、通話シグナリング(offer、answer、ICE candidates)にNostr eventsを使い、実際のmedia transportにはWebRTCを使います。これにより、通話のセットアップは分散型のまま維持しつつ、音声と映像には標準的なブラウザAPIを使えます。

仕組み

発信側は、calleeのpubkeyをタグ付けしたWebRTC Session Description Protocol(SDP)offerを含むcall offer eventを公開します。受信側はSDP answer eventで応答します。両者はICE candidate eventsを交換して通信経路を交渉します。WebRTC接続が確立すると、mediaはrelayを介さずpeer間で直接流れます。

シグナリングイベントは暗号化されるため、relayは誰が誰へ通話しているかを観測できません。call state machineはoffer、answer、reject、busy、hangupの遷移を扱います。

Implementations

  • Amethystは、call state machine test suiteとstale call offer処理を含むNIP-AC対応を進めています。

Primary sources:

Mentioned in:

See also: