#!/bin/bash
###################### KciNicK Connection Script 0.4a ######################
# A continuacion hay unos datos que tenes que completar para que el script #
# pueda funcionar  correctamente,  tene en cuenta que despues del signo de #
# = (igual) no tiene que haber ningun espacio,  la forma correta de setear #
# la variable es, por Ej: "Usuario=corky",  sin las comillas :),  la forma #
# incorrecta seria algo como, por Ej: "Usuario= corky" o "Usuario = corky" #
#                                                                          #
# Si no queres que el script tire info alguna ejecutalo con -q (./ppp -q). #
#                                                                          #
# Bueno... espero que con este super script te puedas conectar lo mas bien #
# KciNicK Connection Script,  es una masa,  si  tenes  algun problema para #
# conectarte  con  el,  mandame un mail a mister8@hotmail.com o un mensaje #
# por ICQ al UIN 1266196,  y vemos  como  mierda lo podemos  solucionar... #
#                                                     bye, nos vemos...    #
############################################################################

rm -f /etc/ppp/connect-errors; echo "" > /etc/ppp/options
rm -f /etc/ppp/${Verif}-secrets; rm -f /etc/ppp/pppscript

### Telefono del ISP (Internet Service Provider)
Telefono=9,,0610222382623

### Usuario con el que logueas
Usuario=username@infovia

### Password con la que logueas
Password=clave_secreta

### Init String para el Modem
# Tip: ATM? : [0,1,2,3] Estado Speaker  0[off] 1[handshake] 2[on] 3[off] R:2
# Tip: ATL? : [0,1,2,3] Volumen Speaker 0[bajo] 1[bajo] 2[medio] 3[alto] R:1
# Tip: ATS11=?? : Velocidad de discado [100 - 40] 100[lento] 40[rapido] R:40
# Tip: AT&F1 : Resetea el Modem [algunos modems] USRobotics (?)
# Tip: AT&F  : Resetea el Modem [otros modems]   Zoltrix (?)
# Tip: ATZ   : Resetea el Modem [todos] 
# Atencion: Antes de usar el caracter "&" hay que poner una "\".  Ej: AT\&F1
# Ej: AT\&F1S11=40L0M1
# Ej: AT\&FS11=40L0M0
# Ej: ATZ  <----------- (Init a Prueba de Fallos)
Init=AT\&F1

### Metodo a usar para verificar la password con el ISP            Disponible
# Ej: chap (Challenge Handshake Authenticacion Protocol)               [x] *
# Ej: pap (Password Authenticacion Protocol)                           [x]
# Ej: mschap (MicroSoft Challenge Handshake Authenticacion Protocol)   [ ]
# Ej: script (Coneccion con script, sin protocolo)                     [x] 
# Importante: chap, pap, mschap o script hay que escribirlo en minusculas
# *: Modo de Coneccion Recomendado
#Verif=script
#Verif=chap
Verif=pap

### Script options... [solo editar si usa Verif=script]
# Cuando la coneccion se termina,  que tengo que esperar que pregunte el ISP
# y que tengo que responder a dicha pregunta,  por Ej: el provider pregunta:
# "Usuario:" y ahi le respondo "$Usuario", el provider pregunta: "Password:"
# y le respondo: "$Password",  las palabras que tienen un "$" adeltante  son 
# variables  del  sistema,  las  2  variables  que  tenes  que usar aca son:
# "$Usuario" y "$Password",  las  variables  son  case sensitive,  tenes que
# escribirlas tal cual estan ahi,  la "U" mayuscula y lo demas en minuscula,
# de lo contrario el script no va a funciona, si tenes que usar un signo ">"
# antes tenes que ponerle una "\", Ej: "ppp\>". Si tenes alguna duda de como
# se usa esto, mandame un mail o un mensaje por ICQ...

Espero1=ogin:
Mando1=$Usuario
Espero2=ssword:
Mando2=$Password

Espero3=
Mando3=
Espero4=
Mando4=
Espero5=
Mando5=

### Device donde esta el Modem
# Ej: /dev/ttyS0  <--> com1
# Ej: /dev/ttyS1  <--> com2
# Ej: /dev/ttyS2  <--> com3
# Ej: /dev/ttyS3  <--> com4
# Tip: No uses los /dev/cua, son obsoletos.
ModemDEV=/dev/ttyS0

### IRQ donde esta el Modem
# Ej: /dev/ttyS0  <--> IRQ 4 [default]
# Ej: /dev/ttyS1  <--> IRQ 3 [default]
# Ej: /dev/ttyS2  <--> IRQ 4 [default]
# Ej: /dev/ttyS3  <--> IRQ 3 [default]
# Tip: Cambia el IRQ solo si sabes lo que haces...
ModemIRQ=4

### Velocidad del Modem
# Ej: 300, 2400, 9600, 14400     <-->  spd_normal
# Ej: 28800, 33600, 57600        <-->  spd_vhi
ModemSPD=spd_vhi

### Domain Name Server [DNS]
# Ej: 200.42.0.109    <--> Ciudad Internet
# Ej: 200.31.1.8      <--> Impsat
# Tip: Si no sabes el DNS de tu ISP, elegi uno de esos, que igual andan.
DNS=209.13.167.227
DNS2=209.13.172.3

### Debug mode
# Ej: on
# Ej: off
# Si el script no conecta,  pone "Debug=on" para tener informacion mas de-
# tallada del problema,  la informacion esta en el file /var/log/messages.
Debug=off

