Giter VIP home page Giter VIP logo

dart-sip-ua's Introduction

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 (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.
  • 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
  • Kamailio
  • or add your server example.

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.

dart-sip-ua's People

Contributors

amadeu01 avatar antonyleons avatar avanlent avatar avnotaklu avatar bennyboer avatar bsutton avatar cloudwebrtc avatar doommaster avatar feleconvo avatar ghenry avatar gleydar avatar hdiniz avatar hiratake55 avatar ivob1987 avatar jbg avatar joates-mobilus avatar komaxx avatar makstheimba avatar mesutd0nmez avatar nukeolay avatar paulbout1 avatar perondas avatar renovate-bot avatar renovate[bot] avatar rlsutton1 avatar shamis avatar victoruvarov avatar vladimirbrejcha avatar xremalx avatar zi6xuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dart-sip-ua's Issues

Call fails with Asterisk 16 -> Reason: SIP ;cause=488; text="Not Acceptable Here"

Call fails with Asterisk 16 -> Reason: SIP ;cause=488; text="Not Acceptable Here"

Asterisk and Flutter logs attached with full SIP trace.

This change in RTCSession.dart fixes this, but is just a hack and a proper fix is required.

//TODO: Commented out because this seems to cause errors with Asterisk

//await this._connection.setRemoteDescription(answer);

this line in the logs is important:

I/flutter (15658): 09:12:30.029 (+0:00:29.733517) [DartSIP:RTCSession] ERROR: emit "peerconnection:setremotedescriptionfailed" [error:Unable to RTCPeerConnection::setRemoteDescription: Failed to set remote answer sdp: Called in wrong state: kStable]

Asterisk16-5PjSip.log

DartSipUaDemo.log

SIP audio call not working

Hello @ghenry ,

When i try with one to one SIP call. i am not getting call another side. for example A call to B, B is not receiving any event. But when User A terminate call or timeout, suddenly B will get incoming call and instant it will hang up call automatically.

So can you give me any reason why this happening. Any changes required in code or server side ?

I am giving call logs which i have tried call.

I/flutter (32165): 1063
I/flutter (32165): [2020-02-19 10:51:20.986] Level.debug ua.dart:241 ::: call()
I/flutter (32165): [2020-02-19 10:51:20.991] Level.debug rtc_session.dart:114 ::: new
I/flutter (32165): [2020-02-19 10:51:21.0] Level.debug rtc_session.dart:264 ::: connect()
D/RTCAudioManager(32165): ctor
D/RTCBluetoothManager(32165): create@[name=main, id=2]
D/RTCBluetoothManager(32165): ctor
D/RTCAudioManager(32165): useSpeakerphone: auto
D/RTCProximitySensor(32165): RTCProximitySensor@[name=main, id=2]
D/RTCAudioManager(32165): defaultAudioDevice: SPEAKER_PHONE
D/RTCAudioManager(32165): Android SDK: 29, Release: 10, Brand: POCO, Device: phoenixin, Id: QKQ1.190825.002, Hardware: qcom, Manufacturer: Xiaomi, Model: POCO X2, Product: phoenixin
D/FlutterWebRTCPlugin(32165): Starting the audio manager...
D/RTCAudioManager(32165): start
D/RTCAudioManager(32165): AudioManager starts...
I/AudioManager(32165): In isSpeakerphoneOn(), calling application: com.github.cloudwebrtc.sip_ua_example
W/AudioManager(32165): Use of stream types is deprecated for operations other than volume control
W/AudioManager(32165): See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
D/RTCAudioManager(32165): Audio focus request granted for VOICE_CALL streams
D/RTCBluetoothManager(32165): start
W/RTCBluetoothManager(32165): Process (pid=32165) lacks BLUETOOTH permission
D/RTCAudioManager(32165): --- updateAudioDeviceState: wired headset=false, BT state=UNINITIALIZED
D/RTCAudioManager(32165): Device status: available=[], selected=NONE, user selected=NONE
D/RTCAudioManager(32165): setAudioDeviceInternal(device=SPEAKER_PHONE)
I/AudioManager(32165): In isSpeakerphoneOn(), calling application: com.github.cloudwebrtc.sip_ua_example
I/AudioManager(32165): In setSpeakerphoneOn(), on: true, calling application: com.github.cloudwebrtc.sip_ua_example
D/AudioManager(32165): checkSpeakerOnPermission() mWechatVOIPStatus:is_wechat_operation=off
D/RTCAudioManager(32165): New device status: available=[EARPIECE, SPEAKER_PHONE], selected=SPEAKER_PHONE
D/FlutterWebRTCPlugin(32165): onAudioManagerDevicesChanged: [EARPIECE, SPEAKER_PHONE], selected: SPEAKER_PHONE
D/RTCAudioManager(32165): --- updateAudioDeviceState done
D/RTCAudioManager(32165): AudioManager started
I/flutter (32165): [2020-02-19 10:51:21.235] Level.debug rtc_session.dart:1570 ::: emit "peerconnection"
I/flutter (32165): [2020-02-19 10:51:21.239] Level.debug rtc_session.dart:2814 ::: newRTCSession()
I/flutter (32165): [2020-02-19 10:51:21.243] Level.debug sip_ua_helper.dart:187 ::: newRTCSession => Instance of 'EventNewRTCSession'
I/flutter (32165): Call State Changed =============>>>>>>>>> : CallStateEnum.CALL_INITIATION
I/FlutterWebRTCPlugin(32165): getUserMedia(audio): mandatory: [], optional: [googNoiseSuppression: true, googEchoCancellation: true, echoCancellation: true, googEchoCancellation2: true, googDAEchoCancellation: true]
D/FlutterWebRTCPlugin(32165): MediaStream id: 4c80d2a4-f98a-4885-a34a-2bcededb90ad
I/flutter (32165): OUTGOING
I/org.webrtc.Logging(32165): EglRenderer: Initializing EglRenderer
I/org.webrtc.Logging(32165): EglRenderer: EglBase.create shared context
I/org.webrtc.Logging(32165): EglBase14Impl: Using OpenGL ES version 2
D/FlutterWebRTCPlugin(32165): addStreamcom.cloudwebrtc.webrtc.utils.AnyThreadResult@3a16c70
I/flutter (32165): [2020-02-19 10:51:21.370] Level.debug rtc_session.dart:2821 ::: session connecting
I/flutter (32165): [2020-02-19 10:51:21.371] Level.debug rtc_session.dart:2822 ::: emit "connecting"
I/flutter (32165): [2020-02-19 10:51:21.381] Level.debug sip_ua_helper.dart:207 ::: call connecting
I/flutter (32165): Call State Changed =============>>>>>>>>> : CallStateEnum.CONNECTING
I/flutter (32165): Call State=================>>>>>>>>>>>>>>>>>>>>: CallStateEnum.CONNECTING
I/flutter (32165): [2020-02-19 10:51:21.385] Level.debug rtc_session.dart:1577 ::: createLocalDescription()
I/org.webrtc.Logging(32165): EglRenderer: Initializing EglRenderer
I/org.webrtc.Logging(32165): EglRenderer: EglBase.create shared context
I/org.webrtc.Logging(32165): EglBase14Impl: Using OpenGL ES version 2
D/FlutterWebRTCPlugin(32165): peerConnectionSetLocalDescription() start
I/org.webrtc.Logging(32165): WebRtcAudioRecordExternal: enableBuiltInAEC(false)
I/org.webrtc.Logging(32165): WebRtcAudioEffectsExternal: setAEC(false)
I/org.webrtc.Logging(32165): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(32165): WebRtcAudioEffectsExternal: setNS(true)
I/org.webrtc.Logging(32165): NetworkMonitor: Start monitoring with native observer 496370917056
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: Network becomes available: 124
D/FlutterWebRTCPlugin(32165): onIceGatheringChangeGATHERING
D/FlutterWebRTCPlugin(32165): peerConnectionSetLocalDescription() end
D/FlutterWebRTCPlugin(32165): onIceCandidate
D/FlutterWebRTCPlugin(32165): onIceCandidate
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps SignalStrength: -43]
D/FlutterWebRTCPlugin(32165): onIceCandidate
D/FlutterWebRTCPlugin(32165): onIceCandidate
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: link properties changed: {InterfaceName: wlan0 LinkAddresses: [ fe80::a64b:d5ff:fe54:c8f6/64,fd1b:3ac8:d8ea:6c50:a64b:d5ff:fe54:c8f6/64,fd1b:3ac8:d8ea:6c50:699e:9d2d:4ed6:9f13/64,192.168.2.135/24 ] DnsAddresses: [ /fe80::141b:40dd:197f:ecae,/192.168.2.1 ] Domains: null MTU: 0 TcpBufferSizes: 524288,1048576,5505024,262144,524288,4194304 Routes: [ fe80::/64 -> :: wlan0,::/0 -> fe80::141b:40dd:197f:ecae wlan0,fd1b:3ac8:d8ea:6c50::/64 -> :: wlan0,192.168.2.0/24 -> 0.0.0.0 wlan0,0.0.0.0/0 -> 192.168.2.1 wlan0 ]}
I/flutter (32165): Call State Changed =============>>>>>>>>> : CallStateEnum.STREAM
I/flutter (32165): Call State=================>>>>>>>>>>>>>>>>>>>>: CallStateEnum.STREAM
D/FlutterWebRTCPlugin(32165): onIceCandidate
D/FlutterWebRTCPlugin(32165): onIceCandidate
D/FlutterWebRTCPlugin(32165): onIceCandidate
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: Network becomes available: 125
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: capabilities changed: [ Transports: CELLULAR Capabilities: SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps Specifier: <1>]
D/FlutterWebRTCPlugin(32165): onIceCandidate
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: link properties changed: {InterfaceName: rmnet_data2 LinkAddresses: [ 2402:3a80:8ce:6bf2:cd1b:5103:a31e:a2e9/64 ] DnsAddresses: [ /fd00:0:1:5::12,/fd00:0:1:5::11 ] Domains: null MTU: 1500 TcpBufferSizes: 2097152,4194304,8388608,262144,524288,1048576 Routes: [ ::/0 -> fe80::b8ce:a7bb:7ca8:585f rmnet_data2,2402:3a80:8ce:6bf2::/64 -> :: rmnet_data2 ]}
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: link properties changed: {InterfaceName: rmnet_data2 LinkAddresses: [ 10.185.125.33/30,2402:3a80:8ce:6bf2:cd1b:5103:a31e:a2e9/64 ] DnsAddresses: [ /10.169.30.253,/10.169.30.254,/fd00:0:1:5::12,/fd00:0:1:5::11 ] Domains: null MTU: 1500 TcpBufferSizes: 2097152,4194304,8388608,262144,524288,1048576 Routes: [ 0.0.0.0/0 -> 10.185.125.34 rmnet_data2,::/0 -> fe80::b8ce:a7bb:7ca8:585f rmnet_data2,10.185.125.32/30 -> 0.0.0.0 rmnet_data2,2402:3a80:8ce:6bf2::/64 -> :: rmnet_data2 ]}
D/FlutterWebRTCPlugin(32165): onIceCandidate
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: capabilities changed: [ Transports: CELLULAR Capabilities: SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps Specifier: <1>]
I/flutter (32165): [2020-02-19 10:51:24.474] Level.debug rtc_session.dart:1620 ::: emit "sdp"
I/flutter (32165): [2020-02-19 10:51:24.484] Level.debug rtc_session.dart:2192 ::: emit "sending" [request]
I/flutter (32165): [2020-02-19 10:51:24.499] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 10:51:24.506] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): INVITE sip:[email protected] SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK3412256470000000
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): CSeq: 3433 INVITE
I/flutter (32165): Contact: sip:[email protected];transport=ws;ob
I/flutter (32165): Content-Type: application/sdp
I/flutter (32165): Session-Expires: 120
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: timer,ice,replaces,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 2506
I/flutter (32165):
I/flutter (32165): v=0
I/flutter (32165): o=- 6123062379484197555 2 IN IP4 127.0.0.1
I/flutter (32165): s=-
I/flutter (32165): t=0 0
I/flutter (32165): a=group:BUNDLE audio
I/flutter (32165): a=msid-semantic: WMS 4c80d2a4-f98a-4885-a34a-2bcededb90ad
I/flutter (32165): m=audio 47158 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
I/flutter (32165): c=IN IP4 43.228.229.106
I/flutter (32165): a=rtcp:9 IN IP4 0.0.0.0
I/flutter (32165): a=candidate:3057963113 1 udp 2122265343 fd1b:3ac8:d8ea:6c50:699e
I/flutter (32165): [2020-02-19 10:51:24.511] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 10:51:24.519] Level.debug websocket_dart_impl.dart:44 ::: send: INVITE sip:[email protected] SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK3412256470000000
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): CSeq: 3433 INVITE
I/flutter (32165): Contact: sip:[email protected];transport=ws;ob
I/flutter (32165): Content-Type: application/sdp
I/flutter (32165): Session-Expires: 120
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: timer,ice,replaces,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 2506
I/flutter (32165):
I/flutter (32165): v=0
I/flutter (32165): o=- 6123062379484197555 2 IN IP4 127.0.0.1
I/flutter (32165): s=-
I/flutter (32165): t=0 0
I/flutter (32165): a=group:BUNDLE audio
I/flutter (32165): a=msid-semantic: WMS 4c80d2a4-f98a-4885-a34a-2bcededb90ad
I/flutter (32165): m=audio 47158 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
I/flutter (32165): c=IN IP4 43.228.229.106
I/flutter (32165): a=rtcp:9 IN IP4 0.0.0.0
I/flutter (32165): a=candidate:3057963113 1 udp 2122265343 fd1b:3ac8:d8ea:6c50:699e:9d2d:4ed6:9f13 41502 typ host generation 0 network-id 4 n
I/flutter (32165): [2020-02-19 10:51:24.674] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 10:51:24.692] Level.debug transport.dart:314 ::: received text message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): SIP/2.0 401 Unauthorized
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;rport=40451;received=43.228.229.106;branch=z9hG4bK3412256470000000
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK3412256470000000
I/flutter (32165): CSeq: 3433 INVITE
I/flutter (32165): WWW-Authenticate: Digest realm="asterisk",nonce="1582089685/3b3d16c4cbb4cf3417b6a3e8f9079272",opaque="65225ad823d90c5c",algorithm=md5,qop="auth"
I/flutter (32165): Server: Asterisk PBX 16.7.0
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 10:51:24.747] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 10:51:24.768] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): ACK sip:[email protected] SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK3412256470000000
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK3412256470000000
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): CSeq: 3433 ACK
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 10:51:24.771] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 10:51:24.774] Level.debug websocket_dart_impl.dart:44 ::: send: ACK sip:[email protected] SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK3412256470000000
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK3412256470000000
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): CSeq: 3433 ACK
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165): [2020-02-19 10:51:24.778] Level.debug digest_authentication.dart:179 ::: authenticate() | using qop=auth [a2:INVITE:sip:[email protected]]
I/flutter (32165): [2020-02-19 10:51:24.780] Level.debug digest_authentication.dart:206 ::: authenticate() | response generated
I/flutter (32165): [2020-02-19 10:51:24.786] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 10:51:24.788] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): INVITE sip:[email protected] SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK13308191470000000
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): CSeq: 3434 INVITE
I/flutter (32165): Authorization: Digest algorithm=MD5, username="1061", realm="asterisk", nonce="1582089685/3b3d16c4cbb4cf3417b6a3e8f9079272", uri="sip:[email protected]", response="229b510b4edaf308c1cbb81249489b8c", opaque="65225ad823d90c5c", qop=auth, cnonce="81u385738656", nc=00000001
I/flutter (32165): Contact: sip:[email protected];transport=ws;ob
I/flutter (32165): Content-Type: application/sdp
I/flutter (32165): Session-Expires: 120
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: timer,ice,replaces,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 2506
I/flutter (32165):
I/flutter (32165): v=0
I/flutter (32165): o=- 6123062379484197555 2 IN IP4 127.0.0.1
I/flutter (32165): s=-
I/flutter (32165): t=0 0
I/flutter (32165): [2020-02-19 10:51:24.790] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 10:51:24.793] Level.debug websocket_dart_impl.dart:44 ::: send: INVITE sip:[email protected] SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK13308191470000000
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): CSeq: 3434 INVITE
I/flutter (32165): Authorization: Digest algorithm=MD5, username="1061", realm="asterisk", nonce="1582089685/3b3d16c4cbb4cf3417b6a3e8f9079272", uri="sip:[email protected]", response="229b510b4edaf308c1cbb81249489b8c", opaque="65225ad823d90c5c", qop=auth, cnonce="81u385738656", nc=00000001
I/flutter (32165): Contact: sip:[email protected];transport=ws;ob
I/flutter (32165): Content-Type: application/sdp
I/flutter (32165): Session-Expires: 120
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: timer,ice,replaces,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 2506
I/flutter (32165):
I/flutter (32165): v=0
I/flutter (32165): o=- 6123062379484197555 2 IN IP4 127.0.0.1
I/flutter (32165): s=-
I/flutter (32165): t=0 0
I/flutter (32165): a=group:BUNDLE audio
I/flutter (32165): a=msid-semantic: WMS 4c80d2a4-f98a
I/flutter (32165): [2020-02-19 10:51:24.796] Level.debug invite_client.dart:90 ::: Timer D expired for transaction z9hG4bK3412256470000000
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4033 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4005 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4005 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4006 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4009 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/flutter (32165): [2020-02-19 10:51:48.216] Level.debug rtc_session.dart:690 ::: terminate()
I/flutter (32165): [2020-02-19 10:51:48.221] Level.debug rtc_session.dart:712 ::: canceling session
I/flutter (32165): [2020-02-19 10:51:48.225] Level.debug rtc_session.dart:2857 ::: session failed
I/flutter (32165): [2020-02-19 10:51:48.228] Level.debug rtc_session.dart:2860 ::: emit "_failed"
I/flutter (32165): [2020-02-19 10:51:48.236] Level.debug rtc_session.dart:1447 ::: close()
I/flutter (32165): [2020-02-19 10:51:48.241] Level.debug rtc_session.dart:2871 ::: emit "failed"
I/flutter (32165): [2020-02-19 10:51:48.244] Level.debug sip_ua_helper.dart:216 ::: call failed with cause: Code: [100], Cause: Canceled, Reason: Canceled by local
I/flutter (32165): Call State Changed =============>>>>>>>>> : CallStateEnum.FAILED
I/flutter (32165): Call State=================>>>>>>>>>>>>>>>>>>>>: CallStateEnum.FAILED
D/FlutterWebRTCPlugin(32165): onIceGatheringChangeCOMPLETE
I/org.webrtc.Logging(32165): NetworkMonitor: Stop monitoring with native observer 496370917056
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: Unregister network callback
I/org.webrtc.Logging(32165): NetworkMonitorAutoDetect: Unregister network callback
D/FlutterWebRTCPlugin(32165): Stoping the audio manager...
D/RTCAudioManager(32165): stop
D/RTCBluetoothManager(32165): stop: BT state=UNINITIALIZED
I/AudioManager(32165): In isSpeakerphoneOn(), calling application: com.github.cloudwebrtc.sip_ua_example
I/AudioManager(32165): In setSpeakerphoneOn(), on: false, calling application: com.github.cloudwebrtc.sip_ua_example
D/AudioManager(32165): checkSpeakerOnPermission() mWechatVOIPStatus:is_wechat_operation=off

