What is RIL in telephony? - telephony

Can any one help me out to understand about RIL in telephony.
I did hear RIL word in telephony domain. Can you please let me know what it is exactly.

Radio Interface Layer: It is the bridge between Android phone framework services and the hardware. It consist of :
RIL Daemon:-
The RIL Daemon initializes the Vendor RIL, processes all communication from Android telephony services and dispatches calls to the Vendor RIL as solicitated commands.
RILD will be initialized during the Android system start up. Each vendor RIL has RIL_Init function.
Vendor RIL:-
It is a library specific to each modem. The radio-specific vendor RIL of ril.h that processes all communication with radio hardware and dispatches calls to the RIL Daemon(rild) through unsolicited commands.
Android Telephony framework has one interface file Ril.java which keeps track of each incoming/outgoing request that has been sent/receive to RIL.It basically forms socket connection wih RIL daemon. RIL daemon links framework to vendor Ril.Each mobile vendor will have their own implementation of vendor RIl and available in .so(shared library).The design and implementation of vendor ril depends upon the modem used.
Initialisation:-
When power on,phone process starts and android telephony framework is initialized,Framework makes socket connection to ril damon ,the ril damon finds the path of vendor ril library from system properties and loads vendor ril in form of.so library.
The vendor ril is first intialized by calling its RIL_INIT method.
The ril daemon part of RIL calls RIL_REGISTER to provide reference of each vendor ril functions to the telephony frmaework.
More information:-
https://wladimir-tm4pda.github.io/porting/telephony.html
https://source.android.com/devices/tech/connect/ril

Related

How to send data between two already configured HC-05 modules pi pico

I'm building an small project in which I'd like to send information from a master HC-05 bluetooth module to an slave one (both of them connected to different pi pico's), I've already synced them following Bluetooth HC-05 master-slave configuration using CircuitPython tutorial, I've finished the set up and now both modules (master and slave) seem to be properly connected, now the problem is that I don't know how to send data from one to the other.
All the tutorials that I've found that imply bluetooth communication seem to do it from a mobile Android app to the slave module, but what I'd like to do is to read data from an analog joystick with one pi pico and send it to through my master HC-05 the slave module (which would be connected to another pico) and then control an electric motor with this received data.
As I understand, the configuration process was finished in CircuitPython but this DOES NOT obligate me to continue with CircuitPython, I mean, I could do my implementation with microPython for example as Circuit Python was used only for the configuration process, is this correct?
My main question is, what is the library/process I could use to send data from master module to slave module?
Pd: I know there is a Raspberry Stack Exchange site but I posted my question here for visibility and also it is related to software too!.

How to Send AT commands to SIM900 while pppd is running

I have a Raspberry pi with SIM900 GSM module. currently i am using ttyUSB0 as pppd but i also want to send AT commands (send/receive SMS) to SIM900 while pppd is active. I was created multiple virtual serial ports (like gsmtty1,gsmtty2 etc) but those are not working with screen/minicom.
While these virtual serial ports might work (assuming you are talking about the kernel's 07.10 multiplexing support), your first attempt should be to use the other serial device, e.g. /dev/ttyUSB1.
This is assuming the modem provides two serial endpoints, which it is not absolutely required to do, but virtual all modems that support USB does, so I would be very surprised if it really only had one.
Notice that the 07.10 multiplexing protocol requires explicit command and implementation support from the modem and is specified in a 3GPP specification which was created in the 90-ties to cater for the lack of multiplexing in the serial interfaces that were in use at that time (RS-232, IrDA, bluetooth).
But it required dedicated driver support on the operating side, and for windows there was no default drivers supplied so you had to install something additional (and I think the quality of those were not so great either) so 07.10 never got any serious momentum. Today USB's native multiple endpoint support have in many ways obsoleted the 07.10 protocol.

How to control modems inside a GoIP gateway with AT commands

We have acquired a 4 channel GSM Gateway, model GoIPx4-G610 (the manual is titled "GoIP Series SIM Card for GSM Voice Gateway - GSM VOIP Gateway").
We are looking to develop a custom application to control the GOIP gateway. We have developed in the past custom applications that controlled simple GSM modems through AT commands for sending/receiving SMS messages in particular.
Although the gateway can be controlled through SIP we would like to control the GSM modems embedded in the gateway through AT commands if possible. This is because of the fine grained control AT commands offer and because we do not need VoIP features since we need only to send/receive SMS messages.
The gateway runs an unknown Linux instance to which we can connect through telnet. Unfortunately we do not have the credentials to authenticate to it. The gateway also has a web http administration interface to which we can authenticate but we can't find there settings/information related to channels that we can use for AT commands.
The documentation is very poor and the provider could not offer us any helpful information regarding this.
If anyone knows how we can send AT commands to the modems inside the gateway it is highly appreciated.
Up to now we have tried a brute force attack on the telnet interface to find the credentials with no success. We hope that once we can connect to the Linux instance driving the gateway we can connect from there to the modems through serial connections (to send AT commands) and we can reconfigure it to redirect the connections outside of the modem or to make an interface for sending commands to the modems.
The device has an update firmware option (through the web interface) which always gives the error "download failed". Downloaded the firmware (.pkg file) manually from their update pages and extracted the files from the embedded Linux distribution that should correspond to the ones placed on the gateway. The files were kept in the pkg file as an ROMFS compressed image which we mounted on a test station to see the files (probably the running OS on the gateway is an uClinux distribution).
Did this hoping that we can find there the /etc/passwd file which could be cracked with classic attack. However didn't found it and probably that file is placed on the gateway flash memory (contrary to the Linux files which are stored on the ROM memory). So if there is a way to erase / reset this flash memory that could be a solution (in case the gateway doesn't refuse to boot without those files). Another solution would be to be able to access the flash memory with the passwd file if there is such thing.
You might take the lid off and see what parts are inside.
If it's a general purpose processor with a published data sheet and without a lot of code security features, you might be in luck. For example, you might find:
By guessing headers or tracing from known pins, a console serial port, either logic level or RS232, hopefully with a shell listening
A boot mode pin for the micro connected to a resistor, which you could jumper to cause the micro to boot to a uart bootloader where you could download a new system image, or patch the existing one. If you are lucky the bootloader would be something known, like u-boot.
A JTAG port for the processor
A removable storage device which you could remove and alter
an SPI flash which you could carefully tap into and alter
A flash chip which you could desolder and transplant to a programmer
You could also make a GPL sources request for the kernel and whatever else from the vendor. Or even just trying to identify versions of things like a web server could help you look up any known exploits. Since it seems you have a similar system image to that which is installed, looking through it could be helpful - look for additional daemons running, listening on ports you weren't previously aware of, left over debug support, etc.
I am the developer of the GoIP you've purchased. Instead of trying to hack the GoIP, did you contact us to support your development of custom applications? Here are the updates of GoIP for you.
GoIP now supports SMPP. This could be an alternative to using AT commands to send and receive SMS.
API (Application Programming Interface) for GoIP is now available to support your custom application development.
If AT commands are still the preferred method, please contact us and I would be happy to discuss with you further.

How Microsoft Network Monitor works

Does Microsoft Network Monitor depends on pcap/winpcap/libpcap libary? Or it has built its own libary/drivers to capture network packets? I cannot find any information about that subject. I am asking, cos Microsoft Network Monitor does not require restart after installation (so it does not load kernel level drivers?) and captures incoming packets even on Windows 7, where raw packets capturing does not work.
Additional information about raw packets limitation: http://social.technet.microsoft.com/Forums/en-US/w7itpronetworking/thread/65ce9bee-897b-4c19-a4c6-4d3da103be44/
Edit: I find answer myself -
The Network Monitor engine is divided into two parts: the capture engine and the parsing engine.
The capture engine is a driver that interfaces with the Network Driver Interface Specification (NDIS) to read frame data. It is a system driver that is installed automatically on Windows Vista. On previous operating systems, the capture driver is part of the system.
The parsing engine, on the other hand, is in user mode. This engine uses Network Monitor Parsing Language (NPL) files to determine how to parse raw frame data. It also filters frames.
The API can access both parts of the engine, as well as save and load capture files.
Windows may support loading kernel modules (.sys files) without needing to reboot, so there might not have to be a reboot after installing Network Monitor.
Network Monitor does not use WinPcap; it has, as you note, its own NDIS driver that serves a similar purpose to WinPcap's NDIS driver.

Can a gsm modem be integrated with the web server?

I m doing a project for sending messages to various users at the same time.m using gsm modem for doing this service.I want to know whether a gsm modem can be integarted with the web server?how and what web server i can use?
A GSM modem is a piece of hardware. A webserver is a piece of software that usually runs on a general purpose server computer. You might be able to install a GSM modem in the same server that runs your web server, but you would only want to do this in minimal applications such as embedded systems.
If you want to send text messages or otherwise communicate over the GSM network, you will probably be better off working with some sort of telecom gateway.