Asterisk: Zombie channels when initiating call bridging through AMI - node.js

I am working on a web dialer interface in order to make phone calls through the browser. I am using sipml5 on the frontend and I have an asterisk/freepbx server for the backend. Everything has been going smoothly so far, but there is still one piece of functionality that I am missing. I cannot seem to bridge together two currently existing calls.
I have been using this library to send AMI commands to asterisk from the webserver.
When I try to use the AMI bridge command, the asterisk logs show my channels as being zombies and drops the call on both lines.
Following is a pastebin of the asterisk verbose/debug logs when i attempt to execute the command.
http://pastebin.com/ErmnT31w
I am an asterisk newb so I may not be thinking of this the right way.
Any suggestions on how to bridge calls via a web dialer using webrtc?
Thanks for your time

You have use single channel, one leg call out, other leg to operator
You HAVE NOT use TWO channel.
So there are no any need in bridge if it developed correct way.

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.

How to make a network listener in python?

I'm trying to build a network listener in python, which is able to capture the local network traffic from my own computer.
I've tried with sockets, but i find it very hard to use this method, because i'm not on a Linux-machine.
So, is there another method i'm not aware of, now when it's about only monitoring my own traffic? :)
What you need is called sniffer, try scapy framework.

how to communicate with my apps using IP address and socket remotely

I am to Electron and nodejs
And stuck here, actually i m making a desktop app to control every PC in network. which tells me the ip and mac of computers in the network. But now I need to talk to it and push/get some message. but how ?
Socket.io is likely the easiest way to do what you are trying to do. It'll allow you to communicate between the machines with a relatively low amount of effort.
Sockets generally work on a "server" and "client" basis, so you may want a central server that will coordinate with the clients.
This blog post from node source provides a really good intro to using them.

How to Make my asterisk server to make Outbound Calls and Recieve Inbound

I have an asterisk Soft PBX running on my Ubuntu Machine and i managed to do extensions calls from one softphone to another by doing required configurations in the Sip.Conf as well as extension.conf.I can dial as well as receive calls.Now my next target is to make this working for the real Outbound and Inbound calls.I will tell you i am a novice asterisk player who is trying to learn the things to play with.So my questions regarding this are:
Do i need some hardware to make the required things happen, if yes,Please specify.
What are the nature of the Dialplans to execute the calls successfully.
What are the things we need to get from the Telephone Service Provider End.
Also ,i will share that i am residing in INDIA.
Please guys help me.
Thanks in advance..
No, you not need any hardware.
You need SIP trunk/voip provider.

Listening a particular port on linux to access data comes from mobile device

i am newbie to Linux platform, i am working on java technology.
what i have to do is : Having a program that running on mobile devices,that sends some data to my Linux machine, now i have to create a program in java that
listen to a particular port.
access data comes on that port(which is sending by mobile device)
save that data to the database.
response back to the mobile device.
i.e. i would make my Linux system as server that can listen from many clients(mobile devices), but not getting how to configure this environment... :(
i used cent OS 5.4 and
installed jdk1.6.0_24
any help would be appreciated.....
thanx in advance!
khushi
One of Java's greatest strengths is that you can pretty much ignore the host operating system as long as you stick to core Java features. In the case you're describing, you should be able to accomplish everything by simply using the standard Java networking APIs and either the JDBC to access an existing, external database or you could choose any number of embedded Java databases such as Derby. For your stated use case, that you'll be running the application on Linux is pretty much irrelevant (which should be good news... you don't need to learn a whole operating system in addition to writing your app ;-).
Here's a nice client/server tutorial, in that it is broken into steps, and adds each new concept in another step.
Here's another client/server tutorial with much more detail.
I would write it to accept one connection at a time. Once that works, I would study the new(ish) java.lang.concurrent classes, in particular the ExecutorService, as a way of managing the worker bee handling each connection. Then change your program to handle multiple connections using those classes. Breaking it up in two steps like that will be a lot easier.

Resources