════════ Exception caught by gesture ═══════════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown while handling a gesture:
The method 'cancel' was called on null.
Receiver: null
Tried calling: cancel()

When the exception was thrown, this was the stack:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1 _MyCallScreenWidget._handleHangup (package:dart_sip_ua_example/src/callscreen.dart:208:12)
#2 _MyCallScreenWidget._buildActionButtons. (package:dart_sip_ua_example/src/callscreen.dart:345:24)
#3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:706:14)
#4 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:789:36)
...
Handler: "onTap"
Recognizer: TapGestureRecognizer#54154
debugOwner: GestureDetector
state: ready
won arena
finalPosition: Offset(207.6, 767.6)
finalLocalPosition: Offset(55.3, 35.9)
button: 1
sent tap down
════════════════════════════════════════════════════════════════════════════════════════════════════
D/RTCAudioManager(32165): Abandoned audio focus for VOICE_CALL streams
D/RTCProximitySensor(32165): stop@[name=main, id=2]
D/RTCAudioManager(32165): AudioManager stopped
I/flutter (32165): [2020-02-19 10:51:48.471] Level.debug rtc_session.dart:1466 ::: close() | closing local MediaStream
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4006 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Duration: 4004 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging(32165): EglRenderer: Releasing.
I/org.webrtc.Logging(32165): EglRenderer: eglBase detach and release.
I/org.webrtc.Logging(32165): EglRenderer: Quitting render thread.
I/org.webrtc.Logging(32165): EglRenderer: Releasing done.
I/org.webrtc.Logging(32165): EglRenderer: Releasing.
I/org.webrtc.Logging(32165): EglRenderer: eglBase detach and release.
I/org.webrtc.Logging(32165): EglRenderer: Releasing done.
I/org.webrtc.Logging(32165): EglRenderer: Quitting render thread.
I/flutter (32165): [2020-02-19 10:51:56.800] Level.debug invite_client.dart:81 ::: Timer B expired for transaction z9hG4bK13308191470000000
I/flutter (32165): �[38;5;196m[2020-02-19 10:51:56.814] Level.error rtc_session.dart:1378 ::: onRequestTimeout()�[0m
I/flutter (32165): [2020-02-19 10:52:37.689] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 10:52:37.703] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 10:54:07.687] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 10:54:07.692] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 10:55:37.635] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 10:55:37.651] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
D/FlutterView(32165): Detaching from a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@2714d35
I/flutter (32165): [2020-02-19 10:57:07.657] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 10:57:07.666] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 10:58:37.636] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 10:58:37.652] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): �[38;5;208m[2020-02-19 11:00:07.714] Level.warning registrator.dart:114 ::: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9"�[0m
I/flutter (32165): [2020-02-19 11:00:07.729] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 11:00:07.737] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK963593871
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=8ld7nadakl
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 3 REGISTER
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:00:07.742] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 11:00:07.751] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK963593871
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=8ld7nadakl
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 3 REGISTER
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:00:07.768] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:00:07.774] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:00:07.910] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:00:07.924] Level.debug transport.dart:314 ::: received text message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): SIP/2.0 401 Unauthorized
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;rport=40451;received=43.228.229.106;branch=z9hG4bK13308191470000000
I/flutter (32165): Call-ID: xm3r5esxtipwb8uixja4
I/flutter (32165): From: "1061" sip:[email protected];tag=s3nxus1y48
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK13308191470000000
I/flutter (32165): CSeq: 3434 INVITE
I/flutter (32165): WWW-Authenticate: Digest realm="asterisk",nonce="1582090208/a543b6949a2271c7aa712466b5ad22b4",opaque="58f4794c34584524",stale=true,algorithm=md5,qop="auth"
I/flutter (32165): Server: Asterisk PBX 16.7.0
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:00:08.3] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:00:08.9] Level.debug transport.dart:314 ::: received text message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): SIP/2.0 401 Unauthorized
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;rport=40451;received=43.228.229.106;branch=z9hG4bK963593871
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): From: "1061" sip:[email protected];tag=8ld7nadakl
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK963593871
I/flutter (32165): CSeq: 3 REGISTER
I/flutter (32165): WWW-Authenticate: Digest realm="asterisk",nonce="1582090208/a543b6949a2271c7aa712466b5ad22b4",opaque="775b8beb7c0d49a6",algorithm=md5,qop="auth"
I/flutter (32165): Server: Asterisk PBX 16.7.0
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:00:08.51] Level.debug digest_authentication.dart:179 ::: authenticate() | using qop=auth [a2:REGISTER:sip:webrtc.ecosmob.net]
I/flutter (32165): [2020-02-19 11:00:08.60] Level.debug digest_authentication.dart:206 ::: authenticate() | response generated
I/flutter (32165): [2020-02-19 11:00:08.69] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 11:00:08.76] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK70371125
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=8ld7nadakl
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 4 REGISTER
I/flutter (32165): Authorization: Digest algorithm=MD5, username="1061", realm="asterisk", nonce="1582090208/a543b6949a2271c7aa712466b5ad22b4", uri="sip:webrtc.ecosmob.net", response="3a6bd3872ee348a467213af2de43853c", opaque="775b8beb7c0d49a6", qop=auth, cnonce="6y4574403h58", nc=00000001
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:00:08.83] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 11:00:08.90] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK70371125
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=8ld7nadakl
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 4 REGISTER
I/flutter (32165): Authorization: Digest algorithm=MD5, username="1061", realm="asterisk", nonce="1582090208/a543b6949a2271c7aa712466b5ad22b4", uri="sip:webrtc.ecosmob.net", response="3a6bd3872ee348a467213af2de43853c", opaque="775b8beb7c0d49a6", qop=auth, cnonce="6y4574403h58", nc=00000001
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:00:08.245] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:00:08.260] Level.debug transport.dart:314 ::: received text message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): SIP/2.0 200 OK
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;rport=40451;received=43.228.229.106;branch=z9hG4bK70371125
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): From: "1061" sip:[email protected];tag=8ld7nadakl
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK70371125
I/flutter (32165): CSeq: 4 REGISTER
I/flutter (32165): Date: Wed, 19 Feb 2020 05:30:08 GMT
I/flutter (32165): Contact: sip:[email protected]:40451;transport=ws;expires=599
I/flutter (32165): Expires: 600
I/flutter (32165): Server: Asterisk PBX 16.7.0
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:01:37.639] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:01:37.655] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:03:07.708] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:03:07.722] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:04:37.659] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:04:37.674] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:07:42.81] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:07:42.97] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:07:42.221] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:07:42.236] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:09:07.690] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:09:07.705] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): �[38;5;208m[2020-02-19 11:10:02.346] Level.warning registrator.dart:114 ::: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9"�[0m
I/flutter (32165): [2020-02-19 11:10:02.359] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 11:10:02.367] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK1189889715
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=38dhxmv6k5
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 5 REGISTER
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:10:02.374] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 11:10:02.383] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK1189889715
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=38dhxmv6k5
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 5 REGISTER
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:10:02.552] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:10:02.567] Level.debug transport.dart:314 ::: received text message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): SIP/2.0 401 Unauthorized
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;rport=40451;received=43.228.229.106;branch=z9hG4bK1189889715
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): From: "1061" sip:[email protected];tag=38dhxmv6k5
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK1189889715
I/flutter (32165): CSeq: 5 REGISTER
I/flutter (32165): WWW-Authenticate: Digest realm="asterisk",nonce="1582090803/10947ee81ed5008360e8df62d5d78733",opaque="15933b9a0e0ea256",algorithm=md5,qop="auth"
I/flutter (32165): Server: Asterisk PBX 16.7.0
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:10:02.622] Level.debug digest_authentication.dart:179 ::: authenticate() | using qop=auth [a2:REGISTER:sip:webrtc.ecosmob.net]
I/flutter (32165): [2020-02-19 11:10:02.630] Level.debug digest_authentication.dart:206 ::: authenticate() | response generated
I/flutter (32165): [2020-02-19 11:10:02.639] Level.debug transport.dart:167 ::: send()
I/flutter (32165): [2020-02-19 11:10:02.646] Level.debug transport.dart:178 ::: sending message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK29908839
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=38dhxmv6k5
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 6 REGISTER
I/flutter (32165): Authorization: Digest algorithm=MD5, username="1061", realm="asterisk", nonce="1582090803/10947ee81ed5008360e8df62d5d78733", uri="sip:webrtc.ecosmob.net", response="423b136c6f689d6d7df249ccec0b6b61", opaque="15933b9a0e0ea256", qop=auth, cnonce="3503b7118706", nc=00000001
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:10:02.653] Level.debug websocket_interface.dart:131 ::: send()
I/flutter (32165): [2020-02-19 11:10:02.661] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:webrtc.ecosmob.net SIP/2.0
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;branch=z9hG4bK29908839
I/flutter (32165): Max-Forwards: 69
I/flutter (32165): To: sip:[email protected]
I/flutter (32165): From: "1061" sip:[email protected];tag=38dhxmv6k5
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): CSeq: 6 REGISTER
I/flutter (32165): Authorization: Digest algorithm=MD5, username="1061", realm="asterisk", nonce="1582090803/10947ee81ed5008360e8df62d5d78733", uri="sip:webrtc.ecosmob.net", response="423b136c6f689d6d7df249ccec0b6b61", opaque="15933b9a0e0ea256", qop=auth, cnonce="3503b7118706", nc=00000001
I/flutter (32165): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:d792dfed-4432-4a6d-ac66-7a1b672c99f9";expires=600
I/flutter (32165): Expires: 600
I/flutter (32165): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (32165): Supported: path,gruu,outbound
I/flutter (32165): User-Agent: dart-sip-ua v0.0.1
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:10:02.817] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:10:02.834] Level.debug transport.dart:314 ::: received text message:===============================>>>>>>>>>>>>>>>>>>>>>>>>
I/flutter (32165):
I/flutter (32165): SIP/2.0 200 OK
I/flutter (32165): Via: SIP/2.0/WSS g581g38nrtwb.invalid;rport=40451;received=43.228.229.106;branch=z9hG4bK29908839
I/flutter (32165): Call-ID: kivcjmi1mq8rciphcqhtfw
I/flutter (32165): From: "1061" sip:[email protected];tag=38dhxmv6k5
I/flutter (32165): To: sip:[email protected];tag=z9hG4bK29908839
I/flutter (32165): CSeq: 6 REGISTER
I/flutter (32165): Date: Wed, 19 Feb 2020 05:40:03 GMT
I/flutter (32165): Contact: sip:[email protected]:40451;transport=ws;expires=599
I/flutter (32165): Expires: 600
I/flutter (32165): Server: Asterisk PBX 16.7.0
I/flutter (32165): Content-Length: 0
I/flutter (32165):
I/flutter (32165):
I/flutter (32165): [2020-02-19 11:13:44.613] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:13:44.629] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:13:44.752] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:13:44.767] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:13:44.785] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:13:44.792] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet
I/flutter (32165): [2020-02-19 11:15:07.730] Level.debug websocket_interface.dart:169 ::: Received WebSocket message
I/flutter (32165): [2020-02-19 11:15:07.744] Level.debug websocket_interface.dart:174 ::: Received and ignored empty packet

