I&#39;m open to the idea as long as the patch properly deals with the new col to make it upgrade itself.<br><br><br><div class="gmail_quote">On Wed, Dec 9, 2009 at 4:23 AM, Matteo <span dir="ltr">&lt;<a href="mailto:mbrancaleoni@voismart.it">mbrancaleoni@voismart.it</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi all,<br>
<br>
as promised, I&#39;ve created a small patch to handle PRESENCE_IN<br>
and MWI events over multicast (using mod event multicast).<br>
<br>
When used along registrations sharing with multicast, you<br>
can send presence info over the mcast-bus :) and deliver<br>
the information to the phones, even if the call is not<br>
handled on the same switch the phone sent the subscription to.<br>
To make it work, the sip domain must be the all for all the machines<br>
and on the phones, otherwise the phones will ignore them.<br>
<br>
This allows distributed BLF and MWI notifications :)<br>
<br>
BUT doing that I noticed a issue that must be addressed imho,<br>
which arises when you handle NAT.<br>
<br>
&quot;distributed blf&quot; works behind nat right now, since<br>
the event will get sent to all switches, but delivered<br>
only to the phone were fs knows about the subscription.<br>
Which is the one where the phone registers to.<br>
<br>
&quot;distributed mwi&quot; results into sending N copies of<br>
same MWI notifications , where N is the number of switches.<br>
Behind NAT the phone will receive only the one sent<br>
by the switch where it&#39;s registered to.<br>
<br>
We can avoid sending multiple event if we&#39;re able to know<br>
which is the &quot;original&quot; server where the phone registered to.<br>
<br>
This is also needed to call the phone:<br>
think about a distributed registration cluster.<br>
if Alice (reg&#39;ed on FS1) calls Bob on (reg&#39;ed on FS2), right now<br>
the call is routed from FS1 to Bob, since FS1 knows where Bob is.<br>
This works ok without NAT.<br>
<br>
But with NAT FS1 cannot contact Bob, because Bob is on FS2 &quot;really&quot;<br>
and can receive calls from FS2 (nat pinhole).<br>
<br>
The solution is to check where Bob is (looking to registration table),<br>
get the &quot;real&quot; server and route the call from FS1 to FS2 then to Bob.<br>
<br>
But right now, sofia registration does not have a field holding<br>
the &quot;original&quot; server.<br>
If we want to leverage on distributed registration using multicast,<br>
I think knowing the original server is &quot;a must&quot;.<br>
<br>
the patch is pretty trivial, but we must add a field onto the db.<br>
<br>
Doing that, we can also filter MWI notification, and send them<br>
only if the phone is &quot;really&quot; registered on the server which receives<br>
the MWI event over the mcast-bus .<br>
<br>
What do you think about it?<br>
<br>
Regards,<br>
mat<br>
<br>
P.S. this is my first patch to FS, so please be kind on my mistakes :)<br>
<br>
<br>_______________________________________________<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/">http://www.cluecon.com/</a><br>
Twitter: <a href="http://twitter.com/FreeSWITCH_wire">http://twitter.com/FreeSWITCH_wire</a><br><br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br><a href="http://iax:guest@conference.freeswitch.org/888">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400<br>