Imagine that you are on a long lasting business trip to the opposite side of the globe and you have to provide transparent and affordable voice connectivity with those on the other side where you came from. All modern means like Hangouts, Viber, Skype, Webex and others would suit only to technically advanced individuals or those who are used to the technologies of the 21st century. What about parents, grandparents, brothers, sisters, friends, or colleagues who don’t understand computers, don’t have smartphones or don’t want to install special applications on their phones for the sake of a single phone call? It seems so easy to make it complicated at first glance, where I can’t but agree with the following lines:
“Making things hard is easy,
Making things easy is hard.”
Therefore, I needed something very simple, yet functional and cheap for both sides to make telephone calls across the world. Buying a virtual local phone number seemed a good idea for me. To make things more challenging, this phone number had to be used to contact not only me, but also another person without any trouble for the calling party. And as a technically advanced person, I had to have all access to the equipment in case if something went wrong, for troubleshooting purposes or to keep it operational.
Eventually I came up with the product called GoIP. GoIP is a GSM-VoIP gateway, which can bridge VoIP and mobile networks together. I ordered it from ebay for about 100$. If you say it’s expensive, try and take a look at other GSM gateways with call routing and IVR functionality on the market.
The main idea was to buy a local SIP telephone number from a local service provider. The SIP account would give me the ability to establish connection from any device and from any part of the world via Internet. And wherever I would be, I would just have to buy three SIM-cards – the first one would be inserted into GoIP, the second and the third ones would be placed into my and my companion’s phones so that we could make free mobile in-network calls in the country of residence and use the same mobile network to call the motherland free of charge.
The graphical representation of the idea is in the following diagram:
As you can see, anyone who wishes to make a call would have to dial the local SIP number first. In my diagram this number is in Russia. Then GoIP will answer the call. Depending on how it was configured, it either would ask for a password to pass the call through or will offer to dial an extension associated with my or my companion’s mobile phone numbers. Other options include call forwarding (if you have an IP PBX) and free dial.
I have also considered the opportunity to connect to my SIP account directly from the mobile phone using 3G/4G networks, but because of certain caveats I decided not to do this. The first reason is that the mobile internet connection is unstable. Whenever there is a switch between mobile cells or even between 2G/3G/4G networks there’s a chance that the VoIP call would be interrupted. The second issue is battery drain – staying online and monitoring SIP connections won’t make the battery last long. Third, VoIP applications are unstable – you never know when they lose connection, some of them even don’t restore it. Forth, some mobile providers disallow VoIP traffic in their mobile networks. And so on and so forth…
This is why the decision was made to organize the connectivity in such a way. It is simple to use but difficult to setup. Actually, GoIP is not as straightforward as you might think. Its logic varies depending on whether you call the SIP number or dial the mobile SIM-card number.
The main differences are the following:
- IVR works only on SIM-card numbers. When you dial the SIM-card number and if you have a password set, you will hear something like “Enter your password, please…”. The invitation to dial the number will be like “Enter the number, please…”.
- If you call the VoIP number, IVR won’t react. Instead, if you have a password set, it will play two short tones, after which you have to dial the password finishing with pound key. You will not hear the verbal invitation to dial the number either. Instead, you will hear a dial tone from the mobile network to which your SIM-card is associated with (the sound may seem a little strange though).
- If you dial the VoIP number and the system returns a busy tone, it means that it couldn’t route the call into the mobile network. The reasons might vary. First, try to make sure that SIM-card is provisioned, the status says “LOGIN” and you see the provider’s name. If you don’t see any of those three, you might get a busy tone every time you dial the VoIP number. Also, I didn’t quite figure this out, but I think the chosen locale also plays a big part in this process.
- Also you have to figure out your SIP service provider’s parameters like “DTMF Signalling”, “Outband DTMF Type” and others. If you don’t hit all of them right you might as well end up with a busy tone.
Because of those peculiarities, you might think that GoIP only works one-way routing call from GSM to VoIP. Actually, it works two-ways (GSM-VoIP and VoIP-GSM) but differently in each one. You might also miss out how to create extensions. Let’s set extension 1 to number 123-333-444 and extension 2 to number 123-777-888 and prevent anyone from dialing more than 1 digit for security reasons. To do so, go to Dial Plan field under Call Divert section and type the following code:
Dial plan functionality on GoIP is not very flexible so it is hard to make it secure. This configuration will allow any person calling 555-555 to dial extension 1 to call me or dial 2 to call my partner and it will prevent from calling anywhere else.
There are many guides in the Internet on how to configure GoIP in general or dial plans in particular. What I wrote about in this article are the things that weren’t written anywhere.
One more thing. SIP in its nature is very tricky. You must know a lot of theory and have some practice before troubleshooting any connections. For example, my SIP provider offers me a SIP proxy on its side. It relieves me from a lot of headache, so I’m able to connect to it from behind any possible NAT or router to be more specific. If proxy is used, then implicitly any SIP-ALG functionality on in-between routers must be turned off. If your SIP provider does not have a SIP proxy, then turning on SIP-ALG on your router might come in handy. You might also try your luck with STUN servers and/or portforwarding if needed.
To finish it all, I will give you my GoIP configuration example for reference: