I'm trying to set up a half-duplex VoIP communication system. One client is walkie-talkie like radio, the other is a Linux system. My initial attempt was to use Twinkle, but after sniffing the network line through Wireshark, I found out that Twinkle is still sending out packets even if I mute it. The system only allows for half-duplex communication, so the Linux client is hogging the channel.
Is there a way I can either hodgepodge half-duplex on the Linux client or is there a VoIP client with G.711 u-law and PTT that only sends things out when keyed in? I did a search, but I couldn't find anything that had both.
EDIT: I wanted to add I did make a hack of two scripts that blocks all traffic going to the server and unblocks it, but I don't find this solution elegant at all.
Related
I know that bluetooth uses hoping, and because of this difficult to intercept traffic.
Сan i put my dong into monitoring mode?
If for example are 30 devices nearby, and i will always listen just one bluetooth channel, and my dongle works in monitor mode, should i get sometimes some data?
Can i use for these purposes Hcidump or tcpdump?
If I understand correctly, if bluetooth device does not have a password, i can directly interact with its services(with hcitool and tmux).?
I read that i can watch the battery level, device name, and other information.
PS: sorry for bad english.
It is possible to monitor traffic between Bluetooth devices but I am quite sure that your default laptop dongle is not capable of doing that.
Before establishing connection between two Bluetooth devices, they send connection request/response packets on primary advertising channels (37th, 38th, 39th channel). You need to capture these packets to learn hopping pattern, connection interval and etc. After receiving packets, you can monitor insecure Bluetooth connections. However it is hard to monitor 30 device simultaneously because you need to make time division between each connection.
Let's answer your questions.
It might be possible but you need to write driver level code.
It might be possible. As I mentioned, it is good approach to capture connection request/response packets before monitoring devices.
I have no idea about these tools.
To manipulate services, you need to know service handle and duplicate GATT client's mac address. I am not sure that, this method will work.
I have an application for linux. I am using SocketCAN to talk to the CAN bus. We are doing this on a Beaglebone Black based device we made ourselves.
We have another device we need to listen to traffic from. This device sends a ton of data way faster than we need it or can process it.
I am trying to figure out a good way to slow down the traffic coming from this device to ours over CAN.
I found the document that talks about using traffic control (tc) for linux. I have been trying the examples and not seeing any difference in the incoming traffic.
Everything I have read about this gives examples about limiting the OUTBOUND traffic from an app to the CAN bus.
My question is whether traffic control (tc) can be used to limit incoming traffic to the kernel (and the apps that are listening)?
If not, then is there another tool that can be used for this?
I am ok dropping a percentage of packets. I assume that would have to happen.
I'm writing an application that interfaces with Bluetooth devices using Headset Profile. These devices primarily communicate via AT commands send over a Serial Port Profile (SPP) connection. SPP is directly on top of RFCOMM.
My concern is whether or not I am guaranteed to receive "whole" packets (AT commands), or if there is a possibility that I will need to be able to handle an AT command split across multiple packets.
Furthermore, if the RFCOMM protocol does not guarantee this, does the protocol stack do any processing to guarantee receiving "whole" AT commands? I am using BlueZ 5.46 on a Linux 4.12 kernel.
If possible, please reference the standard or an external source that details how RFCOMM guarantees this so I can learn a bit more about it.
For a school project, I need to make an eavesdropping experiment between a SIP user agent and a SIP server. The experiment has to include the following steps:
i)Establish a voice/data communication between two SIP agent.
ii) Capture the signal (i.e. SIP packets) in wireshark.
iii) Change the content of the signal via wireshark or some
other tool that fits better to this purpose.
iv) Encrypting/securing the communication between the agents somehow
to avoid third parties (e.g. wireshark to eavesdrop the communication)
from eavesdropping.
Could you please tell me if there are tools for simulating the above scenario? I prefer to do this programmatically actually and I know there is an open source SIP stack named resip (resiprocate.org) which provides an example user agent and server already in C++. Can I simulate this scenario programmatically or it's better to use some tools that can do this?
There are bunch of possibilities you can check/use for your project purposes.
i)Establish a voice/data communication between two SIP agent
The best way will be to use some already made solution (like e.g. some soft SIP phones).
iii) Change the content of the signal via wireshark or some other
tool that fits better to this purpose.
I think that it is not possible to change traffic using wireshark at all. This is only packet sniffer so you can grab the packets without any modifications of it. You will need some tool that will be able to read and modify packets payload (look at some open source IPS code for some hints).
iv) Encrypting/securing the communication between the agents somehow
to avoid third parties (e.g. wireshark to eavesdrop the communication)
from eavesdropping.
The easiest way will be to establish some tunnel (e.g. VPN) between client and server. This will encrypt and secure the communication.
A sip proxy would be able to capture, manipulate/modify sip packets as well as implement SSL encryption if setup correctly. Generally these servers sit in between 2 sip UA's. Some popular sip proxies are
https://www.kamailio.org/
https://www.opensips.org
I have an application where I have about 10,000 pieces of monitoring equipment across the US that periodically dials into a bank of 32 phone lines. I have two receivers of 16 lines each that answer the call and temporarily stores a small alpha string. I then have a computer that polls the receivers and parses the string and copies it to a database.
I am looking to replace the phone lines and the receivers with a voip solution and rewrite the software to parse the data string.
Any ideas on where to get started?
Tom's suggestion about Asterisk is a good one for the overall system.
However you will still need to decode the data sent from your remote equipment from an audio signal to a data signal. That task is what the "dem" part of Modem stands for (Modulate/Demodulate). Either you do this with a canned hardware/software package (as you are currently doing with a commercial modem) or you have to emulate the modem in software yourself which will be extremely tricky to code at the very least if you attempt it yourself (heaps of standards that you have to comply with for a general modem solution, plus the solution needs to work in real time)
For the software approach could start with this page Linmodems.org (just a something I saw on google prompted by your question). Alternatively do lots of searches on google for software modems. Getting someone else's code is the best approach for this sort of code :)
Whatever you end up doing I suspect it will be rather custom.
A good place to start is probably Asterisk PBX.
I take it you don't want to replace the modems at the client sites (the easiest thing on the server side would be each clients had its own IP software stack, and used its modem to call an ISP and establish an internet connection, and then talk to your server using TCP or UDP or HTTP or whatever).
Assuming that you don't have IP capability on the client sites, Googling suggests that the relevent technology is called "Modem over IP" or "MoIP" (which Wikipedia seems to be confusing with "Mobile over IP").
VoIP consists of SIP for signalling (e.g. for call set-up and call tear-down) plus some codecs (e.g. H.323) for traffic (encoded voice) while the call is established.
I'm guessing that MoIP can keep the SIP signalling, but needs to use some different codecs.
V.150 Modem over IP White Paper looks like an introduction to the technologies. I don't know what vendors there are.
I presume you are looking to find a way to do this without mofidying the modem hardware at your remote sites. If this is the case you will have to find or write signal processing software to demodulate the encoded signal from the modem. Fortunately, signal encodings on a modem are designed to be easy to do this with.
Maybe somebody makes software modem libaries that do this sort of thing. The other parts of the problem will be emulating the handshaking on the modem so it plays nicely with the remote sites.
If you can modify the software (really just the number to dial, but it would have to include the data you want to transfer) at the 10000 sites (not likely!), you could in theory use DTMF in the "dial" string to key the data over into Asterisk. Ok, more than a bit hackey, but it would avoid having to have a software modem. Note: you'd want a checksum!! (and maybe send it multiple times) And a way to tell the caller if it was received correctly. Like I said, hackey but cute.