En el mundo de la telefonía IP se escucha cada vez más el concepto PJSIP. Por tal motivo decidí aterrizar las ideas en este post para entender las diferencias entre pjsip y sip.
El canal de señalización para el protocolo de telefonía IP por estándar ha sido SIP, sin embargo está dando un giro a una librería llamada PJSIP. Pero veamos por qué este cambio, qué ventajas nos ofrece y las diferencias entre PJSIP y SIP.
¡Conversemos en WhatsApp para apoyarte en tu proyecto de telefonía o call center!
¿Qué es el protocolo SIP?
Empecemos por SIP. Es un protocolo, es decir el conjunto de reglas que definen las especificaciones y procesos que tienen las comunicaciones por este. Este Protocolo de inicio de sesión (SIP) es un método que establece el modo de administrar la comunicación a través de Internet, por lo que fue adoptado para el uso de telefonía IP. (Sin embargo se puede usar para otros servicios). Las marcas de teléfonos IPs y plataforma de telefonía IP utilizan este protocolo como base.
Un driver de canal es el módulo que permite que algun telefono IP o software se comunique a través de algún protocolo, este puede ser: SIP, IAX, h323, etc.
El el mundo de Asterisk, tenemos dos drivers para SIP, es decir dos módulos desarrollados para poder conectarnos a otros dispositivos que soporten el protocolo SIP, estos drivers son : ChanSIP y PJSIP.
Hasta ahora debemos entender esto:
Protocolo SIP | Es un protocolo de Comunicación para telefonía IP. |
CHAN SIP | Driver para que un dispositivo/software se comunique con otro mediante el protocolo SIP |
PJSIP | Otro driver para que un dispositivo/software se comunique con otro mediante el protocolo SIP |
DRIVER CHAN SIP
Hablando desde el mundo de Asterisk, chan sip se desarrolló desde las primeras versiones y hasta la actualidad es usado. Dentro de los módulos de asterisk lo encontráramos como chan_sip, o simplemente sip (Aqui es donde surge la confusión, ya que por muchos años fue el unico driver). Si tienes un Asterisk 11 o inferior debes tener este driver, incluso en versiones posteriores es muy probable que lo uses.
Puedes validar que lo estas usando con el siguiente comando desde tu Asterisk: module show like chan_sip.so y tendras una salida como esta.
Incluso podemos probar el comando conocido para validar el estado de las extensiones: sip show peers y tendremos una salida similar a esta.
DRIVER PJSIP
PJSIP, es un nuevo drivers y este se utiliza en versiones desde asterisk 11 a asterisk 18 (hasta el momento que escribí esto). Este driver es prácticamente nuevo, y se está probando aun en varias plataformas para validar su estabilidad, sin embargo tiene funciones que valen la pena adentrarse. La primera función que escuche de el hace un par de años es que te permite conectar la misma extensión en dos IPs diferentes. (Si vienes del mundo de SIP, sabrás que esto está prohibido a nivel sacrilegio ).
Pjsip es integral, es decir hay muchos módulos con una tarea específica, Si ejecutas ‘modules show like pjsip’ verás todos los módulos de pjsip y lo que hacen.
Podemos validar si tenemos el módulo instalado en nuestro Asterisk con el siguiente comando: module show like res_pjsip.so
Podemos ver las extensiones PJSIP conectadas a nuestro Asterisk con el siguiente comando: pjsip show aors
Tabla comparativa entre SIP y PJSIP
Esta tabla la hice de acuerdo a algunas características que conozco, si dejas tus comentarios, puedo ir agregando a la tabla.
SIP | PJSIP |
Chan_sip es monolítico. Un solo pedazo de software hace todo. Desde manejo de registros, presencia, etc. | Pjsip es integral,es decir hay muchos módulos con una tarea específica |
Ya no se mantiene de forma activa | Tiene soporte de Asterisk |
Se puede montar en todas las versiones de Asterisk | A partir de Asterisk 16, PJSIP se descarga automáticamente |
Solo puedes ligar 1 extensión a 1 ip | Puedes tener la misma extensiones en diferentes IPs (locales o publicas) |
Comando en asterisk para ver extensiones: sip show peers | Comando en asterisk para ver extensiones: pjsip show aors |
PJSIP VS SIP
Como hemos comentado, es importante no confundir entre driver y protocolo. No podemos comparar pjsip vs sip. Sin embargo si podemos comparar chan_sip vs pjsip.
Lista de características de PJSIP
- Sistemas operativos soportados de PJSIP
- Windows
- Mac OS X
- Linux/uClinux
- Smartphones:
- iPhone OS/iOS (iPhone, iPad, iPod Touch)
- Android
- Windows Mobile
- BlackBerry 10 (BB10)
- Symbian S60 3rd Edition and 5th Edition
- Community supported:
- OpenBSD
- FreeBSD
- Solaris
- MinGW
- RTEMS
- Android
- Habilidades SIP
- Transporte: UDP, TCP, TLS, IPv6 (UDP only)
- Multiparte
- NAT Traversal
- STUN
- TURN
- ICE
- ICE
- Video
- Codecs: H.263-1998 (ffmpeg), H.264 (ffmpeg+x264, OpenH264)
Conoce la lista completa aqui: http://www.teluu.com/content/pjsip-features-and-datasheet
Otra tabla comparativa: https://support.flowroute.com/086810-Chan_SIP-and-Chan_PJSIP
Página oficial de pjsip https://www.pjsip.org/
5 respuestas en “Las diferencias entre SIP y PJSIP”
Ando buscando un curso de Kazoo VoIP.. hay alguno en espanol?
Desconozco quien pueda darte ese curso, ojala alguien que pasa por aquí te pueda orientas.
Estimado, tienes un error en el articulo, PJSIP no es un protocolo, es una libreria Open source desarrollada en C para la implementación de varios protocolos incluyendo sip. PJSIP is a free and open source multimedia communication library written in C language implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE. https://www.pjsip.org/
tienes razón estimado. justo es lo que trato de explicar en el documento y cometí el error de decir que pjsip es un protocolo. Quizás es la costumbre de pensarlo así. Lo corrijo en un momento. saludos.
Muchas gracias por la información, tengo muchos problemas con el servidor Asterick-Issabel y lo publicado me ha servido mucho. Saludos