[Freeswitch-users] FS as Media Gateway Only

David Ponzone david.ponzone at gmail.com
Thu Jun 3 22:59:32 PDT 2010


It doesn't solve the issue that all the media servers will do  
signaling too, and will talk SIP with the carriers.
So the carriers will need to allow all the media servers .

The only clean solution to avoid that, I think, is to have signaling  
boxes allocating resources from media servers with another protocol  
than SIP.
RTPproxy does that I think, but I am not sure how it works.

David Ponzone  Direction Technique
email: david.ponzone at ipeva.fr
tel:      01 74 03 18 97
gsm:   06 66 98 76 34

Service Client IPeva
tel:      0811 46 26 26
www.ipeva.fr  -   www.ipeva-studio.com

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. IPeva 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.




Le 04/06/2010 à 05:00, Code Ghar a écrit :

> Hi David
>
> 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.
>
> 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.
>
> 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.
>
> Any thoughts?
>
>
> On Fri, May 28, 2010 at 6:31 AM, David Ponzone <david.ponzone at gmail.com 
> > wrote:
> Code,
>
> you're totally right.
> In this model (FS), the media server will also be in the SIP Path.
> 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:
>
> inbound <--------SIP------ SIP Server/Proxy ------------SIP------->  
> Carrier
>                                                   |
>              <---------RTP------ MediaServer-------- 
> RTP--------------->
>
>
> Verizon Business (in Europe at least) has a such infrastrucutre:  
> OpenSER for the SIP part, and Nortel GWs for the RTP.
> 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).
>
> I don't know how this is implemented in Kamaillo/OpenSER but  
> perhaps, for a nice bounty, that would be something possible in FS.
>
> David Ponzone  Direction Technique
> email: david.ponzone at ipeva.fr
> tel:      01 74 03 18 97
> gsm:   06 66 98 76 34
>
> Service Client IPeva
> tel:      0811 46 26 26
> www.ipeva.fr  -   www.ipeva-studio.com
>
> 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. IPeva 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.
>
>
>
>
> Le 28/05/2010 à 05:34, Code Ghar a écrit :
>
>> Hi Vitalie
>>
>> 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.
>>
>> 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.
>>
>> 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?
>>
>> 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.
>>
>>
>>
>>
>> On Thu, May 27, 2010 at 1:15 AM, Vitalii Colosov  
>> <vetali100 at gmail.com> wrote:
>> Hi Code,
>>
>> I have working example doing exactly what you've described.
>> 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.
>>
>> You can achieve this on signalling FS by creating a Lua script that  
>> contains the following lines:
>>
>> media_server="my_media_X.mydomain.com"; --to be determined by  
>> routing logic
>> forwarding_session = "sofia/ 
>> external/"..called_number.."@"..media_server;
>> session:setVariable("bypass_media_after_bridge", "true");
>> session:setVariable("hangup_after_bridge", "true");
>> session:execute("bridge",forwarding_session);
>>
>> The call will arrive to the selected media server successfully and  
>> media stream will start bypassing signalling FS after bridge.
>>
>> You can read the following thread, it describes how you can setup  
>> such configuration.
>> http://lists.freeswitch.org/pipermail/freeswitch-users/2010-March/055231.html
>>
>> I think it will fit your needs.
>>
>> Regards,
>> Vitalie
>>
>>
>> 2010/5/27 Code Ghar <codeghar at gmail.com>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> 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: http://www.sangoma.com/assets/images/content/transcoding_diagram.jpg 
>> . Look at the "pooled transcoding".
>>
>> Is FS even designed to be this modular? If so, how can the  
>> aforementioned scenario(s) be achieved?
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100604/6c1e444b/attachment-0001.html 


More information about the FreeSWITCH-users mailing list