<div dir="ltr">Thanks Badlop for the response, it helps. </div><div class="gmail_extra"><br><div class="gmail_quote">On 12 December 2014 at 21:33, Badlop <span dir="ltr"><<a href="mailto:badlop@gmail.com" target="_blank">badlop@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">How to see live input and output of function calls (in this example<br>
mod_disco:features_to_xml):<br>
<br>
1. Get an erlang shell attached to ejabberd (starting it with ejabberdctl live)<br>
2. Execute those commands in the erlang shell:<br>
dbg:tracer().<br>
dbg:p(all,[c]).<br>
dbg:tpl(mod_disco, features_to_xml, [{'_',[],[{message,{return_trace}}]}]).<br>
3. Login with a Jabber client to ejabberd, and request the Service Discovery.<br>
4. You will see in the erlang shell input arguments and the call result:<br>
<br>
(<0.420.0>) call<br>
mod_disco:features_to_xml([{{<<"<a href="http://jabber.org/protocol/commands" target="_blank">http://jabber.org/protocol/commands</a>">>,<<"localhost">>}},<br>
 {{<<"<a href="http://jabber.org/protocol/disco#info" target="_blank">http://jabber.org/protocol/disco#info</a>">>,<<"localhost">>}},<br>
 {{<<"<a href="http://jabber.org/protocol/disco#items" target="_blank">http://jabber.org/protocol/disco#items</a>">>,<<"localhost">>}},<br>
 {{<<"<a href="http://jabber.org/protocol/pubsub" target="_blank">http://jabber.org/protocol/pubsub</a>">>,<<"localhost">>}},<br>
 {{<<"<a href="http://jabber.org/protocol/stats" target="_blank">http://jabber.org/protocol/stats</a>">>,<<"localhost">>}},<br>
 ...<br>
 <<"<a href="http://jabber.org/protocol/pubsub#subscription-options" target="_blank">http://jabber.org/protocol/pubsub#subscription-options</a>">>,<br>
 <<"<a href="http://jabber.org/protocol/commands" target="_blank">http://jabber.org/protocol/commands</a>">>])<br>
(<0.420.0>) returned from mod_disco:features_to_xml/1 -> [{xmlel,<br>
                                                           <<"feature">>,<br>
                                                           [{<<"var">>,<br>
<br>
<<"<a href="http://jabber.org/protocol/commands" target="_blank">http://jabber.org/protocol/commands</a>">>}],<br>
                                                           []},<br>
                                                          {xmlel,<br>
                                                           <<"feature">>,<br>
                                                           [{<<"var">>,<br>
<br>
<<"<a href="http://jabber.org/protocol/disco#info" target="_blank">http://jabber.org/protocol/disco#info</a>">>}],<br>
                                                           []},<br>
 ...<br>
<br>
Alternatively, there is a graphical debugger, run i:im(). to start it.<br>
<br>
<br>
--<br>
Badlop<br>
ProcessOne<br>
<br>
<br>
--<br>
<div class="HOEnZb"><div class="h5"><br>
On 9 December 2014 at 15:13, Deepender Singla <<a href="mailto:deepender281190@gmail.com">deepender281190@gmail.com</a>> wrote:<br>
> This might be a noob question, Is there any way in Ejabberd (i think must be<br>
> applicable to all erlang project) to use debugger in between live code, so<br>
> that I can debug code in between in the console while running to see what is<br>
> happening in and around?<br>
><br>
> On 8 December 2014 at 19:53, Deepender Singla <<a href="mailto:deepender281190@gmail.com">deepender281190@gmail.com</a>><br>
> wrote:<br>
>><br>
>> thanks Daniel for reply, I will look into all of this.<br>
>><br>
>> deep<br>
>><br>
>> On 8 December 2014 at 19:29, Daniel Dormont <<a href="mailto:dan@greywallsoftware.com">dan@greywallsoftware.com</a>><br>
>> wrote:<br>
>>><br>
>>> Hi deep,<br>
>>><br>
>>> 1) The hook doesn't fire precisely because the user who is offline is<br>
>>> removed from the room's participant list and so the system does not<br>
>>> even attempt to send them the message. This is the behavior you're<br>
>>> going to  need to change in the code of the MUC module itself; just<br>
>>> adding offline_message_hook won't do it.<br>
>>><br>
>>> 2)  Similarly, the active participant list for a MUC is part of the<br>
>>> internal state of that MUC maintained in mod_muc_room. It is not, for<br>
>>> better or worse, stored in any table.<br>
>>><br>
>>> dan<br>
>>><br>
>>> On Sat, Dec 6, 2014 at 11:40 PM, Deepender Singla<br>
>>> <<a href="mailto:deepender281190@gmail.com">deepender281190@gmail.com</a>> wrote:<br>
>>> > Hello Folks<br>
>>> ><br>
>>> > I hope all of you are enjoying your weekend. I am also with ejabberd,<br>
>>> > there<br>
>>> > are some basic question I have:<br>
>>> ><br>
>>> > 1) offline_message_hook doesn't fired with a group chat when some user<br>
>>> > go<br>
>>> > offline, Is there any way I can fire it.  I was able to fire it with<br>
>>> > one to<br>
>>> > one chat.<br>
>>> ><br>
>>> > 2) Then Mickael also talked about keeping the track of participant list<br>
>>> > in<br>
>>> > this thread, I went through db schema and muc_room table, was not able<br>
>>> > to<br>
>>> > find any field for participant? Does group chat store somewhere the<br>
>>> > participant lists?<br>
>>> ><br>
>>> > thanks<br>
>>> > deep<br>
>>> ><br>
>>> > On 24 November 2014 at 18:08, Deepender Singla<br>
>>> > <<a href="mailto:deepender281190@gmail.com">deepender281190@gmail.com</a>><br>
>>> > wrote:<br>
>>> >><br>
>>> >> thanks, Jorge.<br>
>>> >><br>
>>> >> On 24 November 2014 at 17:28, Jorge Guntanis <<a href="mailto:jorge@telcentris.com">jorge@telcentris.com</a>><br>
>>> >> wrote:<br>
>>> >>><br>
>>> >>> You want to look at the mod_muc.erl file.<br>
>>> >>><br>
>>> >>> - Jorge G.<br>
>>> >>><br>
>>> >>> On Nov 24, 2014, at 1:29 AM, Deepender Singla<br>
>>> >>> <<a href="mailto:deepender281190@gmail.com">deepender281190@gmail.com</a>><br>
>>> >>> wrote:<br>
>>> >>><br>
>>> >>> Thanks Michael for prompt reply,  Can you point where in the codebase<br>
>>> >>> this implementation(MUC Module) is actually wrote (then it would be<br>
>>> >>> very<br>
>>> >>> easy for me to fight with it).<br>
>>> >>><br>
>>> >>> best<br>
>>> >>> deep<br>
>>> >>><br>
>>> >>> On 24 November 2014 at 14:30, Mickaël Rémond<br>
>>> >>> <<a href="mailto:mremond@process-one.net">mremond@process-one.net</a>><br>
>>> >>> wrote:<br>
>>> >>>><br>
>>> >>>> Hello Deep,<br>
>>> >>>><br>
>>> >>>> On 24 Nov 2014, at 04:40, Deepender Singla<br>
>>> >>>> <<a href="mailto:deepender281190@gmail.com">deepender281190@gmail.com</a>><br>
>>> >>>> wrote:<br>
>>> >>>><br>
>>> >>>> Hello Folks<br>
>>> >>>><br>
>>> >>>> First off thanks for writing this open source implementation of<br>
>>> >>>> ejabberd, loved it. I am using ejabberd for a research project, but<br>
>>> >>>> there is<br>
>>> >>>> one change I wanted to make in implementation of server. Basically<br>
>>> >>>> when a<br>
>>> >>>> User who go offline should not exit the room, the way its happen in<br>
>>> >>>> whatsapp<br>
>>> >>>> also.<br>
>>> >>>><br>
>>> >>>> I am very new to Erland and even to functional level language<br>
>>> >>>> (Ruby/Python guy ). Here:<br>
>>> >>>> <a href="http://xmpp.org/extensions/xep-0045.html#impl-service-ghosts" target="_blank">http://xmpp.org/extensions/xep-0045.html#impl-service-ghosts</a>  in<br>
>>> >>>> doumentation it is written, the ghost users become offline by the<br>
>>> >>>> server, Is<br>
>>> >>>> there any way or custom implementation to make them online and store<br>
>>> >>>> the<br>
>>> >>>> messages which they recieve they are offline and deliver to them<br>
>>> >>>> once they<br>
>>> >>>> come next time.<br>
>>> >>>><br>
>>> >>>><br>
>>> >>>> There is no generic way of doing this and it really depends on how<br>
>>> >>>> you<br>
>>> >>>> would like your service to behave.<br>
>>> >>>> One thing you could do is use the participant list to keep track of<br>
>>> >>>> all<br>
>>> >>>> users and modify the muc module to send offline messages to<br>
>>> >>>> participants<br>
>>> >>>> that are offline.<br>
>>> >>>><br>
>>> >>>> I hope this helps,<br>
>>> >>>><br>
>>> >>>> --<br>
>>> >>>> Mickaël Rémond<br>
>>> >>>><br>
>>> >>>><br>
>>> >>>> _______________________________________________<br>
>>> >>>> ejabberd mailing list<br>
>>> >>>> <a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
>>> >>>> <a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
>>> >>>><br>
>>> >>><br>
>>> >>> _______________________________________________<br>
>>> >>> ejabberd mailing list<br>
>>> >>> <a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
>>> >>> <a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
>>> >>><br>
>>> >>><br>
>>> >>> _______________________________________________<br>
>>> >>> ejabberd mailing list<br>
>>> >>> <a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
>>> >>> <a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
>>> >>><br>
>>> >><br>
>>> ><br>
>>> ><br>
>>> > _______________________________________________<br>
>>> > ejabberd mailing list<br>
>>> > <a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
>>> > <a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
>>> ><br>
>>> _______________________________________________<br>
>>> ejabberd mailing list<br>
>>> <a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
>>> <a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
>><br>
>><br>
><br>
><br>
> _______________________________________________<br>
> ejabberd mailing list<br>
> <a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
> <a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
><br>
_______________________________________________<br>
ejabberd mailing list<br>
<a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
<a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
</div></div></blockquote></div></div>