分页: 1 / 1

《NetBSD指南-20.7.2.SCO音频免提》

发表于 : 2010-03-06 15:20
leo
到使用免提模式的蓝牙手机上的音频连接可由NetBSD的Packages中的 “comms/bthfp” 程序完成。

首先, 你需要找到手机的BDADDR, 而且为了使用简便,你可在 /etc/bluetooth/hosts 文件中为其设置一个别名. 将手机设置成可识别模式,并用合适的控制器执行一个质询:

代码: 全选

% btconfig ubt0 inquiry
Device Discovery from device: ubt0 ..... 1 response
  1: bdaddr 00:16:bc:00:e8:48 (unknown)
   : name "Nokia 6103"
   : class: [0x520204] Cellular Phone <Networking;gt; <Object Transfer;gt; <Telephony;gt;
   : page scan rep mode 0x01
   : page scan period mode 0x02
   : page scan mode 0x00
   : clock offset 10131

# echo "00:16:bc:00:e8:48 phone" >>/etc/bluetooth/hosts

现在, 你可以质询这部手机已确认其支持免提模式:

代码: 全选

% sdpquery -d ubt0 -a phone search HF

Record Handle: 0x00010003
Service Class ID List:
        Handsfree Audio Gateway (0x111f)
        Generic Audio (0x1203)
Protocol Descriptor List:
        L2CAP (0x0100)
        RFCOMM (0x0003)
                Protocol specific parameter #1: u/int8/bool 13
Bluetooth Profile Descriptor List:
        Handsfree (0x111e) ver. 1.1

然后,你可以使用 bthfp 程序去访问免提模式. 首次连接时, 你需要使用一个PIN去匹配这个手机, 这个PIN可使用 btpin(1)随机生成:

代码: 全选

% btpin -d ubt0 -a phone -r -l 6
PIN: 349163
% bthfp -d ubt0 -a phone -v

      < ENTER PIN ON PHONE NOW >
Handsfree channel: 13
Press ? for commands
Connecting.. ok
< AT+BRSF=20
> +BRSF: 47
Features: [0x002f] <3 way calling> <EC/NR> <Voice Recognition> <In-band ringtone> <reject ability>
> OK
< AT+CIND=?
> +CIND: ("call",(0,1)),("service",(0,1)),("call_setup",(0-3)),("callsetup",(0-3))
> OK
< AT+CIND?
> +CIND: 0,1,0,0
> OK
< AT+CMER=3,0,0,1
> OK
< AT+CLIP=1
> OK
Service Level established

当电话铃响时, 只需按下 a 来应答, 而声音会通过/dev/audio设备路由。注意如果要与对方通话你需要一个连接好的麦克风。