I am creating a custom module for ejabberd using elixir , I am able to filter the IQ using ejabberd hook :muc_process_iq but I don't know how to get different child elements and values from that IQ.
defmodule FilterPacket do
require Logger
@behaviour :gen_mod
def start(host, _opts) do
Logger.info('Starting ejabberd module Filter Packet')
Ejabberd.Hooks.add(:muc_process_iq, host, __MODULE__, :on_filter_packet, 50)
:ok
end
def stop(host) do
Logger.info('Stopping ejabberd module Filter Packet')
Ejabberd.Hooks.delete(:muc_process_iq, host, __MODULE__, :on_filter_packet, 50)
:ok
end
def on_filter_packet(iq, state) do
Logger.info("This is IQ #{inspect iq}")
# I want to get the child elements of the IQ here
end
def depends(_host, _opts) do
[]
end
def mod_options(_host) do
[]
end
end