UI and Some functionality related changes required.

@cloudwebrtc
Hello cloudwebrtc community,

We have checked this demo by installing in android and iOS Device and we have also configured server.
We have checked your demo all functionality working properly related to SIP call and video call.

But i have some suggestion to improve this demo.

  1. Sometime UI not responsible and hangup in some screens.
  2. When i start to call another user, timer will start automatically before call pick up, in that place you have to place in progress call or something like that.
  3. When we try one to one call sometimes registration issues are there, you need to registered again.

So i have hope you will implement my suggestion in your current demo. It will help many users who are using this demo.

Thanks
Tushar Ramoliya
Ecosmob Technology Pvt. Ltd.

Initial call attempt always fails

When I press the green call button it always fails on the first attempt. It times out after 30 seconds or more and then when I press the call button again it usually connects the second time. However it often takes takes three attempts to make the call. The initial call attempt fails every time. Same for other users. We are connecting to a FreeSwitch server from android devices. Latest version of Flutter on the beta channel.

In the logs there is no error message. On both failed and successful attempts the communication process between client and server flows the same up to the point where a "SIP/2.0 100 Trying” message should be received. This is never received on failed attempts.

We would like all calls to connect on the first attempt. Any help would be appreciated.
Stack traces of both a failed and a successful attempt are below:

Stack Trace of a failed attempt:
I/flutter ( 9792): INVITE sip:[email protected] SIP/2.0
I/flutter ( 9792): Via: SIP/2.0/WSS 566862440318.invalid;branch=z9hG4bK900689490000000
I/flutter ( 9792): Max-Forwards: 69
I/flutter ( 9792): To: sip:[email protected]
I/flutter ( 9792): From: "XXXX" sip:[email protected];tag=gthy4dc1g3
I/flutter ( 9792): Call-ID: 66amqedxgmtjgpiwl5nj
I/flutter ( 9792): CSeq: 2755 INVITE
I/flutter ( 9792): Proxy-Authorization: Digest algorithm=MD5, username="127113", realm="192.xxx.xx.xx", nonce="a25d752d-b430-40f8-9a11-a4f7875d4d25", uri="sip:[email protected]", response="c54aca8cfeef309088289b2c854da2bc", qop=auth, cnonce="741545154308", nc=00000001
I/flutter ( 9792): Contact: sip:[email protected];transport=ws;ob
I/flutter ( 9792): Content-Type: application/sdp
I/flutter ( 9792): Session-Expires: 120
I/flutter ( 9792): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter ( 9792): Supported: timer,ice,replaces,outbound
I/flutter ( 9792): User-Agent: dart-sip-ua v0.0.1
I/flutter ( 9792): Content-Length: 2033
I/flutter ( 9792):
I/flutter ( 9792): v=0
I/flutter ( 9792): o=- 651521019053583620 2 IN IP4 127.0.0.1
I/flutter ( 9792): s=-
I/flutter ( 9792): t=0 0
I/flutter ( 9792): a=group:BUNDLE audio
I/flutter ( 9792): a=msid-semantic: WMS 0e87a210-ee77-4813-bdee-e0bfbf
I/flutter ( 9792): [2020-04-04 20:05:32.790] Level.debug websocket_interface.dart:130 ::: send()
I/flutter ( 9792): [2020-04-04 20:05:32.794] Level.debug websocket_dart_impl.dart:44 ::: send: INVITE sip:[email protected] SIP/2.0
I/flutter ( 9792): Via: SIP/2.0/WSS 566862440318.invalid;branch=z9hG4bK900689490000000
I/flutter ( 9792): Max-Forwards: 69
I/flutter ( 9792): To: sip:[email protected]
I/flutter ( 9792): From: "Shane Walsh" sip:[email protected];tag=gthy4dc1g3
I/flutter ( 9792): Call-ID: 66amqedxgmtjgpiwl5nj
I/flutter ( 9792): CSeq: 2755 INVITE
I/flutter ( 9792): Proxy-Authorization: Digest algorithm=MD5, username="127113", realm="192.xxx.xx.xx", nonce="a25d752d-b430-40f8-9a11-a4f7875d4d25", uri="sip:[email protected]", response="c54aca8cfeef309088289b2c854da2bc", qop=auth, cnonce="741545154308", nc=00000001
I/flutter ( 9792): Contact: sip:[email protected];transport=ws;ob
I/flutter ( 9792): Content-Type: application/sdp
I/flutter ( 9792): Session-Expires: 120
I/flutter ( 9792): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter ( 9792): Supported: timer,ice,replaces,outbound
I/flutter ( 9792): User-Agent: dart-sip-ua v0.0.1
I/flutter ( 9792): Content-Length: 2033
I/flutter ( 9792):
I/flutter ( 9792): v=0
I/flutter ( 9792): o=- 651521019053583620 2 IN IP4 127.0.0.1
I/flutter ( 9792): s=-
I/flutter ( 9792): t=0 0
I/flutter ( 9792): a=group:BUNDLE audio
I/flutter ( 9792): a=msid-semantic: WMS 0e87a210-ee77-4813-bdee-e0bfbf4ff
I/flutter ( 9792): [2020-04-04 20:05:32.798] Level.debug invite_client.dart:90 ::: Timer D expired for transaction z9hG4bK16565475180000000
I/org.webrtc.Logging( 9792): EglRenderer: Duration: 4011 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging( 9792): EglRenderer: Duration: 4006 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging( 9792): NetworkMonitorAutoDetect: capabilities changed: [ Transports: CELLULAR Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED Unwanted: LinkUpBandwidth>=468Kbps LinkDnBandwidth>=66931Kbps Specifier: <1>]
I/org.webrtc.Logging( 9792): EglRenderer: Duration: 4012 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging( 9792): EglRenderer: Duration: 4006 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging( 9792): EglRenderer: Duration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.
I/org.webrtc.Logging( 9792): EglRenderer: Duration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.

Stack Trace of a successful attempt:
I/flutter ( 9792): INVITE sip:[email protected] SIP/2.0
I/flutter ( 9792): Via: SIP/2.0/WSS 566862440318.invalid;branch=z9hG4bK6247419230000000
I/flutter ( 9792): Max-Forwards: 69
I/flutter ( 9792): To: sip:[email protected]
I/flutter ( 9792): From: "Shane Walsh" sip:[email protected];tag=51hmm76un2
I/flutter ( 9792): Call-ID: 66amq20q5307301s0672
I/flutter ( 9792): CSeq: 3907 INVITE
I/flutter ( 9792): Proxy-Authorization: Digest algorithm=MD5, username="127113", realm="192.xxx.xx.xx", nonce="639367e4-4022-4240-8209-588d681916b2", uri="sip:[email protected]", response="4e522fb94658355c298ff642ca1f2ff3", qop=auth, cnonce="0xs25q70tf87", nc=00000001
I/flutter ( 9792): Contact: sip:[email protected];transport=ws;ob
I/flutter ( 9792): Content-Type: application/sdp
I/flutter ( 9792): Session-Expires: 120
I/flutter ( 9792): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter ( 9792): Supported: timer,ice,replaces,outbound
I/flutter ( 9792): User-Agent: dart-sip-ua v0.0.1
I/flutter ( 9792): Content-Length: 2034
I/flutter ( 9792):
I/flutter ( 9792): v=0
I/flutter ( 9792): o=- 2335559035282872422 2 IN IP4 127.0.0.1
I/flutter ( 9792): s=-
I/flutter ( 9792): t=0 0
I/flutter ( 9792): a=group:BUNDLE audio
I/flutter ( 9792): a=msid-semantic: WMS 622502e8-8ecc-40dd-8ac0-f717
I/flutter ( 9792): [2020-04-04 20:12:04.754] Level.debug websocket_interface.dart:130 ::: send()
I/flutter ( 9792): [2020-04-04 20:12:04.758] Level.debug websocket_dart_impl.dart:44 ::: send: INVITE sip:[email protected] SIP/2.0
I/flutter ( 9792): Via: SIP/2.0/WSS 566862440318.invalid;branch=z9hG4bK6247419230000000
I/flutter ( 9792): Max-Forwards: 69
I/flutter ( 9792): To: sip:[email protected]
I/flutter ( 9792): From: "Shane Walsh" sip:[email protected];tag=51hmm76un2
I/flutter ( 9792): Call-ID: 66amq20q5307301s0672
I/flutter ( 9792): CSeq: 3907 INVITE
I/flutter ( 9792): Proxy-Authorization: Digest algorithm=MD5, username="127113", realm="192.xxx.xx.xx", nonce="639367e4-4022-4240-8209-588d681916b2", uri="sip:[email protected]", response="4e522fb94658355c298ff642ca1f2ff3", qop=auth, cnonce="0xs25q70tf87", nc=00000001
I/flutter ( 9792): Contact: sip:[email protected];transport=ws;ob
I/flutter ( 9792): Content-Type: application/sdp
I/flutter ( 9792): Session-Expires: 120
I/flutter ( 9792): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter ( 9792): Supported: timer,ice,replaces,outbound
I/flutter ( 9792): User-Agent: dart-sip-ua v0.0.1
I/flutter ( 9792): Content-Length: 2034
I/flutter ( 9792):
I/flutter ( 9792): v=0
I/flutter ( 9792): o=- 2335559035282872422 2 IN IP4 127.0.0.1
I/flutter ( 9792): s=-
I/flutter ( 9792): t=0 0
I/flutter ( 9792): a=group:BUNDLE audio
I/flutter ( 9792): a=msid-semantic: WMS 622502e8-8ecc-40dd-8ac0-f717dd2
I/flutter ( 9792): [2020-04-04 20:12:04.762] Level.debug invite_client.dart:90 ::: Timer D expired for transaction z9hG4bK418270180000000
I/flutter ( 9792): [2020-04-04 20:12:04.968] Level.debug websocket_interface.dart:168 ::: Received WebSocket message
I/flutter ( 9792): [2020-04-04 20:12:04.976] Level.debug transport.dart:314 ::: received text message:
I/flutter ( 9792):
I/flutter ( 9792): SIP/2.0 100 Trying
I/flutter ( 9792): Via: SIP/2.0/WSS 566862440318.invalid;branch=z9hG4bK6247419230000000;received=213.233.132.141;rport=55640
I/flutter ( 9792): From: "XXX" sip:[email protected];tag=51hmm76un2
I/flutter ( 9792): To: sip:[email protected]
I/flutter ( 9792): Call-ID: 66amq20q5307301s0672
I/flutter ( 9792): CSeq: 3907 INVITE
I/flutter ( 9792): User-Agent: FreeSWITCH-mod_sofia/1.8.7+git20190702T200609Z6047ebddfc64bit
I/flutter ( 9792): Content-Length: 0
I/flutter ( 9792):
I/flutter ( 9792):
I/flutter ( 9792): [2020-04-04 20:12:05.9] Level.debug rtc_session.dart:2212 ::: receiveInviteResponse()
I/flutter ( 9792): [2020-04-04 20:12:05.16] Level.debug websocket_interface.dart:168 ::: Received WebSocket message
I/flutter ( 9792): [2020-04-04 20:12:05.19] Level.debug transport.dart:314 ::: received text message:
I/flutter ( 9792):
I/flutter ( 9792): SIP/2.0 200 OK
I/flutter ( 9792): Via: SIP/2.0/WSS 566862440318.invalid;branch=z9hG4bK6247419230000000;received=213.233.132.141;rport=55640
I/flutter ( 9792): From: "Shane Walsh" sip:[email protected];tag=51hmm76un2
I/flutter ( 9792): To: sip:[email protected];tag=a8memveeN2vUN
I/flutter ( 9792): Call-ID: 66amq20q5307301s0672
I/flutter ( 9792): CSeq: 3907 INVITE
I/flutter ( 9792): Contact: sip:[email protected]:5060;transport=udp
I/flutter ( 9792): User-Agent: FreeSWITCH-mod_sofia/1.8.7+git
20190702T200609Z6047ebddfc64bit
I/flutter ( 9792): Accept: application/sdp
I/flutter ( 9792): Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
I/flutter ( 9792): Require: timer
I/flutter ( 9792): Supported: timer, path, replaces
I/flutter ( 9792): Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
I/flutter ( 9792): Session-Expires: 120;refresher=uac
I/flutter ( 9792): Content-Type: application/sdp
I/flutter ( 9792): Content-Disposition: session
I/flutter ( 9792): Content-Length: 888
I/flutter ( 9792): Remote-Party-ID: "101281000" <sip:10128
I/flutter ( 9792): [2020-04-04 20:12:05.41] Level.debug rtc_session.dart:2212 ::: receiveInviteResponse()
I/flutter ( 9792): [2020-04-04 20:12:05.49] Level.debug dialog.dart:110 ::: new UAC dialog created with status CONFIRMED
I/flutter ( 9792): [2020-04-04 20:12:05.53] Level.debug rtc_session.dart:2312 ::: emit "sdp"
D/FlutterWebRTCPlugin( 9792): peerConnectionSetLocalDescription() start
D/FlutterWebRTCPlugin( 9792): peerConnectionSetLocalDescription() end
D/FlutterWebRTCPlugin( 9792): peerConnectionSetRemoteDescription() start
I/org.webrtc.Logging( 9792): WebRtcAudioRecordExternal: enableBuiltInAEC(false)
I/org.webrtc.Logging( 9792): WebRtcAudioEffectsExternal: setAEC(false)
I/org.webrtc.Logging( 9792): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging( 9792): WebRtcAudioEffectsExternal: setNS(true)
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: initPlayout(sampleRate=48000, channels=1)
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: byteBuffer.capacity: 960
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: AudioTrack.getMinBufferSize: 7696
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: createAudioTrackOnLollipopOrHigher
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: nativeOutputSampleRate: 48000
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: AudioTrack: session ID: 10633, channels: 1, sample rate: 48000, max gain: 1.0
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: AudioTrack: buffer size in frames: 3848
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: AudioTrack: buffer capacity in frames: 3848
I/org.webrtc.Logging( 9792): VolumeLogger: start@[name=worker_thread - 9830, id=9266]
I/org.webrtc.Logging( 9792): VolumeLogger: audio mode is: MODE_IN_COMMUNICATION
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: startPlayout
I/org.webrtc.Logging( 9792): VolumeLogger: VOICE_CALL stream volume: 3 (max=7)
I/org.webrtc.Logging( 9792): WebRtcAudioTrackExternal: AudioTrackThread@[name=AudioTrackJavaThread, id=9289]
D/FlutterWebRTCPlugin( 9792): onAddTrack
D/FlutterWebRTCPlugin( 9792): peerConnectionSetRemoteDescription() end
I/flutter ( 9792): [2020-04-04 20:12:05.161] Level.debug rtc_session.dart:2833 ::: session accepted
I/flutter ( 9792): [2020-04-04 20:12:05.168] Level.debug rtc_session.dart:2835 ::: emit "accepted"
I/flutter ( 9792): [2020-04-04 20:12:05.173] Level.debug sip_ua_helper.dart:228 ::: call accepted
I/flutter ( 9792): [2020-04-04 20:12:05.178] Level.debug rtc_session.dart:1211 ::: sendRequest()
I/flutter ( 9792): [2020-04-04 20:12:05.187] Level.debug transport.dart:167 ::: send()
I/flutter ( 9792): [2020-04-04 20:12:05.190] Level.debug transport.dart:178 ::: sending message:
I/flutter ( 9792):
I/flutter ( 9792): ACK sip:[email protected]:5060;transport=udp SIP/2.0

