<div>Hi mani,</div>
<div> </div>
<div>I&#39;m not sure where to start...</div>
<div> </div>
<div>* Copying the the overview in the module doc:</div>
<div><em>&quot;Purple module is a multi-protocol instant-messaging gateway module which use libpurple, the library on bottom of Pidgin (ex-gaim). </em><em>This plugin was wrote in order to proof the concept of gateway between SIP and MSN/Live networks. </em><em>[...] </em><em>It&#39;s no really adapted to a production environment with a huge user count but can be used in order to demonstrate the concept or to use it in SOHO environment.&quot;</em></div>

<div><em></em> </div>
<div>To be clearer, for the moment, just try it and give your feedback, but do not hope to have a userfriendly and stable IM federation.</div>
<div> </div>
<div>Currently there is mainly two way to have IM&amp;Presence &quot;Federation&quot; :</div>
<div>1) use a multi-protocol client, which will handle all your accounts and will display all your separate buddylist as a single one and will use the appropriate protocol for each buddy. Pidgin and Trillian working like this, but it&#39;s not a real federation, cause you still have multiple identities running on your computer.</div>

<div>2) use a single-protocol client with a gateway. The gateway is then responsible to connect with all your accounts you given. That&#39;s how work purple+kamailio, gtalk-2-msn bridges, skype... This a real federation because you have only one identity on your computer.</div>

