I have the following scenario.
I have a LAN and more than one GSM modems are connected to a server. I want to receive incoming call on GSM modem and transfer this call to other PC on the network. Is it possible? Can anyone give me an idea to achieve this?
You cannot 'transfer the call'.
You will have to receive the calls from each modem on the server only, then you can implement something like a VOIP/sound streaming system by which you can simply send and receive the audio between server and client(s).
Related
my company uses the application PRTG from paessler.com to monitor several SNMP sensors, I need to monitor the voltage of some devices and transmit it to the manager.
I was going to use an ESP8266 programmed via arduino to do it.
So far I've been able to send data to the ESP via UDP, and I configured it in the manager so it can retrieve the information from it and ping it.
The ping tests are successful however the monitoring does not work, by using the serial interface I can see that the ESP is receiving the data from the manager, with the OID that was set up. But the monitor shows it as inactive, I set up the ESP to send a simple string in the response.
When using a program called Packet Sender I am able to send the udp packets and receive the response as well, and everything works fine.
The ports I am using is 161 to receive in the ESP and I made it send to the 161, 123, 1023 as i saw specified in the prtg site
I may be sending the packets trough a port that is not the right one, or maybe I have to put a header before the message so the controller can Interpret it. I am not sure what the error can be. Any help will be apreciated
pretty easy - simply use the http push sensor from PRTG:
https://www.paessler.com/manuals/prtg/http_push_data_sensor
All best
Christian
I am trying to use gprs for remote monitoring using quectel m95 and pic controllers.
I know a little bit of http commands used for this purpose and we can send data and receive data from server using http POST and GET commands.
Now my application is such that my app request some data from the server.
The server has to get this data from the pic controller using gprs.
How can I send a request from the server to the pic controller which is interfaced using quectel modem.
Also I know that the server has to keep track of the IP address assigned to the modem when initialising a gprs context.
Then only it can send request to the modem.
I want to know is this feasible, if yes how can one achieve this.
Please do throw some light upon this.
Regards
Sanket
The Quectel GPRS module (modem) features a TCP/IP stack, and you treat it as the client in the server-client model. Refer to the Quectel reference material for specific AT commands required to achieve a certain task, but here's the general process:
The PIC initiates the GPRS context in the modem (comms between the PIC and the modem is via a UART).
The PIC initiates the opening of a TCP/IP connection to your server on the GPRS context. The public IP address of the server must be known to the PIC, so keep it static.
The server accepts the client connection request and assigns a socket for data transfer.
Data is sent through the open TCP/IP connection from either end. If originating at the PIC, the data must first be sent over the UART to the modem to forward to the server. If originating in your app on the server, the data must be placed in a TCP/IP packet and directed through the socket to the client. Note that once the connection is open, the socket is bound to the client - this is what you need to keep track of (should you have multiple clients).
Is it possible to get sensor output from Arduino via Ethernet connection and to send data to Arduino via Ethernet?
So basically can "replace" serial port with Ethernet port?
The typical way to do this is with an Arduino Ethernet shield, a small hardware module that plugs into your Arduino board:
http://arduino.cc/en/Main/ArduinoEthernetShield
Updated:
One very common approach for client to server communication would be to use HTTP over TCP/IP. See this example on the Ardunio site of a simple client on an Ardunio connecting with a server (in this case google):
http://arduino.cc/en/Tutorial/WebClient
For your use case you can simply create your own server and modify the example to send data to it.
Alternatively you can skip the HTTP part and just use sockets - there is an open source example here:
https://github.com/billroy/socket.io-arduino-client
Basically I have an Arduino UNO that I have connected via Ethernet to my router. I have logged the IP with my server and I would like to push data to my arduino. I guess the flow of data would be to send data (not sure the best way? Should I just open up a port and stream the data?) to the router that then forwards it to my Arduino at a local address assigned by my router.
How can I tell the router to forward this information on without logging in and changing anything with the router. The point of this exercise is to do everything with code and not do any other activities like logging into the router and setting things up. I want to do this as I have my Arduino recording temperature and I want to push data to state if it should switch sending the data from degrees or Fahrenheit or visa versa.
I would use a socket server with a publish/subscribe pattern. Probably several out there but I know XSockets.NET best.
A few hours ago I actually connected my Arduino to XSockets and communicated between webpages and my arduino both ways.
I will put the code on github when I am done, but you can look at a video showing the concept here: The Stuff For You Starts At 3:20
You dont need to open any ports as long as your arduino and server is on the same local network. Since IP adresses maps all devices on a network including your arduino.
The reason you want to open ports on your router is to make people outside your local network access a server on your network. Reasons why port forwarding exists is that when someone sends a packet of data to your public IP (which is your router) it doesent know which local IP to send the packet to. It then discards it, unless you port forward a port to a local IP, which means your router sends all packets with that port to that local IP adress.
You also need to make your own server program, for example a java program to act as a server.
I made something similar to what you are looking for, but i use a wifi shield instead. I've had some problems with maintaining connections with it, but so far it seems that it's a problem with the wifi libary.
You still might learn something from it though:
Maintaining communication between Arduino and Java program
If you want to know more about how the java server works in general, here is a great tutorial which explains a lot of the basics:
http://www.thenewboston.org/watch.php?cat=25&number=38
I have Sim900 modem which have TCP/IP stack. I have developed website which return data in json. like if you hit my url;
http://mywebsite.com/?id=8&certkey=Hljhph895D5
then it will return value like
{'name':'Ali', 'Age':23}
I would like to know how to fetch data using Sim900 modem. any help would be appreciated.
The GSM (GPRS, UMTS etc) connection is lower level than the IP connection. So you need to make a GPRS or UMTS data connection from your modem to the operator's network, and an IP connection on top of that (usually both connections are done with one single connect command to the modem).
Then you can use this IP connection like any normal internet connection, and retrieve your json data.
How you make the GPRS/UMTS and IP connections, depends upon your platform.
As you are using C#, I guess it's Windows.
If the modem supports newer Windows interfaces, you can use Windows Mobile Broadband API on Win 7 or 8(desktop).
If the modem doesn't support Mobile Broadband API, then you can use AT commands. There is lots of help on the internet for that.