What is dart based endpoint of this project

Describe the bug
I am not able to find proper dart with main function endpoint to resolve it

To Reproduce
Steps to reproduce the behaviour:

  1. Go to ' Run Debug Configuration '
  2. Click on flutter '' then select Name class it as you want , below you will get option to set endpoint of dart.
  3. You will get dialog with 2 tab select class or search dart endpoint
  4. Error dart class don't have main function

Expected behaviour
A class must be name friendly to find proper dart endpoints

System Information()
Flutter SDK Version:
Target OS and Version:Android 10 , IOS 13.1
Host OS and Version:Ubuntu 18 LTS

Audio call terminates after 1 second

Describe the bug

Audio call terminates after 1 second.
Also, library didn't handle any inbound calls (I even don't see any SIP log).

To Reproduce
Steps to reproduce the behavior:

  1. Create Telnyx account
  2. Make SIP calls to any ordinary phone number. For example audio call to sip:[email protected]
  3. Call starts successfully
  4. I hear the voice from both sides
  5. Call terminates with one of the several errors: call failed with cause: Code: [488], Cause: Bad Media Description, Reason: Not Acceptable Here or call failed with cause: Code: [503], Cause: SIP Failure Code, Reason: Service Unavailable

Log files:
android_call_interupted.txt
ios_call_interupted.txt

Expected behavior
Calls shouldn't terminate after 1 second

System Infomation()
Flutter SDK Version: 1.13.7-pre.26
Target OS and Version: Android 9 / iOS 13
Host OS and Version: Ubuntu 19.04 / Mac Os Mojave

I am working on Flutter client for Telnyx. It helps connect VoIP and ordinary phones. SIP related docs - https://sip.telnyx.com/. It looks like library incompatibility (implementation or config) with Telnyx SIP/WebRTC. I am ready to fix everything myself but I don't have experience with SIP/WebRTC and I need direction where to start debugging this issue.

PM me If you need Telnyx credentials to test.

Thanks for good SIP library!

Not working on LTE mobile data

Describe the bug
I connected one mobile device to WIFI connection and other device to mobile data. Then I make a call and accept from the other end. Signaling is working fine, but streaming is not happening. The same issue was reported in flutter webRTC repository also. As described in there I used 'viagenie' turn server and tried. But it still failing. Please give this a look.

To Reproduce

  1. Get two devices. Connect one device with WIFI and the other device with mobile data.
  2. Then make a call from one end and you will see streaming is not happening.

SignalWire?

Describe the bug
Flutter WEB version Does not seems to work with SignalWire nor Telnyx

JsSIP works with SignalWire

To Reproduce
Steps to reproduce the behavior:

  1. Fire the example for Flutter Web:
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 run -d chrome
  1. Create SignalWire account, get a verified number
  2. Follow this tutorial to call the verified number

Registering logs gives:
registered => Code: [200], Cause: registered, Reason: OK

but calling does not works

When calling, last log line is :
[2020-02-08 21:50:02.997] Level.debug null ::: createLocalDescription()

Expected behavior
Receiving a call on my mobile

System Infomation()

[✓] Flutter (Channel beta, v1.14.6, on Mac OS X 10.15.3 19D76, locale fr-FR)
    • Flutter version 1.14.6 at /Users/poule/.flutter_sdk/flutter
    • Framework revision fabeb2a16f (11 days ago), 2020-01-28 07:56:51 -0800
    • Engine revision c4229bfbba
    • Dart version 2.8.0 (build 2.8.0-dev.5.0 fc3af737c7)


