how to make call from pc using local landline phone services - c#

I have a desktop application of address diary, developed in C# .Net.
I want to make call from software throw land line phone service,
in my office we have 8 phone lines, so i want to select line before call,
i want to use headphone and mic in place of phone instrument.
how to connect phone lines to pc. i have more then 8 phone lines
is it possible ? if yes then how and which hardware i need for this.

Have you thought of the Skype API: http://developer.skype.com/public/skypekit
or
http://www.twilio.com
Get rid of the landlines and use a service. Much easier in my opinion. Then it would be far more scalable as well.
If you want to go down the telephony services path check out this library: https://github.com/markjulmar/atapi.net/
Hardware for landlines would just include 8 modems and selecting which one to use, before making a call.
I would assume that the atapi library contains functions to select the audio input and output. If not there are plenty of c# libraries for recording audio, in which you could pass the stream through to the library.
I wasn't going to point you down this direction but as per #Saif Khan comment you can use Asterix.
Using Asterix
Step 1 - Get a server install Asterix on it. http://www.asterisk.org. It's open source.
Step 2 - Get supported hardware e.g. http://www.asterisk.org/hardware
Step 3 - Communicate to it with http://sourceforge.net/projects/asterisk-dotnet/ (open source c# to asterisk library.
This maybe overkill for you, I don't know. I suppose I shouldn't assume :)

Since Google Voice is still free in United States and Canada. You can use this Google Voice API in C#.
http://sourceforge.net/projects/gvoicedotnet/

Doesn't want to sound like a noob, but did you try out Windows Dialer? You will need x number of 56k dialup voice modem depending on the no. of connections you have and you want to use.
It should work just fine. Test it out, and if it works well, you can get your app synced with your existing software to export the number to the dialer upon calling. (There is no such functions on the dialer app yet.)

Related

How to get the Caller Info from VoIP in real-time in a .NET Application?

I am working on a project which includes a lot of VoIP functions. I don't have access to the source code of the previous system that was being used so I can't dissect it to find out what I need to know. I will describe how the previous system used to work and then ask my question.
First, the old system that we have been using depends on Physical Phones which receive calls over the internet. There is a Desktop App installed on our computer which somehow takes the phone call received by the phone and shows that phone number on the Desktop App. Which uses that number to look up data about the caller. But the problem is that this Desktop App is over a decade old and has not been updated since. So we want to build a new Web Based Application with .NET that will do the same. My question is:
1- How do I fetch the Caller Information From the Physical Phone and use it how I want? The phone being used is SNOM 760 but its possible that other brands or models be used in the future.
2- Let's say that a specific page is always opened on the browser. How do I transfer the caller number to the server and then show a pop up with the information about the caller in that page that's always opened in the browser in a RELIABLE way? What about when that specific page is not opened? Remember that the phone that is receiving this call is not directly in communication with the server. But that is also not a restriction. I read somewhere while researching that I could have my server take the call first and then transfer it to that physical phone. The only restriction is that we use VoIP phones/numbers.
Like I said, I have very vague information on the subject. Any help is appreciated. I've studied that I could use Twillio or other such third party services to achieve this task but I just wanted to know if I can do it myself instead of relying on someone else and hoping they don't shut down their services in the next few years.
Those are a lot of questions jammed into 1 there, I'll try to answer some.
As you already tagged it, TAPI is an option but not very easy to get into. TAPI normally get it's information centrally from the PBX, but in your particular case the SNOM system has the phones themselves connect to a central server to gather the information and distribute it there. You may be able to hook into a proprietary protocol.
Gathering calls on a central server to then distribute them to phones is usually done with an IVR (Interactive voice response). Channeling outside calls through it is easy but the problem with getting your call information from this point is usually you miss the internal calls.
Your website pop-up is not my area of expertise, maybe someone else could comment on the feasibility of that, but personally I would go with a task-tray style app if reliability is your highest priority.

Monitor Fax with C#

I am trying to create a small software with C# that can be able to monitor the receive and send faxes for example: time,user etc.. I have search in google and find about FAXCOMEXLib and FAXCOMLib but I didn't find any good examples for C# only for VB. Also I was thinking somehow use the windows fax service but also I didn't find anything. Can anyone provide me a sample code for C# or a better way to do this?
p.s: I want only to monitor not even send from the software
I would take a look at Microsoft's TAPI, or Telephony API. This is a COM API that comes with Windows and makes it really simply to send or receive faxes, as well as other telephone-related activities (answering a phone, taking voicemail messsages, etc). A great place to start is the TAPI quick start application ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms734257(v=vs.85).aspx ).

How to get WP7-style ANID on Windows Phone 8?

