Hello guys..
I got Huawei E156G 3G USB Modem and it works in bt3 final, bt4 beta and beta 4 pre-final.
I just want to share my situation..In bt4 pre-final, lsusb shows:

...
Bus 002 Device 004: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
...


1-To connect, what I did, I typed "wvdialconf" and the output:

root@home:~# wvdialconf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0 S1 S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB1<*1>: Speed 9600: AT -- OK
ttyUSB1<*1>: Max speed is 9600; that should be safe.
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB0.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB1<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
root@home:~#


2-Then I tried :

root@home:~# wvdialconf test

..


root@home:~# cat test

[Dialer Defaults]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
; Phone = <Target Phone Number>
ISDN = 0
; Username = <Your Login Name>
Init1 = ATZ
; Password = <Your Password>
Modem = /dev/ttyUSB0
Baud = 9600


3-Then I edited wvdial.conf in /etc:
change the following (in /etc/wvdial.conf):

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
Baud = 9600
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
; Phone = <Target Phone Number>
; Password = <Your Password>
; Username = <Your Login Name>

into

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
Baud = 9600
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
Phone = *99#
Password = user
Username = pass
Stupid Mode = 1

Where X in "Phone=X" is your ISP phone number specific.. In my case it`s *99#
..not sure why I have to put "Stupid Mode = 1" but it works. So I did this:

root@home:~# kate /etc/wvdial.conf

then copy and paste the code config above to wvdial.conf

4-Now to connect type "wvdial":

root@home:~# ldconfig
root@home:~# wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Mon Jun 22 14:01:21 2009
--> Pid of pppd: 6150
--> Using interface ppp0
--> pppd: ���[08][10]��[08]
--> pppd: ���[08][10]��[08]
--> pppd: ���[08][10]��[08]
--> pppd: ���[08][10]��[08]
--> pppd: ���[08][10]��[08]
--> pppd: ���[08][10]��[08]
--> local IP address x.x.x.x
--> pppd: ���[08][10]��[08]
--> remote IP address y.y.y.y
--> pppd: ���[08][10]��[08]
--> primary DNS address a.a.a.a
--> pppd: ���[08][10]��[08]
--> secondary DNS address b.b.b.b
--> pppd: ���[08][10]��[08]


Here the important data are:

local IP addrss is our IP
remote IP is the gateway <--gw
primary DNS addrss is the DNS server IP<--nameserver

but still not connected:

root@home:~# ping w w w google c o m
ping: unknown host w w w google c o m

So lets assigne our IP manually with the above info:

ifconfig ppp0 x.x.x.x
route add default gw y.y.y.y
echo nameserver a.a.a.a > /etc/resolv.conf

Now:

root@home:/home/refan# ping w w w google c o m
PING w w w google c o m (64.233.189.99) 56(84) bytes of data.
64 bytes from hk-in-f99.google.com (64.233.189.99): icmp_seq=1 ttl=243 time=135 ms
64 bytes from hk-in-f99.google.com (64.233.189.99): icmp_seq=2 ttl=243 time=124 ms
64 bytes from hk-in-f99.google.com (64.233.189.99): icmp_seq=3 ttl=243 time=132 ms
64 bytes from hk-in-f99.google.com (64.233.189.99): icmp_seq=4 ttl=243 time=131 ms
^C
--- w w w google c o m ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 124.031/131.213/135.879/4.410 ms
root@home:/home/refan#

For backtrack 3 user,install wvdial and wvstreams, type:

installpkg wvstreams-3.75.0-i486-1nec.tgz
installpkg wvdial-1.54.0-i486-1nec.tgz

for backtrack 4 beta user, just type "apt-get install wvdial"
and it works for me, hopefully it can be useful.
I believe there is a better method and I am still searching...
Thanks for the devs for this release, I have learned many new things here and keep up the good works.