Conceptual/design question - per gateway/DTMF & PSQL
Hi, I hope that I've taught myself enough over the last few weeks that this isn't a blindingly stupid question I am providing services to multiple customers on FS 1.0.6 I have a basic setup; (which I have inherited, hence the basic questions); AS5350--------<external>----- FS-----<internal>------customer GW(s) (No Registration) (No Registration) All of the GW info is pulled from a PSWL database. Carriers, carrier_id, lcr table etc. The bit I am missing is; If all of my GW config is in the PSQL database, and that's all accessed by mod_lcr before routing the call, how do I allow for different DTMF types, codecs etc, PER CUSTOMER GW ? Am I stuck with actually defining the gateways statically under /etc/freeswitch/conf/sip_profiles/ (or I see I can doit in the dialplan, but that won't achieve what I need) I was hoping to be able to pull the DTMF (and other misc info) from the database, but the more I look into it, the less likely it is that this will work I think. (mod_lcr is already at the routing stage, can't modify DTMF at that point AFAIK) Like I said, hope the question isn't so obvious that it's crazy Regards, Mike
Depending on the number of customers you intend to have, you can have one SIP profile per customer. But that defeats slightly the purpose of your PSQL DB. I don't know much mod_lcr, but if it can send back specific parameters for a gateway (codec_string, etc...), it can probably achieve what you need, but you may have to enable late legotiation. David Ponzone Direction Technique email: david.ponzone@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 08/06/2011 à 03:46, Mike Taylor a écrit :
Hi,
I hope that I've taught myself enough over the last few weeks that this isn't a blindingly stupid question…
I am providing services to multiple customers on FS 1.0.6
I have a basic setup; (which I have inherited, hence the basic questions);
AS5350--------<external>----- FS-----<internal>------customer GW(s) (No Registration) (No Registration)
All of the GW info is pulled from a PSWL database. Carriers, carrier_id, lcr table etc.
The bit I am missing is;
If all of my GW config is in the PSQL database, and that's all accessed by mod_lcr before routing the call, how do I allow for different DTMF types, codecs etc, PER CUSTOMER GW ?
Am I stuck with actually defining the gateways statically under /etc/freeswitch/conf/sip_profiles/ (or I see I can doit in the dialplan, but that won't achieve what I need)
I was hoping to be able to pull the DTMF (and other misc info) from the database, but the more I look into it, the less likely it is that this will work I think. (mod_lcr is already at the routing stage, can't modify DTMF at that point AFAIK)
Like I said, hope the question isn't so obvious that it's crazy…
Regards, Mike _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
The dtmf_type channel variable can be used to override the profile's dtmf setting. Valid settings are rf2833, info and none. Inband would be more complex, as you'd need to call the start_dtmf_generate application, not sure how you could easily integrate that with mod_lcr. Possibly using the execute_on_x family of channel variables. mod_lcr would need to use custom sql to get the additional dtmf variable. As David pointed out, mod_lcr already lets you set the codec list for a gateway. late-negotiation isn't *required*, but could be useful. Without it the aleg will pick a codec, then you'll dial out with the codec list to the gateway and transcode if needed. With it, the aleg doesn't pick the codec until the bleg has picked one - which may make transcoding less likely. You could also setup the gateways as sofia gateways, set the codec/dtmf variables on the gateway and have mod_lcr return the sofia/gateway/gwname/ prefix. A lot of the behaviour in terms of mod_lcr, execute_on_x etc has changed since 1.0.6 so you might find you have to upgrade to get some of the newer features. -Steve On 8 June 2011 02:46, Mike Taylor <mtaylor@employees.org> wrote:
Hi,
I hope that I've taught myself enough over the last few weeks that this isn't a blindingly stupid question…
I am providing services to multiple customers on FS 1.0.6
I have a basic setup; (which I have inherited, hence the basic questions);
AS5350--------<external>----- FS-----<internal>------customer GW(s) (No Registration) (No Registration)
All of the GW info is pulled from a PSWL database. Carriers, carrier_id, lcr table etc.
The bit I am missing is;
If all of my GW config is in the PSQL database, and that's all accessed by mod_lcr before routing the call, how do I allow for different DTMF types, codecs etc, PER CUSTOMER GW ?
Am I stuck with actually defining the gateways statically under /etc/freeswitch/conf/sip_profiles/ (or I see I can doit in the dialplan, but that won't achieve what I need)
I was hoping to be able to pull the DTMF (and other misc info) from the database, but the more I look into it, the less likely it is that this will work I think. (mod_lcr is already at the routing stage, can't modify DTMF at that point AFAIK)
Like I said, hope the question isn't so obvious that it's crazy…
Regards, Mike
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Thanks both for the pointers, I've got close to 60 gateways under my internal profile, so tweaking the database is definitely preferable to editing xml files (for me) I've found some excellent documentation on lcr.conf.xml, custom SQL queries, and exporting extra variables. I tested, then modified my default mod_lcr query, just to simplify things, extended my carrier.gateway schema, and successfully (according to debugs, set several dtmf related variables. So it looks like it might be working in the lab, on Git (about a week old), so I'll see what happens with more testing (which options work etc). I'm not clear on dtmf and dtmf_relay interaction, so that'll be the next thing to nail I think. Hopefully, once this works, I can offer all sorts of options. Thanks again, excellent help, your replies let me search for what I needed. Regards, Mike On 8/06/2011 7:59 p.m., Steven Ayre wrote:
The dtmf_type channel variable can be used to override the profile's dtmf setting. Valid settings are rf2833, info and none. Inband would be more complex, as you'd need to call the start_dtmf_generate application, not sure how you could easily integrate that with mod_lcr. Possibly using the execute_on_x family of channel variables. mod_lcr would need to use custom sql to get the additional dtmf variable.
As David pointed out, mod_lcr already lets you set the codec list for a gateway. late-negotiation isn't *required*, but could be useful. Without it the aleg will pick a codec, then you'll dial out with the codec list to the gateway and transcode if needed. With it, the aleg doesn't pick the codec until the bleg has picked one - which may make transcoding less likely.
You could also setup the gateways as sofia gateways, set the codec/dtmf variables on the gateway and have mod_lcr return the sofia/gateway/gwname/ prefix.
A lot of the behaviour in terms of mod_lcr, execute_on_x etc has changed since 1.0.6 so you might find you have to upgrade to get some of the newer features.
-Steve
On 8 June 2011 02:46, Mike Taylor <mtaylor@employees.org <mailto:mtaylor@employees.org>> wrote:
Hi,
I hope that I've taught myself enough over the last few weeks that this isn't a blindingly stupid question…
I am providing services to multiple customers on FS 1.0.6
I have a basic setup; (which I have inherited, hence the basic questions);
AS5350--------<external>----- FS-----<internal>------customer GW(s) (No Registration)(No Registration)
All of the GW info is pulled from a PSWL database. Carriers, carrier_id, lcr table etc.
The bit I am missing is;
If all of my GW config is in the PSQL database, and that's all accessed by mod_lcr before routing the call, how do I allow for different DTMF types, codecs etc, PER CUSTOMER GW ?
Am I stuck with actually defining the gateways statically under /etc/freeswitch/conf/sip_profiles/ (or I see I can doit in the dialplan, but that won't achieve what I need)
I was hoping to be able to pull the DTMF (and other misc info) from the database, but the more I look into it, the less likely it is that this will work I think. (mod_lcr is already at the routing stage, can't modify DTMF at that point AFAIK)
Like I said, hope the question isn't so obvious that it's crazy…
Regards, Mike
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <mailto:FreeSWITCH-users@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@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
participants (3)
-
David Ponzone
-
Mike Taylor
-
Steven Ayre