How to implement HFP on linux with bluez?

  bluetooth, bluez, c++, hfp, linux

I’d like to implement HFP on Linux.
As far as I understand I need to first create SPP connection between my phone and a computer in order to exchange some setting. In BT specification, there is a spp service. is it this one what i need or do i have to use dbus? Can I use a serial communication to send the AT commands?
I’ve read a lot of stuff at the internet and source code from git, but not sure how to approach the problem with the spp.

Source: Windows Questions C++