Realtime: asterisk en base de datos - Implementación : Tabla,Meetme

 

COMPARTO EL VÍDEO EN MI CANAL





Script de las tablas

--
-- Volcado de datos para la tabla `extensions`
--

INSERT INTO `extensions` (`id`, `context`, `exten`, `priority`, `app`, `appdata`) VALUES
(5, 'my-sip', '_35XX', 1, 'MeetMe', '${EXTEN}');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `meetme`
--

CREATE TABLE IF NOT EXISTS `meetme` (
  `confno` varchar(80) NOT NULL DEFAULT '0',
  `username` varchar(64) NOT NULL DEFAULT '',
  `domain` varchar(128) NOT NULL DEFAULT '',
  `pin` varchar(20) DEFAULT NULL,
  `adminpin` varchar(20) DEFAULT NULL,
  `members` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`confno`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Volcado de datos para la tabla `meetme`
--

INSERT INTO `meetme` (`confno`, `username`, `domain`, `pin`, `adminpin`, `members`) VALUES
('3555', '', '', '1111', '2222', 0),
('3556', '', '', '1111', '2222', 0);


Realtime: asterisk en base de datos - Implementación : Tabla, voicemail (Buzon de voz)

 

COMPARTO EL VIDEO EN MI CANAL



Script de la tabla voicemail

CREATE TABLE `voicemail_users` (
  `uniqueid` int(11) NOT NULL,
  `customer_id` varchar(11) NOT NULL DEFAULT '0',
  `context` varchar(50) NOT NULL,
  `mailbox` varchar(11) NOT NULL DEFAULT '0',
  `password` varchar(5) NOT NULL DEFAULT '0',
  `fullname` varchar(150) NOT NULL,
  `email` varchar(50) NOT NULL,
  `pager` varchar(50) NOT NULL,
  `tz` varchar(10) NOT NULL DEFAULT 'central',
  `attach` varchar(4) NOT NULL DEFAULT 'yes',
  `saycid` varchar(4) NOT NULL DEFAULT 'yes',
  `dialout` varchar(10) NOT NULL,
  `callback` varchar(10) NOT NULL,
  `review` varchar(4) NOT NULL DEFAULT 'no',
  `operator` varchar(4) NOT NULL DEFAULT 'no',
  `envelope` varchar(4) NOT NULL DEFAULT 'no',
  `sayduration` varchar(4) NOT NULL DEFAULT 'no',
  `saydurationm` tinyint(4) NOT NULL DEFAULT '1',
  `sendvoicemail` varchar(4) NOT NULL DEFAULT 'no',
  `delete` varchar(4) NOT NULL DEFAULT 'no',
  `nextaftercmd` varchar(4) NOT NULL DEFAULT 'yes',
  `forcename` varchar(4) NOT NULL DEFAULT 'no',
  `forcegreetings` varchar(4) NOT NULL DEFAULT 'no',
  `hidefromdir` varchar(4) NOT NULL DEFAULT 'yes',
  `stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Registros para voicemail

INSERT INTO `voicemail_users` (`uniqueid`, `customer_id`, `context`, `mailbox`, `password`, `fullname`, `email`, `pager`, `tz`, `attach`, `saycid`, `dialout`, `callback`, `review`, `operator`, `envelope`, `sayduration`, `saydurationm`, `sendvoicemail`, `delete`, `nextaftercmd`, `forcename`, `forcegreetings`, `hidefromdir`, `stamp`) VALUES
(1, '3001', 'my-sip', '3001', '1234', 'Nombre Apellido', 'recursivo@recursivoweb.com', '', 'central', 'yes', 'no', '', '', 'no', 'no', 'no', 'no', 1, 'no', 'no', 'yes', 'no', 'no', 'no', '');


Registros para extensions

INSERT INTO `extensions` (`id`, `context`, `exten`, `priority`, `app`, `appdata`) VALUES
(4, 'my-sip', '_30XX', 2, 'VoiceMail', '${EXTEN}@my-sip'),
(6, 'my-sip', '_*0', 1, 'VoiceMailMain', '${CALLERID(num)}@my-sip');

Realtime: asterisk en base de datos - Implementación : Tabla, cdr (Call Detail Record)

 

VER EL VIDEO AQUI




SCRIPT DE LA TABLA CDR:

CREATE TABLE `cdr` (
  `uniqueid` int(80) NOT NULL,
  `userfield` varchar(255) NOT NULL DEFAULT '',
  `accountcode` varchar(20) NOT NULL DEFAULT '',
  `src` varchar(80) NOT NULL DEFAULT '',
  `dst` varchar(80) NOT NULL DEFAULT '',
  `dcontext` varchar(80) NOT NULL DEFAULT '',
  `clid` varchar(80) NOT NULL DEFAULT '',
  `channel` varchar(80) NOT NULL DEFAULT '',
  `dstchannel` varchar(80) NOT NULL DEFAULT '',
  `lastapp` varchar(80) NOT NULL DEFAULT '',
  `lastdata` varchar(80) NOT NULL DEFAULT '',
  `calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `duration` int(11) NOT NULL DEFAULT '0',
  `billsec` int(11) NOT NULL DEFAULT '0',
  `disposition` varchar(45) NOT NULL DEFAULT '',
  `amaflags` int(11) NOT NULL DEFAULT '0',
  `value` float(7,3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Realtime: asterisk en base de datos - Implementación : Tabla, sip_buddies

 asterisk desde base de datos MySql
 Ver video del proyecto a continuación.

 


Script tabla Sip_buddies

CREATE TABLE `sip_buddies` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(80) NOT NULL,
  `callerid` varchar(80) DEFAULT NULL,
  `defaultuser` varchar(80) NOT NULL,
  `regexten` varchar(80) NOT NULL,
  `secret` varchar(80) DEFAULT NULL,
  `mailbox` varchar(50) DEFAULT NULL,
  `accountcode` varchar(20) DEFAULT NULL,
  `context` varchar(80) DEFAULT NULL,
  `amaflags` varchar(7) DEFAULT NULL,
  `callgroup` varchar(10) DEFAULT NULL,
  `canreinvite` char(3) DEFAULT 'yes',
  `defaultip` varchar(15) DEFAULT NULL,
  `dtmfmode` varchar(7) DEFAULT NULL,
  `fromuser` varchar(80) DEFAULT NULL,
  `fromdomain` varchar(80) DEFAULT NULL,
  `fullcontact` varchar(80) DEFAULT NULL,
  `host` varchar(31) NOT NULL,
  `insecure` varchar(4) DEFAULT NULL,
  `language` char(2) DEFAULT NULL,
  `md5secret` varchar(80) DEFAULT NULL,
  `nat` varchar(5) NOT NULL DEFAULT 'no',
  `deny` varchar(95) DEFAULT NULL,
  `permit` varchar(95) DEFAULT NULL,
  `mask` varchar(95) DEFAULT NULL,
  `pickupgroup` varchar(10) DEFAULT NULL,
  `port` varchar(5) NOT NULL,
  `qualify` char(3) DEFAULT NULL,
  `restrictcid` char(1) DEFAULT NULL,
  `rtptimeout` char(3) DEFAULT NULL,
  `rtpholdtimeout` char(3) DEFAULT NULL,
  `type` varchar(6) NOT NULL DEFAULT 'friend',
  `disallow` varchar(100) DEFAULT 'all',
  `allow` varchar(100) DEFAULT 'g729;ilbc;gsm;ulaw;alaw',
  `musiconhold` varchar(100) DEFAULT NULL,
  `regseconds` int(11) NOT NULL DEFAULT '0',
  `ipaddr` varchar(15) NOT NULL,
  `cancallforward` char(3) DEFAULT 'yes',
  `lastms` int(11) NOT NULL,
  `useragent` char(255) DEFAULT NULL,
  `regserver` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `name_2` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=894 DEFAULT CHARSET=latin1;


Registros para Sip_buddies

insert  into `sip_buddies`(`id`,`name`,`callerid`,`defaultuser`,`regexten`,`secret`,`mailbox`,`accountcode`,`context`,`amaflags`,`callgroup`,`canreinvite`,`defaultip`,`dtmfmode`,`fromuser`,`fromdomain`,`fullcontact`,`host`,`insecure`,`language`,`md5secret`,`nat`,`deny`,`permit`,`mask`,`pickupgroup`,`port`,`qualify`,`restrictcid`,`rtptimeout`,`rtpholdtimeout`,`type`,`disallow`,`allow`,`musiconhold`,`regseconds`,`ipaddr`,`cancallforward`,`lastms`,`useragent`,`regserver`) values (1,'3000',NULL,'3000','','1234',NULL,NULL,'my-sip',NULL,NULL,'yes',NULL,NULL,NULL,NULL,'','dynamic',NULL,NULL,NULL,'yes',NULL,NULL,NULL,NULL,'','no',NULL,NULL,NULL,'friend','all','g729;ilbc;gsm;ulaw;alaw',NULL,'','','yes',0,'','');


Script tabla extensions

 CREATE TABLE `extensions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `context` varchar(20) NOT NULL DEFAULT '',
  `exten` varchar(20) NOT NULL DEFAULT '',
  `priority` tinyint(4) NOT NULL DEFAULT '0',
  `app` varchar(20) NOT NULL DEFAULT '',
  `appdata` varchar(128) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=261 DEFAULT CHARSET=latin1;


Registros para extensions

insert  into `extensions`(`id`,`context`,`exten`,`priority`,`app`,`appdata`) values (1,'my-sip','_3XXX',1,'Dial','SIP/${EXTEN},30,Ttr'),(2,'my-sip','_3XXX',2,'hangup','');


Mas información en mi canal de youtube. https://www.youtube.com/@recursivoweb
 Visita la pagina de facebook: https://www.facebook.com/recursivoweb


Descarga, instalación y configuracón de phpMyAdmin - Centos 6

 phpMyAdmin es un script PHP destinado a dar a los usuarios la capacidad de interactuar y administrar bases de datos MySQL.

Es de libre distribución y a su vez permite realizar todo tipo de operaciones sobre bases de datos:
- crear, borrar y modificar tablas
- consultar, insertar, modificar y eliminar datos
- definir usuarios y asignar permisos
- realizar copias de seguridad
- Puede administrar bases locales y remotas

Una visión "cruda" de los datos, tablas y campos almacenados en la base de datos MySQL es accesible a través de phpMyAdmin desde un navegador web.

Ver Video:
 

Instalación de Linux, Apache, MySQL, PHP (LAMP) Centos 6

 Se denomina "LAMP" a un grupo de software de código libre que se instala normalmente en conjunto para habilitar un servidor para alojar sitios y aplicaciones web dinámicas. Este término en realidad es un acrónimo que representa un sistema operativo Linux con un servior Apache, el sitio de datos es almacenado en base de datos MySQL y el contenido dinámico es procesado con PHP.

Ahora que tienes un LAMP instalado, hay muchas opciones para proceder después de esto. Básicamente se ha instalado una plataforma que permitirá la instalación de la mayoria de los sitios web y software web en tu servidor.

Algunas opciones son:

-Instalar algun CMS como Wordpress, Joomla o algun otro sistema de gestión de contenidos.

-Configurar phpMyAdmin para ayudar a manejar tus bases de datos MySQL desde tu navegador web.

Agregar puerto 80:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Ver video: 
 

Descarga e instalación de dahdi, libpri y asterisk 11 - Centos 6

 El orden para instalar es:
1. DAHDI
2. LibPRI
3. Asterisk

The Digium Asterisk Hardware Device Interface, or DAHDI (formerly known as Zaptel), Es el software utilizado para interactuar con el hardware de la telefonia. Es recomendable instalarlo asi no se tenga el hardware ya que dahdi es una dependencia necesaria para la construcción de algunos modulos. Es usado para el dialplan de aplicaciones como Meetme.

LIBPRI es una biblioteca que añade soporte para ISDN (PRI y BRI). El uso de libpri es opcional, pero ya que tiene muy poco tiempo para instalar, no interfiere en nada, y será muy útil si alguna vez desea agregar tarjetas a un sistema en un momento posterior, se recomienda que instale ahora. Asegúrese de instalar DAHDI antes de la instalación de libpri ya que existe una dependencia en un archivo de cabecera DAHDI durante la compilación.

Asterisk es un programa de software libre (bajo licencia GPL) que proporciona funcionalidades de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios.

QUIERES SABER MAS SOBRE ASTERISK 11 IMPORTANTE LEER EL SIGUIENTE LIBRO:
FOURTH EDITION
Asterisk™: The Definitive Guide  Descargar guia aqui:  

Ver video de descarga e instalacón aqui: 
 

Habilitar adaptador de red en centos 6 y configuar direccion ip automatica dhcp o ip fija static

 Comparto video subido a youtube:


 
Configurar una dirección IP estática y habilitar la tarjeta de Red en CentOS 6.4
Si nuestra red no cuenta con el servicio DHCP o si necesitamos asignar una dirección IP fija o cambiar la IP a nuestro sistema, debemos realizar ciertos pasos de configuración a CentOS 6 que también aplica para Red Hat 6.
Determinemos el nombre que asignó CentOS a nuestra tarjeta de red:
# ifconfig -a
eth0
lo      
 
Una vez conocemos nuestra tarjeta de red, accedamos al archivo de configuración ifcfg-eth0:.
 
# vi /etc/sysconfig/network-scripts/ifcfg-eth0  en centos 7 reemplazar etho por enp0s3
DEVICE=eth0
HWADDR=00:0C:28:E2:F5:23TYPE=Ethernet
UUID=4564ee12-f608-4b8f-8385-67888u76543
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp
Por defecto la interfaz de red está deshabilitada:
ONBOOT=no
y su configuración por defecto recibe la dirección IP de manera automática:
BOOTPROTO=dhcp
Modifiquemos ambos parámetros y adicionemos otros de tal manera que el archivo de configuración quede similar a:
DEVICE=eth0
HWADDR=00:0C:28:E2:F5:23
TYPE=Ethernet
UUID=4564ee12-f608-4b8f-8385-67888u76543
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=10.0.2.18
NETMASK=255.255.255.0
GATEWAY=10.0.2.2
DNS1=198.xx.x.xxx
DNS2=188.xx.x.xxx
 
Recordar que para modificar y agregar texto en nuestro editor vi se debe presionar la tecla 'i' y para guardar el archivo presionamos la tecla ESC, escribimos :wq y  ENTER.
 
Una vez hecho eso reiniciemos el servicio de red ejecutando:
# service network restart
 
Para verificar que nuestra si configuración de red podemos ejecutar:
# ifconfig
 
Con esto ya quedara funcionando, para mayor claridad observer el video arriba.

Introducción a Linux

 

ACERCA DE LINUX


Que es Linux?
-Linux es un sistema operativo tipo Unix-like.
-Su código es Open Source. (Cualquier usuario o persona puede modificar el código y su comportamiento)
-Represento ecosistema tecnológico de 25 billones en 2008.
-Ninguna compañía es propietaria de Linux.
-Más de 1000 desarrolladores de más de 100 compañías contribuyen diariamente al desarrollo del kernel. Entre ellas. IBM, Oracle, Google, Twitter, Facebook, Amazon.

Donde esta Linux?
-Everywhere – Linux se encuentra en cualquier lugar.
-En servidores
-PCs de escritorio.
-Tivo – Televisión por cable.
-Google Android
-Cloud Computing
-Facebook, Twiter, Linkein.
-Youtube
Linux está en la web 2.0. (Buscador google, tienda Amazon, etc.)

Características de Linux
-Multiusuario, soporta múltiples usuarios a la vez.
Multitarea, puede manejar múltiples tareas a la vez.
Multiplataforma ( Intel x86,spark, Power PC, As/400 ) Se deja utilizar en varias arquitecturas.
-Multiprocesador, Funciona con más de un procesador en diferentes arquitecturas x86, x64.
-Free, es libre de uso.
-Estabilidad.

Ventajas
-Linux is free!, su uso no tiene restricción.
-Estabilidad, no tiene fallas a nivel de software lo que lo hace muy confiable.
-Seguridad, gracias a la comunidad que trabaja por el source.
-No virus, en Linux no existen los virus gracias a su robustez.
-Adaptabilidad, se adapta a cualquier dispositivo, servidores, desktop, Smartphone.

Desventajas
Las desventajas realmente son pocas.
-Algunos dispositivos no funcionen. Escáneres, impresoras, entre otros.
-Las aplicaciones de Windows no funcionan. Solo funcionan aplicaciones desarrolladas para Linux.
-Soporte técnico. El único soporte es google en sus buscadores, foros, capacitación, etc.
Aunque hay empresas como Red hat o Novell  brindan soporte técnico por una suscripción a sus distribuciones, es decir dan soporte por un pago que puede ser anual.


Licenciamiento
Software propietario
-copyright.
Software libre
-GNU General Public License(GPL)

Distribuciones
-Red had, creada por la compañía Rd Hat Inc. http://www.redhat.com/
-Fedora, creada por la compañía Red Had Ink. http://www.fedoraproject.org/
-Centos, Se enfoca para servidores. http://www.centos.org/    Centos es una derivación directa de Red Had Enterprise Edition. ( Centos es más utilizado para servidores firewall e IP Pbx por su gran estabilidad y confiabilidad )
-Ubuntu, Distribución más reconocida y tal vez la más usada en desktop. http://Ubuntu.com/
Creada por la compañía canonical  http://canonical.com/ conocidos además por su distribución Ubuntu server.
-Debian, es una distribución antigua dentro del mundo Linux y muy popular. http://debian.org/
Todo el código bajo debían debe estar bajo GPL, es decir no debe existir software propietario incluido en esta distribución.
-Suse, distribución de Linux comercializada por la empresa Novell. http://www.novell.com/linux/


Para conocer sobre más distribuciones Linux: http://distrowatch.com/


Certificaciones
Linux Profesional Institute.
Esta certificación abarca un conocimiento general del sistema operativo Linux sin importar distribución.
-       http://www.lpi.org
-       LPIC Level 1
-       LPIC Level 2
-       LPIC Level 3

Red Hat Certified Engineer
-http://www.redhat.com/certification/rhce/
Esta certificación está orientada exclusivamente a la distribución redhatl, el examen es practico presencial en un centro autorizado.

Novell Certified Engineer
Para la distribución suse Linux.

Repositorios para obtener software de Linux

Sitios de Interés

Desarrollo
La mayoría de los desarrolladores del núcleo de Linux son voluntarios.
-una gran masa crítica de desarrolladores trabajan para compañías interesadas en el desarrollo de Linux.
-52.86% de código en Linux está escrito en C, 25,56% en C++, el resto en java, perl y otros lenguajes de programación.
-95% de código en el núcleo está escrito en C.
-5% en lenguaje ensamblador.



Interfaz de Usuario

GUI vs CLI

-GUI ----Version Grafica.
* KDE
* Gnone

-CLI ---- Version de linea de comando.
* Bash
* Ksh


A la hora de elegir la interfaz es importante tener en cuenta que GUI ocupa más recursos en RAM es por ello que mucha gente prefiere usar el CLI sobre todo si se necesita Linux para servidor.


Para mas información sobre el kernel de Linux consultar: http://www.linux.org/