flutter-webrtc / dart-sip-ua

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

Little more clear documentation #440

Open AK47-23 opened 6 months ago

AK47-23 commented 6 months ago

Is your feature request related to a problem? Please describe. I'm really new to webRTC, dockers, Asterisk and all. So when I saw the documentation for setting up Docker, registering with asterisk, I am not able to implement it. In a really tough spot.

Describe the solution you'd like I know this shouldn't be added as a feature request, but still can you make the documentation a little more beginner friendly or provide some links from where we can get a perfect idea to setup SIP calling with Asterisk.

mikaelwills commented 6 months ago

What does are you stuck with?

Run the docker file which setups the asterisk server in the container with pre-made numbers/extensions.

Clone dart-sip-ua, run the example app in two simulators. In the example app register page, register two of the numbers with the following

Weobsocket: wss://server_ip:8089/ws SIP URI: 500@server_ip Authorizathion User: 500 Password: 500 Display Name: Bob

Switch out the ip for your container IP. Then use 500 in one simulator and 400 in the other.

Then make a call

AK47-23 commented 6 months ago

I have a service provider that provided me a username, password and domain but no websocket URL. With this service provider I can make calls to public network. So my doubt is 1) if I am going to implement this feature commercially, use sip_ua package what all changes should I make(in terms of asterisk and basic flow diagram idea please)? 2) will call to public network work in web too? I have very less idea in network, asterisk and docker side. Hope you will clear my doubt. Thanks in advance!

mikaelwills commented 6 months ago

The websocket url is typically ws://:/ws usual websocket ports are 80 or 443 unless they have specified a different one. Or it could start with wss for web sockets over tls. So you should be able to infer the websocket url from what you have.

Only you can really answer your first question after you just start digging into it and figuring things out. Since only you know your specific situation.

The package only deals with the sip flow between your client and the UAS. Whether or not i successful call can be made to a public network just depends on how you've setup your UAS(asterisk) with your provider, I imagine.

If you've got any specific code questions within the scope of the package i'd be happy to help!

AK47-23 commented 5 months ago

Are you guys planning to bring SIP without websocket anytime?

mikaelwills commented 5 months ago

I jsut recently implemented the ability to connect with TCP sockets, its in master now.

AK47-23 commented 5 months ago

Will you be implementing UDP sockets too (in mobile and desktop)?

cloudwebrtc commented 5 months ago

I think UDP cannot support INVITE with SDP whose message size exceeds the MTU, and the offer/answer message generated by the webrtc stack can easily exceed 1500 bytes, so using TCP/TLS is the best choice.

AK47-23 commented 5 months ago

But TCP/TLS is not the recommended protocol right as it focuses more on the data? Wont it cause an issue in seamless connection as quality matters for TCP?

TaraCybertouch commented 5 months ago

hello guys, can you tell me how we can receive calls using this sip_ua: ^0.6.0 ?

silverspluussh commented 5 months ago

Hello guys, Ihave been working with dart sip over a month now and i still can't get the call connection established. keep getting remoteoffer description error and dtls auth error. any solution will help immensely.

mikaelwills commented 5 months ago

I think UDP cannot support INVITE with SDP whose message size exceeds the MTU, and the offer/answer message generated by the webrtc stack can easily exceed 1500 bytes, so using TCP/TLS is the best choice.

Im curious, ive got this current bug that happens once in every 20 calls or so that sounds similar to what you've said here even though im using TCP. I've got an incoming messaging but the SDP is cut off so the sanity check doesnt pass. Then straight away another message comes in and it starts with the continuation of the SDP so the parser throws an error cause it doesnt see any normal headers.

There doesnt seem to be any correlation between the body size and when this happens, first i was thinking it would be if the body was huge and the whole message exceeded the MTU, but TCP should handle all that for me?

Also trying to figure out if this is just a weird thing 3cx is doing. Curious what that sounds like to you @cloudwebrtc ?

Vinayak0-0 commented 3 months ago

What does are you stuck with?

Run the docker file which setups the asterisk server in the container with pre-made numbers/extensions.

Clone dart-sip-ua, run the example app in two simulators. In the example app register page, register two of the numbers with the following

Weobsocket: wss://server_ip:8089/ws SIP URI: 500@server_ip Authorizathion User: 500 Password: 500 Display Name: Bob

Switch out the ip for your container IP. Then use 500 in one simulator and 400 in the other.

Then make a call

We have followed the steps in documentation.

But application getting crashed in LINUX, when we make a video call.

We don't know what are we missing. Can you show us a light on it?