mirror of https://github.com/OpenIPC/composer.git
91 lines
3.0 KiB
Plaintext
91 lines
3.0 KiB
Plaintext
############################################################################
|
|
# operator - a comgt script for viewing and selecting networks
|
|
#
|
|
# An example of how you might do operator selection when travelling
|
|
# in a foreign country.
|
|
# Big ToDo - improve the interface!!!
|
|
#
|
|
# Copyright (C) 2003 Paul Hardwick <paul@peck.org>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
###########################################################################
|
|
|
|
############################################################################
|
|
# $Id: operator,v 1.1 2006/10/20 14:19:54 pharscape Exp $
|
|
# $Log: operator,v $
|
|
# Revision 1.1 2006/10/20 14:19:54 pharscape
|
|
# Added scripts directory - expected operational location will /etc/comgt/
|
|
#
|
|
# Revision 1.1.1.1 2006/08/16 21:21:31 pharscape
|
|
# intial CVS import
|
|
#
|
|
############################################################################
|
|
opengt
|
|
set com 115200n81
|
|
set senddelay 0.05
|
|
waitquiet 2 0.5
|
|
:operator
|
|
send "AT+COPS=?^m"
|
|
waitfor 20 "+COPS=?","Error"
|
|
if % = -1 goto timeout
|
|
if % = 0 goto getlist
|
|
print "Error response from device\n"
|
|
exit 1
|
|
:getlist
|
|
let c=0
|
|
print "Getting Operator list: "
|
|
:waiting
|
|
print "."
|
|
get 2 "^m" $s
|
|
if % = -1 goto stillwaiting
|
|
waitquiet 1 0.2
|
|
print "\n"
|
|
print $s,"\n\n==============================================================\n"
|
|
print "Format: (Access,Long Name, Short Name, Network ID [,Technology])\n"
|
|
print "Access: 2 - Registered, 1 - Available, 3 - Forbidden\n"
|
|
print "Technology: 0 - GSM/GPRS, 2 - UMTS (Not available on all cards)\n"
|
|
print "\nEnter the Network ID to attempt manual registration\n [blank = automatic selection]:"
|
|
input $a
|
|
let a=len($a)
|
|
dec a
|
|
let $a=$left($a,a)
|
|
if $a = "" goto automatic
|
|
let $b="AT+COPS=1,2,\""+$a
|
|
let $b=$b+"\"^m"
|
|
send $b
|
|
goto waitresult
|
|
:automatic
|
|
let $b="AT+COPS=0^m"
|
|
send $b
|
|
:waitresult
|
|
waitfor 60 "OK","ERR"
|
|
if % = -1 goto timeout
|
|
if % = 2 goto failedreg
|
|
print "Registration request accepted\n"
|
|
print "Command was: ",$b,"\n"
|
|
exit 0
|
|
:failedreg
|
|
print "Registration request refused\n"
|
|
print "Command was: ",$b,"\n"
|
|
exit 1
|
|
:stillwaiting
|
|
if c > 60 goto timeout
|
|
let c=c+1
|
|
goto waiting
|
|
:timeout
|
|
print "Network Search Timeout\n"
|
|
exit 1
|