<div> </div>
<div>There is also a third way, which is only acceptable for a sip-xmpp gateway (like XMPP kamailio&#39;s module), because sip and xmpp are both open protocols with server-to-server communication.</div>
<div><br>About the externals buddylists :</div>
<div>With the first federation solution, it&#39;s implied, cause your client will handle directly each list.</div>
<div>But with the second, you need a way to propagate the external list to the client, and more important a way to say the gateway that you&#39;re trying to use another protocol. With skype and gtalk bridge, is quite simple cause the developpers handle both gateway and client, so they can do what they want.</div>

<div>With purple module is more difficult, cause we want to be able to use any sip client... Finally the solution sounds to be XCAP and centralized buddylist filled by the module, but you&#39;ll still need a way to say the gateway which protocol to use, only with the R-URI (with the URI filtering I mentioned I previous mails).</div>

<div> </div>
<div>I hope this informations will help you understand better the problems.</div>
<div>I know purple isn&#39;t finished yet, it&#39;s a first version, and need a lot of improvements to be user friendly.</div>
<div> </div>
<div> </div>
<div>Regards,</div>
<div> </div>
<div>Eric.</div>
<div> </div>
<div> </div>
<div class="gmail_quote">2009/6/17 mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com">mani.opensips@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Thanks for getting back. I&#39;m really confused about how purple module does the IM federation. You might have heard of opnefire/spark IM client or other IM clients like trillium or Pidgin. All these are im federation clients where you give it all your msn, yahoo and gmail user id and paswrd and logs in to all thse servers at the same. These IM clients gets the buddy list from yahoo, msn and gmail and uses colors or tabs to identify to which server belong. Instead of logging to to each im client , now people can login to one client and view and chat all buddies.<br>
<br>Now talking about purple module, if I enter all my msn, yahoo and gmail user if and password and map this to my sip account using purplemap table in mysql, WILL the purple module logs into all my msn, yahoo, and gmail im accounts and fetch all the buddy list ? How will the sip client who is connected to openser get all this msn, yahoo and gmail buddy list first of all ? SHould the sip client add these buddies manually in the sip client ( say X-Lite ) connected to openser.<br>
<br>I still don&#39;t understand how a sip client connected to the openser, be able to interact with other msn, yahoo and gmail buddies and send message. I&#39;m sorry to ask this basic question, but I don&#39;t understand how this works.<br>
<br>I will appreciate your explanation. 
<div>
<div></div>
<div class="h5"><br><br>
<div class="gmail_quote">On Wed, Jun 17, 2009 at 6:53 AM, Eric PTAK <span dir="ltr">&lt;<a href="http://eric.ptak.fr/" target="_blank">eric.ptak.fr</a>@<a href="http://gmail.com/" target="_blank">gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div>Hi mani,</div>
<div> </div>
<div>Looking your log, I see you&#39;re trying to contact sip:manivasagam.s*<a href="http://msn.com/" target="_blank">msn.com</a>@<a href="http://kmilo.smithmicro.com/" target="_blank">kmilo.smithmicro.com</a> as I mentionned to be a possible way to get purple working without mapping non-sip friends. But it requires modifications in the purple_* functions to support it.</div>

<div>Then, there is also the usrloc error cause it didn&#39;t find such user. You must use a purple_gateway_domain different from your main domain, in order to filter messages to the gateway easyly, priori to other routes.</div>

<div> </div>
<div>for example (but again the module need mods) :</div>
<div> </div>
<div>route {</div>
<div>    # initial sanity check, loopavoidance &amp; big messages</div>
<div>   .....</div>
<div>   .....</div>
<div>   # retransmission absorbtion</div>
<div>
<div>   ..... 
<div>   .....</div>
<div> </div>
<div>   # messages to purple gateway</div>
<div>   if ($rd == &quot;purple_gateway_domain&quot;) {</div>
<div>       route(10);</div>
<div>   }</div>
<div> </div>
<div>   # main route</div>
<div>
<div>   ..... 
<div>   .....</div>
<div> </div></div></div></div></div>
<div> </div>
<div>}</div>
<div> </div>
<div>#purple route</div>
<div>route[10] {</div>
<div> </div>
<div>   #method filtering to call the appropriate purple function</div>
<div> </div>
<div> </div>
<div> </div>
<div>}<br></div>
<div> </div>
<div>Eric.</div>
<div> </div>
<div class="gmail_quote">2009/6/16 mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com" target="_blank">mani.opensips@gmail.com</a>&gt;</span> 
<div>
<div></div>
<div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Attached is kamailio debug log while trying to send a MESSAGE to an MSN contact from my SIP Account. <a href="mailto:manivasaga.s@msn.com" target="_blank">manivasaga.s@msn.com</a> is the MSN account available on the SIP Buddy list. THe MESSAGE send fails and the server sends back 202 and then 404.<br>
<br>THe debug message is attached. Any input is appreciated.<br><br>
<div class="gmail_quote">On Tue, Jun 16, 2009 at 10:00 AM, mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com" target="_blank">mani.opensips@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Hi Eric<br>Could you please post a working example kamailio.cfg file with the example purplemap table contents (remove passwords from it). I guess I&#39;m doing some mistake in coding purple_handle_subscribe,  purple_handle_publish() and purple_send_message. Your help is really apppreciated.<br>
<br>What IM Client did you use to test/develop purple ? Is it X-Lite ? I would like to try purple with that client first. Please let me know. I want to get the first PUB/SUB and MESSAGE working bet SIP and MSN or Gmail or yahoo.<br>
<br>Your help is appreciated.<br><font color="#888888">- Mani</font> 
<div>
<div></div>
<div><br><br>
<div class="gmail_quote">On Tue, Jun 16, 2009 at 2:56 AM, Eric PTAK <span dir="ltr">&lt;<a href="http://eric.ptak.fr/" target="_blank">eric.ptak.fr</a>@<a href="http://gmail.com/" target="_blank">gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div>Hi, </div>
<div> </div>
<div>The PUBLISH has to be processed normally by the Presence Server (eg handle_publish) to get the response.</div>
<div>Then, you can also use purple_handle_publish to propagate you status to external protocols.</div>
<div>Whenever, you should not get that error regarding the db entry and the publish sip uri...</div>
<div>Need more checks...</div>
<div>
<div></div>
<div>
<div> </div>
<div>Eric.<br><br></div>
<div class="gmail_quote">2009/6/15 mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com" target="_blank">mani.opensips@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Hi Eric<br>I keep getting this error messages when I setup the purplemap table in mysql and enable purple PUB/SUN processing in openser. I have only one mapping purplemap table like this. My SIP client is trying to send presence PUBLISH, but this never gets ACKed by openser server. And I get this error every time PUB happens &quot;ERROR:purple:find_accounts: result count = 0&quot;<br>
<br><a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a> | <a href="mailto:smvasagam2000@gmail.com" target="_blank">smvasagam2000@gmail.com</a> | gtalk | xxxx<br><br>
<br>PUBLISH <a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a> from [<a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a>] to [<a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a>]<br>
Jun 15 14:37:47 [17541] ERROR:purple:find_accounts: result count = 0<br>SUBSCRIBE <a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a> from [<a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a>] to [<a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a>]<br>
Jun 15 14:37:47 [17535] INFO:presence:send_notify_request: NOTIFY <a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a> via sip:msivaraman@172.16.1.125:6332;transport=udp on behalf of <a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a> for event presence.winfo<br>
SUBSCRIBE <a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a> from [<a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a>] to [<a href="mailto:sip%3Amsivaraman@kmilo.smithmicro.com" target="_blank">sip:msivaraman@kmilo.smithmicro.com</a>]<br>
Jun 15 14:37:47 [17541] ERROR:purple:find_accounts: result count = 0<br><br>Your assistance is appreciated.<br>Thanks<br>Mani<br><br><br>
<div class="gmail_quote">On Mon, Jun 15, 2009 at 11:13 AM, mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com" target="_blank">mani.opensips@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">That was it. I did that first time and then I forgot to set the env variable again. I will add it to ctl script now. Thanks for your help. I appreciate it. I will now go on to adding processing of MESSAGE, PUBLISH NOTIFY etc. <br>
<br>Thank you 
<div>
<div></div>
<div><br><br>
<div class="gmail_quote">On Mon, Jun 15, 2009 at 10:14 AM, Eric PTAK <span dir="ltr">&lt;<a href="http://eric.ptak.fr/" target="_blank">eric.ptak.fr</a>@<a href="http://gmail.com/" target="_blank">gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div>Did you added LD_PRELOAD=/path/to/your/libpurple.so env var in your ctl script ?</div>
<div> </div>
<div>Eric.<br><br></div>
<div class="gmail_quote">2009/6/15 mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com" target="_blank">mani.opensips@gmail.com</a>&gt;</span> 
<div>
<div></div>
<div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Thanks for getting back Eric. After opensips I tested the latest Kamailio 1.5.1 code with purple module. I get the same SIGCHLD core dump on Kamailio as well. I saw Kamailio comes with purple source code. If I load purple.so and then add the modprobe for purple, I get the core dump. Is there any thing I can check or look for in the debug to make sure it works. If I unload purple and remove the respective modprobes every thing seems to work fine.<br>
<br>Thank you 
<div>
<div></div>
<div><br><br>
<div class="gmail_quote">On Mon, Jun 15, 2009 at 3:15 AM, Eric PTAK <span dir="ltr">&lt;<a href="http://eric.ptak.fr/" target="_blank">eric.ptak.fr</a>@<a href="http://gmail.com/" target="_blank">gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div>Hi mani,</div>
<div> </div>
<div>purple module hasn&#39;t been tested with opensips, and I can&#39;t say if it should work.</div>
<div>but just a question : how did you compile the module ? eg, within which project ?</div>
<div> </div>
<div>regards, </div>
<div>eric.<br><br></div>
<div class="gmail_quote">2009/6/12 mani sivaraman <span dir="ltr">&lt;<a href="mailto:mani.opensips@gmail.com" target="_blank">mani.opensips@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div>
<div></div>
<div>I compiled and installed opensips 1.5.1 with mysql db and works fine. I compiled and installed the new purple module from outside and installed the same. if I try to load the purple.so module and add modprobe for purple params, opensips core dumps saying <br>
<br>Jun 12 12:06:38 [22121] CRITICAL:core:receive_fd: EOF on 15<br>Jun 12 12:06:38 [22103] INFO:core:handle_sigs: child process 22110 exited by a signal 11<br>Jun 12 12:06:38 [22103] INFO:core:handle_sigs: core was generated<br>
Jun 12 12:06:38 [22103] INFO:core:handle_sigs: terminating due to SIGCHLD<br>Jun 12 12:06:38 [22104] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22105] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22106] INFO:core:sig_usr: signal 15 received<br>
Jun 12 12:06:38 [22107] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22108] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22114] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22109] INFO:core:sig_usr: signal 15 received<br>
Jun 12 12:06:38 [22115] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22116] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22117] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22119] INFO:core:sig_usr: signal 15 received<br>
Jun 12 12:06:38 [22121] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22112] INFO:core:sig_usr: signal 15 received<br>Jun 12 12:06:38 [22103] NOTICE:presence:destroy: destroy module ...<br><br><br>The gdb back trace is not very useful either. <br>
<br>(no debugging symbols found)<br>Core was generated by `opensips&#39;.<br>Program terminated with signal 11, Segmentation fault.<br>[New process 22083]<br>#0  0x085a9c6d in ?? ()<br>(gdb) backtrace full<br>#0  0x085a9c6d in ?? ()<br>
No symbol table info available.<br>(gdb)<br><br>Help Any one , Please.<br><br><br></div></div>_______________________________________________<br>Users mailing list<br><a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br><br></blockquote></div><br></blockquote></div><br></div></div></blockquote>
</div></div></div><br><br>_______________________________________________<br>Users mailing list<br><a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br></blockquote></div><br></div></div></blockquote></div><br></blockquote></div><br></div></div></blockquote></div><br></div></div></blockquote></div><br></blockquote></div></div></div><br></blockquote></div><br></div></div>
</blockquote></div><br>