Asterisk instantly terminates WebRTC (JSSIP) call - linux

I'm running Asterisk 11.2.2 with SRTP and STUN support under Calculate Linux (Gentoo-based distribution).
When I try to call from one WebRTC instance to another, using JSSIP, the call passes, but if i answer it on another instance, the call suddenly terminates. Using Asterisk debug mode, i can catch 488 error (Not acceptable here).
If I use one SIP phone (Ekiga) instance instead of WebRTC, then I can call JSSIP from it, and everything works fine. Nevertheless, I can't call Ekiga from JSSIP, and this makes me confused.
Can you advise me, what have I do to localize this bug?

The problem was in my Asterisk: it had some WebRTC issues in 11.2.2 version. Upgrading to 11.4.0 makes everything works fine.

I just encountered the same issue, for me it was codecs issue. I was allowing only G729 in sip.conf file and hence it was throwing 488 error. For now, I fixed it by setting allow=all (I would check later on which particular codec does it needs).

Related

Web-Bluetooth error "GATT operation not authorized" occurs on Windows only

I have been working with web-bluetooth for the past several months on iOS and ChromeOS without any problems. But today, I tried to run some of my examples on Windows for the first time, and to my surprise, most of the things I had implemented didn't work with Windows. I am able to successfully connect to my peripheral, but whenever I try reading or writing anything to a custom service with a custom characteristic, I get the error "GATT operation not authorized". I have tried looking around but there is no information anywhere about this.
I am including below the simplest example I have which is just for turning the LEDs on / off on an nrf52832 board. There is only one custom service and one custom characteristic implemented, the value of which controls the states of the LEDs. This works without any problems on Chromebooks and Macs but does not work on Windows. Here is the link to this simple project including the embedded code and the web-app.
https://github.com/shtarbanov/WebBluetooth-Feather-nRF52832/tree/master/LED%20Control
I have made two implementations of the same thing, one based on promises and another based on async-await located in the folders "WebApp (Async)" and "WebApp (Promises)", respectively. Both of those implementations work fine on Mac and Cromebook, but not on Windows.
It is a known issue that secure characteristics are not accessible using Web Bluetooth on Windows. On other platforms the pairing occurs automatically, but not on Windows. There is an issue tracking this:
https://bugs.chromium.org/p/chromium/issues/detail?id=960258
Stuck with this also and as for workaround i can recommend for windows platform to pair device firstly using windows itself and than to pair it via browser(as a workaround). Not much but hope this helps, at list a little.
P.S. it should be paired via windows only once, so PC will remember device, and than you can pair via browser as long as PC remembers device.

Getting node-hid working in Windows

