Create SCO client profile driver for call control from Bluetooth headset - windows

Overview
Hi everyone, I'm developing a feature for a Softphone (run on windows), that's make answer/end a call from Bluetooth headsets or speakerphones. I have read and do step by step follow Hands-free Profile spec: https://www.bluetooth.com/specifications/specs/hands-free-profile-1-8/
Currently, I have set up "Sevice Level Connection" by send/recv AT commands follow the spec.
Problem
I don't know how to set-up Audio Connection that know as SCO connection. It's seem need to write a custom driver, that I have no experience with. The only tutorial I see from Microsoft is very difficult to understand: https://learn.microsoft.com/en-us/windows-hardware/drivers/bluetooth/creating-a-sco-client-connection-to-a-remote-device
Is there any way to bypass this step without code a driver?
If I can set-up Audio Connection then Can I answer/end call from Bluetooth headset?
This is Initialization Sevice Level Connection diagram:
https://i.stack.imgur.com/9KMlb.png
This is Answer Call diagram:
https://i.stack.imgur.com/M8WZf.png

Related

Packet modification for interception and redirection

I have been trying to find some way of redirecting outbound TCP packets under windows.
from from : https://github.com/basil00/Divert/blob/master/doc/windivert.html
"The WinDivert driver is automatically (and silently) installed on demand whenever
your application calls WinDivertOpen(). The calling application must have Administrator privileges."
Am a newbie in windows service programming. I want my Windows service to call the function WinDivertOpen().
Can someone just give a lead sample on how to go about it.
Thanks

Create TUN and Routing In Windows 7

I am playing around with an application to do some remote connection and I am struggling with understanding the tun/tap. I have installed OpenVPN tuntap driver and can connect/configure it through my application but I need some clarification.
If I use it in TAP mode I need to bridge my network adapters correct??
How would a TUN interface be setup?? I know that I need to call DeviceIoControl with TAP_IOCTL_CONFIG_TUN and I think I understand how but my research leads me to think I also need to add into the windows routing tables??
Can someone layout what a typical TUN Layer3 VPN would look like
Thanks
Matt

Connecting Arduino Uno with Ethernet shield to parse.com database

Hey I'm new to Arduino programming, I was wondering how i can connect my device to store data to parse.com.
I know the REST API Key but not sure one what to do. Any help would be appreciated, and if possible can you provide source code or examples.
Thanks!
This is now possible. An Arduino Uno + ethernet shied still can't make HTTP requests, and parse.com still needs HTTPs, but Temboo makes it possible. Here's what you need to do:
Create an account at Temboo.com
Go to the Parse bundle
Find the Choreo you're interested in e.g., UploadFile, and test it out from the Temboo website
Turn on IoT Mode, set up your shield, and use the generated Arduino sketch code to connect your board to Parse.
Here's a blog post about Temboo's Iot Mode - the feature makes all of this possible:
http://blog.temboo.com/post/88573872731/flip-the-switch-and-get-going
I hope this helps.

Network control on Windows

How do I control the network interface on Windows? Actually, the idea is quiet simple.
Establish connect to a certain adapter on a computer.
Direct whole traffic of the adapter to this program.
Give the rights to this program what must be transfer to the adapter and what should not.
I think the program has to implement any windows network adapter interface and be registered as an adapter driver. Thus, when it wants to transfer data to real adapter, the program has to call adapter driver methods. In their turn, the methods implement the same windows network interface (or that is called in other way don't really know, I hope you get the sense), don't they?
As a result, we have a kind of inheritance here.
Before use our new driver:
windows application and windows itself
________________________ windows network interface
DRIVER of Adapter1
________________________ end of OS boundaries
Adapter 1
Use our new driver:
windows application and windows itself
________________________ windows network interface
our DRIVER
________________________ windows network interface
DRIVER of Adapter1
________________________ end of OS boundaries
Adapter 1
I believe that kind of interface exists and I hope it is realized very easy.
You will likely need to hook Windows API calls to really do this. It is possible... Start by Googling hook API and Winternals - and see if you can find their sample code.
Before Winternals was bought by Microsoft they published their code. http://technet.microsoft.com/en-us/sysinternals/bb545021
The idea is this:
You write a user-mode program which controls your hooking device
driver.
Your hooking device driver determines if network traffic on
given API calls is ok.
Driver allows normal API calls to succeed if they are.

bluetooth device to windows API via com port

So I have a bluetooth device, this device uses SPP to transfer data between the PC and itself. It connects fine through Windows as a bluetooth device. I can find it, enter the paring code and assign it to a COM port. Now I want to be able to send data through the com port using Windows API but it is refusing to do so.
I suspect that I need to setup the COMMCONFIG Structure correctly (see below)
http://msdn.microsoft.com/en-us/library/aa363188(VS.85).aspx
Unfortunately I have no idea what is the proper setting. I know SPP is supposed to emulate the RS-232 communication... so maybe I have to study up on that to figure out the right setting? Or is there some automatic way to set the COMMCONFIG structure.
I seriously doubt it. If it would be used then you'll have no chance at guessing at the custom provider data without docs from the driver author. Pay attention to the handshake signals, serial port devices routinely ignore anything sent to them when the DTR signal is turned off. And not send anything back with DTR off. A driver would emulate that. Use EscapeCommFunction() to turn them on. Also try a serial comm program like HyperTerminal or Putty to test this so you can isolate the source of the problem.
Why not use the Bluetooth sockets API? No need for troublesome (virtual) COM ports then.
If you're using managed code then see my library 32feet.NET
If using native code, use SOCKADDR_BTH with Winsock connect etc, see e.g. Bluetooth and connect (Windows) Then you can use the standard Winsock send/recv API
Ok, I found that you can use the
GetCommConfig and GetCommState functions to figure out the settings.

Resources