Ho installato Ejabberd con utenti di test e funziona correttamente. Voglio scrivere un modulo in grado di intercettare i messaggi e modificarli, come segue:Come filtrare i messaggi in Ejabberd
- intercettare "messaggi"
- li invia ad un file php
- ottenere il risultato dallo stesso file php (immediato)
- modificare il messaggio strofa e inviarlo giù il filo al destinatario
la documentazione ejabberd è debole e tutorial sono inesistenti. Puoi darmi qualche esempio di codice che faccia questo. Posso quindi capire come configurarlo per le mie esigenze.
Grazie un pacchetto!
Adil
Grazie gleber. Sono già andato così lontano e posso vedere dal? INFO_MSG che viene chiamato il mio packet_interceptor. Come inviare questi dati XML a php (tramite? Xml =) e recuperare l'XML risultante e quindi passarlo al destinatario? –
Adil
Probabilmente dovresti usare un http: request/1,2,3 per chiamare lo script PHP. IIRC on_filter_packet verrà chiamato nello stesso processo del processo del router di ejabberd, quindi non dovresti fare troppo tempo. Quindi una soluzione è generare un nuovo processo per questo, restituire un atomo 'drop' (per rilasciare il pacchetto) e quando la stanza modificata viene restituita da PHP, inviarla usando' ejabberd_router: route (From, To, Packet) '. Probabilmente on_filter_packet verrà chiamato di nuovo sul nuovo pacchetto che hai inviato, quindi assicurati di rilevarlo e non elaborarlo due volte. – gleber
Per rilevare il pacchetto è possibile aggiungere il tag ' ' in un pacchetto con il proprio 'xmlns'. –
gleber