I have a Windows Phone 7 app which relies on ANID to store user data on remote server. Now I'm preparing Windows Phone 8 version of it. When user will download this update previous WP7 app version will be replaced by this new WP8 version.
But there is a huge problem: in WP8 there is ANID2 instead of ANID. I know how to translate ANID to ANID2 (Windows Phone ANID to ANID2 conversion on C#?). But I need the whole ANID for this.
In WP7 ANID looks like: "A=2E23ACF364795673CD7EBB58FFFFFFFF&E=f48&W=3". I extract 32-character value (2E23ACF364795673CD7EBB58FFFFFFFF) and use it as UID (I heard that remaining portion may be changed, but 32 id will always be the same).
So I might convert ANID from WP7 version to ANID2 on-the-fly on remote server, but I don't have all 44 letters - only 32 of them.
I might update WP7 version with another WP7 version which sends the whole ANID to server, but I can't rely on the fact that all people will update their apps, save their data to server and then again update their apps when wp8 version will be available.
So my questions are:
is there any way to get WP7-style ANID value in WP8 app (maybe via reflection or c++)?
it is possible convert ANID to ANID2 having only its 32-character uid portion?
is there any way to find out whether particular ANID2 corresponds to existing 32-character ANID portion?
how can I reverse convert ANID2 to ANID if we know developer GUID?
can user select the version to install (if WP7 and WP8 versions available)?
Update
So far my workaround is to give users of wp8 version wp7 utility tool which generates ANID2 from ANID and stores this pair to remote database. Then user who gets wp8 version update can continue using his wp7 app profile.
Though I'm still looking for the better solution.
Btw, I've just realized: while we're trying to follow MSFT "One Screen" ideology and trying to provide our users access to their data on all MSFT devices at once, it's really stupid that MSFT makes us hold and somehow synchronize three (!!!) different ids for one user who log into his wp7, wp8 and windows 8 devices with the same live id! MSFT don't want us to see this live id so much that gives us its three different anonimized representations. Ridiculous, folks!
The only way is descrtibed in the question: publishing hidden utility with a link to it in wp8 version of main app. Utility itself is a wp7 binary which can access ANID and using dev GUID can generate ANID2. It sends both values to the server, and whn user comes with ANID2 server check dictionary and found corresponding ANID. Not that simple but quite easy. Hope it helps someone.
I would use a GUID i create the first time you startup the application, store that in isolated storage and use that. It won't cover the uninstall/reinstall scenario but that's a real small percentage anyway.
btw, the user will only get the latest version from the store so he/she cannot choose an older version (WP7 phones will only get the wp7 version ofcourse but wp8 users will always get the latest version from the store)
This might sound a bit naive and probably you would have already thought about it, and yes this is only an answer to your core issue, Is it possible for the windows phone 8 apps alone to point to the ANID2 implementation, maybe another remote end point, for some time till MS themselves kill the earlier(WP7) platform :)

Voice over wifi between android phones in C#

I want to develop an application for voice calls between two android devices on my home network (WiFi). I'm new to programming so don't really know where to begin, I have researched around but cannot find anything that fits what I need to do.
The application has to be written in C# as I have a basic understanding of that language and it's the language I want to expand my knowledge in. I'm using MonoDevelop which allows the creation of android apps through C#.
The call will be peer to peer so very basic and no security or encryption will be necessary in these early stages of development.
All help will really be appreciated!
I'd start with this link at code project:
http://www.codeproject.com/Articles/138484/Simple-SIP-VOIP-based-phone-in-C
You will have to adapt it to android, but again is a probably a good starting point to understand how to do voice over IP.
The big things that may differ on android are:
User interface
method to get microphone input
method to play audio output
access to the IP stack
but the basic (encoding, decoding, etc...) should be there.

how to send and read SMS from mobile attached to PC

I am building a Windows Desktop software that will respond to SMS request and sending a SMS as reply automatically.
The software is ready and working just fine but it works only and only with Nokia Mobiles and the prerequisite is that Nokia's PC Suit has to be installed first before my app can work.
But now my customer wants to change his mobile so he wants me to change programming so that it works with any mobile.
I am at loss as to how to do this?
Can someone please help me here. I am ready to recode the whole app if required.
My preferred platforms are Delphi, VB.NET and VB6.
There are extended AT commands that you can send to your phone's virtual serial interface that tend to work well on many phones. See this for more info: http://www.developershome.com/sms/howToSendSMSFromPC.asp
Now all you need to do is find serial drivers for the supported phones. This used to be really simple, but is harder these days. Bottom line is, it is probably your best option.
"Any mobile"? That's a tall order. I'm not sure your customer knows what he's asking for. Different types of phones are different and there isn't some way to make the same program run on all of them.
What you can do, though, is make it run on any supported mobile. You can keep most of your existing PC-side code; only the part that talks to the phone has to change. Encapsulate that into some sort of interface in a separate module, and that's your specific code for talking to Nokia phones. Your app now supports Nokia.
Then figure out how to do the same thing for an Android, or a Blackberry or an iPhone. Build those specific parts into their own modules that all implement the same basic interface. With each new phone type you figure out how to talk to, your list of supported devices will grow.

Categories

Resources