voip interview questions
Top voip frequently asked interview questions
I wanted to know why UDP is used in RTP rather than TCP ?. Major VoIP Tools used only UDP as i hacked some of the VoIP OSS.
Source: (StackOverflow)
i'm trying to build a simple VoIP application using c# so i found that the Ozeki SDK
is the simple way to do that but when i'm trying to registration SIP account using the SIPAccount
class from the Ozeki SDK
and my local IP
it fail always and this is the code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ozeki.VoIP;
using Ozeki.VoIP.SDK;
namespace SIP_R
{
class Program
{
private static ISoftPhone softphone; // softphone object
private static IPhoneLine phoneLine; // phoneline object
private static void Main(string[] args)
{
// Create a softphone object with RTP port range 5000-10000
softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
// SIP account registration data, (supplied by your VoIP service provider)
var registrationRequired = true;
var userName = "1000";
var displayName = "1000";
var authenticationId = "1000";
var registerPassword = "1000";
var domainHost = SoftPhoneFactory.GetLocalIP().ToString();
var domainPort = 9000;
var account = new SIPAccount(registrationRequired, displayName, userName, authenticationId, registerPassword, domainHost, domainPort);
// Send SIP regitration request
RegisterAccount(account);
// Prevents the termination of the application
Console.ReadLine();
}
static void RegisterAccount(SIPAccount account)
{
try
{
phoneLine = softphone.CreatePhoneLine(account);
phoneLine.RegistrationStateChanged += sipAccount_RegStateChanged;
softphone.RegisterPhoneLine(phoneLine);
}
catch (Exception ex)
{
Console.WriteLine("Error during SIP registration: " + ex);
}
}
static void sipAccount_RegStateChanged(object sender, RegistrationStateChangedArgs e)
{
if (e.State == RegState.Error || e.State == RegState.NotRegistered)
Console.WriteLine("Registration failed!");
if (e.State == RegState.RegistrationSucceeded)
Console.WriteLine("Registration succeeded - Online!");
}
}
}
so please any help on what to do many thanks in advance for any help..
when trying to make softphone calls using Ozeki SDK and local IP it give an error NatType:UDPBlocked
Source: (StackOverflow)
I'd like to create an app for iOS that does VOIP, presumably by interacting with a website. I can start with Android too.
Does anyone know of any tutorials, suggestions or libraries that would be of any use.
(The app would need to be rewritten for BB and android eventually, too.)
EDIT:
Bonus: What is SIP?
Source: (StackOverflow)
I am working on a android application in which i have to implement peer to peer voice chat. I found in android this is possible in API level 12 or above because Google added android.net.rtp
package in API level 12. By using this package we can implement peer to peer voice chat and video chat. But I need to implement this for API level 8. Now my questions are:
- How i can implement this peer to peer voice chat for API level 8.
- Is Jmf (java media framework) is compatible with android.
- Is any other API available for android to implement this idea.
Source: (StackOverflow)
I have a VoIP app that uses a TCP service to wake it up on incoming calls.
The TCP socket is created with this code fragment:
CFReadStreamRef read = NULL;
CFWriteStreamRef write = NULL;
...
CFStreamCreatePairWithSocketToHost(NULL,(__bridge CFStringRef)shost, port, &read, &write);
self.read = (__bridge NSInputStream*)read;
self.write = (__bridge NSOutputStream*)write;
if (![self.read setProperty:NSStreamNetworkServiceTypeVoIP
forKey:NSStreamNetworkServiceType]){
[Log log:@"Could not set VoIP mode to read stream"];
}
if (![self.write setProperty:NSStreamNetworkServiceTypeVoIP
forKey:NSStreamNetworkServiceType]){
[Log log:@"Could not set VoIP mode to write stream"];
}
self.read.delegate = self;
self.write.delegate = self;
CFRelease(read);
CFRelease(write);
[self.read scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.write scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[self.read open];
[self.write open];
I've also set the following:
- VoIP & Audio in the info plist
- Keep alive timer using [UIApplication sharedApplication] setKeepAliveTimeout
- UIRequiresPersistentWiFi = YES in the info plist (quite sure it's not required, but...)
This works well while the app is in the foreground, and even works well in the background for a few minutes, but after a few minutes - the app does not receive any new TCP messages.
It doesn't work on wifi or 3G, same result for both.
I also tried setting the property just to the read stream (though the read and write point to the same socket).
Whenever I receive data on the TCP or send data I also start a short background task.
BTW - everything takes place on the main thread.
I've checked if the app crashes - it doesn't.
The same behavior can be observed while debugging on the device - after a while - nothing is received (no crashes, warnings, anything).
What am I doing wrong?
Source: (StackOverflow)
I am trying to implement a scenario whereby App-User A can make a voice (video not so important now) call to App-User B on Android. It seems difficult to come across a good tutorial that covers the whole picture. However, from my research, I have been able to learn couple of things but still not enough to get it done.
From what I learnt so far, to implement App-to-App calling, one can either user SIP or WebRTC. PJSIP seems to be fairly popular. After much effort, I was able to build the pjsip project and also run the sample pjsua2 app on my android device but got stuck in Account Settings section of the sample app as I don't know how to come about the credentials it's requesting for (ID, Registrar, Proxy, Username and Password). Also, I can't seem to get a decent tutorial on learning how to use the pjsip libraries.
I also spent some time looking into WebRTC, which kind of looks simpler than pjsip using jingle, but where I got stuck is getting useful resource or tutorials on how to setup a signalling server and some other required stuffs like STUN, TURN, etc.
Though, I am still battling in thoughts with which (PJSIP or WebRTC using Jingle) will deliver the best experience in terms of voice/sound quality and bandwidth friendliness, but at least I just want to get one up and running without issues.
During my search, I came across Sinch API, which does exactly what I want, but for some reasons, we have been told not to use it.
I will very much appreciate a point in the right direction and links to learning resources as well.
Source: (StackOverflow)
I need to setup a simple IVR system for a friend's company that will let the caller navigate through the menu by pressing phone keys. Its kind of like a bus schedule.
for today's schedule press '1', for tomorrow's schedule press '2' and
so on.
It is solely an information system, i.e. no navigation route will end up with a real person but only audio messages will be played.
Now, I've never setup anything like this before and did a little digging on Google. Seems like I will be able to achieve this using Asterisk.
- What else do I need hardware-wise?
- Is a simple Linux server and a VOIP account with a provider in Germany sufficient?
- Will a VPS handle the task?
- How about multiple concurrent incoming calls?
- Are those handled by Asterisk?
Source: (StackOverflow)
I need to write VoIP/SIP Soft Phone in C# using WPF interface with Audio support only.
I need to have call transfer, call conference, and recording of conversations in mp3.
I've looked at VoIP SDK from ABTO LLC, but it is slow at application startup (30 seconds to start application, I think it's related to loading activex part of this sdk).
I've also looked at SIP.Net, but it's only for SIP and doesn't contain components for voice data transfer.
I have very limited time only 2 months from zero to fully working app.
What SDK can I use to accomplish this task?
Windows 7 must be supported.
Source: (StackOverflow)
How to start developping a VoIP product.
I'd like to hear something of the experienced,
thanks in advance!
Source: (StackOverflow)
I have installed SIPDROID. I made three account at sip2sip.
After that I have configured application using one of that account. Application works fine.
Question is: If I make multiple call to the same phone using SIP is there anyway to handle all calls at a same time?
Another incoming call is not displaying on mobile screen while first call is continue.
The first call getting picked up but what about the second call which is coming during first call.
Even second call is not displaying on the screen. Confused !!
Source: (StackOverflow)
I am trying to find out if it's possible to build a complete IVR application by cobbling together parts from open source projects. Is anyone using a non-commercial VoiceXML implementation to build speech-enabled systems?
Source: (StackOverflow)
I'm making a benchmark App for test purposes ONLY. I am not intending this to go to the App Store.
What I need is my NSTimer to continue running on the background using a UIBackgroundTaskIdentifier, save data to a Core Data db and finally push the data to a server (I'm using Parse), after a certain time interval, of course.
So basically, I havenĀ“t found any questions which apply to my specific case. I set my NSTimer like so:
UIBackgroundTaskIdentifier bgTask;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
self.timer = [NSTimer scheduledTimerWithTimeInterval:self.localInterval target:self selector:@selector(updateCoreData:) userInfo:nil repeats:YES];
the method updateCoreData simply calls the Core Data class and makes the necessary insertions.
I've read about VoIP and the Music playing part, but don't know exactly which one would apply best for my case, nor how to implement them.
Source: (StackOverflow)
I have this challenge to build an sip softphone using c# or .net technologies.
Please guide me the technology, requirements and specifications that is needed to build such.
Possible requirements:
Supported codecs:
G.722.1, G.723.1, G.726, G.728, G.711, G.729, G.723.1, iLBC,: G.711 (A and m-law),G.729A/B/D/E, AMR, GSM 6.10/EFR, iLBC, Speex
Voice:
Real time Quality Monitoring (MOS) 3
independent phone lines
Auto-Answer/Do Not Disturb Call
Forwarding Full Duplex Audio
Recording compress the audio data.
Fully SIP compatible softphone/dialer
for PC2Phone and Mobile2Phone
(iPhone, Nokia N95) application with
symbian s60 , full source code should
provide.
Compatible with Windows 2000/XP/2003/Vista/Mac
NAT/Firewall traversal feature
Works with any 3rd party SIP Server
Supports SIP outbound proxy
Displays callers account balance
Displays call credit time
Automatic Echo Cancellation
Automatic jitter buffer adjustment
Last number Redial
History of 10 last dialed numbers
Quick dial user list
Quick provision for customers, only
user name and password required
Source: (StackOverflow)
I am in the process of writing a VoIP application for iOS but when App is in background it stops accepting calls. When the app is active again all the queued up messages start getting processed.
The following is what I have done.
When building the app I add Voice over IP as well as Audio and AirPlay to the plist file. Then I mark the websocket connection with NetworkServiceTypeVoIP
as you can see here.
I have not set the keep alive timeout handler because registration doesn't matter if the app won't wake up to answer the call. Any help would be greatly appreciated.
It should be noted that this is my first Swift project and I'm not very familiar with the iOS platform.
Source: (StackOverflow)
Recently I am working on an application in which I have to implement application to application voice call and instant messaging like Viber and Line.
I did some R&D and got two methods to implement voice call.
SIP
a. android.net.sip
b. SIP API Classes and Interface
VoIP
But I am confused how to use it. How to Setup SIP server for my app on my own server and on what basis I will call my friends like I have 4 friends in my app contacts.I have to call second one, then what parameter should I pass to call him/her using SIP.
Source: (StackOverflow)