[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/poule/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/poule/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode1131.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C505
    • CocoaPods version 1.9.0.beta.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 40.0.2
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.41.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.8.0

[✓] Connected device (2 available)
    • Chrome     • chrome     • web-javascript • Google Chrome 79.0.3945.130
    • Web Server • web-server • web-javascript • Flutter Tools

Tried in Chrome, Chromium, Edge, Firefox.... does not work for me

macOS build: ld: framework not found App

Describe the bug
macos build fails

To Reproduce
Steps to reproduce the behavior:

flutter channel master
flutter upgrade
flutter config --enable-macos-desktop
git clone https://github.com/cloudwebrtc/dart-sip-ua.git
cd dart-sip-ua/example
flutter pub get
flutter build macos --release  -v

[...]

ld: framework not found App
[✓] Flutter (Channel master, v1.15.3-pre.37, on Mac OS X 10.15.3 19D76, locale fr-FR)
    • Flutter version 1.15.3-pre.37 at /Users/poule/.flutter_sdk/flutter
    • Framework revision 6dc3bfaa98 (29 hours ago), 2020-02-07 18:28:02 -0800
    • Engine revision 6158f03ef5
    • Dart version 2.8.0 (build 2.8.0-dev.8.0 514a8d4c84)


[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/poule/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/poule/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode1131.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C505
    • CocoaPods version 1.9.0.beta.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 40.0.2
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.41.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.8.0

[✓] Connected device (3 available)
    • macOS      • macOS      • darwin-x64     • Mac OS X 10.15.3 19D76
    • Chrome     • chrome     • web-javascript • Google Chrome 79.0.3945.130
    • Web Server • web-server • web-javascript • Flutter Tools

• No issues found!

Issue with Secure Web Sockets

When initiating a call there is a sizable delay (up to 15 seconds).

I suspect this is a bug in the Asterisk Secure Web Sockets (WSS) handling, but if someone not using asterisk could test and check this issue with WSS would be appreciated so I can eliminate Dart as the possible source.

Are we all on AndroidX?

flutter run
Launching lib/main.dart on SM G970F in debug mode...
Initializing gradle...                                              0.7s
Resolving dependencies...                                           1.4s
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'
                                                                        
* Try:                                                                  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
                                                                        
* Get more help at https://help.gradle.org                              
                                                                        
BUILD FAILED in 3s                                                      
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                         3.9s
AndroidX incompatibilities may have caused this build to fail. 
Please migrate your app to AndroidX. See https://goo.gl/CP92wY.
Gradle task assembleDebug failed with exit code 1

How can I connect to webrtc server ?

I try to connect to webrtc server but client try to connect using ws and not webtc?

I/flutter (17329): [2019-12-03 13:41:05.713] Level.debug websocket_interface.dart:32 ::: new() [url:wss://kam13.x2one.com:8443/webrtc]
I/flutter (17329): [2019-12-03 13:41:06.96] Level.debug websocket_interface.dart:44 ::: SIP URI: sip:kam13.x2one.com:8443;transport=ws
I/flutter (17329): [2019-12-03 13:41:06.114] Level.debug ua.dart:103 ::: new() [configuration:Instance of 'Settings']
I/flutter (17329): �[38;5;12m[2019-12-03 13:41:06.143] Level.info config.dart:246 ::: Check mandatory parameter => sockets.�[0m
I/flutter (17329): �[38;5;12m[2019-12-03 13:41:06.237] Level.info config.dart:246 ::: Check mandatory parameter => uri.�[0m
I/flutter (17329): [2019-12-03 13:41:06.261] Level.debug config.dart:252 ::: Check optional parameter => authorization_user.
I/flutter (17329): [2019-12-03 13:41:06.308] Level.debug config.dart:252 ::: Check optional parameter => user_agent.
I/flutter (17329): [2019-12-03 13:41:06.331] Level.debug config.dart:252 ::: Check optional parameter => connection_recovery_max_interval.
I/flutter (17329): [2019-12-03 13:41:06.350] Level.debug config.dart:252 ::: Check optional parameter => connection_recovery_min_interval.
I/flutter (17329): [2019-12-03 13:41:06.369] Level.debug config.dart:252 ::: Check optional parameter => contact_uri.
I/flutter (17329): [2019-12-03 13:41:06.385] Level.debug config.dart:252 ::: Check optional parameter => display_name.
I/flutter (17329): [2019-12-03 13:41:06.400] Level.debug config.dart:252 ::: Check optional parameter => instance_id.
I/flutter (17329): [2019-12-03 13:41:06.410] Level.debug config.dart:252 ::: Check optional parameter => no_answer_timeout.
I/flutter (17329): [2019-12-03 13:41:06.419] Level.debug config.dart:252 ::: Check optional parameter => session_timers.
I/flutter (17329): [2019-12-03 13:41:06.428] Level.debug config.dart:252 ::: Check optional parameter => session_timers_refresh_method.
I/flutter (17329): [2019-12-03 13:41:06.437] Level.debug config.dart:252 ::: Check optional parameter => password.
I/flutter (17329): [2019-12-03 13:41:06.447] Level.debug config.dart:252 ::: Check optional parameter => realm.
I/flutter (17329): [2019-12-03 13:41:06.456] Level.debug config.dart:252 ::: Check optional parameter => ha1.
I/flutter (17329): [2019-12-03 13:41:06.464] Level.debug config.dart:252 ::: Check optional parameter => register.
I/flutter (17329): [2019-12-03 13:41:06.472] Level.debug config.dart:252 ::: Check optional parameter => register_expires.
I/flutter (17329): [2019-12-03 13:41:06.480] Level.debug config.dart:252 ::: Check optional parameter => registrar_server.
I/flutter (17329): [2019-12-03 13:41:06.488] Level.debug config.dart:252 ::: Check optional parameter => use_preloaded_route.
I/flutter (17329): [2019-12-03 13:41:06.537] Level.debug transport.dart:53 ::: new()
I/flutter (17329): [2019-12-03 13:41:06.582] Level.debug ua.dart:163 ::: start()
I/flutter (17329): [2019-12-03 13:41:06.590] Level.debug transport.dart:111 ::: connect()
I/flutter (17329): [2019-12-03 13:41:06.600] Level.debug ua.dart:844 ::: Transport connecting
I/flutter (17329): [2019-12-03 13:41:06.610] Level.debug sip_ua_helper.dart:146 ::: connecting => Instance of 'EventSocketConnecting'
I/flutter (17329): [2019-12-03 13:41:06.627] Level.debug websocket_interface.dart:104 ::: connect()
I/flutter (17329): [2019-12-03 13:41:06.635] Level.debug websocket_interface.dart:115 ::: connecting to WebSocket wss://kam13.x2one.com:8443/webrtc
I/flutter (17329): Allow self-signed certificate => kam13.x2one.com:8443.
I/flutter (17329): [2019-12-03 13:41:07.533] Level.debug websocket_interface.dart:137 ::: Web Socket is now connected
I/flutter (17329): [2019-12-03 13:41:07.540] Level.debug websocket_interface.dart:200 ::: WebSocket wss://kam13.x2one.com:8443/webrtc connected
I/flutter (17329): [2019-12-03 13:41:07.550] Level.debug ua.dart:850 ::: Transport connected
I/flutter (17329): [2019-12-03 13:41:07.558] Level.debug sip_ua_helper.dart:152 ::: connected => Instance of 'EventSocketConnected'
I/flutter (17329): �[38;5;208m[2019-12-03 13:41:07.573] Level.warning registrator.dart:114 ::: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:df521cf6-9cef-4b89-ad61-3ba71fbd7fb7"�[0m
I/flutter (17329): [2019-12-03 13:41:07.629] Level.debug transport.dart:167 ::: send()
I/flutter (17329): [2019-12-03 13:41:07.644] Level.debug transport.dart:178 ::: sending message:
I/flutter (17329):
I/flutter (17329): REGISTER sip:kam13.x2one.com SIP/2.0
I/flutter (17329): Via: SIP/2.0/WSS m423805m4506.invalid;branch=z9hG4bK1472475262
I/flutter (17329): Max-Forwards: 69
I/flutter (17329): To: sip:[email protected]
I/flutter (17329): From: "rzPqcJYZgzb0eN1hz" sip:[email protected];tag=1g834w0a58
I/flutter (17329): Call-ID: 3568x3768761081i071641
I/flutter (17329): CSeq: 1 REGISTER
I/flutter (17329): Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:df521cf6-9cef-4b89-ad61-3ba71fbd7fb7";expires=600
I/flutter (17329): Expires: 600
I/flutter (17329): Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
I/flutter (17329): Supported: path,gruu,outbound
I/flutter (17329): User-Agent: dart-sip-ua v0.0.1
I/flutter (17329): Content-Length: 0
I/flutter (17329):
I/flutter (17329):
I/flutter (17329): [2019-12-03 13:41:07.653] Level.debug websocket_interface.dart:165 ::: send()
I/flutter (17329): [2019-12-03 13:41:07.734] Level.debug websocket_interface.dart:130 ::: Closed by server [1002, null]!
I/flutter (17329): [2019-12-03 13:41:07.743] Level.debug websocket_interface.dart:205 ::: WebSocket wss://kam13.x2one.com:8443/webrtc closed
I/flutter (17329): [2019-12-03 13:41:07.757] Level.debug non_invite_client.dart:52 ::: transport error occurred, deleting transaction z9hG4bK1472475262
I/flutter (17329): �[38;5;196m[2019-12-03 13:41:07.795] Level.error event_manager.dart:115 ::: NoSuchMethodError: The getter 'cause' was called on null.
I/flutter (17329): Receiver: null
I/flutter (17329): Tried calling: cause�[0m
I/flutter (17329): �[38;5;196m#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
I/flutter (17329): #1 UA.registrationFailed (package:sip_ua/src/ua.dart:497:29)
I/flutter (17329): #2 Registrator._registrationFailure (package:sip_ua/src/registrator.dart:348:14)
I/flutter (17329): #3 Registrator.register. (package:sip_ua/src/registrator.dart:134:12)
I/flutter (17329): #4 EventManager.emit. (package:sip_ua/src/event_manager/event_manager.dart:113:17)
I/flutter (17329): #5 List.forEach (dart:core-patch/growable_array.dart:283:8)
I/flutter (17329): #6 EventManager.emit (package:sip_ua/src/event_manager/event_manager.dart:110:12)
I/flutter (17329): #7 RequestSender.send. (package:sip_ua/src/request_sender.dart:53:27)
I/flutter (17329): #8 EventManager.emit. (package:sip_ua/src/event_manager/event_manager.dart:113:17)
I/flutter (17329): #9 List.forEach (dart:core-patch/growable_array.dart:283:8)
I/flutter (17329): #10 EventManager.emit (package:sip_ua/src/event_manager/event_manager.dart:110:12)
I/flutter (17329): #11 NonInviteClientTransaction.onTransportError (package:sip_ua/src/transactions/
I/flutter (17329): [2019-12-03 13:41:07.807] Level.debug sip_ua_helper.dart:158 ::: disconnected => Code: [1002], Cause: error, Reason: null
I/flutter (17329): [2019-12-03 13:41:07.819] Level.debug transport.dart:206 ::: reconnection attempt: 1. next connection attempt in 2 seconds

CERTIFICATE_VERIFY_FAILED: unable to get local issuer

Hi, thanks for this implementation webrtc of flutter

When I try to register to my webrtc error I get following error.

Log output:

I/flutter (21450): �[38;5;208m[2019-11-18 16:03:16.324] Level.warning sip_ua_helper.dart:127 ::: UA instance already exist!, stopping UA and creating a new one...�[0m
I/flutter (21450): [2019-11-18 16:03:16.330] Level.debug ua.dart:282 ::: stop()
I/flutter (21450): [2019-11-18 16:03:16.337] Level.debug transport.dart:138 ::: close()
I/flutter (21450): [2019-11-18 16:03:16.343] Level.debug websocket_interface.dart:147 ::: disconnect()
I/flutter (21450): [2019-11-18 16:03:16.348] Level.debug websocket_interface.dart:204 ::: WebSocket wss://kam13.x2one.com:8443 closed
I/flutter (21450): [2019-11-18 16:03:16.354] Level.debug sip_ua_helper.dart:158 ::: disconnected => Code: [0], Cause: disconnect, Reason: close by local
I/flutter (21450): [2019-11-18 16:03:16.362] Level.debug websocket_interface.dart:32 ::: new() [url:wss://kam13.x2one.com:8443]
I/flutter (21450): [2019-11-18 16:03:16.372] Level.debug websocket_interface.dart:44 ::: SIP URI: sip:kam13.x2one.com:8443;transport=ws
I/flutter (21450): [2019-11-18 16:03:16.378] Level.debug ua.dart:103 ::: new() [configuration:Instance of 'Settings']
I/flutter (21450): �[38;5;12m[2019-11-18 16:03:16.384] Level.info config.dart:246 ::: Check mandatory parameter => sockets.�[0m
I/flutter (21450): �[38;5;12m[2019-11-18 16:03:16.409] Level.info config.dart:246 ::: Check mandatory parameter => uri.�[0m
I/flutter (21450): [2019-11-18 16:03:16.418] Level.debug config.dart:252 ::: Check optional parameter => authorization_user.
I/flutter (21450): [2019-11-18 16:03:16.427] Level.debug config.dart:252 ::: Check optional parameter => user_agent.
I/flutter (21450): [2019-11-18 16:03:16.431] Level.debug config.dart:252 ::: Check optional parameter => connection_recovery_max_interval.
I/flutter (21450): [2019-11-18 16:03:16.436] Level.debug config.dart:252 ::: Check optional parameter => connection_recovery_min_interval.
I/flutter (21450): [2019-11-18 16:03:16.441] Level.debug config.dart:252 ::: Check optional parameter => contact_uri.
I/flutter (21450): [2019-11-18 16:03:16.446] Level.debug config.dart:252 ::: Check optional parameter => display_name.
I/flutter (21450): [2019-11-18 16:03:16.451] Level.debug config.dart:252 ::: Check optional parameter => instance_id.
I/flutter (21450): [2019-11-18 16:03:16.455] Level.debug config.dart:252 ::: Check optional parameter => no_answer_timeout.
I/flutter (21450): [2019-11-18 16:03:16.460] Level.debug config.dart:252 ::: Check optional parameter => session_timers.
I/flutter (21450): [2019-11-18 16:03:16.465] Level.debug config.dart:252 ::: Check optional parameter => session_timers_refresh_method.
I/flutter (21450): [2019-11-18 16:03:16.469] Level.debug config.dart:252 ::: Check optional parameter => password.
I/flutter (21450): [2019-11-18 16:03:16.475] Level.debug config.dart:252 ::: Check optional parameter => realm.
I/flutter (21450): [2019-11-18 16:03:16.479] Level.debug config.dart:252 ::: Check optional parameter => ha1.
I/flutter (21450): [2019-11-18 16:03:16.484] Level.debug config.dart:252 ::: Check optional parameter => register.
I/flutter (21450): [2019-11-18 16:03:16.490] Level.debug config.dart:252 ::: Check optional parameter => register_expires.
I/flutter (21450): [2019-11-18 16:03:16.496] Level.debug config.dart:252 ::: Check optional parameter => registrar_server.
I/flutter (21450): [2019-11-18 16:03:16.501] Level.debug config.dart:252 ::: Check optional parameter => use_preloaded_route.
I/flutter (21450): [2019-11-18 16:03:16.507] Level.debug transport.dart:53 ::: new()
I/flutter (21450): [2019-11-18 16:03:16.516] Level.debug ua.dart:163 ::: start()
I/flutter (21450): [2019-11-18 16:03:16.520] Level.debug transport.dart:111 ::: connect()
I/flutter (21450): [2019-11-18 16:03:16.524] Level.debug ua.dart:844 ::: Transport connecting
I/flutter (21450): [2019-11-18 16:03:16.529] Level.debug sip_ua_helper.dart:146 ::: connecting => Instance of 'EventSocketConnecting'
I/flutter (21450): [2019-11-18 16:03:16.534] Level.debug websocket_interface.dart:104 ::: connect()
I/flutter (21450): [2019-11-18 16:03:16.549] Level.debug websocket_interface.dart:115 ::: connecting to WebSocket wss://kam13.x2one.com:8443
I/flutter (21450): �[38;5;196m[2019-11-18 16:03:16.620] Level.error websocket_interface.dart:139 ::: HandshakeException: Handshake error in client (OS Error:
I/flutter (21450): CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:352))�[0m
I/flutter (21450): �[38;5;196m#0 WebSocketInterface.connect (package:sip_ua/src/websocket_interface.dart:117:18)
I/flutter (21450):
I/flutter (21450): #1 Transport.connect (package:sip_ua/src/transport.dart:132:19)
I/flutter (21450): #2 UA.start (package:sip_ua/src/ua.dart:166:23)
I/flutter (21450): #3 SIPUAHelper.start (package:sip_ua/src/sip_ua_helper.dart:197:16)
I/flutter (21450):
I/flutter (21450): #4 _MyRegisterWidget._handleSave (package:dart_sip_ua_example/src/register.dart:137:12)
I/flutter (21450): #5 _MyRegisterWidget.build. (package:dart_sip_ua_example/src/register.dart:320:44)
I/flutter (21450): #6 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14)
I/flutter (21450): #7 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:729:32)
I/flutter (21450): #8 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
I/flutter (21450): #9 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
I/flutter (21450): #10 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
I/flutter (21450): #11
I/flutter (21450): �[38;5;196m[2019-11-18 16:03:16.628] Level.error websocket_interface.dart:223 ::: WebSocket wss://kam13.x2one.com:8443 error: HandshakeException: Handshake error in client (OS Error:
I/flutter (21450): CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:352))�[0m

Thanks,
Oleg

release版 安装后闪退,debug版没有问题

Describe the bug
A clear and concise description of what the bug is.
release版 安装后闪退,debug版没有问题
To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

System Infomation()
Flutter SDK Version:
Framework • revision 0b8abb4724 (15 hours ago) • 2020-02-11 11:44:36 -0800
Engine • revision e1e6ced81d
Tools • Dart 2.7.0
Target OS and Version: MIUI 11.02
Host OS and Version: MIX2

呼出时appcrash

os: android 10
在真机启动了app,配置好连接上fs服务器,然后发起一个呼出,点击按钮app crash

Error running Gradle In example folder

After running the shell create command I get an error on running the flutter run command
* Error running Gradle: ProcessException: Process "C:\FlutterApps\dart-sip-ua\example\android\gradlew.bat" exited abnormally: Configure project :flutter_webrtc cache resource-at-url.bin (C:\Users\A4mation\.gradle\caches\modules-2\metadata-2.63\resource-at-url.bin) is corrupt. Discarding.
How do I get it working?

Add ability to load WebRTC dynamically on demand

Hi, we have the use case that an FCM notification will wake up the app to accept a call. Now, because of the WebRTC loading time, when the app is terminated it takes too long to start up again, and the call can't be accepted anymore.

After removing the dart-sip-ua dependency the loading time is fine again. So a fix might be to load the WebRTC library on demand, or perhaps something else.

Thanks!

call failed with cause: Code: [488], Cause: Incompatible SDP, Reason: Not Acceptable Here

When trying to make a call, I am getting the error call failed with cause: Code: [488], Cause: Incompatible SDP, Reason: Not Acceptable Here. I emailed my provider, Telnyx, and they responded...

"So a 488 response is generally related to a bad media parameter in your SIP INVITEs SDP body, which our system does not like.
Upon inspection, your SDP is quite big and you can see the pasted version below.
It's hard to tell which one's could be the parameters we don't like but what catches my attention straight away are the candidates.
it appears this SIP Client is listing candidates in IPV6 and I'm pretty sure we don't support this.
The other candidate, that is IPV4, is a private IP address as-well.
If you can remove the IPV6 candidates or change them into public IPV4 addresses, that should do the trick."

Is it possible to force IPV4 use in the config when initiating a call? Thanks!

emit "peerconnection:setremotedescriptionfailed" [error:Unable to RTCPeerConnection::setRemoteDescription: Error Failed to set remote offer sdp: The order of m-lines in subsequent offer doesn't match order from previous offer/answe

emit "peerconnection:setremotedescriptionfailed" [error:Unable to RTCPeerConnection::setRemoteDescription: Error Failed to set remote offer sdp: The order of m-lines in subsequent offer doesn't match order from previous offer/answer.]<…> [VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: type 'TypeError' is not a subtype of type 'String'

App closes on helper.call

When trying to start a call, the app is crashing and not returning any meaningful error.

Screen Shot 2019-12-31 at 8 34 57 PM

I am running _helper.call(handle, true);. It looks like it is starting, but crashing when trying to start a new newRTCSession. Register state looks good, returning RegristrationStateEnum.REGISTERED. Building for iOS and running on an iPhone. Has anyone else run into this issue and know how to resolve it?

Bottom overflow on simulator and device

Enter text in bottom account fields and you get:

I/flutter (22437): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (22437): The following assertion was thrown during layout:
I/flutter (22437): A RenderFlex overflowed by 136 pixels on the bottom.
I/flutter (22437): 
I/flutter (22437): The relevant error-causing widget was:
I/flutter (22437):   Column file:///home/ghenry/src/dart-sip-ua/example/lib/src/register.dart:117:20
I/flutter (22437): 
I/flutter (22437): The overflowing RenderFlex has an orientation of Axis.vertical.
I/flutter (22437): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
I/flutter (22437): black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
I/flutter (22437): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
I/flutter (22437): RenderFlex to fit within the available space instead of being sized to their natural size.
I/flutter (22437): This is considered an error condition because it indicates that there is content that cannot be
I/flutter (22437): seen. If the content is legitimately bigger than the available space, consider clipping it with a
I/flutter (22437): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
I/flutter (22437): like a ListView.
I/flutter (22437): The specific RenderFlex in question is: RenderFlex#96111 relayoutBoundary=up2 OVERFLOWING:
I/flutter (22437):   needs compositing
I/flutter (22437):   creator: Column ← Align ← _BodyBuilder ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ←
I/flutter (22437):     CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
I/flutter (22437):     _InkFeatures-[GlobalKey#c380d ink renderer] ← NotificationListener<LayoutChangedNotification> ←
I/flutter (22437):     PhysicalModel ← ⋯
I/flutter (22437):   parentData: offset=Offset(0.0, 0.0) (can use size)
I/flutter (22437):   constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=390.0)
I/flutter (22437):   size: Size(360.0, 390.0)
I/flutter (22437):   direction: vertical
I/flutter (22437):   mainAxisAlignment: start
I/flutter (22437):   mainAxisSize: max
I/flutter (22437):   crossAxisAlignment: center
I/flutter (22437):   verticalDirection: down
I/flutter (22437): ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
I/flutter (22437): ════════════════════════════════════════════════════════════════════════════════════════════════════

set the minSDK version to 18

flutter webrtc uses minSDK version 18 so this example app won't run until you change the minSDK version on android

Unable to receive calls

Hi, this is probably not enough information, but maybe you can point me into the right direction. When I receive a call, everything goes through up till ACK, until the call immediately gets canceled with a BYE, and these notable headers:

X-Asterisk-HangupCause: Bearer capability not available
X-Asterisk-HangupCauseCode: 58

Any idea what the reason could be? Thanks!

Could not find a generator for route RouteSetings("/", null) in the _WidgetsAppState

Error

Built build/app/outputs/apk/debug/app-debug.apk.
I/flutter (19510): ══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
I/flutter (19510): The following message was thrown:
I/flutter (19510): Could not navigate to initial route.
I/flutter (19510): The requested route name was: "/dialpad"
I/flutter (19510): The following routes were therefore attempted:
I/flutter (19510):  * /
I/flutter (19510):  * /dialpad
I/flutter (19510): This resulted in the following objects:
I/flutter (19510):  * null
I/flutter (19510):  * MaterialPageRoute<dynamic>(RouteSettings("/dialpad", null), animation: null)
I/flutter (19510): One or more of those objects was null, and therefore the initial route specified will be ignored and
I/flutter (19510): "/" will be used instead.
I/flutter (19510): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (19510): Another exception was thrown: Could not find a generator for route RouteSettings("/", null) in the _WidgetsAppState.
D/EGL_emulation(19510): eglMakeCurrent: 0xde01a2a0: ver 3 0 (tinfo 0xde00f7a0)
D/eglCodecCommon(19510): setVertexArrayObject: set vao to 0 (0) 1 0
Syncing files to device Android SDK built for x86...             2,027ms (!)

This is a fresh build from this repo and I'm getting the above error. Not really sure what's wrong because it says as long as theres a routes table everything should be good, which there is

Current work

Thought I should let you know what I'm working on.

I feel that sip_ua_ helper belongs in the main lib, not the example and that there is far to much of the libs internals exposed through it. So I am currently working on moving it and exposing the information that clients will need without exposing the sip stack internals. I'm also changing the messaging between sip ua helper and the example code to use a simple listener mechanism rather than the event manager.

I found an existing bug and have a fox for it where the Web socket doesn't close when stopping the sip stack.

On Monday I'm intending to fix the dtmf code. It currently breaks after a single dmf digit.

Call Disconnected after 15 mins , Please check logs.

CSeq: 2 REGISTER
Authorization: Digest algorithm=MD5, username="", realm="", nonce="XhLy6V4S8b1WLkYj9EmZ3ChT0q2h+Kuq", uri="sip:", response="bb51f4cdfad6abcd8e0170579f0bbe30"
Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";expires=600
Expires: 600
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: path,gruu,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:07:20.320] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:07:20.324] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:
**** SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK193971339
Max-Forwards: 69
To: sip:****@*************************
From: "" sip:****@*************************;tag=y0box012u3
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 2 REGISTER
Authorization: Digest algorithm=MD5, username="
", realm="", nonce="XhLy6V4S8b1WLkYj9EmZ3ChT0q2h+Kuq", uri="sip:", response="bb51f4cdfad6abcd8e0170579f0bbe30"
Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";expires=600
Expires: 600
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: path,gruu,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:07:23.186] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:07:23.196] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 200 OK
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK193971339;rport=51973;received=14.140.145.146
To: sip:****@*************************;tag=75cdad5d0066314014eff38b1468b815.98ae
From: "**" sip:****@*************************;tag=y0box012u3
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 2 REGISTER
Contact: sip:[email protected];transport=ws;expires=600;received="**.
.
.**.146:51973;transport=ws";+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";reg-id=1
Server: kamailio (5.1.6 (x86_64/linux))
Content-Length: 0
flutter: [2020-01-06 14:07:23.259] Level.debug sip_ua_helper.dart:165 ::: registered => Code: [200], Cause: registered, Reason: OK
flutter: [2020-01-06 14:07:26.884] Level.debug ua.dart:241 ::: call()
flutter: [2020-01-06 14:07:26.889] Level.debug rtc_session.dart:114 ::: new
flutter: [2020-01-06 14:07:26.899] Level.debug rtc_session.dart:264 ::: connect()
flutter: [2020-01-06 14:07:26.936] Level.debug rtc_session.dart:1570 ::: emit "peerconnection"
flutter: [2020-01-06 14:07:26.938] Level.debug rtc_session.dart:2806 ::: newRTCSession()
flutter: [2020-01-06 14:07:26.943] Level.debug sip_ua_helper.dart:187 ::: newRTCSession => Instance of 'EventNewRTCSession'
flutter: [2020-01-06 14:07:27.46] Level.debug rtc_session.dart:2813 ::: session connecting
flutter: [2020-01-06 14:07:27.49] Level.debug rtc_session.dart:2814 ::: emit "connecting"
flutter: [2020-01-06 14:07:27.52] Level.debug sip_ua_helper.dart:207 ::: call connecting
flutter: [2020-01-06 14:07:27.58] Level.debug rtc_session.dart:1577 ::: createLocalDescription()
flutter: [2020-01-06 14:07:27.129] Level.debug rtc_session.dart:1620 ::: emit "sdp"
flutter: [2020-01-06 14:07:27.132] Level.debug rtc_session.dart:2185 ::: emit "sending" [request]
flutter: [2020-01-06 14:07:27.136] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:07:27.138] Level.debug transport.dart:178 ::: sending message:

INVITE sip:+@************ SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK6152260180000000
Max-Forwards: 69
To: sip:+*************@*************************
From: "****" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6279 INVITE
Contact: sip:[email protected];transport=ws;ob
Content-Type: application/sdp
Session-Expires: 1200000
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: timer,ice,replaces,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 4671

v=0
o=- 1057142842868934328 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS 795084A2-12AA-49DC-B258-2BD2992B970D
m=audio 55899 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 192.168.4.28
a=rtcp:56938 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 55899 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 63390 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 56938 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 54716 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:454576055 cname:Y8ces1kdxyM1C92G
a=ssrc:454576055 msid:795084A2-12AA-49DC-B258-2BD2992B970D 4DD18A95-98EF-4D50-953D-7997B0AF9924
a=ssrc:454576055 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:454576055 label:4DD18A95-98EF-4D50-953D-7997B0AF9924
m=video 50497 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
c=IN IP4 192.168.4.28
a=rtcp:64355 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 50497 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 64535 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 64355 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 53799 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:video
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c2a
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e02a
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=127
a=rtpmap:125 ulpfec/90000
a=ssrc-group:FID 2811899253 167253293
a=ssrc:2811899253 cname:Y8ces1kdxyM1C92G
a=ssrc:2811899253 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:2811899253 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:2811899253 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 cname:Y8ces1kdxyM1C92G
a=ssrc:167253293 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:167253293 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
flutter: [2020-01-06 14:07:27.141] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:07:27.146] Level.debug websocket_dart_impl.dart:44 ::: send: INVITE sip:+@************ SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK6152260180000000
Max-Forwards: 69
To: sip:+*************@*************************
From: "****" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6279 INVITE
Contact: sip:[email protected];transport=ws;ob
Content-Type: application/sdp
Session-Expires: 1200000
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: timer,ice,replaces,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 4671

v=0
o=- 1057142842868934328 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS 795084A2-12AA-49DC-B258-2BD2992B970D
m=audio 55899 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 192.168.4.28
a=rtcp:56938 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 55899 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 63390 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 56938 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 54716 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:454576055 cname:Y8ces1kdxyM1C92G
a=ssrc:454576055 msid:795084A2-12AA-49DC-B258-2BD2992B970D 4DD18A95-98EF-4D50-953D-7997B0AF9924
a=ssrc:454576055 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:454576055 label:4DD18A95-98EF-4D50-953D-7997B0AF9924
m=video 50497 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
c=IN IP4 192.168.4.28
a=rtcp:64355 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 50497 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 64535 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 64355 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 53799 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:video
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c2a
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e02a
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=127
a=rtpmap:125 ulpfec/90000
a=ssrc-group:FID 2811899253 167253293
a=ssrc:2811899253 cname:Y8ces1kdxyM1C92G
a=ssrc:2811899253 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:2811899253 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:2811899253 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 cname:Y8ces1kdxyM1C92G
a=ssrc:167253293 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:167253293 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
flutter: [2020-01-06 14:07:27.585] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:07:27.608] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK6152260180000000;rport=51973;received=14.140.145.146
To: sip:+*************@*************************;tag=75cdad5d0066314014eff38b1468b815.98ae
From: "" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6279 INVITE
Proxy-Authenticate: Digest realm="
*********************", nonce="XhLy814S8ccPkpCB/0DtYIlVLV1DeO5W"
Server: kamailio (5.1.6 (x86_64/linux))
Content-Length: 0
flutter: [2020-01-06 14:07:27.635] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:07:27.638] Level.debug transport.dart:178 ::: sending message:

ACK sip:+@************ SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK6152260180000000
Max-Forwards: 69
To: sip:+*************@*************************;tag=75cdad5d0066314014eff38b1468b815.98ae
From: "" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6279 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:07:27.642] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:07:27.646] Level.debug websocket_dart_impl.dart:44 ::: send: ACK sip:+
@**************** SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK6152260180000000
Max-Forwards: 69
To: sip:+*************@*************************;tag=75cdad5d0066314014eff38b1468b815.98ae
From: "" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6279 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:07:27.652] Level.debug digest_authentication.dart:200 ::: authenticate() | using qop=null [a2:INVITE:sip:+
@****************]
flutter: [2020-01-06 14:07:27.656] Level.debug digest_authentication.dart:206 ::: authenticate() | response generated
flutter: [2020-01-06 14:07:27.663] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:07:27.666] Level.debug transport.dart:178 ::: sending message:

INVITE sip:+@************ SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK18040424130000000
Max-Forwards: 69
To: sip:+*************@*************************
From: "" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 INVITE
Proxy-Authorization: Digest algorithm=MD5, username="
", realm="", nonce="XhLy814S8ccPkpCB/0DtYIlVLV1DeO5W", uri="sip:+@*************", response="699cdcbfc14819529f3aa5a471728126"
Contact: sip:[email protected];transport=ws;ob
Content-Type: application/sdp
Session-Expires: 1200000
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: timer,ice,replaces,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 4671

v=0
o=- 1057142842868934328 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS 795084A2-12AA-49DC-B258-2BD2992B970D
m=audio 55899 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 192.168.4.28
a=rtcp:56938 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 55899 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 63390 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 56938 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 54716 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:454576055 cname:Y8ces1kdxyM1C92G
a=ssrc:454576055 msid:795084A2-12AA-49DC-B258-2BD2992B970D 4DD18A95-98EF-4D50-953D-7997B0AF9924
a=ssrc:454576055 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:454576055 label:4DD18A95-98EF-4D50-953D-7997B0AF9924
m=video 50497 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
c=IN IP4 192.168.4.28
a=rtcp:64355 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 50497 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 64535 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 64355 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 53799 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:video
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c2a
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e02a
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=127
a=rtpmap:125 ulpfec/90000
a=ssrc-group:FID 2811899253 167253293
a=ssrc:2811899253 cname:Y8ces1kdxyM1C92G
a=ssrc:2811899253 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:2811899253 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:2811899253 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 cname:Y8ces1kdxyM1C92G
a=ssrc:167253293 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:167253293 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
flutter: [2020-01-06 14:07:27.671] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:07:27.676] Level.debug websocket_dart_impl.dart:44 ::: send: INVITE sip:+@************ SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK18040424130000000
Max-Forwards: 69
To: sip:+*************@*************************
From: "" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 INVITE
Proxy-Authorization: Digest algorithm=MD5, username="
", realm="", nonce="XhLy814S8ccPkpCB/0DtYIlVLV1DeO5W", uri="sip:+@*************", response="699cdcbfc14819529f3aa5a471728126"
Contact: sip:[email protected];transport=ws;ob
Content-Type: application/sdp
Session-Expires: 1200000
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: timer,ice,replaces,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 4671

v=0
o=- 1057142842868934328 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS 795084A2-12AA-49DC-B258-2BD2992B970D
m=audio 55899 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 192.168.4.28
a=rtcp:56938 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 55899 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 63390 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 56938 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 54716 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:454576055 cname:Y8ces1kdxyM1C92G
a=ssrc:454576055 msid:795084A2-12AA-49DC-B258-2BD2992B970D 4DD18A95-98EF-4D50-953D-7997B0AF9924
a=ssrc:454576055 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:454576055 label:4DD18A95-98EF-4D50-953D-7997B0AF9924
m=video 50497 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
c=IN IP4 192.168.4.28
a=rtcp:64355 IN IP4 192.168.4.28
a=candidate:589742960 1 udp 2122260223 192.168.4.28 50497 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 1 udp 2122194687 169.254.231.135 64535 typ host generation 0 network-id 2 network-cost 10
a=candidate:589742960 2 udp 2122260222 192.168.4.28 64355 typ host generation 0 network-id 1 network-cost 10
a=candidate:2853982481 2 udp 2122194686 169.254.231.135 53799 typ host generation 0 network-id 2 network-cost 10
a=ice-ufrag:LmoA
a=ice-pwd:YIsFcnWPJ7RiN6RbYJhakM91
a=ice-options:trickle renomination
a=fingerprint:sha-256 2C:69:AD:4B:73:CB:79:0D:45:73:B2:CE:14:CF:DD:EB:93:3B:E4:40:A0:53:9C:B4:A2:40:7A:AD:0B:BF:DC:5C
a=setup:actpass
a=mid:video
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c2a
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e02a
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=127
a=rtpmap:125 ulpfec/90000
a=ssrc-group:FID 2811899253 167253293
a=ssrc:2811899253 cname:Y8ces1kdxyM1C92G
a=ssrc:2811899253 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:2811899253 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:2811899253 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 cname:Y8ces1kdxyM1C92G
a=ssrc:167253293 msid:795084A2-12AA-49DC-B258-2BD2992B970D 28E175E1-E92D-4E80-B189-FB962DF7A40D
a=ssrc:167253293 mslabel:795084A2-12AA-49DC-B258-2BD2992B970D
a=ssrc:167253293 label:28E175E1-E92D-4E80-B189-FB962DF7A40D
flutter: [2020-01-06 14:07:27.682] Level.debug invite_client.dart:90 ::: Timer D expired for transaction z9hG4bK6152260180000000
flutter: [2020-01-06 14:07:28.138] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:07:28.141] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 100 trying -- your call is important to us
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK18040424130000000;rport=51973;received=14.140.145.146
To: sip:+*************@*************************
From: "****" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 INVITE
Server: kamailio (5.1.6 (x86_64/linux))
Content-Length: 0
flutter: [2020-01-06 14:07:28.160] Level.debug rtc_session.dart:2205 ::: receiveInviteResponse()
flutter: [2020-01-06 14:07:54.925] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:07:54.927] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 183 Session Progress
Via: SIP/2.0/WSS 5c8towss3315.invalid;rport=51973;received=14.140.145.146;branch=z9hG4bK18040424130000000
Record-Route: sip:3.216.25.73:5060;r2=on;lr;nat=yes
Record-Route: sip:3.216.25.73:443;transport=ws;r2=on;lr;nat=yes
From: "****" sip:****@*************************;tag=1246004725
To: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 INVITE
Server: Asterisk PBX 16.6.2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Session-Expires: 1800;refresher=uas
Contact: sip:+*************@**.*.*.**:5060
Content-Type: application/sdp
Require: timer
Content-Length: 696

v=0
o=root 2083295021 2083295021 IN IP4 ...
s=Asterisk PBX 16.6.2
c=IN IP4 18.208.163.187
t=0 0
m=audio 11978 RTP/SAVPF 0 8 126
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-16
a=maxptime:150
a=ice-ufrag:2db5f8e12c051cf910b19ab83988e580
a=ice-pwd:0c50496324bed9966d41444f353f2297
a=candidate:Ha00003b 1 UDP 2130706431 ... 11978 typ host
a=candidate:Ha00003b 2 UDP 2130706430 ... 11979 typ host
a=connection:new
a=setup:active
a=fingerprint:SHA-256 C4:FF:2A:E9:1B:7B:12:B7:A0:45:DB:35:6E:20:98:FB:63:77:CD:E1:C3:C2:63:DB:90:F8:57:91:CD:F8:E2:E5
a=sendrecv
m=video 0 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
flutter: [2020-01-06 14:07:54.976] Level.debug rtc_session.dart:2205 ::: receiveInviteResponse()
flutter: [2020-01-06 14:07:54.984] Level.debug dialog.dart:110 ::: new UAC dialog created with status EARLY
flutter: [2020-01-06 14:07:54.987] Level.debug rtc_session.dart:2819 ::: session progress
flutter: [2020-01-06 14:07:54.989] Level.debug rtc_session.dart:2820 ::: emit "progress"
flutter: [2020-01-06 14:07:54.992] Level.debug sip_ua_helper.dart:211 ::: call is in progress
flutter: [2020-01-06 14:07:54.995] Level.debug rtc_session.dart:2276 ::: emit "sdp"
No video track for RTCMediaStream: default
flutter: [2020-01-06 14:07:57.600] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:07:57.603] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 200 OK
Via: SIP/2.0/WSS 5c8towss3315.invalid;rport=51973;received=14.140.145.146;branch=z9hG4bK18040424130000000
Record-Route: sip:3.216.25.73:5060;r2=on;lr;nat=yes
Record-Route: sip:3.216.25.73:443;transport=ws;r2=on;lr;nat=yes
From: "****" sip:****@*************************;tag=1246004725
To: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 INVITE
Server: Asterisk PBX 16.6.2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Session-Expires: 1800;refresher=uas
Contact: sip:+*************@**.*.*.**:5060
Content-Type: application/sdp
Require: timer
Content-Length: 701

v=0
o=root 2083295021 2083295021 IN IP4 ...
s=Asterisk PBX 16.6.2
c=IN IP4 18.208.163.187
t=0 0
m=audio 11978 RTP/SAVPF 0 8 126
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-16
a=maxptime:150
a=ice-ufrag:2db5f8e12c051cf910b19ab83988e580
a=ice-pwd:0c50496324bed9966d41444f353f2297
a=candidate:Ha00003b 1 UDP 2130706431 ... 11978 typ host
a=candidate:Ha00003b 2 UDP 2130706430 ... 11979 typ host
a=connection:existing
a=setup:active
a=fingerprint:SHA-256 C4:FF:2A:E9:1B:7B:12:B7:A0:45:DB:35:6E:20:98:FB:63:77:CD:E1:C3:C2:63:DB:90:F8:57:91:CD:F8:E2:E5
a=sendrecv
m=video 0 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
flutter: [2020-01-06 14:07:57.624] Level.debug rtc_session.dart:2205 ::: receiveInviteResponse()
flutter: [2020-01-06 14:07:57.628] Level.debug dialog.dart:135 ::: dialog k56e6ty564vro3naplon1246004725as0e26c226 changed to CONFIRMED state
flutter: [2020-01-06 14:07:57.631] Level.debug rtc_session.dart:2305 ::: emit "sdp"
flutter: [2020-01-06 14:07:57.739] Level.debug rtc_session.dart:2825 ::: session accepted
flutter: [2020-01-06 14:07:57.742] Level.debug rtc_session.dart:2827 ::: emit "accepted"
flutter: [2020-01-06 14:07:57.745] Level.debug sip_ua_helper.dart:228 ::: call accepted
flutter: [2020-01-06 14:07:57.750] Level.debug rtc_session.dart:1211 ::: sendRequest()
flutter: [2020-01-06 14:07:57.758] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:07:57.762] Level.debug transport.dart:178 ::: sending message:

ACK sip:+@**...**:5060 SIP/2.0
Route: sip:3.216.25.73:443;transport=ws;r2=on;lr;nat=yes
Route: sip:3.216.25.73:5060;r2=on;lr;nat=yes
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK9943515230000000
Max-Forwards: 69
To: sip:+*************@*************************;tag=as0e26c226
From: "" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:07:57.768] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:07:57.772] Level.debug websocket_dart_impl.dart:44 ::: send: ACK sip:+
@**...**:5060 SIP/2.0
Route: sip:3.216.25.73:443;transport=ws;r2=on;lr;nat=yes
Route: sip:3.216.25.73:5060;r2=on;lr;nat=yes
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK9943515230000000
Max-Forwards: 69
To: sip:+*************@*************************;tag=as0e26c226
From: "
" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 6280 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:07:57.776] Level.debug rtc_session.dart:2832 ::: session confirmed
flutter: [2020-01-06 14:07:57.779] Level.debug rtc_session.dart:2834 ::: emit "confirmed"
flutter: [2020-01-06 14:07:57.783] Level.debug sip_ua_helper.dart:232 ::: call confirmed
flutter: [2020-01-06 14:07:59.668] Level.debug invite_client.dart:81 ::: Timer B expired for transaction z9hG4bK18040424130000000
flutter: [2020-01-06 14:08:29.628] Level.debug invite_client.dart:70 ::: Timer M expired for transaction z9hG4bK18040424130000000
flutter: [2020-01-06 14:13:47.611] Level.debug rtc_session.dart:953 ::: mute()
flutter: [2020-01-06 14:13:47.616] Level.debug rtc_session.dart:2886 ::: session onmute
flutter: [2020-01-06 14:13:47.620] Level.debug rtc_session.dart:2888 ::: emit "muted"
flutter: [2020-01-06 14:13:47.622] Level.debug sip_ua_helper.dart:246 ::: call muted
flutter: [2020-01-06 14:13:48.403] Level.debug rtc_session.dart:978 ::: unmute()
flutter: [2020-01-06 14:13:48.406] Level.debug rtc_session.dart:2893 ::: session onunmute
flutter: [2020-01-06 14:13:48.408] Level.debug rtc_session.dart:2895 ::: emit "unmuted"
flutter: [2020-01-06 14:13:48.411] Level.debug sip_ua_helper.dart:251 ::: call unmuted
flutter: ^[[38;5;208m[2020-01-06 14:17:18.259] Level.warning registrator.dart:114 ::: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742"<…>
flutter: [2020-01-06 14:17:18.261] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:17:18.263] Level.debug transport.dart:178 ::: sending message:

REGISTER sip:************************* SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK834101970
Max-Forwards: 69
To: sip:****@*************************
From: "" sip:****@*************************;tag=x32022omyw
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 3 REGISTER
Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";expires=600
Expires: 600
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: path,gruu,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:17:18.264] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:17:18.267] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:
********************* SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK834101970
Max-Forwards: 69
To: sip:****@*************************
From: "****" sip:****@*************************;tag=x32022omyw
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 3 REGISTER
Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";expires=600
Expires: 600
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: path,gruu,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:17:18.496] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:17:18.500] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 401 Unauthorized
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK834101970;rport=51973;received=14.140.145.146
To: sip:****@*************************;tag=75cdad5d0066314014eff38b1468b815.98ae
From: "" sip:****@*************************;tag=x32022omyw
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 3 REGISTER
WWW-Authenticate: Digest realm="
", nonce="XhL1Ql4S9BbAxyQNu/uC723Dj104cWSL"
Server: kamailio (5.1.6 (x86_64/linux))
Content-Length: 0
flutter: [2020-01-06 14:17:18.517] Level.debug digest_authentication.dart:200 ::: authenticate() | using qop=null [a2:REGISTER:sip:
****]
flutter: [2020-01-06 14:17:18.520] Level.debug digest_authentication.dart:206 ::: authenticate() | response generated
flutter: [2020-01-06 14:17:18.524] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:17:18.527] Level.debug transport.dart:178 ::: sending message:

