dart-sip-ua

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

Overview

  • Use pure dart-lang
  • SIP over WebSocket (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 and FreeSWITCH.

Currently supported platforms

  • X iOS
  • X Android
  • X Web
  • X macOS
  • Linux
  • Windows
  • 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 for Web platform

flutter doctor
  • Run:
flutter channel beta
flutter upgrade
flutter config --enable-web
git clone https://github.com/cloudwebrtc/dart-sip-ua.git
cd dart-sip-ua/example
flutter create .
flutter pub get
flutter run -d chrome

Application should have loaded in Chrome.

Register with SIP server:

In the application, enter connexion settings by clicking the top-right hamburger menu, then click Accounts

  • Click Register
    • If registration is ok, it should say Status: Registered at the top
    • If it fails to register, open Chrome Dev tools and looks for errors in the Javascript Console.

Calling:

  • Once registered, click the top-left Back Arrow to return to keypad.
  • Enter a phone number
  • Click the green phone icone

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.

Libraries

sip_ua