I'm trying to get the node-hid (https://github.com/node-hid/node-hid) module working on Windows 7. I can open a device and write to it, but no data ever arrives.
I've verified the device is sending data. I've dug through the node-hid code (HID.cc) and tried several things to get it working:
Modified the HID::recvAsync function to use an hid_read_timeout in a loop to see if that would return anything.
Set both blocking and non-blocking.
Changed buffer sizes to exactly fit what the device sends.
On Windows 8, with the hid_read_timeout call change, this all works fine. I'm not sure what may have changed between the two systems, but I plan on using this on windows XP as well, so I can't just call it good.
I'm struggling to come up with more ideas as to how to debug this issue. Has anyone successfully done this before? Is there a better option to use Node.js with an HID device?
After some serious debugging, I found that for some reason I have as of yet not been able to determine, the source file, HID.cc for the node module node-hid needed a call to hid_init() within the constructor before the hid_open call. I'm assuming that somehow this is getting hit with multiple threads, making the safety of calling hid_init before hid_open necessary.
I now have this working on both windows 7 and windows 8.
Summary of changes I had to make:
Add hid_init before the hid_open call I'm using.
Change hid_read to hid_read_timeout in a loop. (Since reads won't return on windows XP when shutting down otherwise.)
Once I've cleaned it up, I'll send the author my changes.

FMS 4 playing P2P stream with RTMFP

Proper disclosure: I posted this question on the Adobe forums too. Since I didn't get any answer - I am posting it here. Sorry if it disturbs.
We are working with FMS 4 server for a while for a 2 directions video application, and it works great with RTMP.
We now want to use its rtmfp abilities after we used Cirrus for testing in the last few days and it also worked well.
Locally - everything is working fine, but when we try the application on a remote server - we have some problems.
Each side get the NetStatusEvent code "NetConnection.Connect.Success" and "NetStream.Publish.Start" when publish starts.
However, when we are trying to play the stream, nothing happens for a minute and than we get " NetStream.Connect.Closed" after about a minute.
(Locally, we are getting "NetStream.Play.Start" and "NetStream.Play.Reset").
I did open ports 1024-65535 UDP on the server and since we are able to connect Cirrus, I believe the clients are fine.
I also changed the Adaptor.xml HostPort element to
:19350-65535 where xxx.xxx.xxx.xxx is the same public IP of our FMS Server as the one used by the client.
Again, it is working beautifully both locally and with Cirrus. RTMP also works well with the remote server.
What am I missing?
I'm sorry, I can't really help but tell you that I had a very similar problem but the other way around.
When I tried to connect two devices via Cirrus over our WLAN, I got the same error as you. When testing with one device in WLAN and the other in another Network it worked. Then I tested them both in the same WLAN (but in a WLAN other than ours) and it also worked. My collegue then updated some firmware (on the router? I'm not sure...) and deleted some VOIP data. Then it worked here, too.
I think maybe there is some problem at the remote server. UDP has to be allowed... but I'm sure you know that.
Sorry again for not really helping - but maybe this is at least a bit encouraging.
Do you know this sample: http://labs.adobe.com/technologies/cirrus/samples/ ?
I always tested with that so I knew it wasn't some problem with my code.

Asynchronous socket callbacks do not work in Mono/Linux

I'm exploring porting a .NET C# application from Windows to Linux using Mono. The problem I'm stuck with is that asynchronous TCP socket calls do not work. This means that I can send data with no problems but I'm only seem to be able to receive the very first response from the socket (via Socket.BeginReceive()). The next BeginReceive() puts the thread into a wait state.
In it possible in principle that our socket code contains a bug but as it's been working flawlessly in Windows for years.
Thank you
This works fine with the mono-2-10 branch (soon to be released as Mono 2.10) and master.
The Mono 2.6.7 shipped with ubuntu fails and so does Mono 2.8. I've found the problem and I am testing a fix.. The next releases in the 2.6.x series will have the fix (also 2.8.x if there's any, since we are moving to 2.10 in a few days).
Btw, you should report problems in Mono following http://mono-project.com/Bugs instead of here.
If you use a synchronous socket, do things work as expected? That's a quick way to help narrow down the issue.

ACE and asynchronous UDP communication

I am currently working on a robotics simulation environment.
Robots, that can interact with he virtual wold can be controlled/monitored via a network connection.
For the whole network communication (and of course other things e.g. Threads) we use the ACE library.
The problem I have now is that it seems to me that the asynchronous UDP part is broken.
When running the test program "test_udp_proactor -h localhost -p 55555" that comes with ACE I will always get the errorcode 89 (Destination address required).
So far this is what I tried, but nothing helped:
recompiling newer/different versions of ACE
modifying the code of test_udp_proactor, recreating a similar program
changing the environment (different PC with 32bit CPU and Ubuntu 9.10)
When using synchronous methods everything works just fine, so there is no error with the network hardware/software.
I searched google and this site for hours/days now and it seems that nobody else has this problem! At least I can't find it.
I am really frustrated now, because as far as I understand it, ACE is really mature and reliable. Though some people are very fond of the design of it.
It is used in the aerospace community, where reliability and Real-Time aspects are a must!
I can't believe ACE doesn't support asynch. UDP communication and/or nobody else found that out.
Can somebody run a simple test for me with test_udp_proactor to verify this behavior?
We have to use a real-time capable system, so windows is not an option...
Any other hints and/or tips, preferably from the ACE-gurus ? :-)
Thank you very much
Try looking at the problem at a system call level. Use strace to see what system calls and values are being sent to the kernel and what error codes those system calls are returning.
You may find your problem quickly.

Resources