REGISTER sip:************************* SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK1085056956
Max-Forwards: 69
To: sip:****@*************************
From: "" sip:****@*************************;tag=x32022omyw
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 4 REGISTER
Authorization: Digest algorithm=MD5, username="
", realm="", nonce="XhL1Ql4S9BbAxyQNu/uC723Dj104cWSL", uri="sip:", response="88be8b766b4642c76e2879ad8b4ef5fc"
Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";expires=600
Expires: 600
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: path,gruu,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:17:18.530] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:17:18.535] Level.debug websocket_dart_impl.dart:44 ::: send: REGISTER sip:************************* SIP/2.0
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK1085056956
Max-Forwards: 69
To: sip:****@*************************
From: "" sip:****@*************************;tag=x32022omyw
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 4 REGISTER
Authorization: Digest algorithm=MD5, username="
", realm="", nonce="XhL1Ql4S9BbAxyQNu/uC723Dj104cWSL", uri="sip:", response="88be8b766b4642c76e2879ad8b4ef5fc"
Contact: sip:[email protected];transport=ws;+sip.ice;reg-id=1;+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";expires=600
Expires: 600
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO
Supported: path,gruu,outbound
User-Agent: dart-sip-ua v0.0.1
Content-Length: 0
flutter: [2020-01-06 14:17:18.766] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:17:18.769] Level.debug transport.dart:314 ::: received text message:

SIP/2.0 200 OK
Via: SIP/2.0/WSS 5c8towss3315.invalid;branch=z9hG4bK1085056956;rport=51973;received=14.140.145.146
To: sip:****@*************************;tag=75cdad5d0066314014eff38b1468b815.98ae
From: "**" sip:****@*************************;tag=x32022omyw
Call-ID: 5207kex178e7ixk006d3lo
CSeq: 4 REGISTER
Contact: sip:[email protected];transport=ws;expires=600;received="**.
.
.**.146:51973;transport=ws";+sip.instance="urn:uuid:5f47cbe2-2459-488f-9147-5c7c889e9742";reg-id=1
Server: kamailio (5.1.6 (x86_64/linux))
Content-Length: 0
flutter: [2020-01-06 14:18:54.216] Level.debug rtc_session.dart:953 ::: mute()
flutter: [2020-01-06 14:18:54.219] Level.debug rtc_session.dart:2886 ::: session onmute
flutter: [2020-01-06 14:18:54.221] Level.debug rtc_session.dart:2888 ::: emit "muted"
flutter: [2020-01-06 14:18:54.223] Level.debug sip_ua_helper.dart:246 ::: call muted
flutter: [2020-01-06 14:22:07.81] Level.debug rtc_session.dart:978 ::: unmute()
flutter: [2020-01-06 14:22:07.83] Level.debug rtc_session.dart:2893 ::: session onunmute
flutter: [2020-01-06 14:22:07.86] Level.debug rtc_session.dart:2895 ::: emit "unmuted"
flutter: [2020-01-06 14:22:07.88] Level.debug sip_ua_helper.dart:251 ::: call unmuted
flutter: [2020-01-06 14:22:57.590] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:22:57.594] Level.debug transport.dart:314 ::: received text message:

INVITE sip:[email protected];transport=ws;ob;alias=14.140.145.146519736 SIP/2.0
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0
Via: SIP/2.0/UDP ...:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK7e6726de
Max-Forwards: 69
From: sip:+*************@*************************;tag=as0e26c226
To: "****" sip:****@*************************;tag=1246004725
Contact: sip:+*************@**.*.*.**:5060;alias=18.208.163.187~5060~1
Call-ID: k56e6ty564vro3naplon
CSeq: 102 INVITE
User-Agent: Asterisk PBX 16.6.2
Session-Expires: 1800;refresher=uac
Min-SE: 90
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 640

v=0
o=root 2083295021 2083295021 IN IP4 ...
s=Asterisk PBX 16.6.2
c=IN IP4 18.208.163.187
t=0 0
m=audio 11978 RTP/SAVPF 0 8 126
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-16
a=maxptime:150
a=ice-ufrag:2db5f8e12c051cf910b19ab83988e580
a=ice-pwd:0c50496324bed9966d41444f353f2297
a=candidate:Ha00003b 1 UDP 2130706431 ... 11978 typ host
a=candidate:Ha00003b 2 UDP 2130706430 ... 11979 typ host
a=connection:existing
a=setup:active
a=fingerprint:SHA-256 C4:FF:2A:E9:1B:7B:12:B7:A0:45:DB:35:6E:20:98:FB:63:77:CD:E1:C3:C2:63:DB:90:F8:57:91:CD:F8:E2:E5
a=sendrecv
flutter: [2020-01-06 14:22:57.643] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:22:57.646] Level.debug transport.dart:178 ::: sending message:

SIP/2.0 100 Trying
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0
Via: SIP/2.0/UDP ...:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK7e6726de
To: "" sip:****@*************************;tag=1246004725
From: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 102 INVITE
Supported: timer,ice,replaces,outbound
Content-Length: 0
flutter: [2020-01-06 14:22:57.649] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:22:57.652] Level.debug websocket_dart_impl.dart:44 ::: send: SIP/2.0 100 Trying
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0
Via: SIP/2.0/UDP **.
.
.**:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK7e6726de
To: "
" sip:****@*************************;tag=1246004725
From: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 102 INVITE
Supported: timer,ice,replaces,outbound
Content-Length: 0
flutter: [2020-01-06 14:22:57.662] Level.debug rtc_session.dart:1220 ::: receiveRequest()
flutter: [2020-01-06 14:22:57.668] Level.debug rtc_session.dart:1720 ::: receiveReinvite()
flutter: [2020-01-06 14:22:57.673] Level.debug rtc_session.dart:1871 ::: _processInDialogSdpOffer()
flutter: v=0
o=root 2083295021 2083295021 IN IP4 **.
.
.**
s=Asterisk PBX 16.6.2
c=IN IP4 18.208.163.187
t=0 0
m=audio 11978 RTP/SAVPF 0 8 126
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-16
a=maxptime:150*********a=ice-ufrag:2db5f8e12c051cf910b19ab83988e580
a=ice-pwd:0c50496324bed9966d41444f353f2297
a=candidate:Ha00003b 1 UDP 2130706431 **.
.
.** 11978 typ host
a=candidate:Ha00003b 2 UDP 2130706430 **.
.
.** 11979 typ host
a=connection:existing
a=setup:active
a=fingerprint:SHA-256 C4:FF:2A:E9:1B:7B:12:B7:A0:45:DB:35:6E:20:98:FB:63:77:CD:E1:C3:C2:63:DB:90:F8:57:91:CD:F8:E2:E5
a=sendrecv
flutter: trying to add null key
flutter: [2020-01-06 14:22:57.777] Level.debug rtc_session.dart:1894 ::: emit "sdp"
flutter: [2020-01-06 14:22:57.788] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:22:57.792] Level.debug transport.dart:178 ::: sending message:

SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0
Via: SIP/2.0/UDP ...:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK7e6726de
To: "" sip:****@*************************;tag=1246004725
From: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 102 INVITE
Supported: timer,ice,replaces,outbound
Content-Length: 0
flutter: [2020-01-06 14:22:57.795] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:22:57.799] Level.debug websocket_dart_impl.dart:44 ::: send: SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0
Via: SIP/2.0/UDP **.
.
.**:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK7e6726de
To: "
**" sip:****@*************************;tag=1246004725
From: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 102 INVITE
Supported: timer,ice,replaces,outbound
Content-Length: 0
flutter: ^[[38;5;196m[2020-01-06 14:22:57.807] Level.error rtc_session.dart:1906 ::: emit "peerconnection:setremotedescriptionfailed" [error:Unable to RTCPeerConnection::setRemoteDescription: Error Failed to set remote offer sdp: The order of m-lines in subsequent offer doesn't match order from previous offer/answer.]<…>
flutter: ^[[38;5;196m[2020-01-06 14:22:57.811] Level.error rtc_session.dart:1802 ::: Got anerror on re-INVITE: Assertion failed<…>
flutter: [2020-01-06 14:22:58.40] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:22:58.44] Level.debug transport.dart:314 ::: received text message:

ACK sip:[email protected];transport=ws;ob;alias=14.140.145.146519736 SIP/2.0
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0
Max-Forwards: 69
From: sip:+*************@*************************;tag=as0e26c226
To: "****" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 102 ACK
Content-Length: 0
flutter: [2020-01-06 14:22:58.64] Level.debug websocket_interface.dart:167 ::: Received WebSocket message
flutter: [2020-01-06 14:22:58.67] Level.debug transport.dart:314 ::: received text message:

BYE sip:[email protected];transport=ws;ob;alias=14.140.145.146519736 SIP/2.0
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK996f.b93c9c1157f27feefaec5a895416b07b.0
Via: SIP/2.0/UDP ...:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK22434d10
Max-Forwards: 69
From: sip:+*************@*************************;tag=as0e26c226
To: "****" sip:****@*************************;tag=1246004725
Call-ID: k56e6ty564vro3naplon
CSeq: 103 BYE
User-Agent: Asterisk PBX 16.6.2
X-Asterisk-HangupCause: Bearer capability not available
X-Asterisk-HangupCauseCode: 58
Content-Length: 0
flutter: [2020-01-06 14:22:58.84] Level.debug rtc_session.dart:1220 ::: receiveRequest()
flutter: [2020-01-06 14:22:58.88] Level.debug transport.dart:167 ::: send()
flutter: [2020-01-06 14:22:58.91] Level.debug transport.dart:178 ::: sending message:

SIP/2.0 200 OK
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK996f.b93c9c1157f27feefaec5a895416b07b.0
Via: SIP/2.0/UDP ...:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK22434d10
To: "" sip:****@*************************;tag=1246004725
From: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 103 BYE
Supported: outbound
Content-Length: 0
flutter: [2020-01-06 14:22:58.94] Level.debug websocket_interface.dart:129 ::: send()
flutter: [2020-01-06 14:22:58.97] Level.debug websocket_dart_impl.dart:44 ::: send: SIP/2.0 200 OK
Via: SIP/2.0/WSS 3.216.25.73:443;branch=z9hG4bK996f.b93c9c1157f27feefaec5a895416b07b.0
Via: SIP/2.0/UDP **.
.
.**:5060;rport=5060;received=18.208.163.187;branch=z9hG4bK22434d10
To: "
**" sip:****@*************************;tag=1246004725
From: sip:+*************@*************************;tag=as0e26c226
Call-ID: k56e6ty564vro3naplon
CSeq: 103 BYE
Supported: outbound
Content-Length: 0
flutter: [2020-01-06 14:22:58.101] Level.debug rtc_session.dart:2839 ::: session ended
flutter: [2020-01-06 14:22:58.106] Level.debug rtc_session.dart:1447 ::: close()
flutter: [2020-01-06 14:22:58.111] Level.debug rtc_session.dart:2842 ::: emit "ended"
flutter: [2020-01-06 14:22:58.115] Level.debug sip_ua_helper.dart:222 ::: call ended with cause: Code: [200], Cause: Terminated, Reason: BYE Received
flutter: [2020-01-06 14:22:58.119] Level.debug non_invite_server.dart:37 ::: Timer J expired for transaction z9hG4bK996f.b93c9c1157f27feefaec5a895416b07b.0
flutter: [2020-01-06 14:23:29.814] Level.debug invite_server.dart:41 ::: Timer H expired for transaction z9hG4bK896f.b183fc2512ae603579093e07818c1ab2.0

Android 10 and Fluter 1.12?

Describe the bug
flutter run fails

~/src/dart-sip-ua/example [master*]$ flutter run
Running "flutter pub get" in example...                             0.5s
Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider enabling software rendering with "--enable-software-rendering".
Launching lib/main.dart on Android SDK built for x86 in debug mode...
[!] Your app isn't using AndroidX.
    To avoid potential build failures, you can quickly migrate your app by following the steps on https://goo.gl/CP92wY.
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'
                                                                        
* Try:                                                                  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
                                                                        
* Get more help at https://help.gradle.org                              
                                                                        
BUILD FAILED in 21s                                                     
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        21.7s
AndroidX incompatibilities may have caused this build to fail. Please migrate your app to AndroidX. See https://goo.gl/CP92wY.
Gradle task assembleDebug failed with exit code 1


~/src/dart-sip-ua/example [master*]$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.5, on Linux, locale en_GB.UTF-8)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.40.2)
[✓] Connected device (1 available)

• No issues found!

video call using web variant of example fails - signaling state null

I attempted to make a video calling between two clients using the web variant (for both clients) of the example app.
Freeswitch was used as the SIP/media server.

To Reproduce
Steps to reproduce the behavior:

  1. Load app on client A and register with freeswitch server
  2. Load app on client B and register with freeswitch server
  3. Client A calls (clicking on video icon) client B
  4. Client B receives incoming call, click to accept call
  5. Call is disconnected

Expected behavior
I expected a video call to be established

System Infomation()
Flutter 1.14.6
Client A - Chrome (version 81.0.4044.62) running on Pixelbook (chromebook)
Client B - Chrome (version 80.0.3987) running on Android (version 9.0)

Further investigation revealed that it was failing when calling _connection.setRemoteDescription(answer) in rtc_session.dart because the RTCPeerConnection was in the incorrect signaling state (it was null), even though setLocalDescription had been called previously.

I then decided in rtc_session.dart to define a onSignalingState callback:

this._connection.onSignalState = (signalingState) {
    print('signalingState $signalingState');
}

But to my surprise when I re-ran the video call worked! Which I don't understand at all. I removed this code and re-ran and I was able to repeat the failure, and put the code back and it worked.

The video call was established and working, although there wasn't any audio, but I've not had time to investigate this issue.

Port progress for v1.0.0

Current progress:

  • Basic unit test
  • Integrated with flutter-webrtc
  • Register/Un-Register
  • Send Invite
  • Recv Invite
  • Hold/Unhold
  • Dtmf send/recv
  • Refer (Call Transfer)
  • Message send/recv
  • Re-Invite (audio/video call switch)
  • Full-featured demo (android/ios flutter app)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.