Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A dart-lang version of the SIP UA stack.

License

flutter-webrtc/dart-sip-ua

Repository files navigation

dart-sip-ua

Financial Contributors on Open Collective pub package slack

A dart-lang version of the SIP UA stack, ported from JsSIP.

Overview

  • Use pure dart-lang
  • SIP over WebSocket && TCP (use real SIP in your flutter mobile, desktop, web apps)
  • Audio/video calls (flutter-webrtc) and instant messaging
  • Support with standard SIP servers such as OpenSIPS, Kamailio, Asterisk, 3CX and FreeSWITCH.
  • Support RFC2833 or INFO to send DTMF.

Currently supported platforms

  • iOS
  • Android
  • Web
  • macOS
  • Windows
  • Linux
  • Fuchsia

Install

Android

  • Proguard rules:
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class com.cloudwebrtc.webrtc.** {*;}
-keep class org.webrtc.** {*;}

Quickstart

Run example:

Register with SIP server:

  • Asterisk
  • FreeSWITCH
  • OpenSIPS
  • 3CX
  • Kamailio
  • or add your server example.

FAQ's OR ISSUES

expand

Server not configured for DTLS/SRTP

WEBRTC_SET_REMOTE_DESCRIPTION_ERROR: Failed to set remote offer sdp: Called with SDP without DTLS fingerprint.

Your server is not sending a DTLS fingerprint inside the SDP when inviting the sip_ua client to start a call.

WebRTC uses encryption by Default, all WebRTC communications (audio, video, and data) are encrypted using DTLS and SRTP, ensuring secure communication. Your PBX must be configured to use DTLS/SRTP when calling sip_ua.

Why isn't there a UDP connection option?

This package uses a WS or TCP connection for the signalling processs to initiate or terminate a session (sip messages). Once the session is connected WebRTC transmits the actual media (audio/video) over UDP.

If anyone actually still wants to use UDP for the signalling process, feel free to submit a PR with the large amount of work needed to set it up, packet order checking, error checking, reliability timeouts, flow control, security etc etc.

SIP/2.0 488 Not acceptable here

The codecs on your PBX server don't match the codecs used by WebRTC

  • opus (payload type 111, 48kHz, 2 channels)
  • red (payload type 63, 48kHz, 2 channels)
  • G722 (payload type 9, 8kHz, 1 channel)
  • ILBC (payload type 102, 8kHz, 1 channel)
  • PCMU (payload type 0, 8kHz, 1 channel)
  • PCMA (payload type 8, 8kHz, 1 channel)
  • CN (payload type 13, 8kHz, 1 channel)
  • telephone-event (payload type 110, 48kHz, 1 channel for wideband, 8000Hz, 1 channel for narrowband)

NOTE

Thanks to the original authors of JsSIP for providing the JS version, which makes it possible to port the dart-lang.

Sponsors

The first version was sponsored by Suretec Systems Ltd. T/A SureVoIP.

Contributing

The project is inseparable from the contributors of the community.

License

dart-sip-ua is released under the MIT license.

About

A dart-lang version of the SIP UA stack.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /