flutter-webrtc / dart-sip-ua

A dart-lang version of the SIP UA stack.
MIT License
339 stars 269 forks source link

Can't receive calls but can make calls using the example dart-sip-ua-example on android #474

Open tfn290181662 opened 2 months ago

tfn290181662 commented 2 months ago

Describe the bug A clear and concise description of what the bug is.

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: Target OS and Version: Host OS and Version:

kevalKathiriya258 commented 2 months ago

i facing same issue did you got any solution for this?

mikaelwills commented 2 months ago

In the world of open source, no ones going to help when your provide such little information.

md-riaz commented 2 months ago

same issue

mikaelwills commented 2 months ago

Just tested receiving and making calls using the example app on android with both a 3cx server and a FreePBX server using both WS and TCP. You need to provide more info.

savan15 commented 2 months ago

i have faced something like same issue.

i have register my endpoint in TCP. now when i place call from one endpoint to second endpoint then call not receive on second endpoint.

let's clarify more

i have used two android device with this demo installed. now i have login with two sip account.

100 and 101 now i have place call from 100 to 101 but on 101 side call not received.

for my endpoint i have tested on linephone application. it's work fine call are work fine.

mikaelwills commented 2 months ago

@savan15

What do you SIP logs say

savan15 commented 2 months ago

@mikaelwills there is no any error on show android device. when i see run windows in android studio.

mikaelwills commented 2 months ago

@savan15 dart-sip-ua outputs SIP flow logs, just make sure to uncomment 'Logger.level = Level.warning;' in the main.dart of the example app.

Those logs will tell you what your problem is, everyone else here should be posting their logs too.

savan15 commented 2 months ago

also one more thing i want to clear.

for use this library does my endpoint need to be enable webrtc? @mikaelwills

savan15 commented 2 months ago

here are that log. when i place call that time this log are seeing i have.

D/FlutterWebRTCPlugin( 7415): onIceCandidate

I/flutter ( 7415): input => , rule => Request_Response

I/flutter ( 7415): Format exception: Expected !, %, ', 'ACK', 'BYE', 'CANCEL', 'INVITE', 'NOTIFY', 'OPTIONS', 'REFER', 'REGISTER', 'SUBSCRIBE', *, +, -, ., SIP, _, `, alphanum, ~ but found end of file I/flutter ( 7415): [2024-09-22 16:53:35.373] Level.error parser.dart:32 ::: parseMessage() | error parsing first line of SIP message: "" D/FlutterWebRTCPlugin( 7415): onIceGatheringChangeCOMPLETE

mikaelwills commented 2 months ago

also one more thing i want to clear.

for use this library does my endpoint need to be enable webrtc? @mikaelwills

Yes

mikaelwills commented 2 months ago

here are that log. when i place call that time this log are seeing i have.

D/FlutterWebRTCPlugin( 7415): onIceCandidate

I/flutter ( 7415): input => , rule => Request_Response

I/flutter ( 7415): Format exception: Expected !, %, ', 'ACK', 'BYE', 'CANCEL', 'INVITE', 'NOTIFY', 'OPTIONS', 'REFER', 'REGISTER', 'SUBSCRIBE', *, +, -, ., SIP, _, `, alphanum, ~ but found end of file I/flutter ( 7415): [2024-09-22 16:53:35.373] Level.error parser.dart:32 ::: parseMessage() | error parsing first line of SIP message: "" D/FlutterWebRTCPlugin( 7415): onIceGatheringChangeCOMPLETE

Yea ive come across this issue before, and unfortunately its stumped me.

What I noticed with this is a SIP message seems to be split into two somewhere. Half of it comes in, dart-sip-ua detects that the body is less that the content length header so it throws it out. The second half of the message comes in and the parser can't parse it because it doesnt start with the correct info, so you get that error you pasted.

Anytime ive come across this, ive logged the outgoing message at the very edge of the plugin as it gets sent on the socket and just when it comes in and I can't see anywhere within the package where it might be split in two.

My only theory on this is that possibly the message is too big for a packet so the network infrastructure splits it up.

Maybe we could implement something where if a message comes in thats two short, it could wait for the next one and pair them up, but we shouldnt need to do this... any thoughts @cloudwebrtc ?

savan15 commented 2 months ago

Ok, Can we setup any custom codec in this library?

BarakatMohamad commented 1 month ago

@savan15 @mikaelwills @md-riaz any thing for this error I receive the call but I can not make that ???? note : I test my username on another app work correctly ,but in the dart_sip_ua example did not work

BarakatMohamad commented 1 month ago

@mikaelwills any ideas?

savan15 commented 1 month ago

@BarakatMohamad As we have debug on our server side. We have found webrtc option on endpoint are not enabled. so we have enable it and issue has been resolved.

On your case need to check endpoint configuration and call server configuration.

Kay-coding commented 1 week ago

@savan15 Hello, I also encountered the same problem as you. How to enable the webrtc option on the endpoint? Please tell me. Thank you very much.

md-riaz commented 1 week ago

i am using ctxSip web phone easily with my fusionpbx server, but in flutter, i am debugging calls in chrome as a web app with flutter, but after the initial registration websocket connection, i see no invitation when fusionpbx calls the flutter agent. I find no reason why js websocket works but not in flutter webrtc websocket connection.