Android Native SIP Client Configuration - android

Is it possible to configure Android native SIP client from your own android application (username,password and server IP) ??. I want to create android application when user installs it, the application automatically import SIP account from my server and configure (username,password and server IP) in Android native SIP client..
I have created my own SIP client using SIP Demo tutorial but it has poor voice quality and many other problems..So now i want to use Android native SIP client

Android provides an API that supports the Session Initiation Protocol (SIP). This lets you add SIP-based internet telephony features to your applications. Android includes a full SIP protocol stack and integrated call management services that let applications easily set up outgoing and incoming voice calls, without having to manage sessions, transport-level communication, or audio record or playback directly
visit this link:
http://developer.android.com/guide/topics/connectivity/sip.html

Related

Webrtc Mobile kurento client

I want to build a mobile application where one of the participating users can broadcast audio and video to other participants and the session is recorded. I know it is possible to do this using a MCU and done a lot of research on Kurento specifically. Although I read a lot about kurento I am having trouble how I can implement a Kurento client on IOS and Android.
What steps should I be taking in order to implement a kurento client app?
For example can I use the implementations provided on http://www.webrtc.org/ ?
Creating WebRTC applications is not much different to creating standard WWW applications. In general, a WebRTC application like the one you are describing needs to have 3 layers: the client layer, the application server layer and the media server layer.
For your specific needs, Kurento Media Server can provide you the media server layer (you will be able to record and to provide group communications through MCU and SFU models) However, Kurento Media Server does not provide you the other two layers.
When using Kurento Media Server at the media server layer, the application server layer gets simplified if you base it in Java or JavaScript technologies. This is due to the fact that Kurento provides Kurento Client APIs (the APIs controling KMS capabilities) for Java and JavaScript off the shelf. Hence, you can create your application logic as if it where a standard WWW application and the only difference is that instead of using an API for accessing a DD.BB. (as commonly happens in WWW applications) you will use the Kurento Client API for accessing the media server capabilities.
For the client side (and this goes directly to the point of your question), you can use any client technology compatible with WebRTC standards. This means Kurento Media Server is not assuming anything about the client platform other than its support for WebRTC standards. Hence, if your application works correctly on WWW browsers it should also work correctly on Smarphone native applications supporting WebRTC. You don't need support for the Kurento Client API on the client device. Kurento Client API needs only to be used at the application server layer.
Closing this discussion, in a practical perspective, your best option for creating a native smartphone client application for your service is to use one of the available WebRTC stacks out there. In particular, you can use the www.webrtc.org stack (the one of Google) or the www.openwebrtc.io stack (the one of Ericsson). You should compile them and complement them with the signaling capabilities you want for interoperating with your application server.

SIP calls without SIP client

