rfcomm problems

Maksim Yevmenkin maksim.yevmenkin at savvis.net
Thu Oct 27 20:19:17 PDT 2005


Niki,

>> please find attached patch. the patch will put stdin/stdout into
>> 'raw' mode when no tty was specified. it should fix the problem you
>> were having.
>> 
>> keep in mind that there is no escape sequence, so you have to kill 
>> rfcomm_sppd(1) by hand to terminate the session.
>> 
>> could you please try to use rfcomm_sppd(1) in both stdin/stdout
>> mode and in 'set device ...' ppp(8) mode.
> 
> I was also thinking about trying to put stdin/stdout in raw mode to
> see if it will work before i saw your email :) (because this was the
> only difference i found between using tty and stdin/stdout)
> 
> With this patch i can issue properly commands to the gsm modem and
> get response with rfcomm_sppd in stdin/stdout mode. (it seems to not
> reset the terminal properly on exit, but i think you know that :) ) I
> have also properly connected to internet via gprs and with 'set
> device "!/usr/bin/rfcomm_sppd -a gsm -c1"' in ppp.conf

great! thanks for your help. btw, rfcomm_sppd(1) _should_ properly 
restore terminal settings if it was killed with SIGTERM (-15). if you 
kill it with SIGKILL (-9) then you will mess your terminal settings.

>> could you please post /etc/ppp/ppp.conf entry you where using with 
>> rfcomm_pppd?
> 
> default:
>  set log Phase Chat LCP IPCP CCP tun command
>  ident user-ppp VERSION (built COMPILATIONDATE)
>  set speed 115200
>  set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
>            \"\" AT OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
>  set timeout 0
>  resolv readonly
>  enable dns
> 
> bt-gprs:
>  set speed 115200
>  set phone *99\#
>  set ifaddr 0 0 255.255.255.255
>  add default HISADDR
> 
> bt-gprs2:
>  set speed 115200
>  set device "!/usr/bin/rfcomm_sppd -a gsm -c1"
>  set phone *99\#
>  set ifaddr 0 0 255.255.255.255
>  add default HISADDR
> 
> This is the whole ppp.conf
> I try to use the first label 'bt-gprs' for rfcomm_pppd.

i'm pretty sure 'bt-grps' label is incomplete. at the very least you 
need 'enable force-scripts' otherwise ppp(8) will not execute chat script.

btw, there is a working example in rfcomm_pppd(8) man page

<quote>

rfcomm-dialup:
  # This is IMPORTANT option
  enable force-scripts

  # You might want to change these
  set authname
  set authkey
  set phone "*99***1#"

  # You might want to adjust dial string as well
  set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
            \"\" AT OK-AT-OK ATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT"
  set login
  set timeout 30
  enable dns
  resolv rewrite

  set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
  add default HISADDR

</quote>

also some folks prefers to configure access point name, etc. in 'set 
dial', but i assume you have configured it on the phone.

> (i think i can use only one label, because as far as i remember ppp(8)
> ignores 'set device' in -direct mode, but i made two just to be sure)

i'm not sure about this. also you have 'set speed' in every label. 
having it only in 'default' should be enough.

> So maybe ppp in -direct mode is not setting properly the line in raw
> mode?

no, i'm pretty sure ppp(8) does the right thing. in fact 'set device 
!rfcomm_sppd' worked even before my patch.

thanks,
max


More information about the freebsd-bluetooth mailing list