<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">It doesn't solve the issue that all the media servers will do signaling too, and will talk SIP with the carriers.<div>So the carriers will need to allow all the media servers .</div><div><br></div><div>The only clean solution to avoid that, I think, is to have signaling boxes allocating resources from media servers with another protocol than SIP.</div><div>RTPproxy does that I think, but I am not sure how it works.</div><div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="'Helvetica Neue'"><font class="Apple-style-span" color="#1C00FF">David Ponzone </font><font class="Apple-style-span" color="#000000" size="3"><span class="Apple-style-span" style="font-size: 12px; ">Direction Technique</span></font></font></div><div><font class="Apple-style-span" face="'Helvetica Neue'"><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 13px; ">email: <a href="mailto:david.ponzone@ipeva.fr">david.ponzone@ipeva.fr</a></span></font></font></div><div><font class="Apple-style-span" face="'Helvetica Neue'"><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 13px; ">tel: 01 74 03 18 97</span></font></font></div><div><font class="Apple-style-span" face="'Helvetica Neue'"><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 13px; ">gsm: 06 66 98 76 34</span></font></font></div><div><font class="Apple-style-span" face="'Helvetica Neue'"><br></font></div><div><font class="Apple-style-span" color="#1C00FF" face="'Helvetica Neue'">Service Client<span class="Apple-converted-space"> </span></font><font class="Apple-style-span" face="'Helvetica Neue'"><font class="Apple-style-span" color="#FF0000">IP</font></font><font class="Apple-style-span" color="#1C00FF" face="'Helvetica Neue'">eva</font></div><div><font class="Apple-style-span" color="#1C00FF" face="'Helvetica Neue'"><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; "><div><font class="Apple-style-span" face="'Helvetica Neue'"><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 13px; ">tel: 0811 46 26 26</span></font></font></div><div><font class="Apple-style-span" face="'Helvetica Neue'" size="3"><span class="Apple-style-span" style="font-size: 13px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Arial; color: rgb(0, 34, 243); "><span style="text-decoration: underline; "><a href="BLOCKED::http://www.ipeva.fr/">www.ipeva.fr</a></span><span style="color: rgb(101, 104, 149); "> - <span style="color: rgb(0, 34, 243); text-decoration: underline; "><a href="BLOCKED::http://www.ipeva-studio.com/">www.ipeva-studio.com</a></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Arial; color: rgb(0, 34, 243); "><span class="Apple-style-span" style="text-decoration: underline; "><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Arial; color: rgb(0, 34, 243); "><span class="Apple-style-span"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; text-align: justify; font: normal normal normal 10px/normal Arial; color: rgb(192, 192, 192); "><i>Ce message et toutes les pièces jointes sont confidentiels et établis à l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisée est interdite. Tout message électronique est susceptible d'altération. </i><b><i>IPeva</i></b><i> décline toute responsabilité au titre de ce message s'il a été altéré, déformé ou falsifié. Si vous n'êtes pas destinataire de ce message, merci de le détruire immédiatement et d'avertir l'expéditeur.</i></div><div style="text-decoration: underline; text-align: justify; "><font class="Apple-style-span" color="#C0C0C0"><i><br></i></font></div></span></div></span></font></div></span></font></div></div></span><br class="Apple-interchange-newline"></div></span><br class="Apple-interchange-newline"> </div><br><div><div>Le 04/06/2010 à 05:00, Code Ghar a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi David<br><br>Have you (or someone here) worked with Kamailio? If it can be used to act as stateful proxy, it could work this way: Kamailio (10.10.1.1) takes the packet, determines if it is part of a certain call (maybe look at Call ID, etc.) -- or if it's a new call to pick one server -- and sends the packet to FS1 (10.10.1.2); FS1 responds with SDP containing its own IP for media; Kamilio modifies the headers (especially Contact to set its own IP instead of FS IP) and sends to carrier.<br> <br>This way we can have multiple FS media servers running behind one signaling IP. Since all FS servers have their own external IPs reachable from the outside network, their IPs in effect appear as media IPs to carriers and they send signaling to Kamailio but media directly to the FS server actually handling the call.<br><br>Yes, it's not a pure FS solution but best tool for the job, right? Of course, I am assuming (having never worked with Kamailio) that it can handle this kind of architecture. I think it should be able to handle signaling for lots and lots of simultaneous calls because it is not handling media at all, freeing up resources for signaling only.<br> <br>Any thoughts?<br><br><br><div class="gmail_quote">On Fri, May 28, 2010 at 6:31 AM, David Ponzone <span dir="ltr"><<a href="mailto:david.ponzone@gmail.com">david.ponzone@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> <div style="word-wrap: break-word;">Code,<div><br></div><div>you're totally right.</div><div>In this model (FS), the media server will also be in the SIP Path.</div><div>That's why I answered in the first place that this was not achievable with FS, because your idea was more a Kamaillo/RTPProxy setup, where the mediaserver only does RTP with the endpoints, and is not in the SIP path at all:</div> <div><br></div><div>inbound <--------SIP------ SIP Server/Proxy ------------SIP-------> Carrier</div><div> |</div><div> <---------RTP------ MediaServer--------RTP---------------></div> <div><br></div><div><br></div><div>Verizon Business (in Europe at least) has a such infrastrucutre: OpenSER for the SIP part, and Nortel GWs for the RTP.</div><div>This way, they just give me the IPs of their OpenSER servers, and they can deploy as many media servers as they need without telling us (of course, we dont filter that).</div> <div><br></div><div>I don't know how this is implemented in Kamaillo/OpenSER but perhaps, for a nice bounty, that would be something possible in FS.</div><div><font face="'Helvetica Neue'" color="#1c00ff"><br> </font></div><div><span style="font-family: 'Helvetica Neue'; font-size: 14px;"><font color="#1c00ff">David Ponzone </font><font size="3" color="#000000"><span style="font-size: 12px;">Direction Technique</span></font></span></div> <div><div class="im"><div><span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap: break-word;"> <span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap: break-word;"> <div><font face="'Helvetica Neue'"><font size="3"><span style="font-size: 13px;">email: <a href="mailto:david.ponzone@ipeva.fr" target="_blank">david.ponzone@ipeva.fr</a></span></font></font></div><div><font face="'Helvetica Neue'"><font size="3"><span style="font-size: 13px;">tel: 01 74 03 18 97</span></font></font></div> <div><font face="'Helvetica Neue'"><font size="3"><span style="font-size: 13px;">gsm: 06 66 98 76 34</span></font></font></div><div><font face="'Helvetica Neue'"><br></font></div><div><font face="'Helvetica Neue'" color="#1c00ff">Service Client<span> </span></font><font face="'Helvetica Neue'"><font color="#ff0000">IP</font></font><font face="'Helvetica Neue'" color="#1c00ff">eva</font></div> <div><font face="'Helvetica Neue'" color="#1c00ff"><span style="color: rgb(0, 0, 0); font-family: Helvetica;"><div><font face="'Helvetica Neue'"><font size="3"><span style="font-size: 13px;">tel: 0811 46 26 26</span></font></font></div> <div><font face="'Helvetica Neue'" size="3"><span style="font-size: 13px;"><div style="margin: 0px; color: rgb(0, 34, 243);"><span style="text-decoration: underline;"><a>www.ipeva.fr</a></span><span style="color: rgb(101, 104, 149);"> - <span style="color: rgb(0, 34, 243); text-decoration: underline;"><a>www.ipeva-studio.com</a></span></span></div> <div style="margin: 0px; color: rgb(0, 34, 243);"><span style="text-decoration: underline;"><br></span></div><div style="margin: 0px; color: rgb(0, 34, 243);"><span><div style="margin: 0px; text-align: justify; color: rgb(192, 192, 192);"> <i>Ce message et toutes les pièces jointes sont confidentiels et établis à l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisée est interdite. Tout message électronique est susceptible d'altération. </i><b><i>IPeva</i></b><i> décline toute responsabilité au titre de ce message s'il a été altéré, déformé ou falsifié. Si vous n'êtes pas destinataire de ce message, merci de le détruire immédiatement et d'avertir l'expéditeur.</i></div> <div style="text-decoration: underline; text-align: justify;"><font color="#c0c0c0"><i><br></i></font></div></span></div></span></font></div></span></font></div></div></span><br></div></span><br> </div><br></div><div><div> Le 28/05/2010 à 05:34, Code Ghar a écrit :</div><div><div></div><div class="h5"><br><blockquote type="cite">Hi Vitalie<br><br>Thanks for providing the link and details. If I understood correctly, the chain of signaling would be Inbound -> FSSIP -> FSRTP -> Outbound (using names and terms in my original question), while the chain of media would be Inbound -> FSRTP -> Outbound. This way we can have multiple servers handling media and minimal servers handling signaling.<br> <br>Let me clarify a little more my motivation for asking this question in the first place. I work with telecom carriers on a daily basis and have seen many different architectures. The first biggest problem is how to load balance SIP traffic when you are receiving calls, if one server is not enough. The second biggest problem is handling all RTP, including transcoding. With this architecture, one or two IPs for signaling can be handled by most carriers. So you can beef up your hardware for signaling and depend less on your carrier's ability to load balance traffic for you. If they can do round-robin or failover for two IPs, you are golden. And then you can deploy multiple nodes to handle all RTP duties, without having to concern your carrier about multiple servers and IPs. But there's one thing still missing. Your outbound carrier still needs to allow traffic from multiple IPs because now they are dealing with FSRTP instead of FSSIP.<br> <br>Is there such a solution possible using FS that all signaling, for both inbound and outbound carriers, can be handled by a couple of FSSIP nodes (depending on the amount of traffic, maybe a few more) while delegating media responsibilities to multiple FSRTP nodes? In this situation, SIP IP is always, say 10.10.10.1 or 10.10.10.2, but the SDP may use media IPs 10.10.10.3, 10.10.10.4, 10.10.10.5, and so on. Almost all carriers I have seen concern themselves only with which SIP IPs they should allow and don't care how many or which media IPs they have to deal with. Any ideas on minimizing signaling IPs while adding more media IPs as required?<br> <br>I have seen re-invite being used in production where you can just let your inbound and outbound handle media between them on their own without it going through your network. But there are circumstances where people might need to pass media through their own network, chiefly to perform transcoding and also to handle other interop issues. It is because of this use case, combined with the need for minimizing signaling IPs, that the original question was asked.<br> <br><br><br><br><div class="gmail_quote">On Thu, May 27, 2010 at 1:15 AM, Vitalii Colosov <span dir="ltr"><<a href="mailto:vetali100@gmail.com" target="_blank">vetali100@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> <div>Hi Code,</div><div><br></div>I have working example doing exactly what you've described.<div>One signalling FS bridges incoming call to a set of media servers (depending on ip, but you can implement any routing logic including round robin) and then transfers media stream after bridging to that media server.<div> <br></div><div>You can achieve this on signalling FS by creating a Lua script that contains the following lines:</div><div><br></div><div>media_server="<a href="http://my_media_X.mydomain.com" target="_blank">my_media_X.mydomain.com</a>"; --to be determined by routing logic</div> <div>forwarding_session = "sofia/external/"..called_number.."@"..media_server;</div><div>session:setVariable("bypass_media_after_bridge", "true");</div><div>session:setVariable("hangup_after_bridge", "true");</div> <div>session:execute("bridge",forwarding_session);</div><div><br></div><div>The call will arrive to the selected media server successfully and media stream will start bypassing signalling FS after bridge.</div> <div> <br></div><div>You can read the following thread, it describes how you can setup such configuration.</div><div><a href="http://lists.freeswitch.org/pipermail/freeswitch-users/2010-March/055231.html" target="_blank">http://lists.freeswitch.org/pipermail/freeswitch-users/2010-March/055231.html</a></div> <div><br></div><div>I think it will fit your needs.</div><div><br></div><div>Regards,</div><div>Vitalie</div><div><br><div><br><div class="gmail_quote">2010/5/27 Code Ghar <span dir="ltr"><<a href="mailto:codeghar@gmail.com" target="_blank">codeghar@gmail.com</a>></span><br> <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div>Is it possible -- and are there any case studies, practical experience, etc -- on deploying FreeSWITCH (FS) in this architecture: one server (FSSIP) handles SIP signaling only, and multiple servers (FSRTP1, FSRTP2, ..., FSRTPn) handle all media responsibilities? So when a call comes in, the SDP contains IP of, say FSRTP1, as media handler. For this to work, FSSIP would request FSRTPx for media resources for each new call and add its IP and port in SDP. The media servers/gateways would play IVR, etc.; collect DTMF and forward as appropriate to FSSIP; perform transcoding; etc.; all while FSSIP only deals with signaling. This way multiple servers could be deployed to handle media responsibilities and only a handful would be required for signaling. In future if there's a greater need for transcoding, etc. all you need to do is deploy a media server and not have to add servers for signaling.<br> <br>This idea came to me because I have come across two proprietary applications that do it this way. They have a SIP component and a media component. You can run both on the same physical machine or you can separate them out into multiple machines.<br> <br>Another way for this could be to integrate FS as a media component to another application's SIP component. A mix-and-match, so to speak.<br><br>On the flip side, deploy FS as a SIP server and use media capabilities of some other hardware or software application. For example, FS handles signaling and use dedicated hardware for media. A good example of this is illustrated (somewhat) by an image on Sangoma's website: <a href="http://www.sangoma.com/assets/images/content/transcoding_diagram.jpg" target="_blank">http://www.sangoma.com/assets/images/content/transcoding_diagram.jpg</a>. Look at the "pooled transcoding".<br> <br>Is FS even designed to be this modular? If so, how can the aforementioned scenario(s) be achieved?<br> <br></div></div><div>_______________________________________________<br> FreeSWITCH-users mailing list<br> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br> <br></div></blockquote></div><br></div></div></div> <br>_______________________________________________<br> FreeSWITCH-users mailing list<br> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br> <br></blockquote></div><br> _______________________________________________<br>FreeSWITCH-users mailing list<br><a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br></blockquote></div></div></div><br></div></div><br>_______________________________________________<br> FreeSWITCH-users mailing list<br> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br> <br></blockquote></div><br> _______________________________________________<br>FreeSWITCH-users mailing list<br><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users<br>UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users<br>http://www.freeswitch.org<br></blockquote></div><br></div></body></html>