And as your project page suggest.. My config is Archlinux 2.6.26 32bit on amd64.. And my usb dongle is D-Link Corp. DBT-122 Bluetooth adapter..
Oh Man! You are a GODWonderful
Just compiled
I've got a Nokia 6680.. I start standalone and scan.. My mobile it's recognise. Then, i try to dial a number and.. SupriseThe call start
Only one thing.. I can only hear noise, no real voice.. Only noise
But great job! It's like i've got bad amplification for the sound.. I'm sure it's only a little problem of configuration..
And as your project page suggest.. My config is Archlinux 2.6.26 32bit on amd64.. And my usb dongle is D-Link Corp. DBT-122 Bluetooth adapter..
I made some tests.. I set up my pc audio level with the feedback test mode, i can speak into the micropone (mic line source) and hear myself in the speakers. Then i tried to make a call (a free call to my GSM service provider) but i still hear only noise from the speaker. I'm not english, so it's difficult for me explain exactly what I get.. I know that when I call my service provider there is a recorded voice that tell me some information.. When I use the pc as headset, i only hear bass tone, noise and I can understand only some pieces of the recorded voice. Any suggestion?
I can tell you also that i hear noise when I press the mobile phone button.. The pc doesn't reproduce correctly digit tones.. Everything that i should hear from the headset it's.. like crappy, broken. I hope you understand me
Then i tried to have a call where I spoke into the microphone of the pc and hear from another phone that a was calling.. I get no sound. It's like what i spoke into the mic is not send to mobile micropone..
And I notice others minor bugs.. When I call the mobile the caller number is showed correctly, but when I dial a new number from the QT interfaces, the last recevied called number is displayed, otherwise the telefone dial the correct number.
I don't know if it's a bug only of the QT interface or of the rest of the backend.
Also, if I hadn't recevied call with the QT interfaces connected, when i dial a number nothing is displayed next to "dialing". I think that the bug it's related with what i wrote before.
And another little bug is that I can't reject incaming call.. I click reject, but nothing appens. Otherwise, if i make a call and press "Hang Up", it works
Another thing.. It could be possible to see a sort of "history" of associated phones, and the name of the telephones.. Having something like "MyMobileBTName (AA:BB:CCD:EE)". I cheked "auto-reconnect" option in the settings, and it's listed last connected mobile. Having a history of mobile i can try to connect to the one listed also when the mobile is in hidden bluetooth mode.
Last, i have other suggestion, but they are a very minor thing. A sort of integration, into nghost, with GAMMU to get my telephone phonebook (contacts) and SMS?
But i thik that it could be a feature that i want only after a stable version of this HFP plugin.
Again.. Nice job man. This project it's looking so interesting
I hope i can call soon someone trought my pc![]()
Hmm.
The last time I had a problem where the test modes would work, but audio to and from the phone wouldn't, it was because the audio buffering parameters were unsuitable. The buffer fill level data is used for rate matching and to decide when to drop data or add silence padding. What console output do you get immediately after you attach the mobile phone audio? There should be a table like this:
If the "bot packet size" is < 100 samples, you might consider increasing the packet size and output buffer settings in the audio device tab of the configuration screen. In general, tweaking those parameters can help a _lot_. I'd rather it be more automatic than it currently is though. :-(Code:Pump: packet size = 24 Pump: input max fill = 340 Pump: bot packet size = 170 Pump: bot min fill = 320 Pump: bot max fill = 490 Pump: top packet size = 24 Pump: top min fill = 320 Pump: top max fill = 400 Pump: watchdog timeout = 500
Another possibility that I have not yet had to explore has to do with your Bluetooth module's voice coding configuration. When you run (as root) the hciconfig command as below, what do you get?
If the input format is not 2's complement and 16-bit, then we might have issues. The HFP app needs to ask the HCI and verify this stuff by itself, but I've never encountered a situation where it hasn't been configured this way from the beginning.Code:ricer trunk # hciconfig hci0 voice hci0: Type: USB BD Address: 00:16:CB:0B:DA:D7 ACL MTU: 384:8 SCO MTU: 64:8 Voice setting: 0x0060 (Default Condition) Input Coding: Linear Input Data Format: 2's complement Input Sample Size: 16 bit # of bits padding at MSB: 0 Air Coding Format: CVSD
The Qt GUI isn't meant to be the main interface. Instead, what you ought to do is 'make install' and then run hfconsole. It does require Python and a few Python binding packages, but it's the designated path forward right now.
As for phone number display, the Qt GUI most certainly has some bugs. However, the way that the backend manages caller ID and outbound phone number information needs to be revised a little bit.
As for the reject call feature in the Qt GUI, it is hard coded to use the AT+CHLD=0 command, a.k.a. User Declare User Busy, which may or may not be supported by your phone. This is certainly a bug, and there is a more commonly used way to reject calls that it should be using instead. I think I may have put that in there to test the UDUB command.
These are both very good ideas. I'll need to spend some time learning how Gammu works, but having an off-the-shelf package to do contacts and SMS like that is going to lead to something that's pretty cool.
Unless somebody else wants to volunteer to do this integration?
The hfconsole program is written in Python, and uses D-Bus to control hfpd. It is very high level, but has a part in configuring just about every aspect of the hands-free profile service, including the audio pipeline. It could be easily extended with Gammu's Python bindings, and should have enough control, if needed, to disconnect the HFP link while the SPP link is open to perform Gammu tasks.
Thank you for your kind words. Personally, the lack of a good hands-free is frustrating. Parrot devices are really high quality, but they don't do anything we shouldn't already be able to do with a (more capable) PC loaded with the right software.
This is what I get..
I tried to change packet size and output buffer but I always get "Trr brr grr.. " only noisePump: packet size = 8
Pump: input max fill = 340
Pump: bot packet size = 170
Pump: bot min fill = 344
Pump: bot max fill = 514
Pump: top packet size = 8
Pump: top min fill = 344
Pump: top max fill = 424
Pump: watchdog timeout = 500
Then i use hfsconsole.. (till now i still use the qt interface).. And I can't get sound of everytype. The sound config is ok, but when I make a call i get no sound in pc speakers... neither noise. Only silence. I change again packet size and buffer but in the console i can't see anything about what was happening.. No info..![]()
Your SCO MTU size is set to an extremely small value. The HF components should be verifying that this value is set sanely, along with the voice format. So far you're the first to run into this type of problem, and your help to try to get to the bottom of it is greatly appreciated!
Regarding the lack of terminal output, you might try updating your SVN view. The latest hfconsole code should now be dumping the same level of detail to the terminal as the Qt program.
Can you paste the output of:
And while you're at it, maybe try running, as root:Code:hciconfig hci0 voice
Code:hciconfig hci0 scomtu 64:8
With the second command i see that 'SCO MTU' is set to '64:8'..[root@ArchBox malo]# hciconfig hci0 voice
hci0: Type: USB
BD Address: 00:13:46:01:54:9C ACL MTU: 377:10 SCO MTU: 16:0
Voice setting: 0x0060 (Default Condition)
Input Coding: Linear
Input Data Format: 2's complement
Input Sample Size: 16 bit
# of bits padding at MSB: 0
Air Coding Format: CVSD
Now i try to sync the last view of svn..
After i make other tests![]()
Mhmmhmh... i have just recompiled the new svn view.. the hfconsole doesn't work anymore.. It's locked in detached condition while the mobile tells me that it's attached
This is the console output
With standalone the mobile is attached but when i start the coversation the mobile going to detach the pc..[malo@ArchBox ~]$ /usr/local/bin/hfconsole
(hfconsole:14213): libglade-WARNING **: could not find glade file './hfconsole.glade'
(hfconsole:14213): libglade-WARNING **: could not find glade file './data/hfconsole.glade'
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/dbus/connection.py", line 214, in maybe_handle_message
self._handler(*args, **kwargs)
TypeError: state_changed() takes exactly 3 arguments (2 given)
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/dbus/connection.py", line 214, in maybe_handle_message
self._handler(*args, **kwargs)
TypeError: state_changed() takes exactly 3 arguments (2 given)
[malo@ArchBox ~]$ /usr/local/bin/standalone
*** Your configured device class may not be recognized as a hands-free
*** Edit /etc/bluetooth/hcid.conf and change:
*** class 0x280408;
HCI Submit 0x0401
HCI Command status: 0x00 0x01 0x0401
Creating record for BDADDR 00:18:8D:15:C4:74
HCI Submit 0x0419
Scan: 00:18:8D:15:C4:74
HCI Command status: 0x0c 0x01 0x0405
HCI Inquiry complete: 0x00
HCI scan complete
HCI Command status: 0x00 0x01 0x0419
HCI Command status: 0x0c 0x01 0x0405
HCI Name request complete (0): "00:18:8D:15:C4:74" -> "Malo87"
HCI Command status: 0x00 0x01 0x0405
HCI Command status: 0x00 0x01 0x041b
HCI Command status: 0x00 0x01 0x0419
HCI Name request complete (0): "00:18:8D:15:C4:74" -> "Malo87"
SDP: Supported features: f
<< AT+BRSF=15
>> +BRSF: 47
>> OK
<< AT+CIND=?
>> +CIND: ("call",(0,1)),("service",(0,1)),("call_setup", (0-3)),("callsetup",(0-3))
>> OK
<< AT+CMER=3,0,0,1
>> OK
<< AT+CLIP=1
>> OK
<< AT+CCWA=1
>> OK
<< AT+CHLD=?
>> +CHLD: (0,1,1x,2,2x,3,4)
Hold modes: 0 1 1x 2 2x 3 4
>> OK
<< AT+CIND?
Device connected!
ThreeWayCalling: yes
ECNR: yes
Voice Recognition: yes
InBandRingTone: yes
Voice Tags: no
Reject Call: yes
>> +CIND: 0,1,0,0
Indicator: "service" = 1
Indicator: "callsetup" = 0
>> OK
Dial: 42010
<< ATD42010;
>> OK
>> +CIEV: 3,2
Indicator: "callsetup" = 2
>> +CIEV: 4,2
Call Setup: Outgoing !Incoming
HCI Command status: 0x00 0x01 0x0409
HCI Command status: 0x00 0x01 0x040f
HCI Command status: 0x00 0x01 0x0406
>> +CIEV: 3,3
Indicator: "callsetup" = 3
>> +CIEV: 4,3
Call Setup: Outgoing !Incoming
Read from RFCOMM socket: 104
Voluntary device disconnect!
Destroying record for Malo87
It looks like you're running the old hfpd. Make sure you kill off one that's already running after 'make install'. Later tonight I'll see about checking in some changes to make this more apparent, but they'll be part of a bigger set at this point, including the device history list.
Regarding your hfstandalone result, it looks like the phone dropped the RFCOMM connection, and I'm puzzled why the phone would drop it at that point in the interaction. The phone might have tried to establish the SCO connecton at that point, and that might have failed, but it still sounds fishy. What kind of phone do you have? Can you PM me an hcidump from the interaction?
Ah well, it's not supposed to be easy yet, but your help getting to the bottom of critical problems is greatly appreciated!
Bookmarks