3 [ -n "$INCLUDE_ONLY" ] ||
{
12 proto_3g_init_config
() {
15 ppp_generic_init_config
16 proto_config_add_string
"device:device"
17 proto_config_add_string
"apn"
18 proto_config_add_string
"service"
19 proto_config_add_string
"pincode"
20 proto_config_add_string
"delay"
21 proto_config_add_string
"dialnumber"
28 json_get_var device device
30 json_get_var service service
31 json_get_var pincode pincode
32 json_get_var dialnumber dialnumber
33 json_get_var delay delay
35 [ -n "$dat_device" ] && device
=$dat_device
37 device
="$(readlink -f $device)"
39 proto_set_available
"$interface" 0
43 [ -n "$delay" ] && sleep "$delay"
47 chat
="/etc/chatscripts/evdo.chat"
50 chat
="/etc/chatscripts/3g.chat"
51 cardinfo
=$
(gcom
-d "$device" -s /etc
/gcom
/getcardinfo.gcom
)
52 if echo "$cardinfo" |
grep -q Novatel
; then
58 export MODE
="AT\$NWRAT=${CODE},2"
59 elif echo "$cardinfo" |
grep -q Option
; then
65 export MODE
="AT_OPSYS=${CODE}"
66 elif echo "$cardinfo" |
grep -q "Sierra Wireless"; then
68 elif echo "$cardinfo" |
grep -qi huawei
; then
70 umts_only
) CODE
="14,2";;
71 gprs_only
) CODE
="13,1";;
74 export MODE
="AT^SYSCFG=${CODE},3FFFFFFF,2,4"
77 if [ -n "$pincode" ]; then
78 PINCODE
="$pincode" gcom
-d "$device" -s /etc
/gcom
/setpin.gcom ||
{
79 proto_notify_error
"$interface" PIN_FAILED
80 proto_block_restart
"$interface"
84 [ -n "$MODE" ] && gcom
-d "$device" -s /etc
/gcom
/setmode.gcom
86 # wait for carrier to avoid firmware stability bugs
88 gcom
-d "$device" -s /etc
/gcom
/getcarrier.gcom ||
return 1
91 if [ -z "$dialnumber" ]; then
98 connect
="${apn:+USE_APN=$apn }DIALNUMBER=$dialnumber /usr/sbin/chat -t5 -v -E -f $chat"
99 ppp_generic_setup
"$interface" \
112 proto_3g_teardown
() {
113 proto_kill_command
"$interface"
116 [ -z "$NOT_INCLUDED" ] || add_protocol
3g