Ejemplos
de Integración
API Mikrotik
MUM Montevideo 2017
HablaIP
Integración & Desarrollo
Agenda
• Introducción
• Ejemplo básico con PHP
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Ejemplo en C# con PRTG
• Q & A
HablaIP
Integración & Desarrollo
Sobre nosotros
• Adolfo Troncoso <
[email protected]>
– Desarrollador con más de 20 años de experiencia
en programación de aplicaciones desktop, web y
móviles con integración en telemetría y procesos
de negocio.
– MTCNA - MTCTCE
• Jaime Cruz M. <
[email protected]>
– Integrador de sistemas con más de 10 años de
experiencia en telecomunicaciones, Sistemas
Linux, Asterisk y telefonía IP.
– MTCNA - MTCTCE
HablaIP
Integración & Desarrollo
Sobre HablaIP
www.Hablaip.com
Santiago de Chile
• Inicios en el 2015
• Asesoría y soporte
• Desarrollo de aplicaciones
– Telefonía, SMS
– Aplicaciones Android
• Integración de sistemas
– Monitoreo
– Geolocalización
HablaIP
Integración & Desarrollo
Agenda
• Introducción
• Ejemplo básico con PHP
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Ejemplo en C# con PRTG
• Q & A
HablaIP
Integración & Desarrollo
Introducción
• Que es?
– Viene del inglés Application Programming
Interface
– es un conjunto de funciones que permiten
controlar un Mikrotik desde un sistema
externo
• Como funciona la API de Mikrotik:
– A través del envío de comando y recepción del
resultado de su ejecución utilizando el protocolo
Telnet al puerto por defecto 8728/tcp.
HablaIP
Integración & Desarrollo
Introducción
• Comandos simples:
/login
/system/reboot
/user/active/listen
• Comandos con atributos:
/queue/simple/add=max-
limit=256k/1M=name=Cli=target=10.10.10.0/24
(consulta de interfaces)
/interface/print?type=ether?type=vlan?#|!
HablaIP
Integración & Desarrollo
Introducción
• Ejemplo de traza de comando /login:
HablaIP
Integración & Desarrollo
Introducción
• Consulta de información systema:
HablaIP
Integración & Desarrollo
Introducción
• Hay una forma facil de usa la API
de Mikrotik¿?
HablaIP
Integración & Desarrollo
Introducción
• Existen librerías para
– PHP
– Delphi
– C /++/#
– Python
– Ruby on rails
– VB .Net
– Java
– Perl
– Etc.
HablaIP
Integración & Desarrollo
Agenda
• Introduccion
• Ejemplo básico con PHP
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Ejemplo en C# con PRTG
• Q & A
HablaIP
Integración & Desarrollo
Ejemplo PHP
• Habilitar API en Mikrotik
– IP -> Service
– Enable “api”
– Aplicar seguridad al servicio “api”
HablaIP
Integración & Desarrollo
Ejemplo PHP
• Crear un “Group List”
– Aplicar Policies: “api, read, write”
HablaIP
Integración & Desarrollo
Ejemplo PHP
• Crear un usuario
– Crear usuario
– Asignar grupo “geo-api”
– Aplicar seguridad
HablaIP
Integración & Desarrollo
Ejemplo en PHP
• Librerías de ejemplo
(Denis Basta)
https://wiki.mikrotik.com/wiki/API_PHP_class
(Kamil Trzcinski) GPL
https://wiki.mikrotik.com/wiki/RouterOS_PHP_class
(Vasil Rangelov) LGPL 2.1
https://wiki.mikrotik.com/wiki/API_PHP_package
HablaIP
Integración & Desarrollo
Ejemplo en PHP
• Ejemplo código PHP consulta
– Utiliza clase PHP gentileza: Denis Basta
[http://wiki.mikrotik.com/wiki/API_PHP_class]
HablaIP
Integración & Desarrollo
Ejemplo en PHP
DEMOSTRACION
HablaIP
Integración & Desarrollo
Agenda
• Introduccion
• Ejemplo básico con PHP
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Ejemplo en C# con PRTG
• Q & A
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
• Creación de accesos HotSpot basados en el
número de anexo de la habitación para poder
identificar fácilmente cada usuario
– Usuario = número de habitación (ej. 1020)
– Clave = Ingresada por el usuario desde su anexo
por DTFM
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
• Creación de accesos HotSpot basados en el
número de anexo de la habitación para poder
identificar fácilmente cada usuario
– Usuario = número de anexo (ej. 1020)
– Clave = Ingresada por el usuario desde su anexo
API
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
• Ingreso al HotSpot mediante nro. habitación
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
• Creación IVR en Asterisk: extensions.conf
demo: 2904 0172
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
• Creación IVR en Asterisk: extensions.conf
• Debug de consola de Asterisk
demo: 2904 0172
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
• Creación de usuario/clave vía API de Mikrotik
demo: 2904 0172
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
Comando de creación de
• Creación de usuario/clave vía API de Mikrotik
usuario HotSpot Mikrotik
demo: 2904 0172
HablaIP
Integración & Desarrollo
Asterisk & HotSpot
DEMOSTRACION
+(598) 2904 0172
HablaIP
Integración & Desarrollo
Agenda
• Introduccion
• Ejemplo básico con PHP
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Ejemplo en C# con PRTG
• Q & A
HablaIP
Integración & Desarrollo
Android & HotSpot
• Creacion de accesos HotSpot basados en un
mensaje SMS
– Usuario = número de teléfono móvil
– Clave = generada automática y enviada por SMS
wifi
Su clave es: 5476
API Mikrotik
HablaIP
Integración & Desarrollo
Android & HotSpot
• Ejemplo de mensajería de envío & respuesta
wifi
Su clave es: 5476
API Mikrotik
HablaIP
Integración & Desarrollo
Android & HotSpot
• Número demo +598 9529 9847
• Enviar mensaje: wifi
HablaIP
Integración & Desarrollo
Android & HotSpot
DEMOSTRACION
+598 9529 9847
HablaIP
Integración & Desarrollo
Agenda
• Introduccion
• Ejemplo básico con PHP
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Ejemplo en C# con PRTG
• Q & A
HablaIP
Integración & Desarrollo
C# & Mikrotik
• Ejemplo código C# consultas
– Utiliza clase C# de Wiki Mikrotik
[https://wiki.mikrotik.com/wiki/API_in_C_Sharp]
HablaIP
Integración & Desarrollo
C# & Mikrotik
• Creación de un PlugIN de monitoreo en C#
para sistema PRTG.
Dispositivo Mikrotik HotSpot
Sensor vía API de Mikrotik
HablaIP
Integración & Desarrollo
C# & Mikrotik
• Se integró un sensor de Mikrotik vía API
– Número de usuarios HotSpot activos
– Número de usuarios HotSpot creados
Sensor creado en Visual C# con
API de Mikrotik
HablaIP
Integración & Desarrollo
C# & Mikrotik
Usuarios activos en Mikrotik
HotSpot
HablaIP
Integración & Desarrollo
C# & Mikrotik
Gráfico de usuarios
creados/activos en Mikrotik
HotSpot
HablaIP
Integración & Desarrollo
C# & Mikrotik
• Ejecutable en C# contra API Mikrotik consulta:
– Número de usuarios HotSpot activos
– Número de usuarios HotSpot creados
API
HablaIP
Integración & Desarrollo
C# & Mikrotik
Consulta de todos los usuarios
• Ejecutable en C# contra API Mikrotik:
en HotSpot Mikrotik
API
HablaIP
Integración & Desarrollo
C# & Mikrotik
Así se ve en el resultado en PRTG
HablaIP
Integración & Desarrollo
Agenda
• Introducción & El problema
• Dashboard con API Mikrotik
• Integración Asterisk & Hotspot
• Integración Android & HotSpot
• Monitoreo integrado con PRTG
• Potencialidad de la API Mikrotik
HablaIP Potencial de API Mikrotik
Integración & Desarrollo
• Posibilidad de integración con cualquier
sistema a través de una red TCP/IP.
– Con o sin Internet
• Existe librerías en múltiples lenguajes
– PHP, Python, Delphi, C#, etc.
HablaIP Potencial de API Mikrotik
Integración & Desarrollo
• Ejemplos presentados hoy:
Posibilidades LÍMITADAS solo por tu imaginación
HablaIP
Integración & Desarrollo
Q & A
Ejemplos de Integración
API Mikrotik
MUM Montevideo 2017