I am building an application using HTML5 with PHP restful service. This app will be converted to APK and IPA using Cordova/Phonegap. I need to implement SIP call (click to call) feature.
I have set up Kamailio SIP server. The SIP address will be pre-registered and allocated to my users.
To address (SIP address) will be embedded on the hyperlink, clicking on that should initiate SIP call between the two SIP address (Caller and Callee). I have only the audio call feature in my application.
I don't need SIP client (we don't have dial feature). Can I make SIP calls without a SIP client? Any help would be appreciated.
Thanks.
Can I make SIP calls without a SIP client?
By definition, no. A SIP client talks to a SIP server. This is not significantly different from an HTTP client talking to an HTTP server, or an SMTP client talking to an SMTP server, or an IMAP client talking to an IMAP server, or an SSH client talking to an SSH server, etc.
On Android, if the user has configured a SIP client, and if the SIP client supports something like the sip: scheme, you might be able to initiate a phone call to another SIP endpoint, though my guess is that this would require a custom Cordova plugin. I cannot speak as to what might be possible on iOS. I also do not know if there is a HTML5/JavaScript SIP client that you could integrate, though I would be somewhat surprised if there was one.
Quoting You "To address (SIP address) will be embedded on the hyperlink, clicking on that should initiate SIP call between the two SIP address (Caller and Callee). ".
You app has a link, clicking which will initiate a call. So app is working as a client so you do not need a separate client. Only thing you need to do is handle the SIP request with SDP media to lower layer (TCP/IP).
Please comment if i did not answer/understood your question properly.
If you mean without a sip client standalone application then the answer is yes, because most of click2call services work exactly in this way (e.g.: https://clic2call.demo.sociale.it/webrtc ).
But on the other hand you should consider that in that case the sip client is more than half based on the WebRTC browser implementation, and by now Cordova and Phonegap don't provide that functionality, not even with external plugin.
The good news is that Chrome supports WebRTC on Android and all desktop enviroments.

SIP Account in Android, what for?

I just dont Understand
From the text of Android Website.
It said,
"Android provides an API that supports the Session Initiation Protocol
(SIP). This lets you add SIP-based internet telephony features to your
applications"
Which then I questioned myself, can we use this SIP API in
the Ad-Hoc connection of two Android devices connected each other?
What about,
"Each participant in the application's communication session must have
a SIP account. There are many different SIP providers that offer SIP
accounts."
an Account? What is that for? I assumed the account is
for handling the data translated from and to (client-server) communication.
But what about if I used for the Ad-Hoc TWo android communication, that Has no Internet connectivity? I mean, Can I used SIP Api for this? Or i should use something else...?
This mean Android now have build-in SIP stack API.
So if you want to build SIP applications like SIP softphone, then you can use Android API for SIP without using a thirtparty SIP stack.
Many applications build with SIP for example: PJSIP, CSipSimple, Linphone ...
After have SIP application (SIP client) you must have account to login and make call with another SIP clients.
SIP is an application layer protocol, means it works on transport layer, TCP/UDP/IP/SCTP...
You can make sip client using SIP API such as voip client and make a call with two android devices without server, just direct ip call, after set up ad-hoc network.
Thanks.

Implementing Voice/Video Chat Application in android

my new task is to implement Voice/Video chat native application in Android. I browsed net for the same and it was written that using Android "SIP" API we can do it. I gone through the documents about SIP.In Implementing using SIP we required SIP address for each user which will be provided by different SIP providers. I also checked the SipDemo sample app provided in samples.
Problem is my app will be used by many Users and they can chat with any others.
So, how can we generate SIP address for each user dynamically and establish communication session ?
or each there any other way of doing this ?
Please Help
If you want to test your android app you can generate a free sip account from AntiSip.
and for generating sip account dynamically you have to configure sip on your server with the help of Asterisk:
Two VoIP software can contact each other directly by using direct SIP URI like username#IP:port.
This can work fine on local networks where the UA (sip user agent) has fix address. Otherwise you will need to use a SIP server (This is the main role of a SIP registrar server: to keep a track of the user locations). There are plenty open source software for this like the above mentioned Asterisk but you can also find a lot of services offering free calls (free from softphone to softphone; they charge only if you wish to make outbound calls to landline or mobile numbers).

How to make Android VOIP App using REST based API of SIP Server

I am totally new in VOIP area.
My client has a API which is based on REST. My task is to create a Android app which enable the user to call using WiFi or Cellular Network and the SIP Server of my client. I also have to fetch user's data and perform some other functionality using that API.
Please suggest me the working procedure that I should follow.
I have viewed SIP Demo provided by Android Developer's Website but I guess it is not the thing i am looking for.
I've also asked about which codec to choose: Which is the best SIP compatible codec type for Android
The API should be used to get data from the SIP server. API itself cannot send the packet stream and data between the caller and called. RTP Stream is used for handling the voice data. So, the working procedure should be:
Initiate a SIP Session using the SIP Server
Create RTP Packet and send through the server to the called person
After terminating the call, use the REST API to get the information of the call etc

Categories

Resources