Tengo Ejabberd en funcionamiento con los usuarios de prueba, y está funcionando bien. Quiero escribir un módulo que puede interceptar mensajes y modificarlos, de la siguiente manera:Cómo filtrar mensajes en Ejabberd
- de intercepción "mensajes"
- los envían a un archivo PHP
- obtener el resultado del mismo archivo PHP (inmediata)
- Modificar la estrofa mensaje y enviarlo por el cable al receptor
la documentación ejabberd es débil y tutoriales son inexistentes. ¿Me puede dar algún código de muestra que hace esto? Entonces puedo averiguar cómo configurarlo para mis necesidades.
¡Gracias a un paquete!
Adil
Gracias gleber. Ya he llegado tan lejos y puedo ver desde el INFO_MSG que mi paquete_interceptor está siendo llamado. ¿Cómo se pueden enviar estos datos XML a php (a través de? Xml =) y recuperar el XML resultante y luego pasarlo al destinatario? –
Adil
Probablemente deberías usar http: request/1,2,3 para llamar a tu script PHP. IIRC on_filter_packet se llamará en el mismo proceso que el proceso de enrutador de ejabberd, por lo que no debe hacer nada demasiado lento. Entonces, una solución es engendrar un nuevo proceso para esto, devolver un átomo de 'caída' (para soltar el paquete) y cuando la estrofa modificada es devuelta por PHP, envíela usando 'ejabberd_router: route (From, To, Packet)'. Probablemente on_filter_packet sea llamado nuevamente en el nuevo paquete que envió, así que asegúrese de detectarlo y no procesarlo dos veces. – gleber
Para detectar el paquete puede agregar la etiqueta ' ' en un paquete con su propia 'xmlns'. –
gleber