Asterisk voice delay via 3G network issue - asterisk

I build Asterisk system, and running Linphone app on iOS and Android system.
I find some issue on my solution. Only used voice service.
Running WiFi environment voice no any delay, When I accept ringing then immediately hear voice.
But running 3G environment voice had 3~5 seconds delay, and fix Jitter buffer configure on Asterisk, enable it, still not solve this issue.
At same device and environment, used Line and Wechat app, when press answer call still have voice delay. but more fast than my system.
Codec used min data packet GSM. Enable QoS.
I know maybe the biggest issue is client 3G network quality. and I still find flexible configure, can fix this.
I want running 3G environment on asterisk system, get best no delay experience.
How can I do fix this issue?

3G network have internal delay.
You can do nothing here.
But usualy it 0.5-1.
Your 3sec delay can be caused by bad 3g connection or overload on 3G or issues with your provider(or you just use 3G connection twice- in and out)

Related

BLE: What could cause BLE connection establishment to fail

I am trying to implement a Bluetooth Low Energy Host on a system with SAM E54 with FreeRTOS. The bluetooth stack I am using is Nimble (Mynewt-NimBLE from Apache). I am trying to connect the SAM E54 to a nRF52840 Dongle (driven with nRF Connect Desktop application).
When I set my device as Central (as a 4.x device, with no 5.x capabilities), the device can connect to another device without error.
But when I switch on the 5.x capabilities, (basically by changing a define's value and calling another API function), and try to connect to the same peripheral, it fails 9 out of 10 times, triggering a "connection supervisor timeout" on both the server and the client.
I tried changing the supervisor timeout value, but it won't fix the problems. When a connection is bound to be successful, the central's information is displayed immediately on nRF Connect. When connection establishment is going to fail, I know it right away (before the connection supervisor timeout is triggered) because no information about the central is displayed on nRF Connect.
Once the connection is established, it can stay on for hours, so I don't think this is an RF noise issue.
I know NimBLE is not initially designed for SAM E54 and FreeRTOS, and surely the problem comes from a wrong implementation or configuration of the stack. But right now I feel like I've tested everything, and I don't know where to dig for solutions.
The actual questions are :
To start a connection using 4.x BLE capabilities, some HCI commands packets are sent. Should these packets be any different than the packets sent when I enable the 5.x capabilities ? In both cases, I am connecting to a 4.x device.
What step of the connection establishment process fails when both server & client "think' they are connected, yet don't exchange information?

How do I recover when Arduino USB Port randomly disappears?

I'm using my computer remotely and have an Arduino Every attached to a powered USB 3.0 hub. Anyway, the Arduino is part of a hardware tool that does some nice things for me. I communicate with it through the COM port.
The problem is that sometimes, after several days or even weeks, the Arduino's COM port just disappears. Is there some way to recover that COM port without physically unplugging it?
Sometimes restarting the computer works, but since the Arduino is plugged into a Powered USB Hub, it doesn't lose its power during a computer reset, so it doesn't reset itself and the COM port doesn't show up.
This used to happen frequently when I was using Arduino Nano knock-offs. I changed over to using Genuine Arduino Every devices and it hasn't been a problem for the last couple months. However, I'm now seeing it happen again.
Does anybody have a solution for this problem, or is this just something that happens from time to time with an Arduino when its connected for weeks/months at a time?
So, I replaced all usages of String with char[] and the problem still persisted.
I finally went online and purchased an internal PCI-E USB expansion card with 7 ports. I started using that 2 weeks ago and haven't seen the problem since. The other benefit to the internal card is that when I reboot the computer, the card reboots and forces a disconnect/reconnect of all COM ports.
I guess there was just something about having an external USB Hub that was causing the problems in the first place and the internal card was much more stable.
UPDATE - After week 3, I lost communication with a couple of my Nano Every devices. Unplugging and replugging them in fixes the problem, but I need them to NOT have that problem again. I guess the internal PCI-E Usb Hub didn't solve the problem. Maybe if I plug the Every's directly into the Computers standard USB ports that might help. I'll give that a try...
UPDATE 2 - I ended up purchasing a couple wifi wall plugs. Now, I can remotely unplug my computer and remotely unplug the USB Hub Power. I just 'Shut Down' my computer remotely and then remotely power it off for a few minutes and power off the USB hub for a few minutes. I then power up the computer (I have it's BIOS set to auto boot on power-cycle) and after it boots up, I power up the USB HUB and get all devices recognized again. Sometimes, I can just power-cycle the USB HUB to get the COM Ports visible again. It's a pain, but unless somebody comes up with a better idea, that's what I'm goin' with...

Serial communication crashes in LabVIEW

I am controlling a device over serial connection using LabVIEW (version 7.0). It is connected using USB, and is installed as a virtual serial port on the computer (running Windows XP). Every now and then my device crashes when my program sends a command, and it is unable to accept any more input (the device itself also stops working) until it has timed out.
I've looked at the serial port traffic using Portmon. Whenever the device crashes the serial driver sends the command I send using my program four times instead of just once, with an IOCTL_SERIAL_GET_COMMSTATUS command in between. I cannot see what this last command returns, but I assume something happens in the communication earlier on. I'm thinking my configuration of the port is not entirely right, but I have no idea how or why. I open and close the connection to my device every time I want to write something to it.
For completeness' sake: it has a baud rate of 9600, 8 bits, no parity, 1 stop bit, and no flow control. I'm aware that the correct settings of these parameters depend on the device, but the manufacturer has not supplied any recommended settings.
The driver is a DLL of some sort? If so, this is the most likely source of your problem, and you likely will need to contact the author of the driver. LabVIEW does have crashing bugs, but by far the most common source of crashes in simple communications apps is a buggy third-party DLL.
In other words, I doubt this is a LabVIEW problem at all and that you would have the same difficulty if you wrote a C program to talk to this driver. I only know what you've posted here about your system, but after many years of chasing down such issues, I would start with the device manufacturer/driver author.
If you have evidence to the contrary, please share.

Slow internet connection requires forced reset of network adapter?

Computer is connected directly to modem via ethernet. Upon boot, an online speed test is consistently 10 Mb/s. This is significantly less than my service is supposed to be (50+). As soon as I disable and enable the ethernet adapter I can run another speed test at 60+ Mb/s. The connection appears to be stable at this point.
Additional information: Ethernet adapter is Realtek PCIe GBE Family Controller. Drivers are up to date. Tried rolling back drivers. Tried an old modems. Tried flushing DNS, resetting winsock, resetting IP. Tried changing the adapters speed from auto negotiation to 100 full.
I've got nothing. For the time being I've just got a batch file (using devmanview.exe) that resets the adapter on delay after boot but I'd like a more elegant solution. I've had hilarious conversations with my ISP support where I realize this is no longer on their script so they're no help.
Thanks for any help.
I stumbled upon a fix. Turns out the power output to wifi in my router settings was set to 100%. On a whim, I turned this down to 75%. This didn't seem to effect the wifi performance elsewhere in the house but it made my ethernet adapter resolve the connection speed correctly and perform more reliably.
The router is a Motorola Surfboard modem/router combo.

Arduino 3G shield

I have an Arduino UNO and a 3G shield ( http://imall.iteadstudio.com/development-platform/arduino/im121026002.html ). To connect to the internet I had only to configure the APN once which the SIM provider gave me and write the PIN number via AT commands in the setup() function, that's all.
I have some questions:
1) the internet key which the SIM belongs to comes with a software you have to use to connect to the internet: each time you want to connect you press CONNECT and when you are finished you press DISCONNECT. The 3G shield on the contrary needs only APN and PIN and that's it: am I forgetting anything? The module works, therfore I don't think so: what's your experience?
2) the internet key software needs to be configured with a "Dial Number" too, which I don't know what's for. The 3G shield works without any "Dial Number": any idea why?
3) sometimes while surfing the internet with the internet key, you loose the connection (maybe the provider kicks you off). In that case you have to click connect and you are in again. If something like that happens with Arduino+3G what do I have to do? I tried resetting the 3G module via the reset pin, but the module cannot register any more into the network.
Thank you in advance
1.) It sounds as though the 3G shield is set up to automatically connect to the internet when it is powered on, and the setup function does this.
Depending upon the design of the software supplied with your internet key, you may be able to configure it to do the same thing, so that you wouldn't have to press Connect/Disconnect each time.
2.) The 3G shield probably uses a default dial number like 99**1#.
3.)If the connection is lost due to external factors, e.g. the network dropping the connection, then the 3G shield probably tries to re-connect automatically. If the connection is lost because of a problem in the shield, then powering it off and on again will probably do the trick, but you will have to enter the PIN again of course.
At a guess, the reset button may lock the SIM again, and that's why it appears to lose the network. It sounds as though you would have to run the setup function again, to unlock the SIM and connect to the network.

Resources