Interacción con la PBX
La interacción con la PBX se realiza a través de conexiones SIP, que se configuran conjuntamente tanto en el lado de la PBX como en el lado de SIP.TG.
Para crear una conexión SIP en el lado de SIP.TG:
- Inicie el bot @siptg_bot y vaya a la sección
/gateway
. - Seleccione la sesión de Telegram que desea conectar a la PBX, o cree una nueva utilizando el botón “Conectar” (para más detalles, consulte Conexión de sesión paso a paso).
- Haga clic en uno de los botones para crear una nueva conexión SIP, correspondiente al tipo de conexión: ”🆕 PBX→SIP․TG”, ”🆕 SIP․TG→PBX” o ”🆕 IP⇿IP”.
Configuración de la conexión SIP a la PBX
La mayoría de los ajustes se muestran directamente en los botones como valores actuales. Para cambiar estos ajustes, simplemente haga clic en el botón correspondiente e ingrese un nuevo valor cuando el bot lo solicite.
Sin embargo, algunos botones funcionan de manera diferente:
- Worker: al hacer clic, aparece una lista de servidores Worker disponibles. Seleccione el servidor deseado de la lista para ver su descripción detallada y asignarlo.
- Botones con marcas de verificación, como “DTMF ent.”, “DTMF sal.”, “Rellamar”, “Líneas”, “Procesamiento de mensajes”, “Callback” y “Compartir suscripción”, funcionan como interruptores. Un clic activa o desactiva la opción.
- Protocolo de conexión (UDP/TCP/TLS): cada clic cambia al siguiente protocolo disponible.
- Mostrar cuenta y Restablecer contraseña: muestran los parámetros de conexión a SIP.TG que deben especificarse en el lado de la PBX.
Servidor Worker
Servidor Worker
Permite seleccionar el servidor que se conectará a la PBX o al proveedor de telefonía.
Hay 3 tipos de servidores:
Tipo de servidor | Descripción | Símbolo |
---|---|---|
Servidores públicos de SIP.TG | Servidores principales soportados por SIP.TG | ✅ |
Servidores públicos de otros usuarios | Servidores disponibles públicamente alojados por otros usuarios | 🌐 |
Servidores privados | Sus propios servidores, disponibles solo para sus cuentas SIP | 🔑 |
En una suscripción gratuita, solo están disponibles algunos de los servidores públicos de SIP.TG.
Códecs de audio
Códecs de audio
La elección de códecs afecta la calidad y compatibilidad de la comunicación por voz. Se admiten los códecs Opus, alaw, mulaw, GSM y otros.
Métodos de transmisión DTMF
Métodos de transmisión DTMF
DTMF es necesario para interactuar con menús de voz. Los métodos disponibles son RFC2833 (recomendado), INFO e inband.
Reglas de transformación de números
Reglas de transformación de números
Permiten establecer el formato de marcación de números para la compatibilidad con la PBX. Más detalles en la sección Reglas de transformación de números.
Prioridad
Prioridad
La prioridad permite establecer el orden de llamada de las cuentas SIP al realizar una llamada de Telegram → SIP.
Se aplican las siguientes reglas:
- Las cuentas con la misma prioridad se llaman simultáneamente.
- Cuanto menor sea la prioridad, antes se llamarán a las cuentas SIP.
- La transición a la siguiente prioridad ocurre después de una marcación sin éxito a todas las cuentas SIP de la prioridad anterior.
Caller ID y Caller Name
Caller ID y Caller Name
Reglas para formar el identificador de llamada (Caller ID) y el nombre mostrado del llamante (Caller Name) al realizar una llamada, que se aplica a ambas direcciones.
Para más detalles, consulte Tipos de identificadores de llamante.
A continuación se presentan configuraciones específicas para cada tipo de conexión SIP.
PBX → SIP.TG
En este modo, su PBX se registra en SIP.TG como cliente SIP. Usted recibe un nombre de usuario y contraseña SIP del bot y los especifica en su PBX.
Este es el método de conexión más simple y es adecuado para la mayoría de los sistemas (Asterisk, 3CX, FreePBX, etc.).
Captura de pantalla con la configuración de conexión PBX→SIP.TG
Mostrar cuenta y Restablecer contraseña
Mostrar cuenta y Restablecer contraseña
Muestran el nombre de usuario, contraseña y dirección de conexión de la línea SIP actual, que debe registrarse en el lado de su PBX.
“Restablecer contraseña” genera previamente una nueva contraseña SIP para esta línea. Después de restablecerla, será necesario actualizarla en el lado de la PBX.
IPs confiables
IPs confiables
Una lista de direcciones IP y subredes desde las cuales se permite la conexión a esta cuenta.
SIP.TG → PBX
Aquí, el servidor Worker de SIP.TG se registra en su PBX. En el bot, usted establece los parámetros de su PBX: nombre de usuario, contraseña y dirección.
No olvide agregar las direcciones IP de SIP.TG a la lista blanca en su PBX. Lista actual: files.sip.tg/fw.txt.
Captura de pantalla con la configuración de conexión SIP.TG→PBX
Usuario, Contraseña, Dominio y Proxy
Usuario, Contraseña, Dominio y Proxy
Parámetros básicos de conexión que deben completarse para hacer posible la conexión a su PBX.
“Proxy” solo debe completarse si difiere del “Dominio”.
Número en la PBX
Número en la PBX
Cuando un usuario hace clic en el botón de llamada 📞 en la aplicación Telegram sin enviar ningún mensaje — este número se utilizará como número predeterminado que se enviará a la PBX.
IP ⇿ IP
Ambas partes conocen la dirección IP de la otra. Se utiliza en casos donde el registro es imposible o innecesario (por ejemplo, enrutamiento estático).
Adecuado para usuarios avanzados. Requiere configuración de rutas en el lado de la PBX.
Captura de pantalla con la configuración de conexión IP⇿IP
Dirección:puerto
Dirección:puerto
Dirección IP y puerto del lado opuesto (su PBX).
Para que la conexión se establezca, en el lado de la PBX, también debe crear una conexión con una dirección IP específica del servidor SIP.TG. Para esto, se utiliza la dirección IP del servidor Worker asignado a la conexión SIP.
La dirección IP actual del servidor Worker que se está utilizando se mostrará en el mensaje cuando solicite un cambio al parámetro actual.
Campo:Valor
Campo:Valor
Si desea utilizar múltiples conexiones SIP entre las mismas direcciones IP, este campo le permite establecer un encabezado SIP adicional para la identificación correcta de la conexión.
El parámetro se establece como un par {nombre del campo SIP}:{valor del campo SIP}
, separado por dos puntos :
.
Número en la PBX
Número en la PBX
Cuando un usuario hace clic en el botón de llamada 📞 en la aplicación Telegram sin enviar ningún mensaje — este número se utilizará como número predeterminado que se enviará a la PBX.
Tipos de identificadores de llamante
Cada usuario de Telegram puede tener hasta tres tipos de identificadores:
- Número de teléfono, en el que está registrada la cuenta. Siempre está presente, pero por defecto está oculto por la configuración de privacidad para otros usuarios. Con limitaciones significativas, es posible establecer contacto con un usuario por número de teléfono.
- Nombre de usuario (Username) — este es un nombre de usuario alfabético único. Por defecto, no existe, muchos usuarios lo configuran, pero estrictamente hablando, puede estar ausente. Por el contrario, un usuario puede tener varios nombres de usuario coleccionables. Puede establecer contacto con un usuario por nombre de usuario, y las restricciones son mucho más suaves que para el número de teléfono, pero las PBX en la nube a menudo no contemplan el uso de identificadores de llamante no numéricos.
- ID de usuario (User ID) — identificador numérico interno. Siempre presente, nunca cambia, pero es imposible establecer contacto con un usuario solo por ID de usuario — puede usarse solo después de que se haya establecido contacto por uno de los otros métodos.
Tipo de identificador | Formato | Posibilidad de contacto | Obligatorio | Modificable | Soporte de PBX |
---|---|---|---|---|---|
Número de teléfono | numérico | limitada | sí | sí | sí |
Nombre de usuario | alfabético | sí | no | sí | limitado |
ID de usuario | numérico | no | sí | no | sí |
La tabla muestra que cada identificador tiene serias limitaciones que impiden su uso en todos los escenarios. SIP.TG admite todos los tipos de identificadores y sus combinaciones, y también permite establecer la prioridad de su uso según sus necesidades.
Telegram → PBX
Para cada conexión SIP, puede establecer reglas para formar el Caller ID, que se transmitirá en el campo From
en el mensaje INVITE
para llamadas de Telegram → PBX.
Las reglas de formación del Caller ID consisten en varias líneas, con una regla por línea. Cada regla es una cadena de plantilla, en la que {phone}
, {username}
y {userid}
están permitidos como parámetros de plantilla. Al formar el Caller ID final, se utiliza la primera regla, cuyos parámetros de plantilla contienen valores sobre el usuario de Telegram que llama.
Ejemplos de formación de Caller ID
Ejemplos de formación de Caller ID
Tal Caller ID en diferentes situaciones puede tomar los tres tipos de identificadores, dependiendo de cuáles tenga el usuario:
- Si el número de teléfono no está oculto — se utilizará.
- De lo contrario, si se ha establecido el nombre de usuario — el sistema lo elegirá.
- Y solo en el caso más excepcional se utilizará el ID de usuario con el prefijo
0
— esta etiqueta permite resolver la ambigüedad en la interpretación del tipo de identificador.
Tal Caller ID en diferentes situaciones puede tomar los tres tipos de identificadores, dependiendo de cuáles tenga el usuario:
- Si el número de teléfono no está oculto — se utilizará.
- De lo contrario, si se ha establecido el nombre de usuario — el sistema lo elegirá.
- Y solo en el caso más excepcional se utilizará el ID de usuario con el prefijo
0
— esta etiqueta permite resolver la ambigüedad en la interpretación del tipo de identificador.
Aquí, el comportamiento es similar al Ejemplo 1, con la única diferencia de que si el usuario no tiene ni número de teléfono ni nombre de usuario, tal llamada será prohibida y no llegará a la PBX.
Y este ejemplo difiere de los dos primeros en que si el usuario no tiene número de teléfono y nombre de usuario, la llamada aún llegará a la PBX, pero con el número anonymous
.
Además del Caller ID, el campo From también puede contener el nombre del llamante (Caller Name), cuya formación también puede controlarse mediante reglas similares, pero además de los parámetros enumerados anteriormente, hay dos más:
{name}
— nombre mostrado en UTF-8 (puede causar problemas en el lado de la PBX debido a los emojis);{name_ascii}
— nombre mostrado convertido a ASCII (opción segura).
Ejemplo de formación de Caller Name
Ejemplo de formación de Caller Name
Dependiendo de si el usuario tiene un número de teléfono y nombre de usuario, se utilizará uno de los siguientes:
- o bien el número de teléfono con el prefijo
+
, seguido del nombre mostrado escrito entre paréntesis, - o el nombre de usuario con el prefijo
@
, seguido del nombre mostrado escrito entre paréntesis, - o en el caso más extremo — solo el nombre mostrado sin caracteres extraños.
PBX → Telegram
Al recibir una solicitud INVITE
desde el lado de la PBX, el identificador llamado se interpretará en plena conformidad con el mismo parámetro Caller ID descrito anteriormente. Sin embargo, el algoritmo para determinar el tipo de identificador y cortar prefijos y caracteres extraños en él no parece tan obvio.
Algoritmo detallado de procesamiento de reglas
Algoritmo detallado de procesamiento de reglas
Como en el caso de las llamadas de Telegram → PBX, las reglas se verifican secuencialmente y la selección se detiene en la primera que satisface los criterios dados después de las transformaciones:
- Todos los parámetros de plantilla en la regla se reemplazan con sus expresiones regulares correspondientes:
{phone}
→+?[1-9]\d*
: un número que no puede comenzar con0
y opcionalmente puede comenzar con el símbolo+
;{username}
→@?[a-zA-Z]\w*
: una cadena alfanumérica que solo puede comenzar con una letra y opcionalmente con un prefijo@
;{userid}
→[1-9]\d*
: un número que no puede comenzar con0
y no puede tener prefijos.
- Como resultado del punto 1, se obtiene una expresión regular compleja, contra la cual se verifica el identificador recibido del URI INVITE.
- Como resultado de satisfacer la expresión regular, aunque esto solo tiene un sentido teórico, varios tipos de identificadores pueden ser reconocidos en el identificador a la vez. En este caso, se seleccionará el primer valor en el orden especificado:
{userid}
,{username}
,{phone}
.
Esto asegura la bidireccionalidad de las reglas de formación del Caller ID y la consistencia de los formatos de identificador para ambas direcciones de llamada.
Integración con CRM
La integración con CRM generalmente no se implementa directamente con SIP.TG, sino a través de una PBX a la que SIP.TG se conecta como un troncal SIP estándar. El CRM mismo “ve” las llamadas y contactos gracias a las capacidades de la PBX. Como regla general, no es necesario instalar módulos o plugins separados específicamente para SIP.TG en el CRM.
La mayoría de las veces, la interacción se organiza de la siguiente manera:
- Una llamada de Telegram llega a la Pasarela SIP.TG (cuenta de Telegram).
- La Pasarela SIP.TG convierte la llamada a SIP y la pasa a la PBX (a través del troncal SIP).
- La PBX, teniendo el módulo o plugin necesario para la integración con CRM, reconoce la llamada entrante, muestra la tarjeta del cliente, registra la llamada o realiza otras acciones.
- Al final de la conversación, los datos sobre la llamada (por ejemplo, duración, resultado) también se guardan en el CRM.
¿Cómo aprende la PBX sobre el número del cliente?
¿Cómo aprende la PBX sobre el número del cliente?
Casi cualquier PBX moderna puede usar encabezados SIP (CallerID, From, etc.) durante una llamada entrante o saliente para “pasar” datos al módulo CRM. Al llamar desde Telegram a través de la Pasarela SIP.TG a un troncal SIP, se transmite el identificador del llamante (la mayoría de las veces se muestra como ID de Telegram o nombre de usuario), y la lógica en la PBX mapea este identificador a los registros del CRM.
Si su PBX puede administrar CallerID para llamadas salientes (por ejemplo, “sustituye” el número deseado), entonces el CRM puede registrar automáticamente tanto el número de teléfono real como los contactos de Telegram en la tarjeta. Pero hay muchos detalles para cada CRM y PBX; en general, esto no está regulado directamente por SIP.TG.
¿Cómo iniciar una llamada desde CRM?
¿Cómo iniciar una llamada desde CRM?
Si un CRM “sabe cómo” iniciar una llamada (por ejemplo, hacer clic en un número y llamar), generalmente lo hace a través de la PBX, envía un comando Call API o AMI allí (Asterisk, 3CX, etc.). Luego, la PBX traduce la solicitud al troncal SIP de SIP.TG, y la Pasarela llama a Telegram. Todo esto es nuevamente una interacción estándar “CRM → PBX → troncal SIP”, donde SIP.TG simplemente desempeña el papel de un operador de telecomunicaciones para Telegram.
Ejemplo de configuración
Ejemplo de configuración
- En la PBX, cree una cuenta (troncal SIP) con las credenciales proporcionadas al configurar
/gateway
en @siptg_bot. - En el CRM, active un plugin o módulo listo (para Asterisk, 3CX, FreePBX, Yate, etc.) o configure solicitudes externas a la PBX a través de su API.
- Verifique que el CRM reciba eventos sobre llamadas (aparece la tarjeta, se escriben registros) y, si es necesario, conecte lógica más profunda (distribución de llamadas, vinculación de grabaciones de conversación, automatización).
- Para llamadas salientes desde CRM — verifique que la PBX pueda formar una llamada a través del troncal SIP “SIP.TG” (generalmente se selecciona una ruta o regla de marcación para tal línea).
Cuando se necesita configuración adicional
Campos de encabezado SIP extendidos
Si su CRM forma o espera algunos encabezados específicos (por ejemplo, X-CRM-ID), tales situaciones se resuelven por medio de su PBX (scripts AGI en Asterisk, configuraciones personalizadas en 3CX, etc.). En el lado de SIP.TG, no hay forma de influir directamente en encabezados SIP arbitrarios.
Necesita un CallerID reenviado
En algunos casos, el CRM necesita ver el número de llamada original completo (por ejemplo, para “vincularlo” a un cliente específico). Si la llamada es desde Telegram, entonces el número puede ser cualquier cosa (o estar completamente ausente), y aquí depende de la lógica de su PBX cómo sustituir el CallerID. A veces se agrega una base de datos adicional de correspondencia “ID de Telegram → teléfono del cliente”.
Habilitación de grabación de llamadas en CRM
La grabación de llamadas puede habilitarse tanto en la propia PBX como en el modo “Grabación de llamadas” en el lado de SIP.TG (en el Softphone). Si desea almacenar grabaciones específicamente en el CRM, verifique si su PBX puede transferir archivos de grabación allí. Desde el punto de vista de SIP.TG, esta es una transmisión “transparente” de sonido a través de SIP, y no hay configuraciones adicionales para la grabación.
Consejos adicionales
- Enfoque unificado: todas las configuraciones relacionadas con CRM generalmente se realizan en la interfaz de su PBX. Usted percibe SIP.TG como un operador de telecomunicaciones regular (troncal SIP).
- PBX típicas (Asterisk, 3CX, FreeSWITCH, Yate, Oktell, Panasonic, etc.) tienen plugins o interfaces REST para la integración con CRM. Estudie la documentación de la PBX: lo más probable es que haya un ejemplo listo.
- Escenarios de recepción y enrutamiento de llamadas (IVR, cola de operadores, reenvío automático) — todas estas son funciones comunes de PBX. La Pasarela SIP.TG no limita ni complica tales escenarios: funcionan de la misma manera que con otros troncales SIP.
No complique demasiado. Para “hacer amigos” el CRM con las llamadas de Telegram, es suficiente conectar la Pasarela SIP.TG a su PBX y usar las herramientas estándar de integración CRM que están disponibles en la PBX.
Si encuentra problemas o errores, use la sección Solución de problemas.