SIP to PSTN gateway connection from asterisk? - voip

We are working on a web phone application that can make sip calls to other devices and make PSTN calls as well. We use Asterisk 1.8 as our sip server. The SIP calls from the web phone is working fine.
We want to be able to provide SIP to PSTN calling service to our clients and thus require to connect to a PSTN VOIP Gateway. Only outgoing (SIP to PSTN) calls are required for our system. My question is, are there companies that provide such services which can provide us with connection to the gateway to route calls to PSTN without any limit for the number of simultaneous calls. All the companies I had contacted told me about SIP Trunking with a fixed number of ports. We plan to have multiple clients registered to our system and cannot be sure of the number of simultaneous calls required.

I know this is an old question, but I was searching for something and saw this hadnt been answered properly.
All the vendors telling you to get a SIP trunk are correct. Even though you dont know how many simultaneous calls you need, that doesnt matter. The number of ports if the number of simultaneous calls you May end up using. This is a number you need to provide them for ensuring they can dedicate those for you.
Sip Trunks are basically SIP lines that can call over the PSTN network.

Related

VoIP service to make a bridge between Android phone and Ubuntu server

I want to write an application which will be a bridge between VoIP app and phone line.
E.G.:
- I am writing in Skype to user XXX "call to ******"
- User XXX call me back and by phone modem calling to ******
- So I can speak throw my VoIP and phone modem for free (except internet and phone fees)
I thought to use something like this.
The better description is here in Calling section.
But it is outdated and my server part is on Ubuntu
Could you please advice VoIP (e.g. Skype, Viber, WhatsApp, etc) which I can use for such purpose? It would be great to have a client on Android Phone and server on Ubuntu.
Thank a lot,
If I have well understood, the use case is:
A wants to call B through an application running in a mobile device
B has a phone land or mobile line, but not a VoIP one to receive the call.
Bridge between internet and phone lines is to be done at home (A's home) without specific subscription costs, that is to say, without the services of a VoIP provider (I should like here to suggest rethinking the use of a well stablished solution as costs to call phone lines from IP can be really cheap).
Well, there is a lot of solutions for this scenario. I am going to speak about one of them that I consider interesting because it opens the way to a lot of additional communication services.
First, the softphone. To make and receive calls, A will need an application in his or her device. Consider a softphone as Zoiper or Jitsi Meet.
Then, the gateway between VoIp and phone lines. Asterisk can do the work as a SIP server. It is a lightweight linux software with a lot of features. It can switch VoIP lines with land phone lines via FXS - FXO cards (if the phone lines are analogue ones), ISDN cards, VoIP interfaces, bluetooth using mobile devices, etc.
Last, but not least, the connection. Ok, you do not want to expose your gateway to the dangers of all those wicked people of internet, eager to stole your phone line minutes. Connection between mobile and server could be done using a VPN (e.g. OpenVPN), or through a web app (SIP on top of WebRTC).
Once you have the asterisk working at home, you could use it as an answering machine sending email messages with the received audio, as (if your local regulations allow it) a recorder, as an IVR or as a part of a security system, calling sequencially phone numbers in case of emergency.

Unable to communicate without port-forwarding

Hi we have an IOT project that has a running website + android app , that is made on Node.js server and uses the HTTP protocol with REST API's to communicate with embedded device CC3200 from Texas Instruments .
The project controls heating beds by sending messages from web or mobile to CC3200 which is our control box that sends the commands to the heating beds .
Problems :
We require port-forwarding on certain ports , we need to get rid of it
CC3200 when post changes to the web , changes cannot be seen unless the page is refreshed .
I researched and found that there are two possible solutions , either to use IO.js or switch to MQTT . But at this final stage of the project both the solutions seem like starting from a beginning .
Any help on this will be appreciated .
PS: Port-forwarding is more of a big issue
Most solutions typically relies on a long-lasting connection initiated by the embedded device to the outside server in order to get rid of port forwarding issues. As you cited it, MQTT allows you to do just that, but so does Long-polling HTTP, or even Websockets.
Using one of the above does not necessarily mean starting from the beginning, but certainly requires some additional work to get this logic implemented on the embedded device on the first hand, and setup a publicly available secure message broker (e.g MQTT) on the other.
Another solution, would be to use UPnP IGD to dynamically add port-forwarding entries on the home gateway (if it is supported), or use STUN techniques. Note however that this solution will expose the device to the outside world, publicly, so you might want to pay attention to the security aspects this implies.
See also :
UDP Hole Punching
STUN, TURN & ICE for NAT Traversal

how voip services call multiple telephone lines at same time

I recently see a voip dialer for mobile which we can purchase a username and password. And make calls to telephones. I think thousands of people are using this service. My question is how they call to phones from the voip server? Will they take 1000+ telephone lines for calling out ??
From my limited knowledge, VOIP or voice over internet protocol works similar to a normal telephone network, using switching networks. There is probably some interface between internet and a telephone network at some point, from where the call is routed through a normal telephone exchange which sends the call to the desired receiver using switches.
BTW this is more of a question on Networking than Programming! You can try posting it on https://networkengineering.stackexchange.com/

what is the purpose of using USSD Commands in our J2ME Application? Is this possible?

I heard there is USSD Commands in Mobile.But i dont know what it is? i was googling two more sites.i did not understand it.Please anybody having knowledge about USSD Commands, share with me.
How it is useful when we using USSD Commands with our j2me midp 2.0 application development?
Please suggest me some useful URL's to get this properly.
Also, i would like to here about AT Commands too?
Thanks & Regards,
P.SARAVANAN
USSD is Unstructured Supplementary Service Data.
GSM standardizes on the syntax (i.e. message transport) of USSD but not on the semantics (i.e. what one can do with USSD is network-operator-specific).
USSD applies a request/response pattern. A user sends a USSD request which is processed by the network and eventually answered with an USSD reponse. In a nutshell, USSD allows an end user sending numerical commands. These commands are transported by protcol functionality within the SS7 signalling stack from the mobile device to the mobile network MSC (mobile switching center, the nework node controlling the mobile network). The network operator configures the MSC to handle specific USSD requests, typically to forward them to various other network elements. Among them are:
HLR (home location register, the user database) to switch on/off telephony services.
IN (intelligent network, the realtime billing platform, among others) voucher management system for prepaid top-up.
USSD gateway to branch out USSD messages to external systems.
These network elements then generate USSD responses which are transported back to the user.
Using USSD from J2ME is offered via:
Devices supporting JSR 120 (Wireless Messaging API). Consult manufacturers development documentation or device databases to check which devices are covered.
AT command (AT+CUSD) via serial interface emulation.
The user composes some message—usually rather cryptic—on the phone keyboard.
The phone sends it to the phone company network, where it is received by a computer dedicated to USSD.
The answer from this computer is sent back to the phone.
The answer could be seen on the phone screen, but it is usually with a very basic presentation.
The messages sent over USSD are not defined by any standardization body, so each network operator can implement whatever it finds suitable for its customers.

VoIP client in a browser?

Google just announced that they will add support for VoIP calls in its Gmail application.
Does someone know how this will work? Did they manage to write a web-based VoIP client, or will they require the user to have Google Talk installed and somehow (how?) call this app from the browser?
I'd also like to provide customers with a way to make/receive calls through their browser, so that they wouldn't have to install an SIP client.
Thank you.
Google don't use a VoIP client in a browser. Instead the browser is used to initiate a callback to a phone number you must have previously registered. Once you answer that call Google Voice will then ring the destination number you specified and then bridge the calls together.
I've just noticed that in my inbox. They ask you to accept their EULA to start installing Google Voice. So it's not really a browser solution.
There are several companies that have built VoIP clients as e.g. Java applets.
It is totally doable, although depending on the exact requirements it may be expensive and time consuming: for instance, echo cancellation is not exactly trivial when you need to deal with arbitrary audio drivers across any and all laptops, netbooks etc out there.
There are also consulting firms that can help with that.
Full disclaimer: I own one such company ;)

Resources