USSD Gateway implementation - linux

I am supposed to develop a USSD gateway for an operator so please help me with the following
-can I use asterisk for this purpose?
-can the asterisk system take alphanumeric characters as user input.

USSD is transported via SS7.
In order to build a USSD gateway you either need a SS7 protocol stack supporting the MAP protocol or a separate SS7 gateway (e.g. MAP-to-SOAP converter) for accessing the SS7 network. This is typically something you purchase from someone who knows what he does.
While it may be possible to (ab)use Asterisk for message routing, I would expect that you get faster results with some message gateway framework or by building an application on your own. Depends on what business logic you actually want to build on top of USSD.

Related

Guidance on assigning full phone numbers to voip servers for incoming calls

I set up my own asterisk voip server and i was able to make calls to my extension but how do i get it so I would have an actual phone number people from the outside can call in. lets say i want the phone number
555-1234 and if someone calls that number it gets routed to my voip server then i process it and etc..
I was presuming that this would work similarly like DNS where you go buy a number and then point it to your server with an A record. Then from there nginx processes the server request and provides appropriate web pages and so on.
Some information on this would be fantastic as I have no idea where to go for this kind of stuff and google hits isnt revealing a lot.
You need to get a DID (Direct Inward Dialing) from a VoIP provider. There are many ITSP providers up there that can provide DID and then send it to your Asterisk server (called SIP Trunking) and from there you can configure Asterisk to terminate the call on specific extension or IVR.
Also, DIDs are usually provided by tier 1 carrier (companies like Bell Canada, AT&T, Verizon etc). Again, DID (Direct Inward Dialing) is not something you can simply advertise from your Asterisk server unless of course you want to allow people to call you by IP. For example, 5551234#YourAsteriskIP will make sure extension ring. But users from a non sip devices (ie landline) cannot call your number.

Can we implement gateways for sending sms in node js , Any alternate for KANNEL?

Wants to create sms service how to implement gateways in nodejs other than using kannel,
Any opensource Alternates for kannel method
Basically, you can implement an SMS-Gateway in any language. While on the north part you can implement the protocol you want (XML, JSON, whatever on HTTP(S), or messaging queues, or even your own), on one south part, the one that connects to the telco network you need to talk to the SMSC which usually talks SMPP 3.4 and implementing SMPP might be tricky.
Kannel had been around for something like 20 years and I would say it had been battle tested since then. We are using it and I can't remember any single problem due to Kannel since ever.
JasminSMS is an often cited alternative but I never played with it. There are some others, just google for opensource sms gateway.
it depends on your needs for the SMS Gateway features ,there 2 alternative to kannel : playsms and jasmin SMS gateway , keep in mind you still need to have an outgoing route connected to your sms gateway to send the sms out to end users , optionaly you can connected to an sms provider , like https://www.octopush.com/api-sms-documentation/
you can build your sms gateway based on that api and plug your users to your sms gateway

How to develop my own VLR Number Lookup system using SS7 protocol?

I have been in a project which need to know the user last location from VLR(Visitor Location Register). I have seen many online SMS providers offer a special service called HLR Lookup. Some websites offer VLR lookup e.g txtnation. VLR lookup may be possible by using the flaw of a poor design choice of the Signaling System No. 7, the global network that powers your calls, in which all GSM operators tap to communicate with each other.
SS7 is really old, and nobody bothered to replace it as technology advanced in the GSM world. It is quite impossible to replace/disable/remove it now because everything is based on it.
MAP Signaling is an SS7 protocol that provides an application layer for the various nodes in GSM. Yate is a partial open source implementation of MAP.
But there is not any service for getting VLR response. So would you please advice me
How could I create my own VLR lookup system?
What type of resource I need to develop this system e.g server
Is it related to VOIP? Should I need to setup SIP server?
Thanks a lot in advance.
Firstly, I think that the service you have linked to is really just providing a HLR lookup rather than a VLR lookup from a quick look at their API - i.e. there does not seem to be anything returned by the API which a regular HLR lookup would return.
It would also be odd for a carrier to allow communication to a VLR directly from an entity outside their network - this is not really what the VLR were intended for.
To create a HLR lookup service, the most important thing you need is the access to some operators SS& network, or else to a service that will proxy SS7 requests and responses from you.
If you have this access then building on an opensoure SS7 gateway would seem a sensible starting point, for example a SIP-SS7 gateway as I think you suggest.

Linux SIP Client just to get incoming number

I'm looking for a SIP client based on linux (console only, debian if possible) for one simple goal : To let my CRM app know what is the incoming call number.
There is no need to use voice, autoresponder, etc., I just need to get the incoming call number send somewhere (fill a file with the number, add a row in a sql database, a curl request to my CRM or anything else like that)
Do you know a SIP client that can let me do this ?
Is your intent to receive a SIP INVITE and identify the calling number using this? Because you mentioned you don't need Voice or anything else, a simple SIPP kind of test tool should be fine.
Or do you want to test it over the mobile Network and hence want to use a VoIP Client. or just use the freeware of Xlite etc from either a desktop or mobile device.

USSD secure or not?

I have a question about USSD and security in this channel.
As you know today mobile banking and many payments using USSD, I want to know is USSD safe?
If USSD transactions using a5/1 for encryption,its totally broke few years a go and now can be captured by usrp (or HackRF board) and decoded by rainbow tables created for a5/1.
I think this transactions is not really safe,but I want to know more about this protocol and encryption using at this transactions. I dont know USSD codes encoded with a5/1 or GSM-7... so my question is:
What is encryption using for USSD transactions? Is the USSD using
GSM voice encryption ( a5/1) or using GSM-7 or other?
How we can make USSD secure? is possible to add additional
encryption to transactions or what you think about securing USSD
codes and transactions.
Thanks all.
In general there are two level of security in Mobile networks (in this case GSM)
AirInterface Security
Core Network Security
For the AirInterface (Radio Interface between MS and BTS) it can be encrypted or unencrypted (depend on network setting)
https://en.wikipedia.org/wiki/A5/1
https://en.wikipedia.org/wiki/A5/2
As you can see both current encryption methods are so weak specially for financial transaction (compare to acceptable encryption methods for online banking).
The real problem for USSD messages are their MAP/SS7(Sigtran) related message in the core network.
Unfortunately all USSD messages in GSM network transfer as a plain text (as a part of MAP message) and all E1 links are easily monitor-able.
Using USSD as a transmission layer (in the lack of Data connection(GPRS-3G-LTE)on network) is possible but an encryption layer is require ( and it can be implemented on Android or IOS App)

Resources