Hi,
thanks a lot for an excellent piece of software. I have a dream to integrate it to the HTPC-platform Freevo, so I can call people from my couch with a remote, without having to fetch the phone from 2 meters away.
I was able to build it and make a call, and heard the other end's voice via PC speakers (although a bit garbled), and the mic didn't seem to work. A good start anyway.
That was 2 days ago. Today I was trying again, calls was made OK but the voice wasn't transferred to PC, it stayed on the phone. The loopback test in the GTK app works, I was able to hear my voice crystal clear from the speakers.
I updated code from SVN and rebuilt, but it didn't help. There's also a python stack trace, which I don't think I saw before the SVN update. When making the call, the phone (N95) first says "handsfree activated" and then immediately "handset activated", as if it tries to transfer the voice to the PC but somehow fails. Also the "transfer voice" in hfconsole has no effect.
Here's the output from hfconsole:
Code:
% hfconsole
(hfconsole:6664): libglade-WARNING **: could not find glade file './hfconsole.glade'
Update hist: 00:1C:9A:27:71:DE/None
HFPD: HCI Command status: 0x00 0x01 0x0405
HFPD: HCI Command status: 0x00 0x00 0x041b
HFPD: HCI Command status: 0x00 0x01 0x0000
HFPD: HCI Command status: 0x00 0x01 0x0419
HFPD: HCI Name request complete (0): "00:1C:9A:27:71:DE" -> "Teh Phone"
HFPD: SDP: Supported features: ef
HFPD: << AT+BRSF=15
HFPD: HCI Submit 0x0419
HFPD: HCI Command status: 0x00 0x01 0x0419
HFPD: HCI Name request complete (0): "00:1C:9A:27:71:DE" -> "Teh Phone"
Update hist: 00:1C:9A:27:71:DE/Teh Phone
HFPD: >> +BRSF: 239
HFPD: >> OK
HFPD: << AT+CIND=?
HFPD: >> +CIND: ("service",(0,1)),("call",(0,1)),("callsetup",(0-3)),("call_setup",(0-3)),("callheld",(0-2)),("signal",(0-5)),("roam",(0-1)),("battchg",(0-5))
HFPD: >> OK
HFPD: << AT+CMER=3,0,0,1
HFPD: >> OK
HFPD: << AT+CLIP=1
HFPD: >> OK
HFPD: << AT+CCWA=1
HFPD: >> OK
HFPD: << AT+CHLD=?
HFPD: >> +CHLD: (0,1,1x,2,2x,3,4)
HFPD: Hold modes: 0 1 1x 2 2x 3 4
HFPD: >> OK
HFPD: << AT+CIND?
HFPD: AG 00:1C:9A:27:71:DE: Connected
HFPD: >> +CIND: 1,0,0,0,0,4,0,4
HFPD: >> OK
HFPD: HCI Command status: 0x00 0x01 0x0409
HFPD: AudioGatewayStart: /net/sf/nohands/hfpd/00_1C_9A_27_71_DE
HFPD: ** OpLatency: primary open took 77ms
HFPD: ALSA play state: 2
HFPD: ALSA play state: 2
HFPD: ALSA rec state: 2
HFPD: ALSA rec state: 2
HFPD: Pump: packet size = 24
HFPD: Pump: input max fill = 340
HFPD: Pump: bot packet size = 170
HFPD: Pump: bot min fill = 336
HFPD: Pump: bot max fill = 672
HFPD: Pump: top packet size = 24
HFPD: Pump: top min fill = 336
HFPD: Pump: top max fill = 672
HFPD: Pump: watchdog timeout = 500
HFPD: Echo tail: 800
HFPD: ALSA play state: 2
HFPD: ALSA rec state: 2
HFPD: HCI Command status: 0x00 0x01 0x040f
HFPD: AG /net/sf/nohands/hfpd/00_1C_9A_27_71_DE: CloseVoice
HFPD: SoundIoPump Stopped
HFPD: ** OpLatency: primary close took 55ms
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/var/lib/python-support/python2.5/dbus/connection.py", line 210, in maybe_handle_message
self._handler(*args, **kwargs)
File "/usr/local/bin/hfconsole", line 1480, in soundio_state_changed
self.command_voice_attach(False)
File "/usr/local/bin/hfconsole", line 281, in command_voice_attach
p = subprocess.Popen(exc, shell=True)
File "subprocess.py", line 593, in __init__
errread, errwrite)
File "subprocess.py", line 1047, in _execute_child
args = list(args)
TypeError: 'NoneType' object is not iterable
HFPD: HCI Command status: 0x00 0x01 0x0406
I did some quick debugging; it's trying to execute command self.command_voice_attach_dcmd with subprocess.Popen, but the command is None. The command is tried to be parsed from the config file ~/.hfconsole.rc, but there are no attach_command or detach_command directives there.
Any help is appreciated.
Also this looks like a bug in hfconsole (starting at line 338, rev 22):
Code:
if self.configfile.has_option('options', 'attach_command'):
cmd = self.configfile.get('options', 'attach_command')
self.command_voice_attach_acmd = cmd
cmd = None
if self.configfile.has_option('options', 'attach_command'):
cmd = self.configfile.get('options', 'detach_command')
the latter part checks for 'attach_command' in config, but reads from 'detach_command'.
Bookmarks