###################### KciNicK Connection Script 0.4a ######################
# Listo,  termino la parte de configuracion del script,  de aca para abajo #
# no hace  faltas  que toques nada,  si tenes que modificar algo por cual- #
# quier cosa,  como por  ejemplo  arreglar un bug o perfeccionar el script #
# mandame un mensaje y lo hablamos...                                      #
#                                                     bye, nos vemos...    #
############################################################################

#echo "hide-password" >> /etc/ppp/options
error=0
if [ "${Telefono}" = "" ]; then error=1; fi
if [ "${Usuario}" = "" ]; then error=1; fi
if [ "${Password}" = "" ]; then error=1; fi
if [ "${Init}" = "" ]; then error=1; fi
if [ "${ModemDEV}" = "" ]; then error=1; fi
if [ "${ModemIRQ}" = "" ]; then error=1; fi
if [ "${ModemSPD}" = "" ]; then error=1; fi
if [ "${Verif}" = "" ]; then error=1; fi
if [ "${DNS}" = "" ]; then error=1; fi
if [ "${Debug}" = "" ]; then error=1; fi

if [ "${error}" = "1" ]; then
	echo "[0;32m--[ [1;32mKciNicK Connection Script 0.4 [0;32m]--[0;37m"
	echo ""
	echo -n "[1;32mChequeando Variables: "
	echo "[0;31m[ERROR code [1;31m243[0;31m] Variables no Seteadas"
	echo "[0;36mSolucion: [1;36mEditar el script y setear las variables :)[0;37m"
	echo ""
	exit 0
fi

rm -f /etc/ppp/*-secrets; rm -f /etc/ppp/pppscript
rm -f /etc/ppp/connect-errors; echo "" > /etc/ppp/options

setserial ${ModemDEV} irq ${ModemIRQ} ${ModemSPD}

#echo "search soretito.com" > /etc/resolv.conf
> /etc/resolv.conf
echo "nameserver ${DNS}" >> /etc/resolv.conf
echo "nameserver ${DNS2}" >> /etc/resolv.conf

echo "lock" > /etc/ppp/options
echo "defaultroute" >> /etc/ppp/options
echo "noipdefault" >> /etc/ppp/options
echo "modem" >> /etc/ppp/options
#echo "idle 1200" >> /etc/ppp/options
#echo "hide-password" >> /etc/ppp/options
echo "${ModemDEV}" >> /etc/ppp/options
if [ "$ModemSPD" = "spd_vhi" ]; then
	echo "115200" >> /etc/ppp/options
else
	echo "57600" >> /etc/ppp/options
fi
echo "crtscts" >> /etc/ppp/options
if [ "$Debug" = "on" ]; then
	echo "debug" >> /etc/ppp/options
fi
echo "passive" >> /etc/ppp/options

echo TIMEOUT 60 > /etc/ppp/pppscript
echo ABORT ERROR >> /etc/ppp/pppscript
echo ABORT BUSY >> /etc/ppp/pppscript
echo ABORT \"NO CARRIER\" >> /etc/ppp/pppscript
echo ABORT \"NO DIALTONE\" >> /etc/ppp/pppscript
echo REPORT \"CARRIER\" >> /etc/ppp/pppscript
echo REPORT \"CONNECT\" >> /etc/ppp/pppscript
echo "\"\" \"${Init}\" OK" >> /etc/ppp/pppscript
echo "\"atdt${Telefono}\"" >> /etc/ppp/pppscript
echo TIMEOUT 90 >> /etc/ppp/pppscript
echo CONNECT \"\" >> /etc/ppp/pppscript

if [ "$Verif" = "chap" ]; then
	echo "\"${Usuario}\"   *   \"${Password}\"" > /etc/ppp/chap-secrets
	echo "name \"${Usuario}\"" >> /etc/ppp/options
else
	if [ "$Verif" = "pap" ]; then
		echo "\"${Usuario}\"   *   \"${Password}\"" > /etc/ppp/pap-secrets
		echo "name \"${Usuario}\"" >> /etc/ppp/options
	else
		if [ "$Verif" = "script" ]; then
			if [ ! "$Espero1" = "" ]; then
				echo "${Espero1} ${Mando1}" >> /etc/ppp/pppscript
			fi
			if [ ! "$Espero2" = "" ]; then
				echo "${Espero2} ${Mando2}" >> /etc/ppp/pppscript
			fi
			if [ ! "$Espero3" = "" ]; then
				echo "${Espero3} ${Mando3}" >> /etc/ppp/pppscript
			fi
			if [ ! "$Espero4" = "" ]; then
				echo "${Espero4} ${Mando4}" >> /etc/ppp/pppscript
			fi
			if [ ! "$Espero5" = "" ]; then
				echo "${Espero5} ${Mando5}" >> /etc/ppp/pppscript
			fi
		else
			echo ""
			echo "El modo de verificacion "${Verif}" no es reconocido..."
			echo "Edita el script y arregla eso..."
			echo ""
			exit 0
		fi
	fi
fi

echo "connect \"/usr/sbin/chat -v -f /etc/ppp/pppscript\"" >> /etc/ppp/options

kill -9 2>/dev/null `cat /var/run/ppp*.pid 2>/dev/null`
rm -f /var/spool/uucp/LCK* /var/lock/LCK* /var/run/ppp*.pid

if [ "$1" != "-q" ]; then
	echo "[0;32m--[ [1;32mKciNicK Connection Script 0.4 [0;32m]--[0;37m"
	echo ""
	echo -n "[1;32mChequeando Variables: "
	echo "[1;36mVariables Seteadas, Conectando..."
	echo ""
	echo "[1;31mAtencion! [0;37mEsperar que diga el [1;36mLOCAL IP[0;37m y despues tocar ENTER"
fi

/usr/sbin/pppd
