Cómo hacer una llamada telefónica en Windows Mobile con C#
Un teléfono móvil moderno, provisto de Windows Mobile, nos permite abrir archivos de MS Office, leer PDFs, hacer fotos, leer el correo electrónico, acceder a contenidos online por RSS, llevar la agenda de actividades, gestionar nuestros contactos, escuchar música, ver vídeos, chatear, jugar, ejecutar aplicaciones de un amplio rango… Además, por si no fuera suficiente, también sirve para hacer llamadas telefónicas. 😉
Realizar una llamada telefónica mediante código C# desde una aplicación nuestra de Windows Mobile es algo ridículamente simple, gracias a un recurso que Microsoft ha puesto a nuestra disposición: la clase Phone. Esta clase se encuentra definida dentro del ensamblado Microsoft.WindowsMobile.Telephony (en la DLL microsoft.windowsmobile.telephony.dll), por lo que debemos agregar una referencia a este ensamblado en nuestro proyecto de Visual Studio.
Ahora sólo nos resta declarar y crear un objeto de la clase Phone, y llamar a su método mágico: Talk().
Phone p = new Phone();
p.Talk(numero);
Este método recibe como parámetro un texto (string) que representa el número al cual se desea llamar: public void Talk(string number).
El proceso no es silencioso. Realmente lo que hace es ejecutar (y mostrar) el programa Teléfono del sistema operativo. Delega en él todas las operaciones, como por ejemplo, colgar la llamada.
Puedes descargarte el proyecto completo desde aquí.
¿Y por qué necesitaríamos realizar llamadas telefónicas desde una aplicación propia? ¿Acaso para escribir una versión mejorada del programa nativo? Yo conozco al menos un caso en que sí es necesario acudir a esta funcionalidad. Hace algunos años tuve que desarrollar una aplicación de telecomunicaciones que necesitaba, como parte de su funcionamiento, realizar llamadas automáticamente a un cierto número. La aplicación OIGAA convierte los teléfonos móviles en extensiones de la centralita corporativa, permitiendo a sus usuarios responder desde cualquier lugar como si estuvieran en la oficina, y ofreciendo además diversas funcionalidades de valor añadido. Aquí te dejo algunas capturas de pantalla de la aplicación ejecutándose en el emulador de dispositivos móviles.
- OIGAA: Pantalla de autenticación
- OIGAA: Conexión y actualización inicial de datos
- OIGAA: Agenda de contactos. Posibilidad de iniciar una conexión de VoIP
- OIGAA: Configuración del tipo de llamada y el mensaje de presencia
Enlaces de interés:
Código completo del ejemplo
Olle Rube me sale este error cuando intento ejecuar el programa
No se puede encontrar el archivo DLL PInvoke ‘phone.dll’.
no se si me puedas ayudar
Hola Oscar, mira este artículo: Simple SIP(VOIP) based phone in C# (http://www.codeproject.com/KB/cs/SIP_CallOut.aspx). Puede que sea lo que estás buscando. También puedes hacer una búsqueda por VoIP en el propio CodeProject (http://www.codeproject.com/info/search.aspx?artkw=voip) o en CodePlex (http://www.codeplex.com/site/search?query=voip&sortBy=Relevance&licenses=|&ac=8).
Habra la posibilidad de que se pueda realizar la llamada desde un teléfono fijo utilizando el pc y con tegnologia c#
Hola.
Se puede desarrollar una aplicacion para cortar las llamadas antes de los 5 minutos.
Estaria ideal para los planes de Telcel en Mexico.